多年前,曾玩过一款名为Simon Says的游戏。认为5岁孙子会喜欢它,而且这似乎是一个简单的项目,可以在他来拜访爷爷时一起完成。Simon Says游戏由两个人玩,一个人给另一个人发出指令,比如:“Simon Says,单脚跳。”另一个人则通过执行命令来回应。最近从AliExpress购买了一块DY-HV20T语音回放板,认为这将是一个很好的选择。大多数这种来自中国的模块提供的文档非常少,但在这种情况下,有一个相当有用的手册。
以下是项目所需的组件列表。由于最近一直在写关于STMicroelectronics ARM处理器的文章,而且这是一个如此简单的应用,想继续使用NUCLEO-C031C6板,它配备了STM32C031C6 Cortex-M0+处理器。
描述 | 购买地点 |
---|---|
NUCLEO-C031C6 | st.com |
8欧姆10瓦扬声器 | amazon.com |
DY-HV20T语音回放模块 | aliexpress.com |
8GB-32GB Micro SD卡 | Parts Bin |
SPST瞬时开关 | Parts Bin |
10K电阻 | Parts Bin |
1K电阻 | Parts Bin |
10uF电解电容 | Parts Bin |
74HC14N六反相器带施密特触发输入 | Parts Bin |
9V 1A电源 | 选择 |
2 x .1uF电容 | Parts Bin |
7805电压调节器 | Parts Bin |
语音回放板,如图1所示,是一个功能丰富的小板,包括:扬声器连接、音频输出插孔、音量调节、TF卡插槽以及播放WAV和MP3文件的各种模式。
图3显示了工作硬件配置,唯一缺少的是电源。使用三输出电源进行调试,但如果有足够的兴趣,会把所有东西都放在一个漂亮的盒子里,使用一个单一的电源。NUCLEO板能够通过使用VIN引脚和设置跳线JP5,5V电源选择跳线,接受7V-12V。DY-HV20T也使用6V-35V的供电电压,所以9V的Walwart可能是理想的,因为两者都不需要太多的电流。
声音剪辑以随机方式播放,使用SysTick定时器为随机数生成器提供种子。从CodeProject上的一篇优秀文章中得到了RNG,参见参考资料。不得不稍微修改一下,让它与STM32C031C6一起工作,原始版本使用了C#的TimeDate函数来生成种子。认为如果启动SysTick定时器,并使用一个邀请剪辑让用户按下按钮准备播放,那么时间就足够随机,可以作为生成器的种子,在实践中效果很好。