Sony Spresenseとデジタルマイク（型番：IM69D130）で  
音声ファイルをSDカードに保存したいと考えています。  
デジタルマイクを使ったサンプルプログラムを  
どなたかおもちではないでしょうか？  
そのサンプルプログラムを参考にして開発をしたいと  
思います。よろしくお願いいたします。
CC BY-SA 4.0
2019-09-05T08:15:52.250
57871
2019-11-15T01:00:40.153
35740
question
spresense
Sony Spresenseとデジタルマイクで音を収集
Arduinoで開発されている場合は、Spresense用のスケッチ例の  
Audio/application/recorder のサンプルスケッチの

```

    theAudio->setRecorderMode(AS_SETRECDR_STS_INPUTDEVICE_MIC);
    
```

を変えることでデジタルにできます。

```

    err_t setRecorderMode(
          uint8_t input_device,
          int32_t input_gain,
          bool is_digital
      );
    
```

なので、

```

    theAudio->setRecorderMode(AS_SETRECDR_STS_INPUTDEVICE_MIC, 0, 0x4000, true);
    
```

などに変更することでデジタルマイクでの録音ができます。

ただ、Gainがデジタルの場合0以上に設定できないのでかなり音が小さく、ソフトウェアでGain Upをする必要がありそうです。

以下のページが参考になりました。

[MP3 形式で録音する | Spresense Arduino
サンプル＆チュートリアル](https://developer.sony.com/develop/spresense/docs/arduino_tutorials_ja.html#_mp3_%E5%BD%A2%E5%BC%8F%E3%81%A7%E9%8C%B2%E9%9F%B3%E3%81%99%E3%82%8B)
CC BY-SA 4.0
2019-09-11T01:04:54.127
57974
2019-09-11T02:15:50.057
2019-09-11T02:15:50.057
3060
32281
57871
answer
IM69D130はPDM(Pulse Density
Modulation)出力なので、Spresense側からクロックを送ってやって、それに合わせてデータを読み込めば、データは取得できます。PDMですから、出てくるデータは０か１のいずれかです。

PDMのデータは、デジタル信号処理をしてデジタル音声信号に変換するか、そのまま出力してローパスフィルターによってアナログ音声信号に変換するかする必要があります。

[Arduinoのライブラリリスト](https://www.arduinolibraries.info/libraries)に、  
「Adafruit Zero PDM Library  
PDM Microphone Input library for Arduino Zero / Adafruit Feather M0 (SAMD21
processor).」 というのがあります。

使えるかもしれませんから、調べてみてはどうでしょうか。
CC BY-SA 4.0
2019-09-11T05:07:16.060
58980
2019-09-11T05:07:16.060
217
57871
answer