0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用樹莓派Pico制作USB麥克風(fēng)

jf_zGNBEhbi ? 來源:趣無盡 ? 2023-08-17 10:12 ? 次閱讀

becf8d38-3ca2-11ee-ac96-dac502259ad0.jpg

MAKER:Sandeep Mistry/譯:趣無盡

簡(jiǎn)介
本指南將教你如何使用樹莓派 Pico 和外部數(shù)字麥克風(fēng)制作屬于自己的 USB 麥克風(fēng)。本項(xiàng)目通過 RP2040 微控制器MCU)的編程 I/O(PIO)、直接存儲(chǔ)器訪問(DMA)和通用串行總線(USB)功能來實(shí)現(xiàn)。

組件清單

– 樹莓派 Pico
Adafruit PDM MEMS 麥克風(fēng)拓展板
– 面包板
– 條線若干

關(guān)于 USB

USB 是一種于 1996 年發(fā)布的極其流行的標(biāo)準(zhǔn),適用于有線計(jì)算機(jī)外圍設(shè)備,例如鍵盤、鼠標(biāo)、打印機(jī)、掃描儀和麥克風(fēng)等。

樹莓派 Pico 的 RP2040 MCU 具有*“USB 1.1主機(jī)/設(shè)備”*功能,正是因?yàn)檫@個(gè)功能,樹莓派 Pico 既可以連接到現(xiàn)有的 USB 外圍設(shè)備(主機(jī)模式),又可以創(chuàng)建自己的 USB 外圍設(shè)備(設(shè)備模式)。另外,樹莓派 Pico SDK 使用 TinyUSB 庫作為其 USB 軟件堆棧。

Tiny USB 庫是一個(gè)開源的、跨平臺(tái)的嵌入式系統(tǒng) USB 堆棧,支持包括樹莓派 RP2040 在內(nèi)的多種 MCU,同時(shí)還支持設(shè)備和主機(jī)兩種模式。我們可以利用它內(nèi)置的 USB 音頻類支持把樹莓派 Pico 變成 USB 麥克風(fēng)。

選擇麥克風(fēng)

RP2040 MCU 具有內(nèi)置的 4 通道 12 位精度模數(shù)轉(zhuǎn)換器ADC)功能,可用于從外部模擬麥克風(fēng)收集音頻,但我們發(fā)現(xiàn)模擬麥克風(fēng)的音頻包含大量噪音,因此我們改用數(shù)字麥克風(fēng)。

數(shù)字麥克風(fēng)有兩種常用接口

– PDM
– I2S

雖然 RP2040 沒有自帶這兩種接口的支持,但靈活的可編程 I/O (PIO) 特性使我們能通過軟件創(chuàng)建 PDM 或 I2S 的外圍接口。在本指南中,我們將使用 Adafruit PDM MEMS 麥克風(fēng)拓展板來實(shí)現(xiàn)。為了從麥克風(fēng)獲取數(shù)據(jù),我們會(huì)利用一個(gè)引腳來生成輸出時(shí)鐘脈沖信號(hào),并使用另一個(gè)引腳來接收數(shù)據(jù)。

PDM 如何運(yùn)轉(zhuǎn)?

當(dāng) PDM 麥克風(fēng)接收到時(shí)鐘脈沖信號(hào)后,它會(huì)根據(jù)麥克風(fēng)捕獲的模擬音頻值輸出 0 或 1 信號(hào)。為了以每秒 16000 個(gè)樣本(16 kHz)的采樣率捕獲音頻,則必須將 PDM 麥克風(fēng)的時(shí)鐘輸入驅(qū)動(dòng)到 1.024 MHz,然后才可以對(duì) PDM 麥克風(fēng)數(shù)據(jù)信號(hào)進(jìn)行過濾和降采樣。對(duì)于每個(gè)樣本,系統(tǒng)會(huì)將 64 個(gè)值的 0 或 1 輸出進(jìn)行平均,來創(chuàng)建一個(gè)介于 -32678 和 32767 之間的 16 位值,用于表示該樣本的音頻數(shù)據(jù)。

bef33dd2-3ca2-11ee-ac96-dac502259ad0.jpg

