国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——69 使用INMP441模塊采集聲音

這篇具有很好參考價(jià)值的文章主要介紹了一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——69 使用INMP441模塊采集聲音。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

摘要:本文介紹如何使用INMP441模塊采集聲音

前邊介紹了第一個(gè)基于I2S通信協(xié)議的MAX98357A模塊,利用該模塊可以播放各種聲音文件。今天來介紹如何使用INMP441模塊實(shí)現(xiàn)聲音的采集功能,也就是如何將聲音轉(zhuǎn)變成數(shù)字信號(hào)。

INMP441是一款高性能,低功耗,數(shù)字輸出的全向MEMS(微型機(jī)電系統(tǒng))麥克風(fēng)。完整的INMP441由一個(gè)MEMS聲音傳感器,模數(shù)轉(zhuǎn)換器(ADC),抗混疊濾波器,電源管理和標(biāo)準(zhǔn)的24位I2S接口組成。I2S接口允許INMP441直接連接到數(shù)字處理器,如DSP和微控制器,而無需再使用音頻編解碼器,極大的降低了開發(fā)的難度。INMP441具有高信噪比,是一款出色的近場(chǎng)應(yīng)用。INMP441具有扁平寬帶頻率響應(yīng),使得采集聲音的清晰度很高。

INMP441模塊如下圖所示:

esp32 inmp441,基于ESP32的物聯(lián)網(wǎng)人工智能小車,硬件功能模塊,單片機(jī),ESP32

INMP441具有以下這些特性和規(guī)格參數(shù):

1?具有高精度24位數(shù)據(jù)的數(shù)字I2S接口

2?高信噪比為61dBA

3 高靈敏度-26dBFS

4?從60Hz到15kHz的穩(wěn)定頻率響應(yīng)

5?低功耗:低電流消耗1.4mA

6 電源電壓:1.62 V至3.63 V

7 高PSR:-75dBFS

8 尺寸:12mm*14mm

INMP441的接口定義如下所示:

序號(hào)

標(biāo)識(shí)

說明

1

SCK

I2S接口的串行數(shù)據(jù)時(shí)鐘

2

WS

用于I2S接口的串行數(shù)據(jù)字選擇

3

L/R

左/右聲道選擇。設(shè)置為低電平時(shí),麥克風(fēng)在I2S幀的左聲道輸出信號(hào)。設(shè)置為高電平時(shí),麥克風(fēng)在右聲道輸出信號(hào)

4

SD

I2S接口的串行數(shù)據(jù)輸出。

5

VCC

輸入電源,1.8V至3.3V.

6

GND

電源地

在這里需要注意的是L/R引腳是用來設(shè)置本模塊屬于哪個(gè)聲道的,也就決定了這個(gè)模塊在WS信號(hào)是高電平還是低電平的時(shí)候有輸出。一個(gè)雙聲道聲音采集系統(tǒng),如下圖所示:

esp32 inmp441,基于ESP32的物聯(lián)網(wǎng)人工智能小車,硬件功能模塊,單片機(jī),ESP32

在上圖中可以看到左聲道的441模塊L/R為接地,是低電平狀態(tài),右聲道的L/R為接電源正極,是高電平狀態(tài)。這樣微處理器在讀取數(shù)據(jù)時(shí),通過控制WS的狀態(tài),就可以分別讀取左右聲道的數(shù)據(jù)了。

前面的MAX98357A模塊的使用借助了第三方的庫函數(shù),可以說在開發(fā)中基本沒有涉及到I2S協(xié)議的底層操作。這次通過使用微處理器廠家提供的原生驅(qū)動(dòng)來實(shí)現(xiàn)INMP441聲音采集后由MAX98357A播放出來的程序。

使用微處理器廠家提供的原始庫函數(shù)來驅(qū)動(dòng)I2S設(shè)備工作,通常需要以下幾個(gè)步驟:

1.引入頭文件

#include?<driver/i2s.h>

2.I2S控制器初始化

ESP32處理器內(nèi)置了2個(gè)I2S控制器,因此可以同時(shí)與兩個(gè)音頻設(shè)備之間傳輸音頻數(shù)據(jù)。每個(gè)I2S控制器都具備以下功能,可由I2S驅(qū)動(dòng)進(jìn)行配置:

  1. 可用作系統(tǒng)主機(jī)或從機(jī)
  2. 可用作發(fā)射器或接收器
  3. DMA控制器支持流數(shù)據(jù)采樣,CPU無需單獨(dú)復(fù)制每個(gè)采樣數(shù)據(jù)

