親子で学ぶロボットプログラミング講座の第4回目は、「mBotを自由に走らせよう」です。
第1回目:親子でロボットプログラミングに取り組む
第2回目:ロボットプログラミングの準備をしよう
第3回目:mBotで初めてのロボットプログラミング
第3回目で、mBotのLEDを光らせたり、ブザーを鳴らしながらメロディを奏でたりといった事を体験しました。
この回からは、実際にmBotを動かすプログラミングをしていきます。
STEP1:自由に走らせてみよう
このSTEPでは、いよいよ、mBotを走らせるプログラムに挑戦します。
DCモーターの取り付け場所
mBotを組み立てたとき、DCモーターを、タイヤの軸につなげました。mBotを動かすときは、このタイヤにつながったDCモーターの回転する速さや、回転する時間をプログラムします。
mBotのDCモーターは、6V/200RPMという性能です。これは、6V(単三乾電池4本)を使って電流を流したとき、1分間に200回転するという意味です。RPMの数字が大きいと、それだけモーターのパワーが強いということになります。
モータ-の種類には、DCモーター以外にも、色々あります。ロボットプログラミングでよく使うモーターは、主に、2つです。
DCモーター
- スピードと前回転、逆回転の設定が出来る
サーボモーター
- モーターの角度を制御する事が出来る。ただ回るのではなく、止めたい角度で止めるようにすることが可能です。サーボモーターは、人型のロボットの関節部分などに組み込まれたりしています。
Makeblock社のサーボモーター
mBotロボットプログラミング(3) mBotを動かしてみよう
mBotを動かすには、「動き」パレットにあるブロックを使います。まずは、どのブロック実行する、mBotがどんな動きをするかを、確認しましょう。
速さと時間を設定できるブロック
例)前向きに50%の速さで、1秒動かす
mBotが「前向きに1秒」走行できたら、「動き」ブロックパレットの中にある、「後向き」「左向き」「右向き」ブロックを使って、mBotがどんな動きをするか、確認してみましょう。
前・後・左・右の動きが確認できたら、「●●秒動かす」の、時間(秒)の部分を、2秒や3秒に変えて試してみましょう。
時間でmBotの走行距離を変えることが確認できたら、今度は、「〇〇%の速さ」の部分の数字を変えて、mBotの動作を確認してみましょう。数字が大きいほど、mBotが速く走行し、小さいと、遅く走行します。
時間を指定しないブロック
これから、学習が進むと、時間を指定しないプログラムを作りたくなるはずです。その場合は、下のブロックを使うと、ずっと、動き続けます。
うえのブロックを使ったプログラムで、動きを止めたり、時間を指定したりするには、どうしたらよいでしょうか?
その場合は、動きブロックパレットにある、「動きを止める」と、
制御ブロックパレットにある「〇〇秒待つ」を使います。
例えば、前向きに、1秒動かす場合、は下のようなプログラムになり、「前向きに50%の速さで1秒動かす」ブロックと同じ動き方になります。
左と右のタイヤ速さを変えるブロック
これまで見てきたのは、左右のタイヤが両方、同じ速さで動くブロックでした。「動き」ブロックパレットには、もう一つ、左右のタイヤの速さを変えるブロックがあります。
例えば、上のブロックの右のタイヤの速さを、早くしてみるとどうなるでしょうか?
確認すると、左方向へカーブすることが出来ると思います。
また、どちらかのタイヤの速さを「-」にすると、タイヤが逆回転します。
負の数は、中学校で習いますので、小学生には、難しいかも知れません。ロボットプログラミングの最初の段階で、負の数が理解できていなくても、先に進めますので、ここでは、「-」を入れると、「タイヤが逆回転する」という程度の理解で構いません。
STEP2:mBotの5つの走行パターンを確認しよう
ここまでで、どの「動き」ブロックを使うと、mBotがどのように動くかを確認してきました。この動きブロックを使って走行するmBotの動きは、前進・後進・カーブ・ピボットの5パターンです。前進走行・後進走行は、すぐにイメージがつくと思いますが、「曲がる(ターン)」に関しては、3パターンあります。
スピン
スピンは、この動画のような動作です。
スピンは、片方のタイヤが、順回転(進行方向に対してタイヤの前方が下に、後方が上に動くような回転)、もう一方のタイヤが逆回転(順回転とは反対にタイヤが回転)する事で実現できます。
mBlockのこれまで見てきた「動きブロック」の「右向きに」「左向きに」は、スピンで動くようになっています。
スピン回転を実現する方法としては、↑のブロックのほかに、↓のプログラムのように、左右のタイヤのスピードを同じにして、どちらかを負の数(-)でタイヤを逆回転させることで、実現できます。
ピボット
ピボットはこの動画のような動作です。
スピンとは違い、どちらかのタイヤを止め、もう一方のタイヤを動かす事で実現します。
カーブ
カーブは、下のような動画の動きです。
右カーブ
左カーブ
ピボットとは違い、左右どちらのタイヤも動かしますが、動かすスピードを変える事で、曲がる角度を調整します。
ここがポイント 正解はひとつとは限らない
この回で学んだように、ロボットに思った動きをさせたい場合、それを実現するプログラムは、一つじゃありません。
学校のテストでは、一つの正解が何かを考えますが、ロボットプログラムでは、自分が思ったように動けば、そのプログラムが正解です。
色々なプログラムの方法を考えながら楽しんで学びましょう。
筆者プロフィール
荻原 裕
TINKERBASE代表
2010年よりIOTデバイス開発ベンチャー企業での海外営業・新規事業開発・大企業向けIOT事業開発アクセラレーション責任者を歴任。
2018年より出張専門プログラミングスクール「TinkerBase」運営。
国際的ロボットプログラミング大会「MakeX」
2019東京大会審判委員長。2020東京大会事務総長。
2015年経済産業省登録 中小企業診断士。著書:IOTビジネス入門&実践講座 2016年 ソシム出版