Sipeed MAix Bit with MIC Maixduino(Arduino) で マイクのお試しです。
Sipeed MAix Bit with MIC MaixPy で マイクのお試し #3
で、Python での限界を感じたので、今回は、Bit 側だけ、Maixduino(Arduino) で、
プログラムを書いてみました。
I2S のプログラムガイドは、https://github.com/kendryte/kendryte-doc-standalone-programming-guide/blob/master/en/I2S.md
開発環境
OS: Windows10
Platform IO IDE(Visual Studio Code)
platforomio.ini
platform = kendryte210
board = sipeed-maix-bit-mic
framework = arduino
※ UART1 に、別途 USB-Serial (FT232RL) を付けます。
Maix-Bit silk | k210 IO | USB-Serial (FT232RL)
15 -- IO15 (tx) --> Rx
17 -- IO17 (rx) --> Tx
GND --> GND
注)上記以外は、オープン
USB-Serial VCC は結線しません。
1. Sipeed MAix Bit 側の Arduino プログラムです。
1) I2S でPC へ送るデータは、
Sampling Rate: 16000
Monoral 16bit
2) Serial1
Baud Rate : 921600 * 1.6
3) i2s_receive_data_dma(I2S_DEVICE_0, rx_buf, FRAME_LEN * 2, DMAC_CHANNEL0);
で上がって来るデータは、32bit Stereo の様なので、
片側のチャネルの 16bit のみを、PC に転送します。
2. 念のために、 PC 側の Python Script も掲載して置きます。
何とか、PCのスピーカーから聞き取れる程にはなりました。
Bit の マイクは、結構感度が良すぎるみたいで、直ぐピークになります。
ただ、もう少し改善も出来そうです。
次回は、
i2s_handle_data_dma(I2S_DEVICE_0, data, &irq);
を使った、イベントでの取り込みを考えてみます。