HS-S05C-L 全向麥克風模組

HS-S05C-L  全向麥克風模組

1、介紹

2、原理圖

3、模組參數

引腳名稱

描述

G

GND(電源輸入負極)

V

VCC(電源輸入正極)

WS

字選通引腳

SD

數據引腳

SCK

時鐘引腳

  • 供電電壓: 3.3V

  • 連接方式:PH2.0 4P端子線

  • 安裝方式:積木固定

4、電路板尺寸

5、添加Arduino庫文件

不會使用庫文件的參考這裡:庫文件安裝使用

庫文件下載:點擊下載

將下載好的Arduino 库文件解壓到桌面後,將其放入Arduino 的libraries目錄下。

6、加入MicroPython環境庫檔案

不會安裝庫文件的請點擊這裡:參考鏈接

7、Arduino IDE範例程式

示例程序(ESP32開發板):點擊下載

#define SAMPLE_RATE (44100)
#define I2S_MIC_WS (12)
#define I2S_MIC_SD (13)
#define I2S_MIC_BCK (14)
#define I2S_PORT_0 (I2S_NUM_0)
#define bufferLen (1024)
#include "Arduino.h"
#include "driver/i2s.h"

int16_t sBuffer_RX[bufferLen];
size_t bytesIn = 0;

void I2s_Mic_Init()
 {
   i2s_config_t i2s_config_RX{};
   i2s_config_RX.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_RX);
   i2s_config_RX.sample_rate = SAMPLE_RATE;
   i2s_config_RX.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
   i2s_config_RX.channel_format = I2S_CHANNEL_FMT_ONLY_LEFT;
   i2s_config_RX.communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB);
   i2s_config_RX.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
   i2s_config_RX.dma_buf_count = 8;
   i2s_config_RX.dma_buf_len = bufferLen;
   i2s_config_RX.use_apll = false;
   i2s_driver_install(I2S_PORT_0, &i2s_config_RX, 0, NULL);
   i2s_pin_config_t pin_config_RX{};
   pin_config_RX.mck_io_num = I2S_PIN_NO_CHANGE;
   pin_config_RX.bck_io_num = I2S_MIC_BCK;
   pin_config_RX.ws_io_num = I2S_MIC_WS;
   pin_config_RX.data_out_num = I2S_PIN_NO_CHANGE;
   pin_config_RX.data_in_num = I2S_MIC_SD;
   i2s_set_pin(I2S_PORT_0, &pin_config_RX);
   i2s_start(I2S_PORT_0);
 }
int16_t* Mic_Value()
 {
   i2s_read(I2S_PORT_0, sBuffer_RX, sizeof(sBuffer_RX), &bytesIn, portMAX_DELAY);
   for (int i = 0; i < bufferLen; i++)
   {
     sBuffer_RX[i] = sBuffer_RX[i]*2;
     if (sBuffer_RX[i] > (32767))
       sBuffer_RX[i] = (32767);
     else if (sBuffer_RX[i] < (-32768))
       sBuffer_RX[i] = (-32768);
   }
   return sBuffer_RX;
 }

void setup(){
  I2s_Mic_Init();
  Serial.begin(115200);
}

void loop(){
  short *data = Mic_Value();
  for (int i = 0; i <= 1023; i = i + (1)) {
    Serial.println(data[i]);
  }

}

示例程序(ESP32-S3開發板):點擊下載

8、米思齊 Mixly 示例程式(圖形化語言)

米思齊 Mixly 圖庫檔案(ESP32開發板-c語言版本):點擊下載

範例程序(ESP32開發板-c語言版本):點擊下載

米思齊 Mixly 庫文件(ESP32-S3 開發板-c 語言版本):點擊下載

示例程式(ESP32-S3開發板-c語言版本):點擊下載

9、測試環境搭建

Arduino ESP32 測試環境搭建

準備配件:

  • ESP32 開發板 *1

  • ESP32 EXP1 扩展板 *1

  • USB type-c 資料線 *1

  • HS-S05C-L 全向麥克風模塊*1

  • PH2.0 5P PH2.0 端子轉杜邦線 *1

電路接線圖:

ESP32 Python 測試環境搭建

10、視頻教學

Arduino UNO視頻教學:按鈕查看

ESP32 Python視頻教學:

11、測試結論

Arduino UNO測試結論:

把串口視覺化參數改為最小-1000,最大1000,點數100,對準麥克風說話,在串口視覺化的圖表中,能看到反映聲音變化的波型數據。.