
冒险游戏--基于WS2812B和TM1650驱动数码管显示
简介
和小伙伴一起踏上冒险之旅吧,采用WS2812B可编程RGB灯来实现路径中的玩家显示,TM1650驱动数码管显示当前玩家金币数,每次按键按下前进随机步数,并且在冒险中有陷阱和捷径跳转路径和累计金币。
简介:和小伙伴一起踏上冒险之旅吧,采用WS2812B可编程RGB灯来实现路径中的玩家显示,TM1650驱动数码管显示当前玩家金币数,每次按键按下前进随机步数,并且在冒险中有陷阱和捷径跳转路径和累计金币。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
项目简介
本项目是基于51单片机的彩色丝印双人冒险游戏机,具有彩色可编程LED组成的冒险路径。通过按下按键控制灯珠亮暗移动至终点的冒险夺宝游戏机。
项目功能
本设计是基于AI8H2K12U-SOP16单片机设计的游戏机;设置有两个独立按键,功能分别为两个玩家的移动控制;此外还设置有双数码管分别显示两个玩家分数;一个TYPE-B供电下载接口、一个船型开关用于供电通断和胜利时播放提示音的蜂鸣器。
项目参数
- 本设计采用AI8H2K12U单片机,直接通过USB下载单片机程序;
- 本设计采用SLR0224CR5C1BD四位数码管,通过TM1650驱动显示玩家分数;
- 冒险路径采用24颗可编程的WS2812B彩色灯珠,指示玩家当前位置信息;
- 在路径中设有宝藏和陷阱,可对应增加或减少金币,此外设置强制路径跳转和rand函数生成随机步数增加游戏趣味性和可玩性。
- 当玩家到达终点时,所有灯珠亮起胜利玩家的颜色,有源蜂鸣器响起庆祝胜利!
原理解析(硬件说明)
0.冒险宝藏图生成和印刷
采用AI加提示词生成冒险宝藏图,简单编辑添加箭头之后通过彩色丝印印刷在PCB板上。
1.灯珠路径显示
使用24颗WS2812B可编程灯珠依据宝藏图排布路径,其中24颗WS2812B依次串联。仅使用P54一个IO口,并设为推挽输出。
2.数码管金币显示
数码管采用共阴极4位数码管,并使用TM1650数码管驱动显示当前玩家的金币数。使用四个IO口模拟两对IIC通信控制显示。
3.按键控制和LED指示
使用两个TS665CJ按键控制玩家移动,一个绿色一个红色的LED显示按键按下状态。
4.有源蜂鸣器控制
蜂鸣器用于在玩家胜利到达终点时播放提示音,采用三极管控制蜂鸣器电路通断。
5.USB供电下载和主控
特意预留下载短接排针口,当单片机下载时短接该排针口,重新开关供电即可进入USB下载模式。
单片机可直接引出USB的D+和 D-,无需TTL转USB芯片即可下载程序。
软件代码
硬件编程的keil源代码已附在附件的压缩包文件。
首先引入用到的头文件,设定常量和变量,以及本地函数,此外注释了对应IO端口作用。
设定端口和变量初始值,数码管初始显示1000。
按键按下后,进行消抖延时,之后生成随机0~4移动步数,清空显示,再显示对应步数的灯亮起,判定和显示当前金币,路径是否跳转灯逻辑。
注意事项
- 本项目单片机的IRC设置为24MHz,在ISP下载界面一定要设置正确,否则路径显示不正常;
- 可通过船型开关控制单片机重新开始新的一局游戏;
- 注意下载方式,需要短接DLOAD排针口,之后断开并闭合船型开关进入到下载模式。
组装流程
PCB正面图如下,首先将贴片类型的器件(WS2812B,TM1650,AI8H2K12U,电容电阻,LED灯)通过热风枪加锡膏焊接牢固,并检查无短路断路;
之后将插件插入PCB板后,翻转PCB,通过电烙铁加焊锡丝焊接插件,可先焊器件高度低的插件。
实物图
焊接好的实物图如下:
设计图

BOM


评论