為了使數(shù)據(jù)更直觀,你可以使用邏輯分析儀(比如 https://www.saleae.com/)來查看 PDM CLK 和 DAT 信號(hào)。

bf053334-3ca2-11ee-ac96-dac502259ad0.jpg

處理流程

系統(tǒng)將執(zhí)行以下操作:

1. 使用 PIO 在 PDM 麥克風(fēng)中生成 1.024 MHz 時(shí)鐘信號(hào)。
2. 在每個(gè)時(shí)鐘周期,使用 PIO 從 PDM 麥克風(fēng)捕獲一次數(shù)字值。
3. DMA 將被配置為捕獲 1 毫秒的音頻,采樣率為 16 kHz,每毫秒生成 16 個(gè)樣本。這 16 個(gè)樣本將由 64 x 16 = 1024 位組成。
4. 收到 16 個(gè)樣本的原始 PDM 數(shù)據(jù)后,它將使用 *OpenPDM2PCM* 庫將 1024 位原始 PDM 數(shù)據(jù)進(jìn)行過濾并降采樣,生成 16 個(gè) 16 位 https://en.wikipedia.org/wiki/Pulse-code_modulation(PCM)音頻樣本。
5. 最后,將 16 個(gè) PCM 音頻樣本通過 USB 接口發(fā)送到電腦。

bf1294a2-3ca2-11ee-ac96-dac502259ad0.jpg

硬件設(shè)置

你需要在樹莓派 Pico 和 Adafruit PDM MEMS 麥克風(fēng)拓展版上焊接排針,以便把它們插在面包板上。如果要了解更多關(guān)于焊接排針的細(xì)節(jié),請(qǐng)參閱 MagPi 網(wǎng)站的 https://magpi.raspberrypi.org/articles/how-to-solder-gpio-pin-headers-to-raspberry-pi-pico 指南。

焊接完這兩個(gè)部分后,把它們放在面包板上,并按以下方式設(shè)置接線:

bf31b5f8-3ca2-11ee-ac96-dac502259ad0.jpg

+---------+-------------------+
| PDM Mic | Raspberry Pi Pico |
|---------+-------------------|
|    3V   |        3V3        |
|---------+-------------------|
|    GND  |        GND        |
|---------+-------------------|
|    SEL  |        GND        |
|---------+-------------------|
|    DAT  |       GPIO2       |
|---------+-------------------|
|    CLK  |       GPIO3       |
+---------+-------------------+

注意:把 PDM Mic. SEL 連接到 GND 接口會(huì)導(dǎo)致它在時(shí)鐘信號(hào)下降(從邏輯電平 1 變?yōu)?0)后輸出新數(shù)據(jù)。

bf3f4ad8-3ca2-11ee-ac96-dac502259ad0.jpg

設(shè)置 Pico SDK 開發(fā)環(huán)境

首先,在電腦上安裝樹莓派官方提供的 Pico SDK 和所需的工具鏈。

若要了解更多信息,請(qǐng)參考 https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf 手冊(cè)。

該指南的第 2.1 節(jié)適用于所有操作系統(tǒng),對(duì)于特點(diǎn)的操作系統(tǒng),參考以下幾個(gè)章節(jié):

Linux第 2.2 節(jié)
macOS:第 9.1 節(jié)
Windows:第 9.2 節(jié)

下載并編譯 pico-microphone 庫和示例

設(shè)置環(huán)境變量 PICO_SDK。

export PICO_SDK_PATH=/path/to/pico-sdk

打開終端,克隆源碼并切換到相應(yīng)目錄:

cd ~/ 
git clone https://github.com/sandeepmistry/pico-microphone.git
cd pico-microphone

創(chuàng)建 build 目錄,并切換到相應(yīng)目錄:

mkdir build
cd build

執(zhí)行編譯命令:

make .. -DPICO_BOARD=pico
make

按住開發(fā)板上的 BOOTSEL 按鈕,同時(shí)用 USB 數(shù)據(jù)線把開發(fā)板連到電腦上。

把 examples/usb_microphone/usb_microphone.uf2 文件復(fù)制到樹莓派 Pico 的 ROM 引導(dǎo)磁盤中:

cp -a examples/usb_microphone/usb_microphone.uf2 /Volumes/RPI-RP2/.

不出意外的話,電腦上會(huì)出現(xiàn)一個(gè)名為 “MicNode” 的新麥克風(fēng)設(shè)備:

bf57d710-3ca2-11ee-ac96-dac502259ad0.png

錄制音頻數(shù)據(jù)

現(xiàn)在我們已經(jīng)把樹莓派 Pico 開發(fā)板配置為 USB 麥克風(fēng),只需安裝錄音軟件就能通過 USB 接口獲取音頻數(shù)據(jù)。本文中以 https://www.audacityteam.org/為例。

https://www.audacityteam.org/download/并安裝 Audacity。安裝完成后,打開 Audacity,然后選擇 “MicNode” 作為輸入設(shè)備。

bf693690-3ca2-11ee-ac96-dac502259ad0.jpg

