« Arduino - Arduino用容量倍化ATmega328P到着 | トップページ | Arduino - サウンドセンサーでWindowsをコントロール »

Arduino - Arduino Sound Sensor Shield

今年第1号の工作はサウンドセンサ~~~
なんというか、出尽くした感じであまり人気がないし、今後のネタの布石にでもsweat02
というわけで手持ちのコンデンサ・マイクをかき集めてみた。

Arduinoshld_conmic_2

正式な名前はエレクトレット・コンデンサ・マイクロフォンというらしいけど、面倒なのでマイクで略。

手持ちのマイクには4種類あって、秋月さんで買ったのが3種類と、千石さんで買ったのが1種類・・・のはずなんだけど見つからない。
このうち安かったC9767というやつと、小型で薄くなったWM-E13UYの2種類を使ってみることにした。
というのもピン足が付いていたからなんだけど・・・

バンドやっていた頃はコンデンサ・マイクなんていくらでも見ていたけど、まさかこういう形で使うことになるとは思わなんだ。

--

そもそものきっかけは共立エレショップさんで取り扱っている「LED式ティーライトキャンドル/TLC-L1」という、LEDがゆらゆら発光してキャンドルのような灯火をするアイテム。
※「(LED)ライティング/照明効果」にあります

Ledcandle1

これには音センサーが内蔵されていて、フッと息を吹きかけたり、叩いたりして音を浴びせるとLEDのスイッチがオン・オフするという仕組みなのです。
ようは空気の振動さえ与えれば良いわけで、いろいろと応用も利きそうです。
ぶっちゃけNDSのアレと同じ要領ですな。

そして直径3.5cm程に納まるこの仕組みを知るために分解してみた。

Ledcandle2

このサイズだけあって意外と手が込んでいるようで、おまけに黒く固められた部分が2箇所あってパターンが追いきれないっす。
たぶんマイク用のアンプとLED制御用のICなんだろう、と思う・・・なんで固めるのsad

で、このセンサー部分にとても興味があった。
う~む、これだけで出来てしまうんなら簡単なのだろうなぁ。きっと。

--

ちょっと話それるけど、Arduino用のProtoShield v2を組み上げておいた。

Arduinoshld_2

裏側はこんな感じ。
手前の4ピンあるヘッダー(メス)は、3ピンのみ接続しているけど、実はリセット用に1ピンだけ生きている。
奥側の黒い部分は、Arduino本体とショートしないよう絶縁テープを貼り付けておいた。

Arduinoshld_1

ミニブレッドボードをくっつけて、Arduinoと合体させたところ。
よく見るとRGBだ。

これには少々のパーツが乗っていて、スイッチ1個とLED2個が任意に使用できる。
1ピンだけ立っているヘッダが、接続用のピン。
もう1つのスイッチはリセット用で固定。

LEDが明る過ぎて眩しい。正直邪魔になるくらい。
もっと輝度の低いLEDか抵抗を変えるか拡散キャップを被せた方が良いと思う。
ちなみに両方ともLEDが透明だけど、光らせると違う色です。

--

準備万端、後は回路を組むだけだ。
が、やはり人気がないのか、決め手となるような回路図が今一つ見つからず難儀してしまった。
いや、沢山あるのだけど、適用出来るのかの判断が出来ない。

マイクの部分はなんとなくわかった。
問題はアンプの部分なんだけど、さすがにオーディオ用の回路じゃまずいだろうし、こういうとこに関する知識が全くもって貧弱なので、見よう見まねでやっつけることにした。

Soundsensor_sch_2SoundSensorShield schematic

こんな感じ。
これでいいのだろうか??

最初はトランジスタを使った回路を組んだのだけど、反応しているのかわからないような状態で不安定だった。
そこで資料が多いLM358Nというアンプの使用を試みる。
遥か昔、取り敢えず買っておいたのが何個かある。

そしたら、なんとなく良い感じに反応してくれたので、いろいろ調整しながら最終的に上の回路図となった。
アンプや周辺についてはとにかくいろんな構成があって、どの構成を使えば良いのかさっぱりわからなかった。
とにかくシンプルな構成で選別・・・

マイク直下の抵抗とコンデンサは定石みたいだけど、これはローパスとしての意味なのだろうか。
形は分っても値がこれで良いのかどうか。。。

本来なら目的に応じて抵抗値やら決めていくんだろうなあ。勉強せんと。
と思いつつ、どこかにすっごく分りやすいサイトや書籍はないかしら。
不安だらけのまま、回路の組み上げに入る。

--

そんなわけで出来上がったサウンドセンサー・シールド

Arduinoshld_soundsensor

回路自体は別のブレッドボードで動作確認済みなので、この小さなブレッドボードにいかに詰め込むかが楽しいところcoldsweats01
なんとかギリギリで納まりました。

