はじめに
mBot2/mBlockを使ってプログラミング環境を作ってみた。
やりたいこと
PCを使うことなくプログラムする環境をmBlockで作ってみた。
mBlockは確かに簡単だけれど、PCやスマホでの操作が必要。
PCを使うことなくプログラムする
・どうしよう?!
・そうだ!
・昔の紙プログラムに回帰しよう!
・mBot2は色が認識できたな!?
ということで作ってみた。
プログラムの概要
プログラムは、3つのブロックで構成されている。
・初期化ブロック
license: CC BY-SA 4.0
初期化ブロック
1.イベント:CyberPiが起動した、でこのブロックを開始
2.変数に初期値を入れていく(この値は、動作の定義した定数値)
3.プログラムを格納するリスト変数を全削除
4.音で知らせるので音量を100%に
5.準備完了を表示
して終わり
プログラミングブロック
Aボタンを押すとプログラミングモードになる。
クワッドrgbセンサーを使って、色紙の色を識別、動作を覚えていく。
1.イベント:Aボタンが押されたとき、でこのブロックを開始
2.クワッドrbgセンサーのキャリブレーション、モードを設定
3.プログラムを格納するリスト変数を全削除する
4.あらかじめ設定したプログラムの最大数でループ
4-1.色を見つけるために前進
4-2.右へ行く色、ここでは緑か判定し、緑色紙の時は右へ行くことを一時的に覚える
4-3.左へ行く色、ここでは青か判定し、青色紙の時は左へ行くことを一時的に覚える
4-4.前へ行く色、ここでは赤か判定し、赤色紙の時は前へ行くことを一時的に覚える
4-5.前へ行く色、ここでは黒か判定し、黒色紙の時は後へ行くことを一時的に覚える
4-6.前へ行く色、ここでは白か判定し、白の時はプログラムすることを止める
4-7.設定がないときは、LED虹色表示
4-8.一時的に覚えた動作をプログラムを格納するリスト変数に追加する
5.終わったら音を鳴らし、プログラム完了メッセージを表示
して終わり
プログラム実行ブロック
Bボタンを押すとプログラム実行モードになる。
覚えた動作に従って、mBot2を動かす。
1.イベント:Bボタンが押されたとき、でこのブロックを開始
2.クワッドrbgセンサーのキャリブレーション、モードを設定
3.ループ変数の設定
4.あらかじめ覚えたプログラムの最大数でループ
4-1.今回の動きを一時的に覚え、プログラム番号を表示
4-2.右へ行くときは、mBot2を右折させ一定距離動かす
4-3.左へ行くときは、mBot2を左折させ一定距離動かす
4-4.前へ行くときは、mBot2を前進方向に一定距離動かす
4-5.後へ行くときは、mBot2を後進方向に一定距離動かす
4-5.ライトをつけるときは、LED虹色表示
4-6.1回ずつ区切りの音をならす
5.終わったら全停止
して終わり
ちょっとしたポイント
定数の利用
プログラム言語を使う人なら、避けてとおりたいマジックナンバー。
変数を定数のように使うことで、変数名に意味を持たしています。起動時に変数を初期化することで、定数のように使えます。(変更もできてしまうのが難点)
プログラム量の可変可
白色を最後だとすることで、プログラムできる量を可変にした。
無限にならないようプログラム数の最大もいっしょに定義。
そもそものはなし
学校でプログラミングが始まったとはいえ、PCやタブレットを使うことが、ちょっとした障害。
まず、プログラムの基本、命令を順序だて並べるということと、視覚的なわかりやすさで色紙をチョイス。
※色紙は薄いと走っているときに、しわになったり、破れたり。色画用紙とか丈夫なものがおすすめ。
色紙でなくても、プラスチックプレートなどでも可能。
色紙にユニバーサルデザイン(矢印や▲などのマーク)を取り入れると、なおヨシ!
※マークの影響を受けにくいよう、ランダム検出にはしていますが、たぶん、すみっこにマークしたほうが良いです。
最後に
CC BY-SA 4.0(著作者の情報とCCライセンス継承はお願いします。商用利用・改変・再配布は問題なし)です。