你可以點(diǎn)擊“錄制” 按鈕開始為錄制音頻,并在需要停止時(shí)按下“停止” 按鈕。

bf89acfe-3ca2-11ee-ac96-dac502259ad0.png

總結(jié)

我們使用樹莓派 Pico 和外部 PDM 麥克風(fēng)制作屬于自己的 USB 麥克風(fēng)。本項(xiàng)目中使用了樹莓派 RP2040 的 PIO、DMA 和 USB 硬件特性,以及 OpenPDM2PCM 和 TinyUSB 軟件庫,在 Arm Cortex-M0+ 架構(gòu)的 RP2040 處理器上運(yùn)行。

我們的 USB 麥克風(fēng)從 PDM 麥克風(fēng)捕獲 PDM 音頻數(shù)據(jù),將 PDM 數(shù)據(jù)轉(zhuǎn)換為 PCM 格式,然后通過 USB 實(shí)時(shí)將 PCM 數(shù)據(jù)發(fā)送到 PC!

由于USB音頻標(biāo)準(zhǔn)用于樹莓派 Pico板和PC之間的通信,因此PC端不需要定制軟件。

本文通過 USB 將音頻數(shù)據(jù)從樹莓派 Pico 傳輸?shù)诫娔X,但你也可以把 https://github.com/sandeepmistry/pico-microphone 庫與模擬(或 PDM) 麥克風(fēng)搭配使用,并在設(shè)備上執(zhí)行數(shù)字信號(hào)處理 (DSP) ,這樣就可以在沒有電腦的情況下對(duì)開發(fā)板的音頻環(huán)境做出反應(yīng)。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7840

    瀏覽量

    153289
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17691

    瀏覽量

    357757
  • 麥克風(fēng)
    +關(guān)注

    關(guān)注

    15

    文章

    652

    瀏覽量

    55423
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    8056

    瀏覽量

    269378
  • 樹莓派
    +關(guān)注

    關(guān)注

    118

    文章

    1904

    瀏覽量

    106569

原文標(biāo)題:使用樹莓派 Pico 制作 USB 麥克風(fēng)