LEDはPWMでコントロールしていて、音の強弱に合わせて光るようにした。
今考えればシールドのLED使えば良かった。
何のためにあるんだか・・・orz

--

お次はソースコードなんだけど、センサーの結果をグラフ化するために、Processingを利用することにしました。
なので、それを想定したコーディングになってます。

Source code on ArduinoIDE

Source code on Processing

Processingのコードで、取得した値を平滑化してくれるフィルターを入れてますが、建築発明工作ゼミ2008さんのArduino 加速度センサのコードを一部参照させて頂きました。
ここにはArduinoを使用した素晴らしい成果が沢山あります。
ありがとうございましたm(_ _)m

--

サウンドセンサー・シールドの結果を見てみましょう。

Processing_soundsensor1

まずProcessingのコードを実行すると、上の画像のようなグラフが右から左へ流れます。
最初は何も描画されてなくて、クリックすると「Sampling!」という文字列が出て、センサーから取得した値をリアルタイムにグラフ化していきます。

もう一度クリックすると停止します。
アナログ値は1024段階なので、割って512にしています。

 

テストは測定開始から値が落ち着いて、マイクから15cmくらいの場所で軽く息を吹き掛けた状態です。
ではC9767の結果から。

Processing_soundsensor2C9767 ECM

続いてWM-E13UYの結果。

Processing_soundsensor3WM-E13UY ECM

おぉ、反応が全く異なる結果に!
ノイズが入りまくるのは仕方が無いとして、落ち着いた時の安定感が違うし、何よりも大きさがまるで違いますねえ。
ちなみにVRはそれぞれで調整するべきなんだけど、両方とも同じにしてマイクだけ変更しています。いや、そもそもVRがちゃんと効いているのかすら分らないけど・・・

このWM-E13UYというのは、振動に強いバックエレクトレットタイプで、高周波ノイズ削減用に33pFのキャパシタを内蔵してます。
何のことやらさっぱりです。
小さいのに凄い。

考えてみたらマイクのデータシートの見方がよく分ってない・・・つまりそういったことでC9767よりは良い結果になったのでしょうcoldsweats01
アンプ周りを調整すればまだ良くなるのかな?
改めてアンプは重要なんだな、ということがわかった。

他にもドラムのバスドラを4部打ちで鳴らしてみたのだけど、ちゃんと打ったタイミングで反応はする。
でも、同じ音圧なのに全く違ったグラフになるのは何故なんだろう?
疑問だらけですが、やっぱりやってみないとわからないものです。

今、秋月さんではアンプ内蔵の小型マイクがあるらしいので、機会があればそっちでも試してみたいと思います。
簡単だと思っていましたが、なんだかんだ疲れましたsad
でも、作ってみてフィジカルらしさがあると思いました。

 

そういえばスイッチサイエンスさんでは遂にFunnel I/Oが入荷するようで、今だけ予約特価になってます。
たぶん安いのは今日か明日まで・・・う~む、どうしようか・・・安いうちに買っておくべきか、使う宛てもないしなあ。
これの本領って小型スタンドアロン化やXBeeとの連携だよねえ。。。う~む。

--

2016/10/31追記

要望がありましたので、Fritzingでの配置画像をアップロードしました!

3枚ありますが、上から本来のイメージに合わせた配置図、大きめのブレッドボードで再配置したもの、当時PaaSで作成したオリジナル図、となっております。

Soundsensorshield__4

↑本来のイメージに合わせた配置

Soundsensorshield2__3

↑ 大きめのブレッドボードで再配置

Arduino_soundsensor_3

↑ PaaSで作成したオリジナル図

どうぞご参照ください~happy01

|

« Arduino - Arduino用容量倍化ATmega328P到着 | トップページ | Arduino - サウンドセンサーでWindowsをコントロール »

電子工作」カテゴリの記事

コメント

はじめまして、工学部の者です。
私も、サウンドセンサを作ってみようと思い
このサイトを見て回路を組もうとしたんですが、
上手く組むことができません。
Fritzingで書いた回路図がありましたら
教えて頂きたいです。
よろしくお願い致します。

投稿: あき | 2016-10-23 17:27

あきさん、はじめまして!

当時、Fritzingは動作が重かったもので、代わりにPasSというソフトウェアを使用してブレッドボードの回路図を作成していた記憶があります。
ただ、そのデータ自体もバックアップしてどこかへ行ってしまっているのでsweat02、今夜にでも探してみますね。
出来る限りFritzingにも移植してみますので、しばしお待ち下さい。

投稿: SatE-O | 2016-10-24 12:56

コメントを書く



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


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/204580/43716486

この記事へのトラックバック一覧です: Arduino - Arduino Sound Sensor Shield:

« Arduino - Arduino用容量倍化ATmega328P到着 | トップページ | Arduino - サウンドセンサーでWindowsをコントロール »