障害物を見つける
超音波センサーを使って障害物があるか探る。
準備するもの
名前 | 仕様 |
---|---|
マイコン | Arduino UNO |
超音波センサー | Ultrasonic Ranging Module HC-SR04 |
距離計を使用するためにNewPing Library を使う。
- NewPing の Dwonloadサイトから zip ファイルをダウンロード。
- 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 での開発
- 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("Ping: "); Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance and print result (0 = outside set distance range, no ping echo) Serial.println("cm"); }