前回は同じセンサを複数個まとめる方法でしたが、今回は異種センサをひとつのポートに接続します。
1ポートに複数センサを接続する時には”何をしたいのか?”を明確にする事が重要です。
次に”知りたい状態は何か?”を明確にします。
ここではレスキューラインでのタッチセンサを例にします。
何をしたいのか?
障害物を検出して、障害物回避プログラムに移行したい。
知りたい状態は何か?
〇ロボットが障害物に達した事を知りたい。
〇障害物はロボットの正面なのか、右寄りなのか、左寄りなのか判断したい。
・前方、左側、右側の3か所にタッチセンサを取り付ける
〇障害物検出直後及び一定時間はラインを見る必要はない。
ここで重要なのは”障害物検出直後及び一定時間はラインを見る必要はない”と言う事です。
では回路読みの復讐です。
下図はトランジスタをスイッチに置き換えた回路図 ですが、マイコンのポートから見えるのはTR1のスイッチの状態のみです。
そこで回路をさらに簡略化します。
ラインセンサが白タイルの上の場合”スイッチON”、ライン(黒線)の上なら”スイッチOFF”です。
回路読みの初心者編には慣れたと思います。
異種センサを1ポートに接続するには初級編にステップアップする必要があります。
回路全体の流れを見るには、トランジスタを”スイッチ”として扱うのは理解しやすくて良いのですが、応用を利かすにはちょっとだけトランジスタがスイッチ動作を行う時の特徴を知って頂く必要があります。
電池の電圧を5Vとしました。
トランジスタの”矢印”の部分を”エミッタ”と言います。
トランジスタのスイッチON・OFFを切り替えていた”指”の部分を”ベース”と言います。
このベースに5Vを接続すると”スイッチON”になるので5Vが”OUT”に出ますと言うのが初心者編でのお話でしたが、実際にはちょっとだけ癖があります。
この図は回路シミュレータの結果ですが、5Vより約0.7V電圧が低くなっています。
トランジスタの”スイッチON”の条件は”エミッタの電圧よりベース電圧が0.7V高い時”
なので、5V系マイコンの10bit A/DコンバータからはA/D値 : 880 (4.3V)ぐらいになります。
つまりラインセンサは銀色や白色を見てもA/D値の最大は880程度です。
そこでタッチセンサ(マイクロスイッチなどで自作する事が多い)をラインセンサのOUTと5Vに接続して1ポートで見ると下図の様になります。
タッチセンサに障害物が当たるまではラインセンサの出力として0V~約4.3Vまでの電圧が観測できます。
タッチセンサに障害物が当たれば5Vが観測できます。
プログラムでは10bitA/Dコンバータの値が1000以上なら障害物と判断すればOKです。
障害物回避方法にはタッチセンサで障害物を探針しながら回避する”LINK方式”と距離センサで障害物との距離を保ちながら回避する”ステッピー方式”があります。
いずれの方式も障害物回避プログラムに入った後はラインセンサで”ライン復帰”を監視する必要があります。
今回のラインセンサとタッチセンサをひとつにまとめる方法は”ステッピー方式”向きですが、”LINK方式”でもタッチセンサを兼ねないラインセンサがあれば”ライン復帰”の監視は可能です。
センサには感度のバラツキがあるのですが、トランジスタのスイッチON動作に必要なエミッタとベース間の電圧0.7Vは殆ど同じです。
マイクロスイッチを用いたタッチセンサはON時確実に5Vになりますので、ONした時のA/D値のバラツキを観測してバラツキで誤判定しない程度少し低い値に閾値を設定すれば(例えば1000)、ラインセンサとタッチセンサの1ポート接続は完了です。
注意:本記事はダイセン電子工業製ラインセンサとマイクロスイッチの組み合わせに関する方法です。
ラインセンサー | ロボット,センサー | 株式会社ダイセン電子工業 (daisen-netstore.com)
センサごとに信号出力の仕組みが異なります。
信号出力をスイッチで電源に接続すると故障するセンサはたくさんありますよ!