ロボットプログラミング教室とは?
こんにちは。
横浜都筑区のプログラミング・ロボット教室 リトルホッパー 講師の任です。
2019年12月
リトルホッパーでは、『白熱体験!ロボットプログラミング教室』を開催しました。
この教室は1日完結のワークショップで、モーター/LEDの制御といったロボットプログラミングの基礎からセンサーやロボットアームを使う応用プログラムまで、4時間という短い時間の中にエッセンスが凝縮されています。
このワークショップのポイントは、ズバリ、文科省が提唱するプログラミング的思考が遊び感覚で体験できるということです!
そして、12月のこの日は満席、4組の子ども達が参加してくれました。
今回はそんな体験が出来るワークショップに潜入捜査!
さて、どんな手順でプログラミングを理解していくのか、具体的にレポートします。
では、スタート!
プログラミングの基礎的な考え方
今回のワークショップでは、どうすれば、思った通りにロボットを動かすことができるようになるか、遊びながら考えていきます。
まずは、今回使う2つの道具をご紹介します。
1. ロボット 『mBot(エムボット)』
2. プログラミングソフトウェア 『mBlock5(エムブロックファイブ)』
ソフトウェアも同社のmBlock5を使用します。
ロボットにどう動いてほしいか、人間が考えたことをロボットに教えてあげる道具がmBlock5というソフトウエアです。
ロボットが動くための命令書を、ソフトウエアを使って書くことを『プログラミング』といいます。
mBlock5は積み木を積み上げる感覚で誰でも簡単にプログラミングができ、自分だけのプログラミングでロボットを制御できます。
入門向けに設計されてはおりますが、応用的なプログラミングも可能なパワフルな教材です。
はじめてのロボットプログラミング
こちらが今回のワークショップで行った内容です。
1.mBot/mBlock5の使い方
2.LED/ブザー/LEDマトリックスを使ったプログラム
3.モータを使ったプログラム
4.ロボットアームを使ったプログラム
5.センサーを使ったプログラム
楽しく、そして確実にスキルアップを図るためインプットだけではなく、手を動かして実際のタスクにチャレンジするというアウトプットの機会を多く設けています。
早速、細かく見ていきましょう!
1. mBot/mBlockの使い方
ロボット(mBot)を動かすにはソフトウェア(mBlock5)に命令書(プログラミング)を書く必要があります。
そして、その命令書をmBotに伝えるためにはmBlock(PC)とmBotを接続する必要があります。
今回はBluethoothで接続していきます。
イメージは『携帯電話でロボットに指示を伝える』感じでしょうか。
まずはmBotの電源を入れましょう!
『ド、レ、ミ』と軽快な音(ブザー)が鳴ります♪
デバイスライブラリの中からmBotを選んで接続します。
これで、準備OK!
そしてそして、こちらがmBlock5の画面です。
この画面の中で、どんなことができるのかをブロックごとに説明します。
① ステージ:ここでは指定したスプライト(絵)を動かすごとができます。
② ブロックパレット:カテゴリー別で指示したい内容が、簡単な言葉になって並んでいます。
③ スクリプトエリア:自分で指示したい内容をブロックパレットから選んで集めて、並べる場所です。
④ デバイスリスト:動かしたいものを選べます。ステージ上のスプライトなのか、ロボットなのか、ここで選びます。
さぁ、準備は完了!
スクリプトエリアにプログラムを書いて、ブロックパレットの『イベント』を実行すると
mBotが命令書の通りに動きだします。
早速プログラムを書いてみましょう。わくわく、、(*´Д`)
2.LED/LEDマトリックス/ブザーを使ったプログラム
mBotには、光る、動く、センサーで感知するなどの指示を出せます。
一つずつの指示はいとても簡単。
そして、組み合わせることで非常に複雑かつ面白い指示を出すことも出来ます。
先ずはLEDとLEDマトリックスを使ったプログラムについて見ていきましょう。
この2つのプログラムはロボットの見た目を変えるプログラムになります。
LEDを使ったプログラム
LEDの色/光の強さを変えためには『光の三原色(RGB)』を使います。
『光の三原色』、分かりますか?
これは赤、緑、青の光を組合わせることでほとんどの色を表現できてしまいます。
明るさは0~255の範囲でパラメータを調整できます。
簡単、簡単!
LEDマトリックスを使ったプログラム
そして次はLEDマトリックスを光らせてみましょう。
LEDマトリックスとは電光掲示板のようなもので細かいドットで文字や、顔や、数字を表示できます。
プログラミングもとても簡単!
mBlockでドットを選択するだけです。
文字や、顔や、数字など、お絵かきのように簡単に描けます。
続いては、ブザーを使ったプログラムを見ていきます。
mBotにはブザーが付いていて好きな音を鳴らせることが出来ます。
ここで注意!
ブザーの音階を指定する際に、いわゆる『ド、レ、ミ、ファ、ソ、ラ、シ』は『C、D、E、F、G、B』でプログラミングする必要があります。
これは『国際式表記』と呼ばれており一度変換する必要があります。
そして音の長さも変えられるので、簡単な曲はすぐにでも作れそうですね!
3. モータを使ったプログラム
続いて、モータを使って実際にmBotを動かしてみましょう。
モータは人間でいうと筋肉にあたります。
今回使うモータは脚の筋肉でmBlock5では以下の指示をmBotにすることが出来ます。
① 前進する
② 後進する
③ 右折する
④ 左折する
これらの動きを組合わせることでmBotを好きな場所に動かすことが出来ますね。
電流の流れる量を増やしたり減らしたりして、スピードの調整がきます。
進む時間も長くしたり、短くしたり、1秒以下でも、少数2桁まで微調整できます。
ラジコンプログラムの制作
ここではキーボードの十字キーを使ってラジコンプログラムを書いてみました。
自由自在にコントロールすることが出来るので色々な遊びが出来そうですね。
例えば、『ロボット鬼ごっこ』や『ロボットサッカー』などなど、、^ ^
4. ロボットアームを使ったプログラム
次はロボットアームを使っていきましょう。
さきほどのセッションでは脚の筋肉を使ってmBotを自在に動かしましたね。
今度は手の筋肉と言うことになります。
そして使うモータが異なります!
・脚の筋肉:DCモータ
・手の筋肉:サーボモータ
細かいお話はここでは割愛しますが、お互いの特徴は以下の通りです。
・DCモータ:早く回転できる
・サーボモータ:回転角度を細かく制御できる
ロボットアームと走行モータを組合わせたタスク
このタスクではスタート地点からmBotを出発させて、ロボットアームで木を掴んで、ゴールまで持っていくという壮大なタスクです。
さぁ、頭をフル回転させてチャレンジしていきましょう!
思った方向に走行するだけでも、向き、速さ、走行時間など細かい調整が必要になります。
参加した子ども達、みんなで何度もチャレンジしましね^ ^
出来た出来なかったは別として、『ロボットもかなり人間っぽいことが出来る』ということを感じられましたか?
5. センサーを使ったプログラム
センサーは人間でいう五感(視覚、聴覚、触覚、味覚、嗅覚)です。
今まで制御、実はロボットは目を閉じていました。
目を閉じてただ単に携帯電話から流れてくる命令通り動いていました。
だから、壁にぶつかろうが、崖から落ちようが関係なし。けっこう危険な状態、、笑
そこでセンサーなのです!
センサーがあることでロボットが自分で判断してより人間に近い動きを実現してくれます
mBotには以下の3つのセンサーが付いています。
・超音波センサー
・ライントレースセンサー
・光センサー
今回は超音波センサーとライントレースセンサーを使ったプログラムについて見ていきましょう。
超音波センサーを使ったプログラム
超音波センサーは人間でいう『口と耳』です。見た感じ『目』っぽいですが、、
皆さんも山に向かって「ヤッホー」と言ったことありますよね?
もしくはトンネルの中で「わぁー」と声を出したことありますよね?
どうなりました?無視されましたか?笑
声が返ってきたり反響したりしたと思います。
そう、音は壁や物にぶつかると跳ね返る性質があります。
超音波センサーは右の口(トランスミッター)から超音波を出して、右の耳(レシーバー)で音を聞いています。
壁や物が近ければ早く返ってきますし、遠ければ少し時間が経ってから帰ってきます。
この性質を利用して、前の壁/物との距離を計測しています。
※3cm ~ 400cmの範囲で計測が可能。
これで壁や物に激突しなくても済みますね(*´Д`)
超音波センサーとLEDの組み合わせ
こちらは超音波センサーとLEDを組合わせたサンプルプログラムです。
超音波センサーの距離(物との距離)に連動してLED(この場合は赤色)の光の強さが変わるプログラムです。
いやぁ、、簡単なプログラムなんだけどなんかすげー(*´Д`)
こういう気持ちを子ども達にも持ってほしい!
そして、次はライントレースセンサーを使ったプログラムについて見ていきましょう
ライントレースセンサーは人間でいう『目』です。
でもこの目はあんまりよくなくて白と黒しか判別できません。
それでもロボットにとっては大切な目です!
では、どのように白と黒を見分けているのでしょうか?
皆さんは夏に白と黒の服を着るとどちらが暑く感じられますか?
ほとんどの人が黒だと思います。笑
何ででしょうか?なんとなく??
正解は黒は光を吸収し、白は光を反射するからです。
ですので、太陽の光をいっぱい吸収する黒の方が暑く感じられます。
この性質をライントレースセンサーは利用しています。
人間には見えない光(赤外線)を出してその反射量を見ています。
いっぱい反射してくるのが白、あんまり反射してこないのが黒、というふうに。
ライントレースセンサーとモータの組み合わせプログラム
ライントレースセンサーとモータを組合わせることでこの様な黒線の上を走るプログラムや黒線の中から出てこないプログラムを組むことが出来ます。
自動で物を運ぶロボットやお掃除ロボットなどにも応用できそうですね!
普段の生活でも『プログラミング』
さて、ここまでロボットの持つ色々な機能を見ていきましたね。
見れば見るほど人間に似ていると感じて頂けたのではないでしょうか?
そして最後にプログラミングの基本の一つである『順次処理』について説明したいと思います。
ロボットが順番に動作をしていくことを『順次処理』といいます。
ワークショップに来てくれた子ども達は既に気付いていると思いますが、プログラムって上から順番に動きますよね?これが『順次処理』です。
今までロボットは人間に似ていると何回も言ってきましたが、
順次処理は、普段の生活で、いつもやっていることです。
例えば、毎朝の「順次処理」では・・・
① 起床する
② 朝食を食べる
③ 歯を磨く
④ 着替えをする
⑤ 荷物をまとめる
⑥ 靴を履く
⑦ 家を出る
日常生活と同じように、ロボットにも動作を順番に指示します。
ただ、ロボットは一つの動作が終わるまで、次の動作をすることができません。
プログラミングするときは、ひとつひとつ、丁寧に動作をプログラムする必要があります。
ロボットに順序だてて説明することを、無意識に子ども達が学ぶことには、
実社会のコミュニケーション能力を向上させる効果があるといわれています。
ぜひ、実際に体験しにきてくださいね^ ^
以上、たった4時間でプログラミング的思考を体感する
『ロボットプログラミング教室』についてのレポートでした。
リトルホッパーでは『世界にたった一つ』をコンセプトに他にはない多彩なワークショップを開催しております。
ワークショップに興味がある方、そして参加してみたい方はチェックしてみてくださいね♪