2018年10月24日2020年1月11日mBotプログラミングtinkeringTwitterFacebookはてブPocketPinterestLINE最新ページ情報このページは、ビジュアルプログラミングソフト「mBlock3」で解説しています。以下に、最新版の「mBlock5」での解説ページも、合わせてご覧ください。今回は、mBotを自立走行させるプログラミングです。実際にモーターを制御してロボットを制御していくというロボットならではのプログラミングを楽しみたいですね。「まっすぐ走る」「90度曲がる」を4回繰り返せば良いですよね。いう事で、まずは「まっすぐ走らせましょう」まっすぐ走らせるには、mBlockのロボットブロックの「○○向きに■■の速さで動かす」を使います。それでプログラムを実行してみましょう!私のmBotを動かすとこんな動きになります。動画で分かるように、プログラムでは、前向きに100の速さで設定しますが、mBotはまっすぐ走ってくれません。?まっすぐ走るには、両輪のタイヤを動かすモーターのパワーが同じであり、路面の状況がまっ平らで、タイヤとホールのかみ合わせがしっかりしていて、タイヤにも異物が無く、ギアの噛み合わせも完璧、・・・といった用に、様々な要素がそろって始めてまっすぐ動きます。実際は、どのmBotにも微妙に上記の要素が異なるでしょう。電池の残量によっても、出力=回転数が変わったりします。動画の例で言うと、「左にずれていく」という時は、ホイール・タイヤがしっかり組み合わされているか、タイヤに変な異物が有ったり、変形していないかを確認し、それでも左にずれるようであれば、左右のモーターの出力を変えて、まっすぐ走るように調整する必要が有るのです。そもそも、床が平らなのかどうかも影響してきますよね。モーターの出力を変えるには、↓のようなブロックを組み合わせます。mBotの説明書通りに組み立ててあれば、モーターポート1は左タイヤ対応で、モーターポート2は右タイヤ対応になると思います。さあ、皆さんのmBotで試してみましょう。モーターの出力は、255・100・50・0・-50・-100・-255から選ぶことも出来ます。最高出力は255であり、0はモータを停止させ、マイナスの数は逆回転させます。(注:50程度のパワーレベルでは、mBotを動かすには弱すぎて動かないかもしれません。微調整するには、手入力で数値を細かく設定する必要が有ります。ちなみに、0でモーターを停止させる=mBotを止めるという1行は、今後プログラムする上で、私も含めてビギナーでは、抜けがちなので、しっかり把握しておきましょう!私のmBotは、左にずれて走行していく為、左のモーターの出力を上げるか、右のモーターの出力を下げるかの調整でした。調整した所、まっすぐ走るには、このような設定になりました。mBotを90度右折させるには?さて、まっすぐ走るようになった後は、右折のプログラムを作ります。これも、まっすぐ走るの時のような微調整が必要です。mBotを曲げるには、「○○向きに■■の速さで動かす」ブロックを↓のように設定します。これで実行すると、ずっと回転しつづけますよね。90度で止める為には、「時間」で制御する必要が有ります。そこで、「1秒まつ」ブロックを付け加え、1秒待った後に、モーターを止める為に、「○○向きに■■の速さで動かす」ブロックの、モーター出力を「0」にしましょう。ちなみに、モーター出力を0にするブロックを入れず、1秒待つブロックだけで実行すると、mBotは、ずっと周り続けます。1秒回転させると、mBotは何度くらいの方向を向いたでしょうか?私の場合、「100度」程度を向いたので、1秒では回転させすぎでした。そこで、数回時間を変えてテスト・調整をしてみると、0.85秒でほぼ90度に回転する事が分かりました。曲がるときも、使用しているバッテリーの種類(単三電池かリチウムイオン電池かなど)、バッテリーの充電量、モーターとホイール間の摩擦量、ターンのスピード設定、タイヤと床面の摩擦具合などが、90度回転に必要な時間に影響します。ここがロボットプログラミングならではの難しさであり、面白さで、奥深さだと私は思います。私の場合は、↑のように0.85秒という微調整をしました。走る・90度曲がるのブロックを組み合わせるさあ、あとは、これまで作ったブロックを合体させて、4回繰り返すブロックで囲うだけです。走らせる時間が1秒だと短かったので、2秒にしました。最後に、モーターを止めるブロックを入れておきましょう!mBotをカーブさせるmBotを直角(90度)に曲げるのではなく、カーブさせる事が出来れば、8の字に自立走行する事も可能ですよね。mBotをカーブさせるには、90度直角に曲げるで設定した左右モーターの出力を調整すればいいですよね。これも、モーターの出力、タイヤとホイールのかみ合わせ、走行する床面とタイヤの摩擦具合等、バッテリーの充電残量(例えば、新品の単三電池=満充電だと、出力電圧は6Vなのですが、充電量が徐々に減っていくと、出力電圧も6Vから5Vへと減ってきて、モータースピードも変わります)等によって、変わります。その時、その場所で、変わるといってもいいでしょう。IDE(PC)から、BluetoothやUSBケーブルを通じて、プログラムを実行します。mBot制御ボード上のプログラムは更新されません。最新の「mBlock5」に対応した「mBot」の基本活用術も連載中です。合わせてご覧ください。17MakeX2019のテーマ・開催概要が発表されました。J-tinkering。