TJ3で基本を学んでみる その4 ライントレース(センサ2個)

レスキューライン競技のコースには何種類かの障害が設けられていて,その1つが「ギャップ」と呼ばれるラインが途切れる部分です. 今回はこの「ギャップ」のクリアに挑戦してみます.

コースの準備とセンサ1個での動作確認

まず,コースにギャップを作ります.ルールではギャップの長さは最大20cmと定められています.

ラインセンサ1個の状態で走らせてみます.

ラインセンサ1個でのライントレースは,黒と白の境界を辿って進むため,黒ラインがないギャップは通過することができません. 多くの場合,グルっと回って逆走することになります.

ラインセンサ2個でのライントレースの方法

ギャップを通過するためには,黒ラインがないところで直進できるようにする必要があります. ラインセンサを2つにするのが比較的簡単な方法と思います.

ライントレースしているときの状態としてまずは下の4パターンが考えられます.

左のセンサが黒を検出した場合は,
右のモータを駆動してロボットを左旋回させる.
右のセンサが黒を検出した場合は,
左のモータを駆動してロボットを右旋回させる.
左右両方のセンサが白を検出した場合は,左右両方のモータを駆動してロボットを直進させる.
黒ラインがセンサの間にある場合と,黒ラインがない場合の2つの場合があります.
TJ3Bの改造

まず必要な部品を揃えます.

ノーマルのTJ3Bではセンサは電気的な接続にネジが利用されているためケーブルやコネクタがありませんが, センサを追加する場合にはケーブルとコネクタも必要になります. 今回はダイセン電子工業の
 ・ラインセンサー
 ・TJ3B用センサ増設ケーブルスペーサセット ×2
を使います.

センサの取付けにはネジを使用します.
左の2本はネジ径3o長さ15oの六角スペーサで,秋月電子通商などで調達します.
他のネジ(M3×8o),バネ座金,ナットはホームセンターなどで売っています.

タミヤのユニバーサルプレートを加工して取付け具を作ります.
今回はこんな形の部品を作りました.

ニッパで切断して,やすりで仕上げます.

次にラインセンサとTJ3Bにコネクタをはんだ付けします.

TJ3Bにもともと付いていたラインセンサと追加のランセンサの両方に,コネクタをはんだ付けします.
(コネクタはTJ3B用センサ増設ケーブルスペーサセットに入っているものを使います.)

左がコネクタ取付け前,右が取付け後です.

TJ3BのCN6とCN7にもコネクタをはんだ付けします.
(左の写真ではすべてのコネクタを取付けたものですが,購入したままのTJ3Bでは取付けられていません.)

最後にセンサをTJ3Bに取付けます.

取付け具にセンサを取付けます.

TJ3Bの前部に六角スペーサを取付けます.ここは緩まないようにバネ座金を使います.

取付け具の長穴部分を六角スペーサにネジ留めし,左のセンサのケーブルをCN7に,右のセンサのケーブルをCN6に接続します.
ケーブルがタイヤに接触してしまう場合はビニタイや結束バンドで固定します.

プログラムの作成と動作確認

ラインセンサ2個用のプログラムを作ります.

ラインセンサを接続したCN7とCN6の値を読み取り,左旋回・右旋回・直進を判断・実行します.
今回のプログラムでは「else if」を使用しています. 「else if」はその前の「if」の条件が成立しなかった場合に条件判断が実行されます.

プログラムをビルド,ダウンロードして動作を確認します.

ラインセンサ2個でのラントレースができるようになりました.ギャップもうまくクリアできています.

補足:その他のパターン

今回のプログラムでは,左右のラインセンサが両方黒を検出した場合について触れていません.
両方黒のときどうなるか?というと, プログラムの002行目のif文の条件が成立するため左に旋回します.
しかし,旋回途中で黒ラインを通り過ぎて左右両方のセンサが白を検出して直進します. 結果として,黒ラインを通り過ぎます.