この記事は飯田橋製作所のYoutube動画の解説です。まだ動画をご覧になっていない方はぜひ動画からご覧ください。
<<動画を埋め込む>>
プログラミングに必要なもの
- windows10 が動作するコンピュータ
- (注意)今回使用するプログラミング用ソフト mBlock3 は現在MacOSをサポートしていません。Macを使用する場合は最新版のmBlock5のみ利用できます。
- PCのUSBポート、又は標準USBへの変換ケーブルが必要です
- mBlock 3(プログラミング用のソフト)
- (注意)最新版は mBlock 5ですがmBot本体にプログラムを送る際に何度もエラーが出たため、今回の検証では旧版の mBlock3 を使用しました。
- mBlock3 の検証時の最新バージョンは 3.4.12 です
- mBlock3 はこちらからダウンロードできます。
- USBケーブル
- mBotに付属しています
プログラミングソフトの説明
mblock 3 の画面の構成はこちらのようになっています。mBotのプログラムを作る際は基本的にブロックのリストと右側のエディターを使います。
mBlock 3 とmBotを接続する方法などは J-TINKERING 様の記事を参考にさせて頂いています。
mBlock 3 を使ったプログラミングの基本
プログラムのブロックについて
ブロック1つ1つがmBotへの命令になっています。例えばこちらのブロックは「前方向に100の速さで進め」という命令になります。
こちらのブロックは「1秒間、指示を与えずに待機せよ」という命令になります。
mblock 3のプログラミングには少し癖があり、先に挙げた動かすプログラムだけだと一瞬しか命令通りに動きません。その後のプログラムが次々と実行されてしまうためです
そのため、後に挙げた待つプログラムと組み合わせて、進ませたい時間だけ次のプログラムを実行するのを待たせるようにします。「距離 = 速さ × 時間」のため、待つ時間が長ければ長いほど、進む距離が長くなります。
ブロックを組み合わせる事で、複雑な動きをプログラムできます。
プログラミングのポイント
プログラムは基本的に上から下へと命令が実行されます。実行するプログラムを条件で分けるプログラムや、同じプログラムを繰り返させるプログラムを使うことで、実行順序を変える事ができます。
作成するプログラム
mBotをロボット掃除機に改造するために作成したプログラムは、こちらです。
プログラムの解説
やりたい事
今回は黒い床に白いテープで枠を作り、mBotが枠の中を行ったり来たりする事で掃除をさせます。
mBotを白い枠を超えずに行ったり来たりさせるためには、mBotに付いているライントレースセンサーを使います。センサーは黒い床と白い枠を識別する事ができます。ですから、センサーが黒い床を検知している間はmBotを真っ直ぐ走らせ、白い枠を検知した際は90度以上の方向転換をさせ、枠の中に戻るようにすれば、させたい動きを実現できます。
作成したプログラムは下記のような作りになっています。
ライントレースセンサーは本体の中央に2つ付いていますので、どちらのセンサーが白い枠を検知した場合も方向転換するようにしました。
ポイントは「もし」のブロックを「ずっと」のブロックで囲んでいるところです。センサーは1秒間に何回も状態を検知しますが、「もし」ブロックで黒い床か白い枠かを判断するのは1回だけです。今回はセンサーの値を何度も判定してその都度動きを変化させたいので、「もし」ブロックを「ずっと」ブロックで囲み、「もし」ブロックが何度も実施されるようにします。