ARDUINO

Aruduinoでコンパクトなライントレースロボット制作④~超音波センサー追加

Arduinoライントレースロボット制作のつづきです。
今回は、超音波センサーを取り付けて障害物を検知できるようにしたいと思います。

Aruduinoでコンパクトなライントレースロボット制作③~ラインセンサー基板追加~ Arduinoライントレースロボット制作のつづきです。 今回は、ラインセンサー2個を使用したライントレースのセンサー基板を制作して...
準備したもの
  • Arduino NANO(互換品)
  • 超音波センサー(HC-SR04)
  • XHコネクタ

超音波センサー

超音波について簡単に整理します。

  • 音は空気中を波となって伝わりますので、「音波」とも言われています。
  • 周波数(振動数)は1秒間に何回振動したかを表し、単位は Hz(ヘルツ)と言います。通常、人間が聞こえる音の周波数は、20Hz~20000Hz(20KHz)くらいまでです。
  • 周波数(振動数)が 20000Hz(20KHz)以上の音波が「超音波」と呼ばれ、人間には聞こえませんが、犬やネズミなど聞きとることができる動物がいます(広義の意味では、人が聞くこと以外の目的で利用される音を意味し、人間に聞こえるかどうかは問わず、超音波はさまざまな分野で利用されています)。
  • コウモリやイルカは超音波を発することもでき、コウモリは超音波を使って、暗い所でも障害物を避けて自由に飛び回ったり、小さな虫を捕えたりできます。イルカは超音波を使って仲間とコミュニケーションしたり、餌を捕ったりします。

超音波センサーは超音波を使って対象物までの距離や有無を検出するセンサーです。レーザーやLEDなどの光を使わないため、周囲の明るさや対象物の材質や色などの影響を受けないことが特徴です。反射型は発信と受信の機能を持っており、対象物へ超音波を発信し、その反射波を受信して発信から受信までの時間で距離や有無を検出します。

超音波センサーの仕組み

ロボットへの取付

ロボットへの取付

ロボットへ取り付けるために3Dプリンタでブラケットを自作しました。

超音波センサー取付

Arduinoとの接続

arduinoとの接続は、以下のようにしました。

  • Arduino 5Vピン ・・・ HC-SR04 VCC
  • Arduino GNDピン ・・・ HC-SR04 GND
  • Arduino 7ピン ・・・ HC-SR04 trig
  • Arduino 8ピン ・・・ HC-SR04 echo

プログラム

距離(cm)を表示するプログラムを作ってみます。

センサーtrigピンにつないだArduinoの出力ピン(ここでは7ピン)を10マイクロ秒「HIGH」にしセンサーから超音波を出します。超音波が出されるとECHOにつないだArduinoの入力ピン(ここでは8ピン)が「HIGH」となります。超音波が測定物に当たり反射して戻ってきたところを検出すると「LOW」になります。

距離は小学校の算数で習った「距離=時間×速さ」で計算できます。したがって、対象物までの距離は、(「HIGH」の時間x 340 )÷ 2 で求められます(HIGHの時間は往復の時間ですので2で割ることになります)。


#include

#define Echo 8
#define Trig 7
 
long Duration = 0;
long Distance = 0;

void setup() {
    Serial.begin(9600);
    pinMode(Echo, INPUT);
    pinMode(Trig, OUTPUT);
}

void loop() {
    digitalWrite(Trig, LOW); 
    delayMicroseconds(2); 
    digitalWrite(Trig, HIGH);
    delayMicroseconds(10);
    digitalWrite(Trig, LOW);
    Duration = pulseIn(Echo, HIGH);
    Distance = Duration/2*340*100/1000000;
    delay(25);
    Serial.print("Distance:");
    Serial.print(Distance);
    Serial.println(" cm");

}

部材購入先リンク

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です