プログラミング
■プログラムを作ってみる MicroPythonの例題
- speech機能を用いてドレミの歌(一部)を歌わせる
- 25点LEDにひし形 / diamondをフェードイン、フェードアウトする
【参考】
BBC micro:bit MicroPython documentation
https://microbit-micropython.readthedocs.io/en/latest/index.html#
■パソコンに開発環境を装備する
上記参考で推奨された開発環境が"Mu"である。(編集から実装テストまで行える。)
これをダウンロードして例題の作成に使うことにする。
使用方法も同サイトに掲載されている。
■コーディング
"BBC micro:bit MicroPython documentation"の例題を参考にすると、以下のようなコードが得られる。
from microbit import *
import speech # link speech-function
#define notes pitch & phoneme
solfa1 = [
"#39SOHWWWWW", # Soh
"#58DOWWWWWW", # Doh
"#35LAOAOAOAOR", # La
"#44FAOAOAOAOR", # Fa
"#46MIYYYYYY", # Mi
"#58DOWWWWWW", # Doh
"#52REYYYYYY" # Re
]
solfa2 = [
"#39SOHWWWWW", # Soh
"#58DOWWWWWW", # Doh
"#35LAOAOAOAOR", # La
"#31SHEYYYYY", # Ti
"#29DOWWWWWW", # Doh
"#26REYYYYYY", # Re
"#29DOWWWWWW" # Doh
]
song1 = ''.join(solfa1)
song2 = ''.join(solfa2)
#define diamond-open
diam0 = Image("00000:"
"00000:"
"00000:"
"00000:"
"00000")
diam1 = Image("00000:"
"00100:"
"01210:"
"00100:"
"00000")
diam2 = Image("00000:"
"00200:"
"02420:"
"00200:"
"00000")
diam3 = Image("00100:"
"01310:"
"13531:"
"01310:"
"00100")
diam4 = Image("00300:"
"03530:"
"35753:"
"03530:"
"00300")
diam5 = Image("00700:"
"07870:"
"78987:"
"07870:"
"00700")
diam_open = [diam0, diam1, diam2, diam3, diam4, diam5]
display.show(diam_open, delay=240)
speech.sing(song1, speed=110)
display.show(Image.CHESSBOARD)
sleep(1200)
speech.sing(song2, speed=110)
diam_open.reverse()
display.show(diam_open, delay=240)
■上記プログラムのソース・ファイル
■"Mu"からmicro:bitへフラッシュできるので、必ずしも必要ということはないが、上記プログラムのhexファイルを参考用に掲載しておく。MicroPythonオンラインエディターでhexファイルを作成してダウンロードが可能である。
■動作テスト
1) 上記のhexファイルをホストコンピューターからターゲットのmicro:bitへフラッシュし終わればすぐに動作を開始する。25点LEDがフェイド・インしたのち、スピーカーからドレミの歌が聞こえ、またLEDがフェイド・アウトして動作は終了する。あまり良い音でもいい声でも無く、歌とは言い難いものかもしれないが、大目に見て成功としておこう。
2) あらかじめスピーカーをカード・エッジコネクターの0,1番に接続しておく。micro:bitの右側にあるものがペットボトルで手作りしたホーン・スピーカー。駆動源はヘッド・フォンのLチャネルである。ペットボトルの外側に貼り付けたRチャネルとの聞こえ方の比較もやってみたところ、効果のあることを確認することができた。