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

deleteac 发表于 2017-4-25 08:41

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

本帖最后由 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

O_oYYQ 发表于 2017-4-25 10:23

可以的赞一个

四年级 发表于 2017-5-20 17:46

赞一个、、、

812886555 发表于 2017-5-23 20:12

:D:D:D:D:D

乄Jax 发表于 2017-8-29 20:49

可以把代码发过来给小白的我做个参考么:$

TLM007 发表于 2017-10-22 12:29

主要材料是哪几种呢楼主
页: [1]
查看完整版本: 用mega和nano做了一个打地鼠游戏机