スケッチの書き込み
配線とチェックは終了しましたので、スケッチの書き込みです。
includeするライブラリーをダウンロードしインストールするように書いてありますが、Arduino 1.8.10 にはライブラリー 一覧の中にありますので選択しインストールすることでOKでした。
最初は、障害物回避動作が大きすぎ、90度方向転換が200度位に回ってしまい思うように動いてくれません、前後のホイール間隔が狭いのが原因みたいです。
そこで、スケッチに記載されているコメントを日本語に翻訳して、該当箇所と思われる所を修正しほぼ納得できる状態になりましたが、路面の状態などで変化しますから完璧な設定は出来ないです。
また、障害物に近づきすぎて方向転換する場合障害物にぶつかりますので、方向転換する前にバックするようにしました、スケッチには「 moveBackward() 」 の項目がありますが使用していないので、これを使ってバックさせました。
スケッチ変更箇所
方向転換する前にバックする設定、スケッチ「void compareDistance() { 」の下に以下を追加。
void compareDistance() { <span style="color: #ff0000;">moveBackward(); //障害物から遠ざかる、方向を変える場合の支障防止(追加) <span style="color: #ff0000;"> delay(500); //0.5秒後退する</span>
右折・左折がオーバーシュートするのを修正、「 void turnRight() { 」及び「 void turnLeft() { 」の項目の中にある「delay(1500)→delay(700)」に変更しました。
電源をArduino と MotorShield に分けた理由
同一電源で起動した場合、Motorのノイズ?の影響なのか意図しないところでソナーが動き不安定なので電源を別々にしました。
別電源にする場合黄色のジャンパーピンを外す必要があります、また、車体の前後に取付けたLEDの電源は画像の箇所にピンヘッダーを取付け給電しました。
動作確認
廊下で動かしてみました。