読者対象
- プログラミングについて学びたい人・教えたい人
- プログラムが動く楽しさを知りたい人
- プログラムでロボットを動かしたい人
目指すプログラム
今回、最終的に目指すプログラムは、商品を購入したときの箱に印刷されているルートを使って、図1のようにロボットがスタート地点から赤線内をたどってゴールまで走行するものです。
実際に走行するルートは、赤線内であればよく、任意のタイミングでバックしてもよいこととします。
実現する方法を考える
LEGOプログラミングでは、課題を設定したら、その課題を達成するための方法を考えるところから始まります。プログラミングがわからない方には非常に難解な課題に見えるかもしれませんが、実際にはそれほど難しく考える必要はありません。
例えば、以下の3つの方法が考えられます。
- リモコンを使って進む、戻る、曲がるなどを伝えてゴールまで進む
- 赤外線センサーを人が持ち、ロボットがセンサーの後を追うようにし、ゴールまで導く。
- カラーセンサーで赤を検知したら、自動で走行方法を変えてゴールまで進む。
わが家では、娘と話し、1のようにリモコンでコントロールするのは、ラジコンと同じであり、ロボットというイメージが湧かないためこの方法はやめました。
一方、2のセンサーの後を追うのは、ちょっとしたペット玩具のようなイメージで、楽しそうだということになり実現することにしました。そして、3は自動ロボット掃除機のようであり、おもしろくなりそうだったので、こちらも実現することにしました。
このように、身の回りの自動的な動作がヒントになって課題を設定することもあれば、身の回りの自動的な動作がどのような仕組みになっているのかを改めて考えるきっかけになります。
また、もしそのままの課題で難しければ、簡単にするための条件をつけてもよいでしょう。のちのちその条件自体が課題を解決するヒントにもつながります。
センサーを使用するロボットを探す
上記の考え方で利用するセンサーが決まったら、次はロボットです。ロボットは自分で作成してもよいですが、なかなか難しいので、今回は設計書があるロボットから作成することにします。
そこで、さまざまなロボットの作り方が載っているLEGOのHPから探してみます。今回はその中から、図2のEV3MEGというロボットを採用することにしました。
実際に作成したロボットは図3のように、今回必要ないアームの取り外し機能と、プログラムを停止するスイッチとして利用するタッチセンサーも備えています。
このロボットを作成するのに約3時間かかりました。単にプログラミングを勉強するだけであれば、この時間が長く感じますが、筆者はこの時間が実際に動かしたときの楽しみや感動をより大きくすることにつながると感じています。
また、今回は紹介しませんが、ロボットを組み立てる過程で、回転(ギア)の仕組みや、部品を組み合わせる際の立体感覚なども身につきます。本来は、プログラミングだけではなく、このような物理的な仕組みと組み合わせた自動化までがLEGOでのプログラミングですので、非常に奥深さを感じます。