本連載では、筆者が小学生の娘と一緒に実際にLEGO MINDSTORMSを動かしてみた体験とともに、どんな楽しみ方があるのか紹介します。前回、赤外線センサーとビーコンを使って一定の距離を保って進む、戻るプログラミングまでできるようになりました。しかし、「進む」「戻る」ことはできても、「曲がる」ことはできませんでした。今回は、ビーコンがある方向に従って曲がることができるようにプログラミングを進めていきますが、同時に、より複雑なプログラミングにも挑戦しテクニックを学んでいきます。

CodeZine読者の皆様、こんにちは。本稿は、教育ICT(EdTech)のオンラインメディア「EdTechZine」で公開中の記事からの転載(一部)です。全文はEdTechZineのページでお読みいただけます。
読者対象
- プログラミングについて学びたい人・教えたい人
- プログラムが動く楽しさを知りたい人
- プログラムでロボットを動かしたい人
目指すプログラムの概要
前回の記事でも説明しましたが、改めて簡単に課題を説明します。
商品を購入した時の箱に印刷されているルートを使って、図1のようにスタート地点から赤線内をゴールまで走行するプログラムを作成します。
実際に走行するルートは、赤線内であればよく、任意のタイミングでバックしてもよいこととします。
そして、今回のプログラミングでは、その課題を達成するために「赤外線センサーを人が持ち、ロボットがセンサーの後を追うようにし、ゴールまで導く」ことができるようにします。
曲がる仕組み
プログラムで用意されている「ステアリング」ブロックを使うと簡単に曲がることができますが、ここで「曲がる」仕組みについて理解します。
「曲がる」というと非常に簡単な操作に思えますが、実際には思ったよりも複雑です。例えば、自転車などの二輪車であれば、図2のようにハンドルを傾けると曲がります。
しかし、今回のロボットは、4輪なので自動車と同じです。しかし、ハンドルのようにタイヤが傾くような仕組みはありません。そのため、左右の回転数を変えることで曲がります。
例えば、右に曲がりたい場合には、左のタイヤが右のタイヤよりもより多く回転することで、進む距離が変わります。
そのため、図3(左)のように左のタイヤの方がより前に進むことになります。しかし、左右のタイヤの位置はロボットに対して位置が変わらないので結果的に図3(右)のように曲がります。
例えば、自動車のようにタイヤの向きを変えるハンドルがあっても、実は、このように左右のタイヤの回転数を変える機能も持っています。
これは、2つのタイヤがある場合に、図4のように左右のタイヤが進む距離が違うためで、スムーズに曲がるには左右の回転数を変えない必要がある訳です。
曲がる動作とプログラミングを確認する
続いて、「ステアリング」ブロックを使って、曲がる動作を確認します。今回のロボットは、モーターが逆に回転することで前に進む構造になってしまっています。それは、モーターのつける向きに原因があります。
前回も、後ろに進む処理で前進する仕組みになっていました。こちらはまっすぐでしたので比較的容易でしたが、今回の曲がる動作についてはイメージがしづらい方もいると思います。筆者も直感的にはイメージできないので、ここで動作を確認します。
その際にプログラムとロボットの動きを図5のように合わせて見るとわかりやすくなります。
Note:モーターの向きを変えるブロックについて
モーターはつける向きによって、今回のように動作のルールが難解になります。そのために拡張ブロックの中に、モーター逆回転ブロックがあります。
しかしこのブロックは、「ステアリング」や「タンク」などの2つのモーターをセットで使うブロックには残念ながら使えないので注意しましょう。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- この記事の著者
-
WINGSプロジェクト 小林 昌弘(コバヤシ マサヒロ)
< WINGSプロジェクト について> 有限会社 WINGSプロジェクト が運営する、テクニカル執筆コミュニティ(代表 ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