在Arduino中,對(duì)I2S控制器進(jìn)行初始化的方法為:i2s_driver_install()。該方法的主要參數(shù)為i2s_config_t類型的結(jié)構(gòu)實(shí)例,在該數(shù)據(jù)結(jié)構(gòu)中,定義了I2S通信的基本參數(shù),主要包括了以下這些屬性:

mode:I2S的工作模式。

sample_rate:I2S的采樣率

bits_per_sample:I2S的采樣位數(shù)

channel_format:設(shè)置左右聲道

communication_format:設(shè)置交流格式

dma_buf_count:設(shè)置DMA緩沖區(qū)的數(shù)量

dma_buf_len:設(shè)置每個(gè)DMA緩沖區(qū)的大小

use_apll:設(shè)置是否使用精確時(shí)鐘

intr_alloc_flags:設(shè)置如何分配中斷

3.設(shè)置I2S使用的引腳

使用i2s_set_pin()方法可以設(shè)置I2S通信所使用的引腳。該方法所使用的參數(shù)為i2s_pin_config_t類型的數(shù)據(jù)結(jié)構(gòu),在該結(jié)構(gòu)中定義的了I2S通信所使用的引腳。該結(jié)構(gòu)有如下屬性:

bck_io_num:設(shè)置串行時(shí)鐘引腳

ws_io_num:設(shè)置左右聲道的時(shí)鐘引腳

data_out_num:設(shè)置數(shù)據(jù)輸出引腳

data_in_num:設(shè)置數(shù)據(jù)輸入引腳

需要注意的是,在驅(qū)動(dòng)MAX98357A模塊的時(shí)候,使用的是數(shù)據(jù)輸出引腳,而在驅(qū)動(dòng)INMP441模塊的時(shí)候,則使用的是輸入引腳。不使用的引腳可以賦值-1。ESP32微處理器是支持輸入和輸出引腳同時(shí)使用的,也就是可以同時(shí)讀入音頻數(shù)據(jù)和輸出音頻數(shù)據(jù)。但前提條件是由于收發(fā)通道共用一個(gè)時(shí)鐘信號(hào),因此要求兩者的配置相同。

4.讀入或者輸出音頻數(shù)據(jù)。

在前面配置完成后,就可以使用i2s_read()方法讀入音頻數(shù)據(jù),i2s_write()方法輸出音頻數(shù)據(jù)了。這兩個(gè)方法的具體使用,請(qǐng)參照下面的例子。

接下來就看一下這個(gè)示例的源代碼吧,如下所示:

#include?"Arduino.h"

#include?<driver/i2s.h>

#define?INMP441_WS?22

#define?INMP441_SCK?21

#define?INMP441_SD?32

#define?MAX98357_LRC?27

#define?MAX98357_BCLK?26

#define?MAX98357_DIN?25

#define?SAMPLE_RATE?44100

i2s_config_t?i2sIn_config = {

? .mode = i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_RX),

? .sample_rate = SAMPLE_RATE,

? .bits_per_sample = i2s_bits_per_sample_t(16),

? .channel_format = I2S_CHANNEL_FMT_ONLY_LEFT,

? .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S),

? .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,

? .dma_buf_count = 8,

? .dma_buf_len = 1024

};

const?i2s_pin_config_t?i2sIn_pin_config = {

? .bck_io_num = INMP441_SCK,

? .ws_io_num = INMP441_WS,

? .data_out_num = -1,

? .data_in_num = INMP441_SD

};

i2s_config_t?i2sOut_config = {

? .mode = i2s_mode_t(I2S_MODE_MASTER | I2S_MODE_TX),

? .sample_rate = SAMPLE_RATE,

? .bits_per_sample = i2s_bits_per_sample_t(16),

? .channel_format = I2S_CHANNEL_FMT_ONLY_RIGHT,

? .communication_format = i2s_comm_format_t(I2S_COMM_FORMAT_STAND_I2S),

? .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1,

? .dma_buf_count = 8,

? .dma_buf_len = 1024

};