文章出處:【微信號(hào):趣無盡,微信公眾號(hào):趣無盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦

    無線調(diào)頻麥克風(fēng)的設(shè)計(jì)和制作

    無線調(diào)頻麥克風(fēng)的設(shè)計(jì)和制作
    發(fā)表于 05-27 11:27 ?5424次閱讀
    無線調(diào)頻<b class='flag-5'>麥克風(fēng)</b>的設(shè)計(jì)和<b class='flag-5'>制作</b>

    怎么連接麥克風(fēng)

    連接麥克風(fēng)的時(shí)候把正負(fù)極接反了,會(huì)不會(huì)把麥克風(fēng)給燒壞掉,急急急;該怎么檢測(cè),請(qǐng)指教。
    發(fā)表于 08-01 09:16

    PIC32MZ怎么與USB麥克風(fēng)交互

    我有一個(gè)PIC32 MZ2048 EFH144。我也有一個(gè)USB麥克風(fēng),我直接連接到PIC32 MZ。我試圖使用和聲,并使用一個(gè)示例項(xiàng)目(USB麥克風(fēng)),但似乎PIC32 MZ不支持該
    發(fā)表于 04-30 07:53

    怎樣去設(shè)計(jì)一種基于esp8266+樹莓+u***麥克風(fēng)的智能音箱呢

    怎樣去設(shè)計(jì)一種基于esp8266+樹莓+u***麥克風(fēng)的智能音箱呢?如何去實(shí)現(xiàn)呢?
    發(fā)表于 02-24 07:34

    基于樹莓pico的FM接收器

    到 Raspberry Pi Pico 的 GPIO26(ADC 引腳)和右揚(yáng)聲器輸出連接到 GPIO27(ADC 引腳),這將允許用戶使用 Raspberry pi Pico 作為任何 PC 或筆記本電腦的麥克風(fēng)輸入
    發(fā)表于 07-08 07:56

    數(shù)字麥克風(fēng)原理與應(yīng)用

    數(shù)字麥克風(fēng)介紹
    發(fā)表于 08-08 11:46 ?39次下載

    麥克風(fēng)陣列原理與應(yīng)用

    麥克風(fēng)陣列原理與應(yīng)用
    發(fā)表于 08-08 11:43 ?64次下載

    麥克風(fēng)的工作原理及制作注意事項(xiàng)

    麥克風(fēng)學(xué)名為傳聲器,是將聲音信號(hào)轉(zhuǎn)換為電信號(hào)的能量轉(zhuǎn)換器件,麥克風(fēng)由最初通過電阻轉(zhuǎn)換聲電發(fā)展為電感、電容式轉(zhuǎn)換,大量新的麥克風(fēng)技術(shù)逐漸發(fā)展起來,這其中包括鋁帶、動(dòng)圈等麥克風(fēng),以及當(dāng)前廣
    的頭像 發(fā)表于 07-05 14:28 ?4.2w次閱讀
    <b class='flag-5'>麥克風(fēng)</b>的工作原理及<b class='flag-5'>制作</b>注意事項(xiàng)

    間諜麥克風(fēng)制作

    為了檢測(cè)遠(yuǎn)距離的聲音,使用了兩個(gè)分支攻擊。該電路以一個(gè)駐極體麥克風(fēng)(MK1)開始,該麥克風(fēng)采用10K上拉電阻產(chǎn)生DC + AC信號(hào)。但是,在音頻領(lǐng)域,DC信號(hào)根本不好,所以必須刪除!這是C3的工作,它將麥克風(fēng)與放大器級(jí)耦合(消除
    的頭像 發(fā)表于 08-05 10:31 ?4112次閱讀
    間諜<b class='flag-5'>麥克風(fēng)</b>的<b class='flag-5'>制作</b>

    何為MEMS麥克風(fēng)

    所有麥克風(fēng)(傳統(tǒng)麥克風(fēng)和MEMS麥克風(fēng))都通過柔性膜片感應(yīng)聲波。在聲波壓力下,膜片會(huì)發(fā)生位移。現(xiàn)在市場(chǎng)上大部分MEMS麥克風(fēng)都使用電容技術(shù)來探測(cè)聲音。電容式MEMS
    的頭像 發(fā)表于 06-01 15:07 ?1.1w次閱讀
    何為MEMS<b class='flag-5'>麥克風(fēng)</b>?

    科大訊飛麥克風(fēng)陣列模塊 麥克風(fēng)設(shè)計(jì)參考手冊(cè)

    科大訊飛麥克風(fēng)陣列模塊 麥克風(fēng)設(shè)計(jì)參考手冊(cè)
    發(fā)表于 11-04 09:47 ?218次下載

    教學(xué)麥克風(fēng)為什么推薦使用UHF教學(xué)麥克風(fēng)?

    教學(xué)麥克風(fēng)作為教學(xué)設(shè)備,抗干擾和噪音是評(píng)價(jià)教學(xué)麥克風(fēng)的首要標(biāo)準(zhǔn)。2.4G是全球通用的,不會(huì)受頻道所限制,然而缺點(diǎn)也是非常明顯,那就是信號(hào)干擾多。2.4G應(yīng)用廣泛,如藍(lán)牙,WIFI都是使用2.4G傳輸
    的頭像 發(fā)表于 03-31 18:44 ?3597次閱讀
    教學(xué)<b class='flag-5'>麥克風(fēng)</b>為什么推薦使用UHF教學(xué)<b class='flag-5'>麥克風(fēng)</b>?

    使用樹莓Pico開發(fā)板制作實(shí)時(shí)音頻光譜圖可視化器

    本期教程將會(huì)通過使用一塊帶有外置數(shù)字麥克風(fēng)和 TFT LCD 顯示屏的樹莓 Pico 開發(fā)板制作一個(gè)實(shí)時(shí)音頻光譜圖可視化器。有了它,你就可
    的頭像 發(fā)表于 10-24 10:49 ?2791次閱讀
    使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>開發(fā)板<b class='flag-5'>制作</b>實(shí)時(shí)音頻光譜圖可視化器

    高性能USB麥克風(fēng)解決方案

    高性能USB麥克風(fēng)的設(shè)計(jì)思路是將專業(yè)錄音室級(jí)別的音質(zhì)帶到日常使用中,同時(shí)保持使用的簡(jiǎn)便性。傳統(tǒng)的專業(yè)麥克風(fēng)通常需要外部音頻接口和復(fù)雜的設(shè)置,而USB
    的頭像 發(fā)表于 08-21 19:50 ?784次閱讀
    高性能<b class='flag-5'>USB</b><b class='flag-5'>麥克風(fēng)</b>解決方案

    什么是麥克風(fēng)陣列

    什么是麥克風(fēng)陣列?想象一下一個(gè)小型音響部隊(duì)在你面前,它們站成一排,用不同的麥克風(fēng)捕捉聲音。這就是麥克風(fēng)陣列的基本概念。麥克風(fēng)陣列由多個(gè)麥克風(fēng)
    的頭像 發(fā)表于 11-30 01:08 ?1032次閱讀
    什么是<b class='flag-5'>麥克風(fēng)</b>陣列

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品