< ライントレーサー3

ライントレーサー(カラー)を作る

ライントレーサーというものは、床に描かれている線を
見分けてその線をなぞるように進んでいく機械です。

1 研究の動機

 ライントレーサーは、通常白黒しか判断しません。それは、判断が面倒くさいだけでなく、色合いを判断する必要性がある用途があまりなかったかも知れません。

 しかし現在においては、複雑な制御を要することが増えています。そして、見分けられる情報が増えることによって、ライントレーサーという半自動ロボットが状況によっては最適になることもあります。

 今までライントレーサーといえば、工場で働くものでした。しかし、これからは、色を識別することで、街中で役に立つものに生まれ変わるかもしれません。これがどのような問題を解決するのかというと、たとえば、高齢者や、障害者の移動手段です。電動車椅子にライントレーサーを搭載すれば、あらかじめ線の描かれた道路ならワンタッチで操作できるので、手先が器用でなくとも楽に操作できます。利用者は、交差点や線の描かれていない道路のみ手動で操作します。これで、利用者がかける操作の手間はある程度省かれます。さらに、線の色によって、徐行したり一時停止したりする制御も可能です。

 そのような制御方法の最終目標は人工知能になるでしょう。そうすれば、全自動で行動してくれます。しかし人間の脳ミソを機械で再現することは相当難しいのです。しかも、それっぽいものができたとしても、いつ異常が発生するか分からなく、不安定なものになりそうな気がします。それよりは、単純な目的のためには単純な制御方法がいいと思います。

 このように将来しばらくの間(完全な人工知能が完成するまで)人々の役に立ちそうな分野だと感じたので研究を始めました。

2 設計に関して

なるべく、高感度で、高速なトレースを実現するため、いろいろな工夫をしました。

高感度
感度が良くないとトレースがうまくいきません。工夫としては、センサー部をビニールテープで覆い外界の光が入りにくいようにすることと、センサーにフィルターをつけて目的の光以外に反応しにくくすることです。

高速化
実用化のためには、十分な速度が必要だと思われます。このライントレーサーの最高速度は、だいたい人間がゆっくり歩くくらいです。

安定化
当然安定していないと実用化できません。ライントレーサーをコースの上で走らせ、そのまましばらく放置しても脱線していないことを見ればおそらく安定はしているものと思われます。

省電力
やはり、今のご時世、省エネが大事です。モーターからLEDのひとつに至るまでむだな電力をカットするように心がけています。

3 製作に関して

 設計を基に実際に組み立てていきます。私は製作にかかる時間を節約するために、ユニバーサル基盤を使い、配置図も描かずいきなり部品を並び始めるというずいぶんいい加減なやり方をやっていますが、見苦しい以外のトラブルはいまのところありません。

 さらに、組み立てる過程で、配線をしながら設計を見直すということもやってなるべくよい作品に仕上げる努力もします。(環境への配慮のため、ハンダは鉛フリーのものを使用します。)

 今回は制御にマイコンを使用します。ので、そのプログラムも必要になります。プログラムは、なるべく効率的に動くようにアセンブリで書きます。作品が大掛かりになればなるほどプログラムは大切です。バグが発生しないよう細心の注意を払いながら書きます。

 個人的には、このプログラミングの作業が、ミリ単位の配線よりしんどいです。

4 調整に関して

 機械は、ただ完成させただけでは意味がありませんので、正常に動くかどうか確認します。製作の段階でそれぞれの部品のテストは終了しているので、正常に動かない場合は、組み立て方かプログラム問題があると考えられます。

 ここまでの操作で本体はライントレーサーとして線の上を移動するようになりました。
 いよいよここから周辺機器を取り付けていきます。周辺機器としては下記のようなものが考えられます。

    ブザー
 ライントレーサーが、床の色が赤いと判断した場合鳴るようにします。

    リモコン
 ライントレーサーを遠隔操作するために搭載します。原理は、テレビのそれと同じで、赤外線で信号を送ります。正直、テレビやビデオのリモコンと混信しないか不安です。

おそうじユニット(掃除機)
 これをつけると、自走型掃除機になります。ライントレーサーで牽引するようになるかと思います。モーターのトルクが十分であるので、おそらく単純に引かせても問題ないかと思われます。欠点は四角い部屋を丸く掃除するのが精一杯なこと。四隅は無理です。

    装甲
 このままではあまりに見苦しいので装甲をプラ板か何かで作ります。

    障害物センサー
 壁などに衝突しそうになったら自動でストップするようにします。

5 結果

 今回の研究で、05年11月末現在、線の上を自走し、目立った行動はとらないものの、4色を見分けることができるようになりました。移動速度は、大体50cm/sくらい。安定性としては、1時間放置で脱線ゼロ。といった具合です。

