M5Stackで音を鳴らしてみた【超初心者がIoT開発に挑んでみる#9】

IoT

※本ページはプロモーションが含まれています。

読者の方が増えてきたので、リクエスト形式の記事も書いていこうかなと思います。
”こんなことできないのか?”といったリクエストはもちろんですが、”こういうことを勉強すればもっと力がつくのでは?”などのアドバイスもお待ちしています。この記事のコメントかX(旧Twitter)にメッセージをお願いします!
ただし、筆者の能力以上のリクエストにはお応えできませんし、能力的にできたとしても時間の都合上100%お応えできるかは保証できません。その辺りはご了承ください・・・

はじめに

前回はM5Stackでモータ制御をして、M5Stackのボタンにさまざまな機能を付与してみました。

今回は全く毛色が違いますが、M5Stackで音を鳴らしてみたいと思います。

※以降はM5Stack Basic V2.6を使うことを前提に話を進めていくのでご注意を!

M5Stackで音を鳴らすスケッチ

 M5Stackで音を鳴らすスケッチは以下になります。

#include <M5Stack.h>

int i = 0;

void setup() {

  M5.begin();

}

void loop() {

  M5.update();

  if (M5.BtnA.isPressed()) {
    for (i = 0; i < 3; i++) {
      M5.Speaker.tone(800, 200);  //800Hzの音を200msec鳴らす
      delay(200);
      M5.Speaker.mute();          //音を止める
      delay(200);
    }
  }
}

上記のスケッチをM5StackにUploadして、ボタンAを押せば、何やら嫌な感じの音がなります。

ボタンの使い方なんて忘れたという方はこちらの記事に書いてあります。とても簡単です!

音の大きさを調整してみる

続いて、音量(0〜10)を調整する機能をつけてみます。ついでに音量を画面に表示してみます。スケッチは以下のようになります。

意外と大きな音がなりますので、注意してください。筆者は音量5くらいでうるさく感じました。

#include <M5Stack.h>

int i = 0;
int volume = 1;  //デフォルトの音量
int x = 140;
int y = 100;

void setup() {
  M5.begin();
  M5.Lcd.begin();
  M5.Lcd.fillScreen(BLACK);
  M5.Lcd.setTextColor(BLUE);
  M5.Lcd.setTextSize(10);
  M5.Lcd.setCursor(x, y);
  M5.Lcd.clear(BLACK);
  M5.Lcd.println(volume);
}

void loop() {

  M5.update();

  if (M5.BtnA.wasPressed()) {
    M5.Speaker.setVolume(volume);  //音量調整
    for (i = 0; i < 3; i++) {
      M5.Speaker.tone(800, 200);  //800Hzの音を200msec鳴らす
      delay(200);
      M5.Speaker.mute();  //音を止める
      delay(200);
    }
    M5.Lcd.setCursor(x, y);
    M5.Lcd.clear(BLACK);
    M5.Lcd.println(volume);  //音量を表示
  }
  if (M5.BtnB.wasPressed()) {
    if (volume < 10) {  //音量は最大10
      volume++;         //ボタンBが押されたら音量を1上げる
    }
    M5.Lcd.setCursor(x, y);
    M5.Lcd.clear(BLACK);
    M5.Lcd.println(volume);  //音量を表示
  }
  if (M5.BtnC.wasPressed()) {
    if (volume > 0) {  //音量は最小1
      volume--;        //ボタンCが押されたら音量を1下げる
    }
    M5.Lcd.setCursor(x, y);
    M5.Lcd.clear(BLACK);
    M5.Lcd.println(volume);  //音量を表示
  }
}

上記スケッチをM5StackにUploadしてみると下の画像(左)のように1が表示されるはずです。
この状態でボタンAを押してみると、音が鳴ります。
次にボタンBやボタンCを押してみてください。すると、画面に表示される数字が変化します。今回は下の画像(右)のように画面の表示を5にしてみました。この状態でボタンAを押してみると、1のときよりも音が大きくなると思います。

音量を調整することができ、ついでに画面に音量を表示することができましたね。

最後に

 今回はM5Stackで音を鳴らしてみました。人間の五感の1つである聴覚にアプローチできる手段を学ぶことができました。前回紹介したモータ制御の機能として音を発する機能を付与したりしても面白そうですね。たとえば、モータ動作中は音を発するとか、移動限界を設定して限界座標まで来たらアラームを鳴らすとか・・・アイデアが溢れてきますね!

それでは今回はこの辺で終わります。また次回をお楽しみに!

おすすめの書籍

 もっと詳しくM5Stackについて知りたい!という方はこちらの書籍がおすすめです。とても詳しく載っていてわかりやすいです。

とりあえず何か作ってみたい!という方にはこちらの書籍がおすすめです。書いてある通りにやるだけでお手軽にIoTデバイスを作ることができます。

※Amazonのアソシエイトとして、当メディア(Nラボ備忘録)は適格販売により収入を得ています。

他記事のご紹介

当ブログではさまざまな記事を投稿しています。最近はExcelに関する記事を投稿しています。便利な小技をたくさん紹介しているので、ぜひご覧ください!

本ページはプロモーションが含まれています。

スポンサーリンク
IoT
T-Kをフォローする

コメント

タイトルとURLをコピーしました