今回は、mBot2プログラミングシリーズ(mBlock編)の第13回です。
前回は、mBot2に搭載されているCyberPiのモーションセンサーを使った制御を紹介しました。
今回は、CyberPiの光センサーやマイク、ボタンといったその他のセンサーについて紹介します。
各センサーの基本的な使い方から、センサーを利用した制御プログラムを作成していきます。
この記事で分かること
- CyberPiのセンサーについて
- センサーに関するブロックとその使い方
- センサーを使った制御プログラムの作成方法
CyberPiと各種センサー
CyberPiは、mBot2に搭載された多機能モジュールで、ディスプレイ、センサー、マイク、スピーカーなどが一体となっています。
これにより、音の再生や制御、ディスプレイ表示、センサー入力の処理など、さまざまな機能を実現することができます。
ジョイスティックは、ディスプレイの左側にあり、上下左右に倒すことに加え、中心を押すという5つの操作が可能です。
Aボタン/Bボタンは、ディスプレイの右側にあり、CyberPiの操作としてはAボタンが「戻る」、Bボタンが「決定」として使用されます。
光センサーとマイクは、ジョイスティックの上に位置します。

mBlockで扱える、ボタンや光センサーに関するブロックは『センサー』パレットに入っており、内容は大きく次の2つに分類できます。
- ボタンの検出
- 各種センサーや情報の検出
それぞれ解説していきます。
mBlockとは?『スクラッチ(Scratch)』との違い
mBlockは、小学校や学習塾で取り入れられている『スクラッチ(Scratch)』をベースとしたビジュアルプログラミングツールです。
スクラッチの基本的な操作感を引き継ぎながら、ロボットやハードウェアの制御に特化しているため、mBlockを使えば、プログラミング初心者でも簡単にロボットプログラミングを始めることができます。
ボタンの検出
mBlockで使用するブロック


ジョイスティックの指定された動作が行われたか、または指定されたボタンが押されたかの判定を行うブロックです。
[中央が押される▼]、[A▼]をクリックすると、それぞれ次の選択が可能です。


A/Bボタンの選択肢の「ボタン」は、AボタンまたはBボタンが押されているかを判定します。


ジョイスティックの指定された動作が行われた回数、または指定されたボタンが押された回数を表すブロックです。


ジョイスティックの指定された動作が行われた回数、または指定されたボタンが押された回数をリセットするブロックです。
ボタン操作の検知プログラム
『ジョイスティックを操作して、「makeblock」を様々な位置に表示する』プログラムを作ってみます。

ジョイスティックを↑、↓、中央を押す操作によって、「makeblock」の表示位置を切り替えます。
ボタン操作の回数検知プログラム
CyberPiをカウンターとして機能させるプログラムを作ってみます。

Aボタンが押された回数をディスプレイに表示します。
最初に押された回数をリセットすることで、起動するごとに0回からスタートします。


各種センサーや情報の検出
mBlockで使用するブロック

CyberPiのマイクによって検出された音量を表すブロックです。
範囲:0~100

CyberPiの光センサーによって検出された明るさを表すブロックです。
範囲:0~100

タイマーのカウント値を表します。
CyberPiが起動すると、タイマーのカウントが開始されます。
単位:秒

タイマーのカウント値をゼロにリセットします。

CyberPiの名前を表します。
初期状態では「cyberpi」です。
ホスト名は、mBlockのデバイスリストの「設定」→「ホスト名の設定」から変更可能です。


指定された値を表します。
[バッテリー残量(%)▼]を押すと、以下の選択ができます。

- バッテリー残量(%)
接続されているシールドのバッテリー残量。
CyberPiがmBot2に接続されている場合は、mBot2シールドのバッテリー残量です。
- MACアドレス
Wi-FiのMACアドレス。
12バイトの文字列(FFEE33445566など)です。
- Bluetooth名称
Bluetoothデバイス名。
文字列(Makeblock_LE_XXXXXなど)です。
- システム言語
CyberPiで使用されているシステム言語。
- 拡張機能名
CyberPiに接続されているシールド名。
mBot2に接続されている場合は、「mBot2」が表示されます。
- 外部バッテリー残量(%)
外部バッテリーが接続されている場合の残量。
mBot2の初期状態では、外部バッテリーは接続されていないため0%です。
タイマーの簡単なプログラム
『CyberPiをタイマーとして機能させる』プログラムを作成してみます。


Aボタンを押すとタイマーがスタートし、Bボタンを押すとタイマーが停止します。
Aボタンを押すごとに、タイマーはゼロから開始されます。

まとめ
今回は、CyberPiのボタンや各種センサーを使っプログラムを紹介しました。
光センサーやマイク、ボタンやタイマーを活用することで、mBot2の更に応用的なプログラミングが可能となります。
特に、センサーを使った制御プログラムは、プログラミングの楽しさを広げるだけでなく、環境との相互作用を学ぶ良い機会となります。
ぜひ、今回のプログラムを参考にして、自分だけのオリジナルプログラムに挑戦してみてください。
次回は、CyberPiのAI機能について解説します。
mBlockを使ったmBot2のプログラミング方法を丁寧に解説していておススメです。
CyberPi単体でもプログラミング教育に非常に役立ちます!
