FPGA | PYNQ-Z2使用语音播报模块

本文介绍如何使用PYNQ外接语音播报模块

先贴一张实物图:
实物连接

语音播报模块介绍

选择YS-M3语音播放模块,即下图的这款:
语音播报模块
该模块是一个MP3播放模块,集成了MP3 、MAV的硬编码,自带3W功放,可调节音量,支持单键触发和编码触发两种工作模式,最多可触发31首歌曲,支持16G最大内存。使用前,需要先将要播放的歌曲按如图所示的格式放在语音播报模块的TF卡中。
文件放置
例如我这里是将原先的1-8和第10首换成了要播放的语音。

硬件连接

因为需要使用代码来控制要语音播放,所以选择编码触发模式:
编码模式
按照语音播报的说明,我们共需要三个GND、一个5V和5个GPIO口,关于PYNQ GPIO口的介绍可以参考这篇博客。这里直接使用PYNQ上的Arduino接口作为GPIO来进行编码触发,当然也可以使用RPI接口。连接方式如下图:
在这里插入图片描述
在这里插入图片描述
使用一个Pmod的GND和A10相连:
Pmod

在这里插入图片描述
哪些引脚可以配置成GPIO口,PYNQ的用户使用手册里都有提到,我在文末会附上语音播报模块和PYNQ用户手册的资源地址(网上都可以搜到)。

软件调试

引脚对应
我们需要使用上图中的Python类来控制Arduino IO的读和写,参数中index需要注意,因为我使用的是A1-A5这5个引脚,文档中A0-A5引脚对应的是15-19。

接下来启动 jupyter notebook编写代码
jupyter1
jupyter2
运行即可听到想要的曲子(这两块五的喇叭音质居然还不错)

代码编写时有几点注意事项:

  1. 语音播报模块使用的是反编码,11110对应第一首,11101对应第二首…以此类推
  2. 在连续播放多首时,将对应引脚写入0后再恢复成1时,中间需要加一点延时,在PYNQ是要这样的,不然会发生错误,而在单片机里就不需要(可能是什么bug)。
    如果上述播放第二首的结尾我写成这样:
A[1].write(1)
A[2].write(1)
# 在播放下一首时可能就会遇到错误

参考资料

PYNQ-Z2用户手册

YS-M3语音播放模块资料

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只殿鹿

爱屋及乌(滑稽

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值