05 2月

障害物を見つける


超音波センサーを使って障害物があるか探る。

準備するもの

名前 仕様
マイコン Arduino UNO
超音波センサー Ultrasonic Ranging Module HC-SR04

距離計を使用するためにNewPing Library を使う。

  1. NewPing の Dwonloadサイトから zip ファイルをダウンロード。
  2. zip ファイルを解凍して ~/Documents/Arduino/libraries/ にコピーする。
    $ cp -r NewPing ~/Documents/Arduino/libraries/

    total 8
    drwxr-xr-x  6 sin0414  staff  204 11 16 18:34 NewPing

Arduino IDE での開発

  1. Arduino IDEのメニューから「スケッチ」→「ライブラリを使用」→「Add Library…」で NewPing を追加する。
#include <NewPing.h>

// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------

#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {
  delay(50);                      // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
  Serial.print(&quot;Ping: &quot;);
  Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance and print result (0 = outside set distance range, no ping echo)
  Serial.println(&quot;cm&quot;);
}
%d人のブロガーが「いいね」をつけました。