\ AmazonにてArduino UNO R4 発売中!! /

Arduino 入門 Lesson 43 【マイク・サウンド検知センサ その1】

arduino-lesson43-00 Arduino入門編
記事に広告(アフィリエイト広告)が含まれています。
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 43
【マイク・サウンド
検知センサ その1】

こにんちは、管理人のomoroyaです。

センサーの使い方の基本を学習する入門編。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

 

Lesson 43は 【マイク・サウンド検知センサ その1

※高感度音声センサ、Microphone sound sensor moduleなどと呼ばれています。

マイクで音を拾い音のレベルがしきい値をこえるとデジタル出力を出すというもの。

本Lessonで使用するものはモジュールとなります。

アナログ出力もあり、マイクの電圧値レベルを取り出すことが可能となっています。

 

詳細な回路はLesson 39の「タッチセンサ」とまるっと同じです。

センサー部分が音声センサに変わっただけ。

音声センサ部分は、コンデンサマイク(ECM)がついていると思われます。
※1 ECM:Electret Condenser Microphone
※2 FET内蔵型のエレクトレット・コンデンサ・マイクのこと

 

また、デジタル出力に変換するため、お馴染みの「LM393:2回路入り低動作電圧低オフセット電圧コンパレータ」が使われています。

このコンパレータを手持ちしておけば自作も可能です。

1個あたり数十円程度で購入可能です。
※電子部品専門店などでお買い求めください。

Amazonでも購入できないこともないですが・・・。

Amazonにあるものは現状、あまりにも微妙なため紹介するのはやめておきます。

 

本Lessonで使用する「マイク・サウンド検知センサ」は以下が同等品となります。
prime対応品を紹介。

基板に実装されているモジュールとなります。

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

まず、音声センサとはなんぞやということですが・・・。

そのためには、「ECM:エレクトレットコンデンサマイク」について知る必要があります。

Wikipediaの説明を記載しておきます。

Wikipedia コンデンサ型

互いに平行な2枚の金属板を近接させるとコンデンサになる。その一方をダイヤフラム(蒸着などにより金属を貼り付けたプラスチックフィルム、または金属薄膜)に置き換えると、振動に応じて電極間の距離が変わるため、音声信号に比例した静電容量の変化が発生する。高抵抗を介して電極間に直流電圧をかけると、静電容量の変化をそれに比例した電圧の変化として取り出すことができる(コンデンサマイクロホンカプセル)。

ちょっと説明がわかりずらいですね・・・。

 

埼玉大学の下記のページがわかりやすいかなと思いました。

 

本Lessonで使用する「マイク・サウンド検知センサ」の動作はそんなに難しくありません。

音声レベルがしきい値を超えるとセンサモジュールのD0にHigh、A0にアナログ値が出力されます。

 

Lesson 43 目標

本Lessonの目標は以下です。

1.マイク・サウンド検知センサの使い方を学習する
2.音を検知するスケッチを描く
3.音声センサで遊ぶ

いつものように、遊ぶことが重要です。

 

今回のセンサも動かすのは簡単。

声を出したり、手をたたいたりしてセンサが反応するかどうか遊びます。

動作は単純なので、遊びなどに使うには十分なセンサです。

音を検知して何かをさせるとか考えてみると・・・
色々使えそうなセンサですよね。

 

準備

ではLessonの準備に取り掛かります。

 

部品は「マイク・サウンド検知センサ モジュール」のみ。

いつものように、自作したLチカも使います。

モジュールに実装されたLEDで確認できますが、せっかく作ったので・・・。

電子工作編 Arduino 【Lチカ作ってみた】
スケッチ(コード)の動作確認。Lチカ部分を毎回ブレッドボードに組むのは面倒だなと突然思い・・・。13番ピンを使えばArduino上のLEDを制御できるため外付けLEDは本当はいらない。でも。味気ないですよね。学習用に説明するには、外付けでL…

 

必要なもの

※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

Jumper wire、抵抗は今後も頻繁に利用します。

Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

短めが使いやすい場合も。

 

抵抗も単品で揃えるよりはセットをおすすめします。

 

抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!

という方は、「電子工作基本部品セット」が使い勝手が良い。

 

使用部品説明

マイク・サウンド検知センサ モジュールについて説明していきます。

マイク・サウンド検知センサモジュールは、コンデンサマイク、低動作電圧低オフセット電圧コンパレータLM393、3296Wの半固定抵抗器、6個のチップ抵抗、2個のLEDから構成されています。

これまで解説したことがあるセンサモジュールのセンサの部分だけが異なるモジュールです。

 

サウンド検知センサ 実物写真

下の写真がサウンド検知センサの実物写真です。

本Lessonで使用するものは、ECM(エレクトレットコンデンサマイク)が基板実装されたもの。

端子は上から下記となっています。

  • A0 アナログ出力ピン
  • G ArduinoのGNDに接続
  • + Arduinoの5Vに接続
  • D0 デジタル出力ピン

microphone-sound-sensor

 

マイク・サウンド検知センサ 回路図

マイク・サウンド検知センサの回路図を示します。

すでに説明しましたが回路はLesson 39の「タッチセンサ」とセンサ部分が異なるだけ。

そのため、現状は省略。

時間を見つけて記載する予定です。

 

センサとLM393があれば、センサモジュールを自作できるということです。

興味のある方は、ブレッドボード上に自作するのもありです!

 

マイク・サウンド検知センサ 仕様

仕様は以下となります。

  • 動作電圧:3.3~5.5V
  • 検出しきい値:VDD/2

 

Arduinoの仕様範囲内で使用していれば問題になることはありません。

 

実践 回路作成とコード作成

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、マイク・サウンド検知センサを動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

マイク・サウンド検知センサが実装されたモジュールの端子を接続していきます。

Arduinoはデジタル入力は7、アナログ入力はA0を使用。

あとは、5VとGNDのみ。

デジタル出力の13には確認用のLEDをつけます。(自作したLチカ)

 

回路図がこちら。
※LEDが不要の場合は、13番ピンには何も接続する必要はありません。

lesson43-schematic

こちらがブレッドボード図。

lesson43-breadboard-diagram

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

部品は「マイク・サウンド検知センサ」、LED抵抗のみとなります。
※センサが実装されたモジュール

部品は3個、接続は簡単です。

マイク・サウンド検知センサと接続するジャンパーワイヤーはF-Mを使用してます。

そのため、Arduinoに面実装されているLEDで確認する場合はブレッドボードもいりません。

 

毎回ブレッドボードにLEDをセットするのも面倒なので「Lチカ」自作しました。

おすすめです。

 

使用するポートは、デジタル入力7、アナログ入力0、5V、GND。

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

microphone-sound-sensor

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード

本Lessonのスケッチではデジタル出力として13を指定しています。

そのため、外付けのLEDがなくてもArduinoに面実装されているLEDが「点灯」「消灯」します。

面実装されたLEDで確認できるため外付けのLEDはなしでもかまいません

//Lesson 43 マイク・サウンド検知センサ モジュール(Microphone sound sensor module)
//音を検知するセンサ
//https://omoroya.com/

const int led = 13;       // LED点灯確認用
const int digitalPin = 7; // センサ D0出力接続先
const int analogPin = A0; // センサ A0出力接続先

void setup()
{
  pinMode(led, OUTPUT);         //13番ピンを出力指定
  pinMode(digitalPin, INPUT);   //7番ピンを入力指定
  Serial.begin(9600);           //シリアル通信のデータ転送レートを9600bpsで指定
}

void loop()
{
  int d_val;    // digital用変数
  float a_val;  //analog用変数
  
  // D0出力の制御
  d_val = digitalRead(digitalPin); 
  if(d_val == HIGH){         // D0出力がHIGH
    digitalWrite(led, HIGH); // 13番ピンHIGH出力(LチカON)
  }
  else if(d_val == LOW){     // D0出力がLOW
    digitalWrite(led, LOW);  // 13番ピンLOW出力(LチカOFF)
  }

  // A0出力の制御 Lesonn 43は電圧換算(感度調整しやすように)
  // モジュールへの電源供給が5Vの場合はしきい値は2.5Vを目安としてください
  // a_val = analogRead(analogPin);                      //A0データの読み込み
  a_val = (float)analogRead(analogPin) / 1024.0f * 5.0f; //A0データを読み込み電圧に変換
  Serial.println(a_val);                                 // シリアルモニタに出力

  delay(100);
}

 

