MOZIのアイコン画像

Arduinoでライントレーサーを作ってみた!

MOZI 2021年02月23日に作成  (2021年02月27日に更新)
Arduinoでライントレーサーを作ってみた!

皆さんこんにちは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のアイコン画像
電子工作してます。 主にArduinoやRaspberry piや3Dプリンターなどでいろいろ作ってます。 いろいろ書いていく予定です。よろしくお願いします!
MOZI さんが 2021/02/23 に 編集 をしました。 (メッセージ: 初版)
MOZI さんが 2021/02/27 に 編集 をしました。
ログインしてコメントを投稿する