Arduinoと超音波センサを使ってお掃除ロボットを作る
- 2019.03.04
- Arduino
タイトルにもある通り、Arduinoと超音波センサを使ってお掃除ロボットを作ってみました。
といっても、ルンバのような物ではなく、雑巾がけをするようなロボットです。
主要部品はこんな感じです。
- Arduino Micro
- 超音波センサ HC-SR04
- モータドライバ TA7291P
- 工作キット タミヤ 楽しい工作シリーズ No.162 リモコンロボット製作セット
- 電池ボックス
- ブレッドボード
接続はこうです。この図を作ってから繋いだ訳ではないので、間違ってる可能性有り。
プログラムは下記の通りです。
超音波センサの部分は下記サイトのプログラムを参考にしています。
Arduinoでパーツやセンサを使ってみよう~超音波モジュール編 | Device Plus – デバプラ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
#define echoPin 2 // Echo Pin #define trigPin 3 // Trigger Pin #define m1Pin1 4 // Motor1 #define m1Pin2 5 #define m1Pin3 6 //PWM #define m2Pin1 7 // Motor2 #define m2Pin2 8 #define m2Pin3 9 //PWM double Duration = 0; double Distance = 0; void setup() { Serial.begin( 9600 ); pinMode(echoPin,INPUT); pinMode(trigPin,OUTPUT); pinMode(m1Pin1,OUTPUT); pinMode(m1Pin2,OUTPUT); pinMode(m2Pin1,OUTPUT); pinMode(m2Pin2,OUTPUT); analogWrite(m1Pin3,255); analogWrite(m2Pin3,255); } void forward(){ digitalWrite(m1Pin1,HIGH); digitalWrite(m1Pin2,LOW); digitalWrite(m2Pin1,HIGH); digitalWrite(m2Pin2,LOW); } void back(){ digitalWrite(m1Pin1,LOW); digitalWrite(m1Pin2,HIGH); digitalWrite(m2Pin1,LOW); digitalWrite(m2Pin2,HIGH); } void turn(){ digitalWrite(m1Pin1,LOW); digitalWrite(m1Pin2,HIGH); digitalWrite(m2Pin1,HIGH); digitalWrite(m2Pin2,LOW); } double get_distance(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite( trigPin, HIGH ); delayMicroseconds( 10 ); // digitalWrite( trigPin, LOW ); Duration = pulseIn( echoPin, HIGH ); if (Duration > 0) { Duration = Duration/2; Distance = Duration*340*100/1000000; Serial.print("Distance:"); Serial.print(Distance); Serial.println(" cm"); return Distance; } return 100; } void loop() { forward(); if (get_distance()<5){ back(); delay(1000); turn(); delay(500); } delay(100); } |
全部組み立てるとこんな感じになります。
後ろの方にウェットティッシュを巻いたブレッドボードを付けています。
これで床を拭いていきます。
なお、Arduinoは単3乾電池2本で5Vを作れるバッテリボックスで動いています。秋葉原で買いました。
-
前の記事
Raspberry PiでMPU9250を使う 2019.02.16
-
次の記事
【DIY】Google Glassっぽいスマートグラスを作ってみた 2019.03.24