ラインセンサ複数個を1ポートに接続する方法について解説します。
1ポートに複数センサを接続する時には”何をしたいのか?”を明確にする事が重要です。
次に”知りたい状態は何か?”を明確にします。
ここではサッカーリーグでのラインセンサを例にします。
何をしたいのか?
白線を検出して、”アウトオブバウンズ”にならない様にロボットを制御したい。
知りたい状態は何か?
〇ロボットがラインに達した事を可能な限り早く知りたい。
・ロボットの制動距離を考慮すると可能な限りロボットの周辺(端っこ)にラインセンサを取り付ける
〇前後左右への移動の全てを検出したい。
・前方、後方、左側、右側の4か所にラインセンサを取り付ける
(ロボットのスピード・制動距離・ラインセンサの取付位置についてはこちらをご参照下さい。)
技術公開とミスリード (勢いもここまで? その4) - 隠居エンジニアのものづくり (hatenablog.com)
〇白線が見たい:白黒閾値より高い電圧(A/D値)になった事を知りたい。
4個のラインセンサを1ポートに接続できれば、ポートの節約になりますが、ここで重要なのは”閾値より高い電圧(A/D値)になった事を知りたい”と言う事と”センサの信号出力部のしくみ”です。
では回路読みの復讐です。
下図はトランジスタをスイッチに置き換えた回路図 ですが、マイコンのポートから見えるのはTR1のスイッチの状態のみです。
そこで回路をさらに簡略化します。
ラインセンサが白線の上の場合”スイッチON”、緑色カーペットの上なら”スイッチOFF”です。
これを4個まとめて一つのポートに接続する場合は以下の様になります。
取付位置前側をF、後ろ側をB、右側をR、左側をLとしました。
この回路は4個のセンサの一つでもスイッチON(白線の上)になれば信号が電池電圧になります。
つまり前後左右どの方向に移動中でもラインを検出する事ができます。
(ちなみに、白いフィールドに黒線の場合にはこの方法は成立しません。
一つでもフィールド上にあればスイッチONになるので4個のセンサが全て黒線の上にないと黒色の検出(白黒閾値より低い電圧(A/D値))ができません。)
センサには感度のバラツキがあるので、4個のセンサをまとめて接続するには、白線と緑色カーペットの電圧差が充分に大きい必要があります。
ラインセンサの白黒差を充分に大きくする方法についてはこちらを御覧下さい。
ラインセンサについて (その2 サッカーリーグ編) - 隠居エンジニアのものづくり (hatenablog.com)
ソフトウエアとしてはラインセンサが白線を検出したら直ちに電磁ブレーキ停止、次にカメラを用いてゴールに向かって一定時間移動すれば確実に壁から遠ざかる事ができます。
(超音波センサを用いない理由についてはこちらをご参照下さい)
超音波センサ (問題の原因を状況確認・推定する) - 隠居エンジニアのものづくり (hatenablog.com)
注意:本記事はダイセン電子工業製ラインセンサをまとめる方法です。
センサごとに信号出力の仕組みが異なります。
信号出力をまとめて接続すると故障するセンサはたくさんありますよ!