【得捷电子Follow me第1期】+ 任务5:扩展任务
[复制链接]
本帖最后由 ly87802541 于 2023-6-15 23:52 编辑
终于走到了第五个任务,这是根据自己选择的特定扩展外设,完成自己设定的任务。
我这里在得捷电子买的是个IIS接口的数字麦克风dmic扩展板子,如果要实现picow开发板和它的连接,还需要完成另一个小任务,用pio去模拟下IIS接口功能。因为rpi2040这颗mcu本身并没有IIS接口,所以这里有点小挑战。
先看看dmic模块的靓照。
具体实现过程肯定是比较繁琐,这里只是大概记录主要的几个步骤,也就不再细述了。
首先,我选择了Ubuntu虚拟机环境作为编译pico_SDK和APP源码的平台,那么工具链那些相关的东西都得安装好,之前玩过pico也就是不带WiFi蓝牙模块的纯主控rp2040的人想必都很清楚,同时还要记得clone完了pico-sdk后必须导出path设置,确保设置PICO_SDK环境变量如下。
export PICO_SDK_PATH=/path/to/pico-sdk
另外,顺便提一下有关submodule的问题,例如picow工程中的btstack,tinyusb之类的常见库,总是clone失败,非常烦人,相信大家都遇到过,尤其是tinyUSB内部的子模块又多。不过也没啥好办法,只能多来几次clone命令如下。
cd pico-sdk
git submodule update --init --recursive
只有确保pico-sdk完整无误clone下来后,后续 的编译结果才可能正确无误。如下图所示。
然后当然是编写有关利用数字麦克风进行录音的c代码,尤其值得一提的是这里picow单片机本身就没有IIS接口和数字麦克风进行连接,必须用pio进行汇编码模拟IIS接口,颇有点黑科技的味道,按照流行语的说法就是软件定义接口---sdif。基本原理和接线图如下。
可以看出就是实现了一个USB麦克风,最后接上PC笔记本电脑USB接口就可以用录音机软件进行录音和回放了,按照这个思路当然还有其他展开的玩法,比如picow本身扩展了WiFi蓝牙模块,就可以走蓝牙通信信道成为一个蓝牙ble麦克风,其应用场景就如很多带货主播使用的蓝牙无线麦克风一样。也可以利用picow单片机双核心算力充足做高端玩法,如USB接口的声卡等音频处理产品。
固件编译出来后,把uf2固件拖入picow单片机的U盘中就行了。电路板实体连线如下图所示。
因为只是杜邦线连接,所以录音测试时,经常遇到无声的情况,就是接触不良的问题。从图片看出,这个板子就是我自己焊接插针反了的那个,用在这里倒是完美的废物利用。
录音软件可以用开源的如Audacity也可以用win10自带的录音机,录音如下图所示。
录好的WAV文件,播放起来背景噪声确实蛮大的,可能是夏天家里空调,其它环境噪声等因素影响的结果,即使是深夜里录音结果也不太理想。
录音好几次,挑了一个效果略好的测试WAV文件放这里
test5.wav
(1.1 MB, 下载次数: 5)
,方便大家试听。
补充内容 (2023-6-16 20:38):
PS:录音的效果不是很理想,同时因为时间关系也没有再去做环境降噪算法enc的处理,留待以后继续吧。甚至根据这个方向展开来,还可以尝试用picow双核心m0其中一个跑语音识别算法,当成DSP或者协处理器来用。
|