Arduinoと戯れてみる!

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

arduino-lesson45-00Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 45
【マイク・サウンド
検知センサ  その3】

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

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

 

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

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

 

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

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

Lesson 43Lesson 44とで使い方を理解しました。

しかし、このままではちょっとつまらない

ということで、LEDを4つ追加して簡易的な「スペクトラムサウンドセンサ」を作ります。

 

本Lessonでは単純に4つのLEDと抵抗のみ追加して簡単に作ります。

注意
LEDを増やしたい場合、電流値に注意が必要です。

 

増やしたい場合は下記工夫をしてください。

  • ブレッドボード用の別電源を利用する
  • 8bitシフトレジスタを利用する

 

本Lessonではセンサのデジタルポート(D0)は利用しません。

利用するのはアナログポートのA0のみ。

A0の値をアナログ入力ピンで読むことで光るLEDの数を変えるという単純なものです。

できるだけ、簡単なスケッチにするために「スケッチに工夫」はしていません。

簡単にできる割には動作結果は面白いと思います。

 

本Lessonで使用する「マイク・サウンド検知センサ」は以下が同等品となります。
prime対応品を紹介。primeでなければ値段は安いものもあり。

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

 

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

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

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

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

 

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

 

スポンサーリンク

はじめに

ここの説明は、Lesson 43Lesson 44と同じため不要な方はすっ飛ばしてください。

 

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

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

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

Wikipedia コンデンサ型

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

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

 

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

 

本Lessonで使用する「マイク・サウンド検知センサ」は音声レベルがしきい値を超えるとセンサモジュールのD0にHigh、A0にアナログ値が出力されます。

本LessonではA0のアナログ値を利用します。

 

Lesson 45 目標

本Lessonの目標は以下です。

1.簡易的なスペクトラムサウンドセンサを作る
2.スペクトラムサウンドセンサのスケッチを描く
3.スペクトラムサウンドセンサで遊ぶ

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

 

本Lesson、LEDが音にあわせて光る数がかわります。

LEDの数を増やすと、きれいなスペクトラムサウンドセンサを作れます。

本Lessonを参考にぜひ、LEDの数を増やして遊んでください!

 

準備

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

使用する部品は以下となります。

  • マイク・サウンド検知センサ モジュール
  • LED 4個
  • 抵抗 4つ

 

必要なもの

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

 

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

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

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

 

LED(発光ダイオード)は無色、色付きお好みです。

 

使用部品説明

ここの説明は、Lesson 43Lesson 44と同じため不要な方はすっ飛ばしてください。

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

 

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

 

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

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

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

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

センサ部分のmicrophoneがLesson 44で使用した「サウンド検知センサ」を使います。

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

本LessonではA0、G、+のみ使用。

microphone-sound-sensor

 

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

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

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

そのため、現状は省略。

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

 

センサとLM393があれば、センサモジュールを自作できるので興味のある方は自作するのもあり。

 

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

仕様は以下となります。

マイクの仕様がわからないが、Lesson 43と同じと思われる。

マイクの仕様は調査中!
  • 動作電圧:3.3~5.5V
  • 検出しきい値:VDD/2

 

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

 

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

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

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

最後にコードを書いて、作成した「スペクトラムサウンドセンサ」を動かしていきましょう。

 

本Lessonの目的は、「サウンド検知センサ」ではなく、簡易的な「スペクトラムサウンドセンサ」を作ることです!

 

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

 

回路図

さっそく「スペクトラムサウンドセンサ」を作っていきます。

 

使用電子部品はサウンド検知センサ、LED、抵抗のみ。

Arduinoはデジタル入力の8、9、10、11の4つ使用。

アナログ入力はA0を使用。

あとは、5VとGNDのみ。

 

回路図がこちら。

lesson45-schematic

 

 

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

lesson45-breadboard-diagram

 

 

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

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

 

接続

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

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

部品は9個です。

 

使用するポートは、デジタル入力8、9、10、11。

アナログ入力A0。

5V、GND。

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

microphone-sound-sensor

 

 

コードの書き込み

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

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

 

コマンド説明

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

 

サンプルコード

本LessonのスケッチではLEDの点灯のため、デジタル出力、8、9、10、11の4つ使用しています。

別ポートを使用してもかまいません。

好きなポートを利用してください。

//Lesson 45 マイク・サウンド検知センサ モジュール(Microphone sound sensor module)
//簡易的なスペクトラムサウンドセンサの作成
//https://omoroya.com/

