
小さいころ誰もが遊んだことのあるブロックであるLOGO、最近ではこのLEGOのキーホルダーがはやっていたりするが、今回はこのLEGOのロボットセットMINDSTORMを使ってロボットを作る。(日本ではこのLEGOとダイヤブロックが代表的なブロックだが、LEGOのほうが比較にならないほど精密な部品を作っている。デンマークにはLEGOでできたテーマパークLEGO LANDもあったはず・・・)
このマインドストームはパソコンの中でプログラムを組み、そのプログラムをロボットに赤外線を通じて送信することで、ロボットの動きを決めることができる。
今回はプログラムを組むことではなくて、実際のプログラムを使って走らせることのできるロボットを製作しようというものだ。まぁ、対象年齢が12歳以上、実際には保護者同伴の小学生以下が多いから、プログラムを組むというのはちょっと無理があるのだろう。そんな中に入って大人がやるのはちょっと気恥ずかしいものもあったけれど‖^O^‖
まぁ、実際にやってみないと中身はわからないのだから、背は腹に変えられない・・・というところか。
左の写真はLEGOのマニュアルと黄色くて一番大きい中心となるコンピュータ部分、グレーの2つもモーター、青いブロックは光センサーで、(目に見えるように)赤い光を出す出光部(なんとなく言葉が違うぞ)と、受光部分の二つの部分が端についていて、反対側にはコンピュータとつなぐためのケーブルとLEGOがついている。
コンピュータ部分のほうには「1,2,3」と書かれた濃いグレーでできた入力部分と「A,B,C」と書かれた出力部分がある。もちろん入力部分にセンサーを取り付け、出力部分にモータをつなぐのだが・・・
コンピュータの赤いボタンが「on,off」のスイッチ、みどりのボタンがプログラムの実行「run」後の2つは使わなかったのでよく覚えてない。
このLEGOをつなぐことだけで、コンピュータとつなぐことができるのがLEGOのすごいところだ。当然のことながら・・・向きを間違えるととんでもない動作をする・・・‖^O^‖
レゴの組み立てに入る前に、まずノートパソコンにインストールされているプログラムを見る。このプログラムはフローチャートのような形で表現されており、あたかもレゴを組んでいくかのように一つ一つのパーツを組んでいくことで一つのプログラムを作ることができる。
なんといってもこのプログラムは日本語で作ることができるのは子どもにとって(もちろん大人にとっても)違和感なく取り組むことができる。
しかもこのプログラムの考え方自体はどんなソフトを作るときにも同じだから、ここからBASICなりCなりのプログラム言語に移行したときにも今までやったことがそのままつかえる。まあ、これはLEGOに限ったことではないけれど、一番最初に取り組むプログラムはこういうのがいいなぁ
今日は原則としてこのプログラムについていろいろとやってみるのではなく、LEGOのロボットを作ることが目的。というわけで早速ロボット作りに取り掛かる。
最初はほとんど子どものころやったブロック遊びと一緒。マニュアルを見て、どの部品が必要か調べ、実習室の後ろのほうにいろいろな種類のLEGOが種類ごとに分けられている机のところへ行って、必要なものをとってくる。
せっせとぽっちの数を数えて、取りに行っては「あれ?違った・・・」こういうところは大人より子どものほうがうまいかもしれない。
右の写真はモーターを組み込んだ台車になる部分。ここに車輪をつける部分をつけて上にコンピュータ部分を載せれば基本的な形は出来上がる。
最初は基本の形である車輪で走るタイプにした。
写真左側にあるのがこのLEGOのプログラムが入っているパソコン。ここから後ろのしローケーブルをにつながった、赤外線発信装置(っていうのか?黒く、ちょっと小さいスピーカーみたいな感じのもの)からLEGOのコンピュータの受信部分に赤外線でプログラムが送られる。
なかなかこのプログラムの転送はすんなりいくとは限らない。後でプログラムを変更したりしたのだが、なかなかうまく送られないものもあったりしたようだ
一番右側の箱はLEGOを入れておくトレイ。これをもって必要な部品を取りに行く。黄色くて車輪のついているのがLEGOの本体。モータを二つ組み込んでギアを使って車輪を動かす。このモータの制御は手前に2本見えるケーブルと黒い小さなレゴを使って行う。このレゴのつけ方が逆になれば、もちろん車は逆に走るし、右と左で逆にすれば、右のタイヤと左のタイヤの回転方向が逆になるからくるくると回ることになる・・・・ふと思ったのだが90°ずらしてつけたらどうなるんだろう?
センサーを取り付ける段になって、どうやってセンサーを取り付ければいいのかはマニュアルには書いてない・・・(本当は違うページに書いてあったけれど)
途方にくれていたら、スタッフの方が「この部品を使うといいですよ」と教えてくださった。
右のトレイの上にはマニュアルがひらいてある。
実はこのセンサーの取り付けの高さや間隔、あるいはどの程度前に出すのかといったことなどが非常に重要な要素であることを後で学ぶことになる
このロボットがライントレースする様子はちゃんと動くのがあまりにうれしくて写真にとり損ねてしまった・・・‖^O^‖が、一番上の写真のようなコースを黒い線のとおりにうまく走らせることができた。
写真ではよくわからないけれど、センサーの位置はなんとなく車輪の幅と同じぐらいあって、見た感じはちょっと広すぎるような気がしたので、間隔を狭めてみるとうまく走らない。そこで、このセンサーの取り付け位置をもう1ぽっち分高くするとセンサーの間隔も狭くしても大丈夫なような気がしたけれど・・・・ちょっと怪しいかもしれない。(一回コースアウトしたし・・・)
すんなりとうまく言ったのですっかり気をよくして、他の形にトライしてみることにする。
他の形としてマニュアルに出ているのはキャタピラで移動するものと足を持ち上げて歩くタイプ・・・といっても本当に足で歩くのではなく、ギアの回転で移動するのだが、そのギアの回転と同時に足が上がったり下がったりする。
このタイプのロボットをうまく動かすのにはプログラムの変更が必要となる。
元のプログラムでは白い部分かどうかを判断して、OKであれば1秒間前進するように設定してある(右か左の一方が黒い部分になったら、0.5秒間回転する設定)のを前進の時間を半分にすることで、たとえた小コースを外れても元に戻るようにする。ただしその代わりその分遅くなるんだろうなぁ・・
プログラムの書き換えは変えたい部分を右クリックして数値を変えるだけなのでごく簡単なもの。ただ、LEGOに送ってあるプログラムに上書きするのは人によってどうしてもうまく行かないということもあったようだ。
幸いなことにCosのところはどうなったら上書きできたことになるのかが分かっていなかったために何度も上書きしてしまった程度だったけれど。p>
この足タイプのロボットがカーブを曲がる様子。センサーの位置に注意
まず最初に左側のセンサーがコースの黒い部分に入ってしまったことを認識すると、前進ではなく左に旋回する。(1枚目から2枚目)
左に旋回することで再びコースの白い部分にセンサーの光があたるとそのまま直進する。(2枚目から3枚目)
再びセンサーにコースの黒い部分を認識すると再び旋回
を繰り返すことで、カーブしたコースどおりに曲がっていく。最初の1,2周はうまくいったかなぁと喜んでいたのだが、何かのはずみで、左に旋回するべきときに足(ギア)が滑ってしまって旋回できないと、そのままコースアウトしてしまう・・・・
スタッフの方達にセンサーの位置や高さを変えるようにアドバイスされるがうまくいかない。結局時間切れ(と疲れちゃったのと・・・)
後になって考えてみると、LEGOのブロックがしっかりついているかどうかということも大切な要素だろうし、あるいはプログラムで旋回の場合の時間を短くしてみるというのもひとつの方法だろうと思った。
他の人たち(子ども達)の様子をみてみると年齢の低い子ども達はLEGOの形をどう変えるのかということに熱中している。そしてもっと大きい子ども達はプログラムをいじっていろいろと試してみている(子どももいる)
もともとLEGOはこうした思考実験が可能な知育おもちゃ(おもちゃというレベルではないのだが・・・)だし、こうしたおもちゃを作ってみることから次第にプログラム、あるいは力学という方向に関心が向いていくことを目指している。
しかし、おもちゃとしてだけではなく、たとえば高校での課外活動のひとつにこうしたLEGOのロボットを作るということもすごくいいのではないかと思う。
実際に生徒たちは自分達でプログラムを組んで、その通りになるというだけでかなりうれしいのに、それが実際に動いてみせる・・・思い通りに動くのであれば、かなりの生徒がチャレンジしてみたいのではないだろうか。
このときに、プログラムの作りやすさ、ロボットの作りやすさというのは彼らにとっての障害のほとんどの部分をクリアしている。まぁ、逆にいえばここから先へ進もうとするとちょっと大変かもしれないが・・・
学校で買ってくれないかなぁ・・・
レゴマインドストームのHPはこちら