今回は、mBot2プログラミングシリーズ(Python編)の第3回です。
この回では、mBot2に搭載されている超音波センサーのLED制御について解説します。
超音波センサーには、8個の青色LEDが装備されており、様々な種類の感情や情報を表現することができます。
全講座の一覧はこちら
目標
- 超音波センサーLEDの仕組みを理解する
- 超音波センサーLEDに関するAPIを理解する
- 超音波センサーのLED制御をプログラミングする
Python環境(mBlock Python editor)の立ち上げ
ここでは、『mBlock Python editor』を使って、Pythonコードでプログラミングしていきます。
事前にPython環境を導入しておいてください。
環境の導入に関しては、次の記事を参考にしてください。
超音波センサーのLEDとは
mBot2の超音波センサーには、左右併せて8個のLEDが装備されています。
向かって左上から、右目に1,2,3,4、左目に5,6,7,8の番号付けがされています。

8個のLEDを個別に制御することができ、明るさは0~100%の範囲で調整可能です。
これにより、様々な種類の感情や情報を表現することができます。
APIとは
API(Application Programming Interface)は、ソフトウェアやハードウェアが外部のプログラムとやり取りをするためのインターフェース(接点)です。
簡単に言うと、『決められたルールに従って機能を利用するための仕組み』です。
cyberpiライブラリをインポートすることで、CyberPiや、mBot2、センサーなどの各機能を簡単に利用できます。
超音波センサーのPython API
超音波センサーに関するAPIの中で、今回はLED制御に関するものを紹介します。
超音波センサーのLED制御
ultrasonic2.led_show(bri, index =1)
全てのLEDの明るさを設定します。
- bri:8個のLEDの明るさ
- [
bri1,bri2,bri3,bir4,bri5,bri6,bri7,bri8]
の形式で明るさを指定する - 範囲:0~100
- [
ultrasonic2.led_show([100,100,0,0,100,100,0,0], 1)
ultrasonic2.set_bri(led_bri, id, index =1)
指定したLEDの明るさを設定します。
- led_bri:指定されたLEDの明るさ
- 範囲:0~100
- id(int型の場合):指定されたLED番号
- 範囲:1~8
- id(str型の場合):全てのLED
- 範囲:”all”のみ
ultrasonic2.add_bri(led_bri, id, index =1)
指定したLEDの明るさを、指定した値ずつ増加させます。
- led_bri:明るさを増加させる値
- 範囲:0~100
- id(int型の場合):指定されたLED番号
- 範囲:1~8
- id(str型の場合):全てのLED
- 範囲:”all”のみ
ultrasonic2.get_bri(id, index =1)
指定したLEDの明るさを取得します。
- id(int型の場合):指定されたLED番号
- 範囲:1~8
- id(str型の場合):全てのLED
- 範囲:”all”のみ
ultrasonic2.play(emotion, index =1)
LEDを通じて、指定された感情を表現させます。
emotionの設定範囲 | 感情 |
---|---|
“sleepy” | 眠い |
“happy” | 楽しい |
“dizzy” | 目が回る |
“wink” | 眉を上げる |
“thinking” | 考える |
簡単な動作プログラム作成
『超音波センサーのLED1,2,5,6を点灯させて、微笑む表情』をプログラムします。
from cyberpi import ultrasonic2
ultrasonic2.led_show([100,100,0,0,100,100,0,0], 1)
全てのLEDの明るさを指定するAPIを使用し、LED番号1,2,5,6(目の上側)を100%、その他(目の下側)を0%に設定します。
まとめ
今回は、超音波センサーのLEDを制御することで、mBot2に表情を与える方法について解説しました。
mBot2の動作を表現したり、オリジナルの表情を作ることで、mBot2の楽しみ方が更に広がるはずです。
ぜひ、色々な表情を作ってみてください。
次回は、クアッドRGBセンサーを用いたライントレースプログラムを作成します。
mBlockを使ったmBot2のプログラミング方法を丁寧に解説していておススメです。
CyberPi単体でもプログラミング教育に非常に役立ちます!
