212浏览
查看: 212|回复: 0

[ESP8266/ESP32] 麦克风模块 SEN0327 的测试

[复制链接]
前一段在商城购买了“麦克风模块”(SEN0327),拿到收之后发现没有例子。于是开始一番探索,配合ESP32进行一下测试。
i2s1.png
这款麦克风是基于 MSM261S4030H0传感器的 I2S 接口麦克风(数字麦克风)。经过研究
可以使用Arduino-audio-tools这个Library进行驱动。接线如下:
  
MSM261S4030H0
  
FireBeetle ESP32
说明
V
3.3
3.3V供电
G
GND
GND
WS
IO15
Word Select
LR
GND
选中,低有效,意思是始终选中
CK
IO14
Serial  Clock(BCLK)
DA
IO4
Serial Data 数字麦克风输出的数据
安装好库之后在arduino-audio-tools-0.8.7\src\AudioConfig.h做一点修改,修改的原因是 FireBeetle ESP32 32 Pin 已经被占用。

  1. #define PWM_FREQENCY 30000
  2. #define PIN_PWM_START 12
  3. #define PIN_I2S_BCK 14
  4. #define PIN_I2S_WS 15
  5. //LABZDebug #define PIN_I2S_DATA_IN 32
  6. #define PIN_I2S_DATA_IN 4
复制代码
之后按照上述要求连接好。加载 arduino-audio-tools-0.8.7\examples\examples-webserver\streams-i2s-webserver_wav这个代码,在其中下面的位置填写你家的 WIFI SSID 和密码:

  1. AudioWAVServer server("ssid","password");
复制代码
这个示例的作用是从I2S的麦克风中读取数据,然后展示在网页上。启动之后从串口调试器中能够看到当前的 IP ,用浏览器访问这个地址即可。还需要注意的是:需要使用esp32package 中的 FireBeetle 进行编译(如果使用 DFRobot ESP32 Arduino 中的 FireBeetle 会出现错误):

i2s2.png

完整代码:
  1. #include "AudioTools.h"
  2. AudioWAVServer server("ssid","password"); // the same a above
  3. I2SStream i2sStream;    // Access I2S as stream
  4. ConverterFillLeftAndRight<int16_t> filler(LeftIsEmpty); // fill both channels - or change to RightIsEmpty
  5. void setup(){
  6.   Serial.begin(115200);
  7.   AudioLogger::instance().begin(Serial, AudioLogger::Info);
  8.   // start i2s input with default configuration
  9.   Serial.println("starting I2S...");
  10.   auto config = i2sStream.defaultConfig(RX_MODE);
  11.   config.i2s_format = I2S_STD_FORMAT; // if quality is bad change to I2S_LSB_FORMAT https://github.com/pschatzmann/arduino-audio-tools/issues/23
  12.   config.sample_rate = 22050;
  13.   config.channels = 2;
  14.   config.bits_per_sample = 16;
  15.   i2sStream.begin(config);
  16.   Serial.println("I2S started");
  17.   // start data sink
  18.   server.begin(i2sStream, config, &filler);
  19. }
  20. // Arduino loop  
  21. void loop() {
  22.   // Handle new connections
  23.   server.doLoop();  
  24. }
复制代码

测试的视频:


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2022 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail