SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

from EdTechZine

LEGOの赤外線を使った自動走行で「曲がる」プログラミングに挑戦しよう

LEGOで始めるIoTプログラミング 第4回

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
EdTechZine

CodeZine読者の皆様、こんにちは。本稿は、教育ICT(EdTech)のオンラインメディア「EdTechZine」で公開中の記事からの転載(一部)です。全文はEdTechZineのページでお読みいただけます。

読者対象

  • プログラミングについて学びたい人・教えたい人
  • プログラムが動く楽しさを知りたい人
  • プログラムでロボットを動かしたい人

目指すプログラムの概要

 前回の記事でも説明しましたが、改めて簡単に課題を説明します。

 商品を購入した時の箱に印刷されているルートを使って、図1のようにスタート地点から赤線内をゴールまで走行するプログラムを作成します。

 実際に走行するルートは、赤線内であればよく、任意のタイミングでバックしてもよいこととします。

 そして、今回のプログラミングでは、その課題を達成するために「赤外線センサーを人が持ち、ロボットがセンサーの後を追うようにし、ゴールまで導く」ことができるようにします。

図1:ロボットが走行する台紙画像
図1:ロボットが走行する台紙画像

曲がる仕組み

 プログラムで用意されている「ステアリング」ブロックを使うと簡単に曲がることができますが、ここで「曲がる」仕組みについて理解します。

 「曲がる」というと非常に簡単な操作に思えますが、実際には思ったよりも複雑です。例えば、自転車などの二輪車であれば、図2のようにハンドルを傾けると曲がります。

図2:ハンドルを使って自転車などが曲がる仕組み
図2:ハンドルを使って自転車などが曲がる仕組み

 しかし、今回のロボットは、4輪なので自動車と同じです。しかし、ハンドルのようにタイヤが傾くような仕組みはありません。そのため、左右の回転数を変えることで曲がります。

 例えば、右に曲がりたい場合には、左のタイヤが右のタイヤよりもより多く回転することで、進む距離が変わります。

 そのため、図3(左)のように左のタイヤの方がより前に進むことになります。しかし、左右のタイヤの位置はロボットに対して位置が変わらないので結果的に図3(右)のように曲がります。

図3:ロボットが右に曲がる仕組み
図3:ロボットが右に曲がる仕組み

 例えば、自動車のようにタイヤの向きを変えるハンドルがあっても、実は、このように左右のタイヤの回転数を変える機能も持っています。

 これは、2つのタイヤがある場合に、図4のように左右のタイヤが進む距離が違うためで、スムーズに曲がるには左右の回転数を変えない必要がある訳です。

図4:ロボットが回転する際の内輪と外輪の差
図4:ロボットが回転する際の内輪と外輪の差

曲がる動作とプログラミングを確認する

 続いて、「ステアリング」ブロックを使って、曲がる動作を確認します。今回のロボットは、モーターが逆に回転することで前に進む構造になってしまっています。それは、モーターのつける向きに原因があります。

 前回も、後ろに進む処理で前進する仕組みになっていました。こちらはまっすぐでしたので比較的容易でしたが、今回の曲がる動作についてはイメージがしづらい方もいると思います。筆者も直感的にはイメージできないので、ここで動作を確認します。

 その際にプログラムとロボットの動きを図5のように合わせて見るとわかりやすくなります。

★キャプションをお願いします★
図5:プログラムブロックとロボットの動く方向

Note:モーターの向きを変えるブロックについて

 モーターはつける向きによって、今回のように動作のルールが難解になります。そのために拡張ブロックの中に、モーター逆回転ブロックがあります。

 しかしこのブロックは、「ステアリング」や「タンク」などの2つのモーターをセットで使うブロックには残念ながら使えないので注意しましょう。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
from EdTechZine連載記事一覧

もっと読む

この記事の著者

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本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/12094 2020/03/19 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング