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 になっているはず) image そのあとBurnをクリック image

wavファイルのアップロード

続いて、鳴らす音をM5StickCにアップロードします。

とりあえずサンプル音声を置いておきました

ohayo.wav

まずはご自分のパソコンへダウンロードしてください。なお、この音声は以下のサイトで作成しました。OpenJtalkという古い音声合成を使っています。音質はいまいちですが手軽でライセンスフリーなのがいいですね。

note.cman.jp

M5StickC PlusへのアップロードもUI Flow経由で行います。ただし、M5StickC Plus用のUI Flowではアップロード出来るファイルサイズが50キロバイトに制限されているので、M5Stack用のUI Flowを使います。右上隅のメニューから設定を選択して、

image

core2を選択してOKをクリックします

image

画面左の絵がM5StickC Plusから四角いM5Stackに変わったことを確認して、画面中央上のManagerを開きます。

image

Managerではwavを選択してAdd WAVをクリック

image

ここで、先程ダウンロードしておいた ohayo.wav を選択します

※好きな音楽ファイルを設定できますが、wav形式であること、サイズは100キロバイト以下である必要があります。

image image

ファイルのダウンロードが終わったら、キャンセルで元の画面に戻ります

image

再び設定でM5StickC Plusに戻します

image

image

音を鳴らす

以下のプログラムで音がなります。もし音声ファイルを変更した場合は、ohayo.wav の部分の変更をお忘れなく。

image

コード部分は以下の通り

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」と書かれている大きなボタンを押してみましょう。 うまく行けば画面が緑になり、音声が聞こえるはずです。

image