const?i2s_pin_config_t?i2sOut_pin_config = {

? .bck_io_num = MAX98357_BCLK,

? .ws_io_num = MAX98357_LRC,

? .data_out_num = MAX98357_DIN,

? .data_in_num = -1

};

void?setup()?{

? // put your setup code here, to run once:

? Serial.begin(115200);

? i2s_driver_install(I2S_NUM_0, &i2sIn_config, 0, NULL);

? i2s_set_pin(I2S_NUM_0, &i2sIn_pin_config);

? i2s_driver_install(I2S_NUM_1, &i2sOut_config, 0, NULL);

? i2s_set_pin(I2S_NUM_1, &i2sOut_pin_config);

}

void?loop()?{

? // put your main code here, to run repeatedly:

? size_t?bytes_read;

? int16_t?data[512];

? esp_err_t?result = i2s_read(I2S_NUM_0, &data, sizeof(data), &bytes_read, portMAX_DELAY);

? result = i2s_write(I2S_NUM_1, &data, sizeof(data), &bytes_read, portMAX_DELAY);

}

好了,I2S通信協(xié)議的使用方法就介紹到這里了。文章來源地址http://www.zghlxwxcb.cn/news/detail-840085.html

到了這里,關(guān)于一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——69 使用INMP441模塊采集聲音的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——69 使用INMP441模塊采集聲音

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——69 使用INMP441模塊采集聲音

    摘要:本文介紹如何使用INMP441模塊采集聲音 前邊介紹了第一個(gè)基于I2S通信協(xié)議的MAX98357A模塊,利用該模塊可以播放各種聲音文件。今天來介紹如何使用INMP441模塊實(shí)現(xiàn)聲音的采集功能,也就是如何將聲音轉(zhuǎn)變成數(shù)字信號(hào)。 INMP441是一款高性能,低功耗,數(shù)字輸出的全向MEMS(微

    2024年03月15日
    瀏覽(21)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——63 SD和TF卡模塊的使用

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——63 SD和TF卡模塊的使用

    摘要:本文介紹SD和TF卡模塊的使用方法 前面介紹了非易失性存儲(chǔ)的使用方法,由于空間和本身只支持鍵值對(duì)的限制,非易失性存儲(chǔ)只適用于少量數(shù)據(jù)的記錄。而不適用于各種聲音、圖片、大量數(shù)據(jù)等情況的使用。這時(shí)候就需要有文件系統(tǒng)或者更大容量存儲(chǔ)空間的支持。SD卡(

    2024年02月22日
    瀏覽(25)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——71 姿態(tài)傳感器MPU6050的使用方法

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——71 姿態(tài)傳感器MPU6050的使用方法

    摘要:本文介紹姿態(tài)傳感器MPU6050的使用方法 姿態(tài)傳感器是一種用于測(cè)量物體姿態(tài)的傳感器,它可以檢測(cè)物體的加速度和角速度,并計(jì)算出物體的方向和角度。前邊介紹的RPI-1031只能定性的得到物體的傾斜情況,而姿態(tài)傳感器則可以定量的得到物體傾斜的方向和角度。 MPU6050是

    2024年04月28日
    瀏覽(30)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——12. 組裝L298N驅(qū)動(dòng)馬達(dá)和供電電路

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——12. 組裝L298N驅(qū)動(dòng)馬達(dá)和供電電路

    摘要:本文介紹L298N模塊與TT馬達(dá)以及電源模塊的接線方法,并進(jìn)行初始測(cè)試。 在前面完成了第一個(gè)ESP32程序。接下來要繼續(xù)組裝我們的智能物聯(lián)網(wǎng)小車了。今天要完成的工作就是完成智能小車電機(jī)驅(qū)動(dòng)和ESP32開發(fā)板的控制電路連接。在具體的動(dòng)手之前,先要進(jìn)行一些準(zhǔn)備工作

    2024年02月02日
    瀏覽(56)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——59. 基于TFT_eSPI庫的1.3寸SPI彩色顯示屏的使用(ST7789)

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——59. 基于TFT_eSPI庫的1.3寸SPI彩色顯示屏的使用(ST7789)

    摘要:本文是TFT液晶屏的基本知識(shí)和TFT_eSPI庫的簡單介紹 在前邊已經(jīng)介紹過0.96寸OLED顯示屏的使用方法,那是一個(gè)單色屏,顯示效果很是一般,因此,本篇來介紹彩色TFT(Thin Film Transistor:薄膜晶體管)顯示屏的使用方法。 TFT屏幕和OLED屏幕是兩種不同的顯示器件。TFT屏幕和

    2024年02月21日
    瀏覽(15)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——61 基于TFT_eSPI庫的1.3寸SPI彩色顯示屏的使用(ST7789)(三)

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——61 基于TFT_eSPI庫的1.3寸SPI彩色顯示屏的使用(ST7789)(三)

    摘要:本文介紹TFT_eSPI中文字庫的制作方法 前面已經(jīng)介紹了TFT_eSPI庫的基本使用方法,如果你可以將英文顯示到液晶屏幕上了,那么就可以嘗試本文的制作中文字庫,并顯示中文到液晶屏幕了,否則還是要先完成上一篇文章的學(xué)習(xí)。 接下來就開始制作中文字庫。TFT_eSPI自帶了

    2024年02月21日
    瀏覽(18)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——41. 直流有刷電機(jī)驅(qū)動(dòng)模塊——L9110S、TB6612FNG和DRV8833簡介

    一起玩兒物聯(lián)網(wǎng)人工智能小車(ESP32)——41. 直流有刷電機(jī)驅(qū)動(dòng)模塊——L9110S、TB6612FNG和DRV8833簡介

    摘要:本文介紹如何使用直流有刷電機(jī)驅(qū)動(dòng)模塊——L9110S、TB6612FNG和DRV8833 在前邊很詳細(xì)的介紹了直流有刷電機(jī)驅(qū)動(dòng)模塊L298N,該模塊性能良好,輸出功率大。但體積也是偏大,本篇文章介紹一下市場(chǎng)上另外幾個(gè)常見的小型直流有刷電機(jī)驅(qū)動(dòng)模塊L9110S、TB6612FNG和DRV8833的使用方

    2024年02月21日
    瀏覽(32)
  • 一起玩兒物聯(lián)網(wǎng)人工智能小車——04. TT馬達(dá)的基本介紹

    一起玩兒物聯(lián)網(wǎng)人工智能小車——04. TT馬達(dá)的基本介紹

    馬達(dá)和電機(jī)在英語中是兩個(gè)詞,但在我們漢語中感覺差別不大,大概是電機(jī)專指電能轉(zhuǎn)與機(jī)械能的相互轉(zhuǎn)換的裝置,而馬達(dá)可能包含其他形式的能量與機(jī)械能的轉(zhuǎn)換裝置。在本文中馬達(dá)就是特指將電能轉(zhuǎn)化為機(jī)械能的電動(dòng)機(jī)。 日常使用的電動(dòng)機(jī)在作用上通常可以分為兩種,一

    2024年02月20日
    瀏覽(24)
  • 物聯(lián)網(wǎng)畢設(shè) -- 智能圖像小車(ESP32+STM32+APP)

    物聯(lián)網(wǎng)畢設(shè) -- 智能圖像小車(ESP32+STM32+APP)

    目錄 前言 ?小車拓展 一 連線圖 1. 原理圖 2. 流程圖 3. 實(shí)物效果 4. 功能概括 (1)硬件端: (2)APP端: 演示視頻 二 底層代碼使用方式 1. 使用說明 2. 下載程序 三 APP使用方式 1.下載APP (1)操作方式: (2)使用說明 2.?APP界面 ??若需要,請(qǐng)咨詢博主?? 這個(gè)項(xiàng)目的硬件端是

    2024年02月15日
    瀏覽(20)
  • 走進(jìn)人工智能| 智能物聯(lián)網(wǎng) AIoT的魅力交織

    走進(jìn)人工智能| 智能物聯(lián)網(wǎng) AIoT的魅力交織

    前言: AI+IoT是指人工智能(AI)與物聯(lián)網(wǎng)(IoT)的結(jié)合。智能物聯(lián)網(wǎng)是一種技術(shù)體系,通過連接和集成物理設(shè)備、傳感器和互聯(lián)網(wǎng),實(shí)現(xiàn)設(shè)備之間的智能交互和數(shù)據(jù)共享,為人們提供智能化、自動(dòng)化和高效化的生活和工作體驗(yàn)。 智能物聯(lián)網(wǎng) (Internet of Things,IoT)是指 通過物

    2024年02月14日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包