自制声控游戏机:Simon Says的现代电子版

多年前,曾玩过一款名为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定时器,并使用一个邀请剪辑让用户按下按钮准备播放,那么时间就足够随机,可以作为生成器的种子,在实践中效果很好。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485