const int analogPin = A0; // センサ A0出力接続先
const int led08 =  8;     // LED点灯用
const int led09 =  9;     // LED点灯用
const int led10 = 10;     // LED点灯用
const int led11 = 11;     // LED点灯用

void setup()
{
  pinMode(led08, OUTPUT); //  8番ピンを出力指定
  pinMode(led09, OUTPUT); //  9番ピンを出力指定
  pinMode(led10, OUTPUT); // 10番ピンを出力指定
  pinMode(led11, OUTPUT); // 11番ピンを出力指定
  Serial.begin(9600);     // シリアル通信のデータ転送レートを9600bpsで指定
}

void loop()
{
  int a_val; //analog用変数
  digitalWrite(led08, LOW);   // 08番ピンLOW出力(OFF)
  digitalWrite(led09, LOW);   // 09番ピンLOW出力(OFF)
  digitalWrite(led10, LOW);   // 10番ピンLOW出力(OFF)
  digitalWrite(led11, LOW);   // 11番ピンLOW出力(OFF)

  // A0出力の制御 4つのLEDに割り当て
  a_val = analogRead(analogPin); // A0データの読み込み
  if(a_val < 256){               // A0が255以下
    digitalWrite(led08, HIGH);   // 08番ピンHIGH出力(ON)
  }else if(a_val < 512){         // A0が511以下
    digitalWrite(led08, HIGH);   // 08番ピンHIGH出力(ON)
    digitalWrite(led09, HIGH);   // 09番ピンHIGH出力(ON)
  }else if(a_val < 768){         // A0が767以下
    digitalWrite(led08, HIGH);   // 08番ピンHIGH出力(ON)
    digitalWrite(led09, HIGH);   // 09番ピンHIGH出力(ON)
    digitalWrite(led10, HIGH);   // 10番ピンHIGH出力(ON)
  }else if(a_val < 1024){        // A0が1023以下
    digitalWrite(led08, HIGH);   // 08番ピンHIGH出力(ON)
    digitalWrite(led09, HIGH);   // 09番ピンHIGH出力(ON)
    digitalWrite(led10, HIGH);   // 10番ピンHIGH出力(ON)
    digitalWrite(led11, HIGH);   // 11番ピンHIGH出力(ON)
  }
  Serial.println(a_val); // シリアルモニタに出力(A0出力の確認用)
  delay(400);            //好みで時間調整してください
}

 

動作確認 LEDによるスペクトラム

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

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

できるだけ近づけて発声するのが良いと思います。

※感度は3296Wの半固定抵抗器で調整する必要があります。

  • 音なし → LEDは1個点灯
  • 音あり → 音のレベルによってLEDが複数個点灯

 

感度の調整について
LEDの点灯をスペクトラムにしたいので
シリアルモニタを確認。
A0出力が255以下(200程度など)になるように調整してください。

 

音レベル 255以下

LEDが1個点灯sound-255-one-led

 

音レベル 511以下

LEDが2個点灯sound-511-two-led

 

音レベル 767以下

LEDが3個点灯sound-767-three-led

 

音レベル 1023以下

LEDが4個点灯sound-1023-four-led

 

 

マイクの近くで声を出せば、いい感じでLEDが点灯してくれます。

簡易的に作成しているためLEDが4つしかありませんが、それでもスペクトラムみたいな感じで遊ぶことができます。

LEDの数を増やせば、もっといい感じになるはず。

挑戦してみましょう!

 

まとめ

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

1.簡易的なスペクトラムサウンドセンサを作る
2.スペクトラムサウンドセンサのスケッチを描く
3.スペクトラムサウンドセンサで遊ぶ

 

マイク・サウンド検知センサ その3」は簡易的なスペクトラムサウンドセンサを作りました。

ちょっと、ひと手間増やすだけで簡単に遊ぶことができます。

LEDの数を増やせばもっと綺麗なスペクトラムになります。

 

面実装品のLEDを利用して基板に実装し本格的に作るのもあり。

本格的なスペクトラムサウンドセンサを自作してみてはいかがでしょうか。

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

 

次回、Lesson 46は 思案中。

手元にたまっている色々な表示器で遊ぼうか・・・

説明していないものが、まだまだ手元にたくさんあります。

 

最後に

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

この電子部品の解説をしてほしい!などなどなんでも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%

さらに、初回チャージで2000ポイントもらえるキャンペーンも実施中!
※いつもは1000ポイント、今なら2000ポイントです!

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

 

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

コメント

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