皆さんこんにちはMOZI電子工作です。今回はライントレーサーを作っていきたいと思います。
構想
構想としてまず、モーターはこの秋月電子のサーボモーターの形をしたギヤードモータを使いたいと思います。
https://akizukidenshi.com/catalog/g/gM-14801/
そして、ラインの検知はLEDとフォトトランジスタを組み合わせたこのセンサを使いたいと思います。
こんなやつでも代用可能だと思います。
https://akizukidenshi.com/catalog/g/gP-04500/
また、車体自体はブレッドボードを使用しています。
回路
ブレッドボード図はこんな感じです。
ぐちゃぐちゃですが、マイコンはArduinoNANO、電源は9VをDCDCコンバーターで降圧して5Vにして使っていますまた、モーターはNPN型トランジスタの2SC1815で制御しています。あとモーター電源は3Vで単三電池を二個つかっています。
実際配線した感じはこんな感じです。
ブレッドボードに直接、両面テープでモーター(秋月電子のサーボモーター型のDCモーター)を取り付けています。単線タイプのジャンパー線を使って配線をしたので個人的にはすごくきれいにすっきりできたかと思います。
動かない!
テストとして、モーターをどちらも動かして前進するプログラムを書き込みました。
ただ、片方しか動かなかったです。確認してみるとモーター制御用のトランジスタの向きが間違っていました。
センサーなどは動いていました。
何とか原因を究明し配線を直しました。原因はさっき書いたようにトランジスタの向き間違いと電流不足でした。電源を一時的にACアダプタを使っています。
ただ、この時の配線はモーターの電源を5Vにしていたのでモーターのスピードがすごく早いです。ウィリーしています。
調整
ACアダプタをなくし、モーターの電源を1.5Vに変更しました。高速になってしまったのでそれを調整しました。
プログラム
今回のメインプログラムはこんな感じかなり単純なものでそこまで難しいものではありません
ライントレーサー
void setup() {
pinMode(7,OUTPUT);
pinMode(2,OUTPUT);
}
void loop() {
if(analogRead(6) < 30 && analogRead(7) < 30){
digitalWrite(2,HIGH);
digitalWrite(7,HIGH);
}else if(analogRead(6) < 30 && analogRead(7) >= 30){
digitalWrite(2,HIGH);
digitalWrite(7,LOW);
}else if(analogRead(6) >= 30 && analogRead(7) < 30){
digitalWrite(2,LOW);
digitalWrite(7,HIGH);
}else{
digitalWrite(2,HIGH);
digitalWrite(7,LOW);
}
delay(100);
}
こんな感じです。
完成!
意外とあっさりと動かすことができました.
まとめ
しっかり動いてくれてなんか動物みたいでかわいいです。
ライントレーサーって童心に戻った感じがしていいですね。
短かったかもしれませんが最後まで読んでいただきありがとうございました。
投稿者の人気記事
-
MOZI
さんが
2021/02/23
に
編集
をしました。
(メッセージ: 初版)
-
MOZI
さんが
2021/02/27
に
編集
をしました。
-
MOZI
さんが
2021/12/07
に
編集
をしました。
(メッセージ: 記事の種類・ライセンスを設定しました。)
ログインしてコメントを投稿する