ライントレース機能を拡張、改造し、センサ部分とプログラムを変更する
第1回:モータドライバを作りArduinoからモータ制御をする
第2回:光センサを組み立てて車体へ取り付ける
第3回:センサ、ドライバ、マイコンを車体に組み込みライントレーサーとして仕上げる
Arduinoを使った簡単工作を通して、初心者の方向けに電子工作の原理や基本を学ぶ連載の第4回(最終回)です。教えてくれるのは、メディアアートの分野で、また「ちょっと深い仕組み」を解説し書籍の世界で活躍している、伊藤尚未さんです。それでは早速今回もいってみましょう!
目次
今回の工作で使う部品:
名前、説明 | 部品 |
---|---|
Arduino UNO | |
ツインモーターギヤボックス ユニバーサルプレートセット トラック&ホイールセット (すべてタミヤ) |
|
抵抗器(1kΩ 1/4W) | |
ユニバーサル基板 | |
ピンソケット
(分割ロングピンソケットを6Pに分割) |
|
トランジスタ(2SB1259、2SD2081) |
こんにちは、伊藤尚未です。さまざまなイベント参加も増え、バタバタとした夏が過ぎていきましたが、過ごしやすい季節になると、やはりモノづくりがより一層楽しくなるものです(笑)。
さて、前回までに作ったライントレースカー、やはり作ってみると、いくつかの修正点、改良点がみつかりました。今回はこれらの改善に取り組んでいこうと思います。
①ハードウエアの改善
前回、まず目立ったところではキャタピラ(トラックベルト)がスプロケットホイール(ギザギザの付いている車輪)から空回りしてしまうという事案が発生しました。これはキャタピラがホイルベースに対して緩かったことが原因ですね。なぜそうなってしまったのかというと、実はこれに関しては自分の記憶の曖昧さが原因です。そう、いわゆるヒューマンエラーです。
過去にこのタミヤのトラック&ホイールセットとギヤボックス、ユニバーサルプレートを使った工作時にキャタピラの全コマを使った記憶があり、これをもとに制作したことが原因でした。申し訳ございません…。
製造工場ではさらに問い詰められ、減給覚悟な事案ですが、「あるある」といえばそうかもしれません。
皆様に於かれましては、ぜひともこのような凡ミスがないよう、お気をつけください…。
ということで、気を取り直して、まずは修正をします。短い8コマのキャタピラを外して全体を短くします。さらにスプロケットホイールとアイドラ―ホイールの幅、つまりホイールベースを短くするために軸受け位置とギヤボックスの位置を内側に移動させました。
8コマのブロックを外して短くしました。
2穴分、内側に寄せています。
これでちょうどキャタピラが張った状態になりました。Arduinoやモータドライバ基板なども一旦外しておりますので、これを元の状態に戻します。
横から見るとこんなフォルムです。
②センサ部の改造とカラーライン
次に、どうしてもやってみたかったことのひとつ、LEDを赤と他の色にしたいという欲求を満たしていきます。今回は赤と青にしてみます。
光センサのフォトトランジスタの特性から、赤の反応と青の反応は異なると思いますが、これはプログラム上での閾値を変えることでできるのではないかと考えています、どうでしょうか?
かつてのヤンキー車のような…(笑)
また、センサ基板の取り付けの「ハ」の字型を広げて線幅を広めに感知できるようにしました(これが意外と効きました)。
なぜ赤と青にしたかというと、床の線に色を付けたらさらに応用の利くライントレースになるのではないかと考えたからです。例えば、赤い光では白い床は良く反射しますし、そこに赤い線が書いてあっても反射して白と同じ判断ができます。また青い線には赤い光が吸収され黒と判断されます。もちろん閾値にもよりますが、これで2色の異なる判断ができるようになるのではないかと考えたのです。
まずは黒い線で走らせてみました。
プログラムにおける閾値も気になり、いろいろと数値を変えてみましたが、結局室内既存照明のムラもあるので、前回のスケッチのままの方が結果として良い走行ができました。既存環境照明の問題であれば、実はLEDとフォトトランジスタにそれぞれカバーなどを付けて覆ってしまえば限定的なセンシングもできるのでしょうけど、その仕組み部分が全く見えなくなってしまうのも寂しいと感じ、今回はそのままで動かせる範囲での実験です。
走らせてみると、前回のような左右に行ったり来たりで留まることが少なくなりました。これは色を使ったからではなく、センサ部分を広くすることで解決したようです。結局ソフトウエアで解決するのではなく、両面からのアプローチが必要だとヒシヒシと感じた次第です…。
③走行実験にトライ!
実際に走らせてみると黒い線の上では問題なくライントレースすることができました。
そして、カラーラインを引いてもライントレースするかというと、確かにライントレースしています。ただし、不安定部分もあります。
左右で異なる色ですから、今回は右を赤、左を青にしました。黒い線を元にすると進行方向に向かって線の右側を青、左側を赤にするのが原則なのでしょう。
特に右に曲がるときには曲がり角で青色の線、左に曲がるときには赤色の線があればうまく曲がるようです。とはいえ、実は進入角度にもより、少しずつズレが生じますので、必ずしもそうとは限りません。両方のセンサが同時に感知する位置では、イヤイヤの首振りが確認できますが…。
また、感知ミスもありますので、そのまま走行してしまい、線を外れてしまった場合、線のさらに外側に修正線を描くことで進路修正することもできるようです。
左右のセンシングの違いはやはり応用が利きそうです。
④いろいろな線を引いて応用してみよう
ライントレースカーとしてはもちろん床の線に沿って正確に動くことを期待されています。そりゃそうですよね(笑)。ただ、面白い使い方として今回走らせてみて考えたのは、ぶつ切りになったカラー線でも「ある程度」トレースできるということです。その「ある程度」というのがミソで、ここにアナログな要素があるわけで、床にいろいろな線を引いても必ずしも意図通りに行かない場面もあるということ。これが意外に面白いし、応用ができるものだと感じております。端的に言うと、ファジーな「あみだくじ」ができるマシンではないだろうかと考えました。
これって現代のデジタル機器にはない、何か論理を越えた応用の可能性があるのではないだろうかと、勝手に思っております。いわばエラーを楽しむ心のスキマということでしょうか。
実際、現在ではプログラミングが学校教科に取り入れられ、論理的な思考が求められているように思います。それに反した物理的な要素、自然界、現実世界で起きるあいまいな要素も無視できない重要なポイントである、ということを再認識させてくれるものではないかな…と、勝手に妄想する次第です(汗)。
これで全4回に渡ってお送りしてきました「Arduinoでつくるライントレースカーの製作」は終了です。最後までご覧頂きましてありがとうございました!また、次の工作でお会いしましょう!
今回の連載の流れ
第1回:モータドライバを作りArduinoからモータ制御をする
第2回:光センサを組み立てて車体へ取り付ける
第3回:センサ、ドライバ、マイコンを車体に組み込みライントレーサーとして仕上げる
第4回:ライントレース機能を拡張、改造し、センサー部分とプログラムを変更する(今回)