映像(デジカメを載せて撮影)(MPEG 15秒 約600kbps)  
映像(定点カメラで撮影)(MPEG 15秒 約400kbps)  

6 今後の目標(時間がもう無いのでボツ)

 すべての周辺機器を早く取り付ける。そして機能させる。
 今のところ、安定性能を重視するため、普段の移動速度は最高速度のせいぜい3分の2くらいしか出していません。安全のためプログラムで制限しています。プログラムを工夫して、安定性能を維持したままもう少し高速化は可能だと思われます。
 なるべく早く装甲は完成させたいです。見た目が飛躍的に改善されると思います。
 色の識別ができるという特性を利用して、異なった色の線を複数のライントレーサーにトレースさせてみることもいいかもしれません。(そのときに装甲の塗装を変えて、赤いのは3倍速とかっていうのもいいかも)

7 感想など

 今回、回路を設計しているとき、今までとは比べ物にならないくらいの大掛かりなものだと感じました。(といっても自分で設計したのだが)正直、こんなのが完成するのかと思いました。リモコンなどまで含めると、部品の数が200を超えるのです。そして、そのひとつでも無いと動かないのです。途中何段階ものチェックをしながら組み立てていって、結局ある程度形にすることができました。まともに走ったときは書き表せないほど嬉しかったものです。

 途中、プログラムのパルス発生ルーチンにバグがあったのかまともに動いてくれなかったときはあせりました。その後、プログラムのバグは発見できなかったので、仕方なく別なルーチンでパルスを作らせたらうまくいきました。恐らくそのプログラムの何処かが悪かったと思われます。しかし、前のプログラムは、もう消えて無くなっているので、そこはもう分かりません。(私の場合、電子回路いじりは小学生のころからやっていたのですが、マイコンに関しては初心者なので、どこか異常があるときは大抵プログラムにあります。)

 私は、この後も研究を続けるつもりです。そして、もっと良いものを作り上げていこうと思います。

ライントレースの仕組みなど

  床の色を認識する
 床に向けてLEDで光を発射します。そうすると、白い所ではたくさんの光を反射し、黒いところではほとんどを吸収します。その反射光を光に反応する部品(CdSセル)に当てると、床の色を電気信号に変換することができます。今回はこれを応用します。まず、床に2種類のLEDで光を発射します。片方は赤色でもう一方は緑色です。そうすることで、黒いところは両方とも吸収。赤いところは、赤だけ反射。緑色なら緑色の光を反射し、白い所なら、両方を反射します。それによって4色を見分けられるようになります。また、(最近話題の)青色LEDもつければ理論上8色を見分けることも可能です。

  電気信号を判断しモーターに命令を送る
 制御の方法は、大きく分けてアナログとデジタルがあります。アナログ制御は、マイコンなどを使わず、信号をトランジスタなどで処理して制御します。単純な制御は、部品数も少なく安価ですが、複雑な制御には適しません。そして、デジタル制御方式は、マイコンや、PCを使って信号を処理する方法です。複雑な制御をしたい場合、プログラムを変えるだけで動作を変えることができるので便利です。また、アナログに比べてノイズの影響を受けにくいという特長もあります。

 私はデジタル制御の方を選択しました。これにより、アナログ回路では実現しにくい処理も実行しています。

 電気信号がマイコンに伝えられると、アナログ的な信号は、全て1か0に変換され処理されます。プログラムは線が左側にあると左側に行くようにし、右側にあるなら、右折するようにする。さらに脱線したときは、線があったほうに曲がるようにして復帰する努力をするなどをします。そして、モーターを動かすためのトランジスタにパルス信号を送ります。このパルスのONとOFFの割合を変えることでスピードの調節ができます。

 マイコンは、せいぜい数10mAの電流しか流せないので、LEDは直接点灯できても、モーターは直接動かせません。そこでトランジスタで信号を増幅してモーターを回しますこの作品が搭載しているトランジスタは2Aの電流が流せるようになっています。また、逆起電力でトランジスタが破壊されないようにツェナーダイオードが搭載されています。さらに、トランジスタの配線を工夫することで、前に進んだり後に進んだりすることも容易にできるようにしています。このライントレーサーはモーターを後に回すことが無いように見えますが、実は脱線したときにすばやく線のある方のモーターの回転を止めるのに使用しています。これによって脱線したときに即座に復帰できるようになっています。

  リモートコントロール
 このライントレーサーはリモコンを搭載する予定です。赤外線のパルス波を専用のICで認識して、マイコンでパルスの幅を計算して送られてくる情報を普通の電気信号に変換します。そうして普通のラジコンカーのように操縦することもできるようにします。

 また、リモートコントロールしている間はセンサーの電源を落とすなどの節電もします


以上、高校時代の思い出の工作についての文書でした。
(初期版作成 05/12/05 最終版 07/01/25)

トップページへもどる