理乃美

ソフトとハードと論理の覚え書き

Spresenseでデジタルマイクを使ってみる

2020-01-05 16:50:19 | 電子工作

SPRESENSEでデジタルマイクを利用する実験をしたが、少々てこずったのでその記録。

 1. ハードウェアの準備

 2. Arduino チュートリアルの「WAV形式で録音する」を動かす

   3. 結果

 ----------

1. ハードウェアの準備

   チュートリアルからリンクが張られているが、デジタルマイクを利用するためには拡張ボートの改造(というほどでもない)が必要。

   R49/R50 の切り替えはマイクバイアスの代わりに電源1.8Vを供給するためのもの。

   JP14をショートさせるのは、カップリングコンデンサをバイパスするため。JP14に「ショートジャンパを使用するのが便利」と書いてあるがどうだろう。

 

 ここでまず躓いたのがR50の0Ωチップ抵抗の除去。普段使いのはんだごてでは半田が溶けない。落ち着いて考えれば、今時の電子製品だから無鉛はんだを使っている。有鉛はんだ向けのこてじゃぁだめだ、ということで、ステーションタイプのはんだごてに取り換えて、こての温度を無鉛はんだむけに上げたらOK.

 次に、JP14だが、秋月電子でピンヘッダーとジャンパを調達してきたが、それが失敗。秋月のハーフピッチ用ジャンパは、実測で厚みが1.6mmあった。ジャンパを一つだけ刺すなら問題なし。二つ並べるのも、まあ可能。だけど、三つ並べて刺すのは不可能。JP14は四つ並べて刺すことになるので、こりゃNG. 結局、ピンヘッダーは使わず、ジャンパ線をとばした。

 

 マイクは、「使用できるデジタル・シリコンMEMSマイクの例」にあった SPH0641LU4H-1 をマルツ経由で購入。

   現物を見てそのサイズに引く。Webサイトの製品写真にだまされた感じ。aitendoで投げ売りされていた基板をつかってICピッチに変換。老眼にはつらい作業で、タミヤのヘッドルーペ にお出まし願った。

全体としてはこんな感じ

 

2. Arduino チュートリアルの「WAV形式で録音する」を動かす

母艦は、Windows10のPC.

「スタートガイド」に従い、Arduino IDEや USBドライバーのインストールは SPRESENSEのWebサイトに記載のとおりですんなりOK.

「LEDのスケッチ」も順調に動いたが... 実は、ここまではメインボードと拡張ボードがちゃんと結合されていなくても動いてしまう。あるサイトのQ&Aを読んで、念のため確認したらメインボードと拡張ボードとの嵌め合わせが不十分だった。

次に「チュートリアル」に従いまずはDSPファイルのインストール。といっても、FAT32フォーマットしたmicroSDカードにダウンロードしたファイル4つを置くだけ。microSDは、class 10の16GB。新しく買ったのではなくラズパイで使っていたもの。

で「ビープ音を鳴らしてみる」をすんなり終えたあと、再生系のサンプルは飛ばしてマイク利用のサンプルに進んだのだが、そこでいろいろと...

最終的には、「WAV形式で録音する」を動かすことができた。

「WAV形式で録音する」のスケッチの名前はrecorder_wav. 電源が入ったら10秒ほどステレオで録音してSDカードのルートディレクトリにSound.wavという名前のファイルに書き出すというもの。

オリジナルの recorder_wav からの変更点は、setRecorderModeのパラメータだけ。最終的には、以下のパラメータでまあまあうまく動いた。

  theAudio->setRecorderMode(AS_SETRECDR_STS_INPUTDEVICE_MIC,0,16*1024,true);

第2パラメータはマイクゲインなんだけど、デジタルマイクの場合は減衰しかできない。なので0. 減衰させたい時はマイナスの整数値を入れる。

第3パラメータはバッファサイズ。この値が不適当だと、Sound.wavファイルができても録音が空だったり、途中だったりとかするようだ。

第4パラメータはデジタルマイクかを示す値なので、true.

なお、ハードウェアのDCLKピンだが、デジタル録音中のみクロックが出力される。最初、ハードウェアのチェックでDCLKにクロックが来ていないため拡張基板の改造をしくじったかボードを壊してしまったかとも思った。

で、このスケッチをSPRESENSEに書き込んで動かすとmicroSDカードのルートにSound.wavというファイルができる。microSDカードを取り出してPCで読みだせば録音を確認できるのだが、... 音がとっても小さい。

 

3. 結果

  デジタルマイクは、携帯とかに使われている。怒鳴り声の口元がフルスケールになるよう作られているから、離れた場所のしゃべり声が小さい信号になるのは当然ということだろう。

 だが、こちらの目論見は、マイクアレイを使ったビームフォーミングなどの実験。なので音声信号自体に十分な振幅が欲しい。8チャンネル取れるからとデジタルマイクを選んだのは失敗だったかな。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする