プログラミング

■プログラムを作ってみる 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チャネルとの聞こえ方の比較もやってみたところ、効果のあることを確認することができた。