SpeakerHatで音を出す - hiroaki-ogawa/m5stick-c-plus GitHub Wiki
M5Stickに取り付けたSpeaker Hatで音を出してみましょう。
詳しく書かれたサイトがあるので、基本的にこの手順をなぞります。
スピーカーを取り付ける
電源ボタンを3秒以上長押しして電源を切ります
スピーカーを差し込み
電源ボタンを1秒おします
UIFlowの変更
実は今まで使っていたUIFlow のバージョンではSpeaker Hatで音をだすことができません。 でも大丈夫。ちょっと古いバージョンのUIFlowに変更すると、音をだすことができます。
早速 M5Burnerを再び起動してバージョン1.7.5のUIFlowをインストールしましょう。
まずバージョンをあわせて、ダウンロードをクリック(下の写真では右下が Burn になってますが、初回は Download になっているはず)
そのあとBurnをクリック
wavファイルのアップロード
続いて、鳴らす音をM5StickCにアップロードします。
とりあえずサンプル音声を置いておきました
まずはご自分のパソコンへダウンロードしてください。なお、この音声は以下のサイトで作成しました。OpenJtalkという古い音声合成を使っています。音質はいまいちですが手軽でライセンスフリーなのがいいですね。
M5StickC PlusへのアップロードもUI Flow経由で行います。ただし、M5StickC Plus用のUI Flowではアップロード出来るファイルサイズが50キロバイトに制限されているので、M5Stack用のUI Flowを使います。右上隅のメニューから設定を選択して、
core2を選択してOKをクリックします
画面左の絵がM5StickC Plusから四角いM5Stackに変わったことを確認して、画面中央上のManagerを開きます。
Managerではwavを選択してAdd WAVをクリック
ここで、先程ダウンロードしておいた ohayo.wav を選択します
※好きな音楽ファイルを設定できますが、wav形式であること、サイズは100キロバイト以下である必要があります。
ファイルのダウンロードが終わったら、キャンセルで元の画面に戻ります
再び設定でM5StickC Plusに戻します
音を鳴らす
以下のプログラムで音がなります。もし音声ファイルを変更した場合は、ohayo.wav の部分の変更をお忘れなく。
コード部分は以下の通り
from machine import I2S
from wav import wave
wav = wave.open('res/ohayo.wav')
i2s = I2S(mode=I2S.MODE_MASTER | I2S.MODE_TX | I2S.MODE_DAC_BUILT_IN)
i2s.set_dac_mode(i2s.DAC_RIGHT_EN)
i2s.sample_rate(wav.getframerate())
i2s.bits(wav.getsampwidth() * 8)
i2s.nchannels(wav.getnchannels())
i2s.volume(100)
while True:
data = wav.readframes(256)
if len(data) > 0:
i2s.write(data)
else:
wav.close()
i2s.deinit()
break
python は行の先頭の字下げの余白の幅が正しくないと動作しません。字下げまで含めてコピーして使ってください。
これで画面下のRunボタンを押して Successっぽいメッセージが出たら本体の「M5」と書かれている大きなボタンを押してみましょう。 うまく行けば画面が緑になり、音声が聞こえるはずです。