動作確認 LEDの「点灯」「消灯」

では、さっそく動作を確認していきます。

マイク・サウンド検知センサに向かって声を出したり手をたたいたりしてみてください。

※感度は3296Wの半固定抵抗器で調整してください

  • 音なし → LEDは消灯
  • 音あり → LED点灯

 

音がない状態

自作の「Lチカ」、モジュールのLEDが消灯。

without-sound

 

音がある状態

自作の「Lチカ」、モジュールのLEDが点灯。

with-sound

音を検知できました!

 

今回のセンサは、感度調整をしっかりとする必要があります。

シリアルプロッタを表示させ、3296Wの半固定抵抗器を動かして調整してください。

LEDが点灯する直前を見つけて調整するのが良いと考えます。

シリアルモニタ、シリアルプロッタで2.5V前後付近でLEDが点灯する手前に調整するのが良いよ考えます。

 

まとめ

本Lessonは、以下を目標としました。

1.マイク・サウンド検知センサの使い方を学習する
2.音を検知するスケッチを描く
3.音声センサで遊ぶ

 

マイク・サウンド検知センサで音を検出することができました。

他の電子部品と組み合わせることで色んな事ができる汎用性の高いセンサです。

ぜひ、色々組み合わせてあそんでみてください。

 

Lesson 42【マイク・サウンド検知センサ その1】 はここまで。

色々工夫をすれば遊びに使えるセンサです。

ぜひ、遊んでみてください。

疑問点、質問などありましたら気軽にコメントください。

 

次回、Lesson 44は 【マイク・サウンド検知センサ その2】です。

Arduino 入門 Lesson 44 【マイク・サウンド検知センサ その2】
Lesson 44【マイク・サウンド検知センサ その2】。Lesson 43と同じく音声センサ、Microphone sound sensor moduleなど呼ばれています。マイクで音を拾い音のレベルがしきい値をこえるとデジタル出力を出す…

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分) 一般 プライム会員
5,000円~19,999円 0.5% 1.0%
2,0000円~39,999円 1.0% 1.5%
40,000円~89,999円 1.5% 2.0%
90,000円~ 2.0% 2.5%

さらに、初回チャージで1000ポイントもらえるキャンペーンも実施中!

\Amazonギフト券 1000ポイントキャンペーン/
Amazonチャージ 初回購入で1000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

  1. niwano より:

    勉強になります。有難うございます。
    「fritzing」のことが書いてあったので、「fritzing」に寄り道してみたのですが、この「ky-037」fritzingファイルはどこにあるのでしょうか?色々検索してみたのですが、見つかりません。探し方のコツがあれば教えて頂きたいと思います。

    • omoroya omoroya より:

      コメントありがとうございます。
      fritzingの部品であるky-037は管理人が自分で作りました。

  2. sso1 より:

    声を出したり手を叩いたり音楽をかけても一切シリアルプロッタの波形が変わりません。マイクの感度を調整するべきでしょうか?半固定抵抗器をマイナスドライバーで外そうとしても外れません。どうすればいいですか?

    • omoroya omoroya より:

      コメントありがとうございます。
      まずは半固定抵抗器のつまみを動してシリアルモニタの数値が動くか確認してください。
      動かない場合は、そもそも壊れていると考えます。

      また、マイクに口をあてるぐらいでないと反応しないかもしれません。
      感度を上げたいのであればA0の出力を増幅してあげた方が良いと思います。

      LEDの点灯、消灯の確認であれば
      表示されている値を半固定抵抗器を調整して2.5V付近まで動かしてください。
      あとは、LEDが点灯する寸前に調整してください。
      それで声を出せば、LEDが点灯するはずです。

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