注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
ly87802541的个人空间 https://home.eeworld.com.cn/space-uid-463204.html [收藏] [复制] [分享] [RSS]
日志

【Follow me第二季第4期】Arduino_Nano_Connect板子---任务3:驱动外设PDM麦克风

已有 61 次阅读2024-12-15 22:04 |个人分类:AIoT

继续完成任务3驱动集成的PDM数字麦克风并串口打印录音数据和波形,同样的这里我也想尝试利用本机OLED显示模块来显示这些信息,图形数据等。当然这一切还是建立在mpy生态中大量存在的第三方模块基础上。

 

板上集成的全向式PDM接口数字麦克风依然是来自大名鼎鼎的意法半导体ST公司,基础资料介绍如下:

■ ST MP34DT06JTR MEMS麦克风

  ▪ AOP = 122.5 dBSPL

  ▪ 64 dB信噪比

  ▪ 全向灵敏度

  ▪ -26 dBFS ± 1 dB灵敏度

 

数字麦就没啥可展开介绍的,下面继续快速实现一下以上简单测试的功能。

这里我首先有用到arduino官方的例程javascript:;,如下图所示。

 

 

当我打开omv-ide时,它会提示要求更改Nano板子的固件,如下图所示。

 

选择升级到最新版本4.5.9后,如下图所示。

 

可以看到升级后的固件版本确实时4.5.9。然后点击绿色小三角运行脚本mic.py,提示如下图所示。

 

很显然,它说是模块没有对应的方法,虽然不明白为啥没有方法官方还要这么写,那还是确认一下。找到javascript:;文档一看API介绍,signal模块确实没有这个频谱计算的方法,此路不通,暂且不管他好了。

 

于是转换一下思路,自己去试试看怎么实现任务三。在百度后找到一个GitHub上面开源大佬的dmic驱动模块javascript:;,这依然体现了mpy开发的便利和代码复用特性。既然有第三方模块可用,那就还是回到thonny开发环境下,连接Nano板子后打开如下图所示。

 

Mpy固件版本已经变1.23了,不是之前自己烧录的1.24版了,当然还是一样能用。然后就要把dmic的驱动库clone下来,如下图所示。

 

 

简单浏览一下源码可以发现,使用了pio汇编指令实现的dmic驱动。接下来把这个驱动库下载到Nano板子上,就可以驱动来自ST的dmic外设MP34DT06JTR,如下图所示。

 

    

 

运行一下test.py测试脚本文件,就可以看到录音后的输出wav文件了,wavsimple.py这个脚本文件时这个第三方驱动库作者自己写的wav格式容器工具,所以我们这里可以很简单的得到录音结果,并且被保存在root根目录下。

 

在thonny环境下,我们可以把录音好的wav文件上传到pc上,进行播放测试和聆听。

 

 

在我电脑的vlc播放器中,已经听到了我自己说话的录音。可以看出,在使用了第三方的驱动模块后,很方便搞定了录音并输出wav文件。

 

回到我们自己的任务三------串口打印录音数据和波形的目标上,就只需要在test程序基础上做点改变就行,而且thonny开发环境里也有集成波形显示的可视化窗口,如下图所示。

 

 

最后需要搞定的一个问题是要录屏才能展示结果,这里用了一个迅捷录屏工具完成录屏,并继续使用了vlc播放器完成录屏文件的回放操作,来检查一下录屏波形打印结果的视频效果。

 

 

录屏文件也放在下方,方便大家查看。

Rec 0001

以上,完成任务三。

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章