動機など
先日 M5StickC を購入した際、合わせて買っていた「Speaker Hat」を使ってみようとサンプルコードを開いてみたものの、公式のスケッチサンプルが仰々しく(?)、私の手には余るものだったので、とりあえず音を出すにはどうしたらいいかを調べることにしました。
音を出す方法
参考にしたサイト
最終的にこちらの説明やソースがわかりやすかったです。
M5Stack の内蔵スピーカーから Beep 音(電子音)を出す実験(mgo-tec電子工作)
ポイントだと思ったところ
- SPEAKER HAT で音を出すのに使うのは26番ピン
- 音を出すのには dacWrite() 関数が使える。
- 調べたところ、これ以外にも方法はありそう。参考→ESP-WROOM-32に関するTIPSの中にある「DAC(アナログ出力)」「PWM等」の部分
- 音量を調整しようとしたら、ひとまずdacWrite()を使うことになるのかも。
ソースコード
これで「プー」と1回鳴ります。
#define GPIO_PIN 26 //SPEAKER HATの出力は26番ピン
// スピーカーの音量調整。
uint8_t beepVolume = 50;
// とりあえず1回だけ鳴らすために、setup()の中に書いた
void setup() {
for (int i = 0; i <= 1000; i++) {
dacWrite(GPIO_PIN, 0);
delayMicroseconds(500);
dacWrite(GPIO_PIN, beepVolume);
delayMicroseconds(500);
}
}
感想など
とりあえずこれで、M5StickC+SPEAKER HATで「音を出す仕組みの基本」みたいなところはわかりました。
それにしても、ノイズがかなり出ます。使い方によっては気になると思いますが、今回はひとまず音が出たのでよしとします。