用mega和nano做了一个打地鼠游戏机-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8791|回复: 6

用mega和nano做了一个打地鼠游戏机

[复制链接]
发表于 2017-4-25 08:41 | 显示全部楼层 |阅读模式
本帖最后由 deleteac 于 2017-4-25 08:47 编辑

嗯。还是蛮简单的。对初学arduino很有帮助。一遍做下来对arduino的I/O和基本函数都有比较明确的认识。
废话不多,上图

主机用的是mega,用来控制
9个LED
3x3的扫描式键盘,这里用了Keypad.h
3个独立的选关按键,因为选关按键需要精确控制所以没有和矩阵键盘连在一起
两个蜂鸣器,一个用来当音效,另一个用来播放BGM,这里用了tone()函数
LCD1602,这个是用来实时计分和显示关卡用的
然后从机用的nano,这里用了SoftwareSerial.h和主机串口通信
nano主要是用来控制2位7段数码管用来进行30s倒计时的,因为需要做到精确计时和实时显示,单线程显然很吃力
所以用nano独立控制计时,没用定时器,用的赋值自减,然后用delaymicroms()函数进行微调,误差降到最小


关于功能的实现
首先是选关
3个红色按键可以选3关每一关LED的亮灭时间不一样
关于游戏,LED用rand()随机数(假随机数)生成的数控制
游戏判断
这里用了while()和 与运算,判定LED熄灭之前按键是否按下
按对一次记一分然后1602显示
按错或者超时扣一分
计分用了全局变量易于控制
音效用函数插入到各个部分
当从机nano计时结束后
会向主机mega发送中断信号然后mega立即停止运行
执行中断函数然后初始化

做这个的初衷本来是为了学习arduino。不过既然都做了,干脆贴出来。
相比看书还是自己动手学得快
源码就不贴了,丑到家的代码不好意思贴

贴个视频。http://player.youku.com/embed/XMjcyNzE3NDMwOA

主图

主图
发表于 2017-4-25 10:23 | 显示全部楼层
可以的  赞一个
发表于 2017-5-20 17:46 | 显示全部楼层
赞一个、、、
发表于 2017-8-29 20:49 | 显示全部楼层
可以把代码发过来给小白的我做个参考么
发表于 2017-10-22 12:29 | 显示全部楼层
主要材料是哪几种呢楼主
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-3 07:15 , Processed in 0.130688 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表