フォト
2023年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« M5stackで日本語表示 | トップページ | M5StackでMML単音演奏 »

2020年1月22日 (水)

M5Stackのビープ音、Tone音の爆音対策

M5Stackはスピーカーが搭載されており、
標準のAPIを使ってビープ音やTone音(周波数を指定して鳴らす)を簡単に鳴らすことが出来ます。
ただし、「爆音」です。
これには、ちょっと困りました。鳴らすとやかましいです。

ググってみると、多くの利用者が同様に困っているようです。
何とかならないかなぁ、と思い試行錯誤してみました。
結論としては、とりあえず、何とかなりました。

01_20200122220601

とりあえず、単音440Hz(ラ)の音を音量指定して鳴らしてみました。

サンプルスケッチ
音量指定できる新しいtone関数、toneEx()を作成しました。
音の大きさの制御は、デューティ比を操作で制御しています。

toneEx()の3番目の引数、volに0(無音)、1(最小) ~ 9(最大)の指定にて音量を指定することが出来ます。
サンプルスケッチでは、M5Stackの左ボタンで最小音、真ん中ボタンで3、左ボタンで5を指定して音を鳴らすことが出来ます。

耳で聞いた感じでは、いい感じで音量制御出来ています。
最小の1でも十分聞こえ、ちょうど良いかもしれません。

次の段階として、Arduino用に作成したMML演奏ライブラリを試してみます。


追記 2021/03/29 
この記事へのアクセスが多々あるので、遅レス..
この爆音対策は、M5Stack 0.3.1で行われているようです(動作未確認)
この記事を参考にして、らびやんさんがプルリクして本家に組み込まれたようです。

■ 関連記事
  ・update: M5.Speaker.setVolume works with M5.Speaker.tone . #205
  ・https://twitter.com/lovyan03/status/1245712776514768897
     duty設定してボリューム下げるのM5.Speakerに突っ込んでプルリク出しても良さそうな https://t.co/jQZsIowOLH

« M5stackで日本語表示 | トップページ | M5StackでMML単音演奏 »

arduino」カテゴリの記事

ESP32・ESP8226」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

« M5stackで日本語表示 | トップページ | M5StackでMML単音演奏 »