こんにちは、ナチュロボです。レゴマインドストーム、15記事目でございます。前回は本の「7. the WallFollower program: navigating a maze」の内容をもとに、大きな段ボール迷路を自作・実験してみた記事でございました。
今回は次の8章、「8. data wires」に突入です!はてさてデータワイヤって何よ…?なところから学習して、自動ブレーキ実験まで行います。それでは、どうぞ~!
黄色のセンサブロック、赤のデータ操作ブロック
さて、これまで主に、2種類のブロックを扱ってきましたね。緑色のアクションブロック、オレンジ色の流れ制御のブロックです。
第8章ではついに、新しい色のブロックを使います!それは、黄色のセンサブロック、赤のデータ操作ブロックです。
これまでのブロックと何が違うの?というところは、これらのブロックは「他のブロック」へ、「パラメータの入出力」ができるという点です。そしてその入出力の線が…「データワイヤ」なのです!
…それで、パラメータの入出力って何よ…!?というところは、実際にブロックを作りながら、学習していきましょう!
壁に近づくとゆっくり止まる、プログラム
それでは本に沿って、データワイヤの機能を使って、「壁に近づくとゆっくり止まる」プログラムを作ります。ブロックはこんな感じです。
一番左の黄色いブロックが今回初説明!となるセンサブロックです。「4」というのはセンサを接続している部分の番号です。そして下から黄色い線が出ていますね。これこそ…データワイヤなのです!
このブロックの役割とは、センサで接近度を取得(0(近い)~100(遠い))し、その値を出力して、次の緑のブロックに入力することなのです。
では、次の緑のブロックはおなじみ、ステアリングブロックです。今回はまっすぐに進むので、「↑」をセレクト。そしてそのパワー(スピード)の入力として、センサの値を使います!
…これはつまり、「壁から遠ければ早い」「壁に近いと遅い」スピードとなることを意味します。
最後のオレンジのブロックはループブロック。タッチセンサがタッチされない限りは、ループする(走り続ける)という指示ですね。
自動ブレーキ、実験してみた
ということで!いつもの通りプログラムをロボットに送信して、実行でございます!
・単純に壁に近づく
・箱や手をかざしてみる
・突如手や箱を出現させてみる
…あたりを実験してみました。詳しい様子は動画でどうぞ~。
いかがでしたでしょうか。ちゃんと手や箱の距離に応じて、速度が変化しているのがわかったと思います。
しかも!走行中に突然手や箱をかざしても、ちゃんと反応してくれるではありませんか!う~ん素晴らしい。きっと自動車の自動ブレーキも、この方式と似たような方法を使ってるのでしょうね~。
今日の感想
以上、壁に近づくと速度がゆっくりになる、自動ブレーキ実験の様子でした。
ロボットに自動ブレーキを実装する!…というのは思いのほか簡単でございました。実際の自動車は安全性や快適性、効率性を考え、もっと工夫されているのでしょうね。気になります。
なんかこういうセンサと仕組み、私にも装着できませんかね。最近、夜な夜なお酒を飲みすぎてしまうので、健康のため…
アルコールを摂取しすぎないように口が自動ブレーキ!
…
サイボーグにでもならないと無理か(´・ω・`)
サイボーグ化のほうがよほど健康に悪そうです笑
…それに、自分のことぐらい自分で制御しないと!さて、次も8章の記事で、同じくデータワイヤを使って、今度は音楽を奏でますよ~。ピロリロリ~♪
それでは、また!
ナチュロボより