寒假在家练项目五——STM32F103嵌入式
在STM32F103上移植贪吃蛇。游戏有开始页面,游戏说明以及结束画面。游戏时蜂鸣器会响,旋转板子时,屏幕也会跟着旋转。共设有四个难度,难度越高,速度越快。由得分设有20种屏幕刷新颜色。
标签
嵌入式系统
STM
苍茫岁月
更新2021-03-26
2041

寒假在家练项目五——STM32F103嵌入式

项目描述 - 项目需求:

1.植入贪吃蛇游戏

2.需要用板子上的4个按键控制蛇的上下左右移动。

3.当游戏开始的时候,随着蛇的移动,蜂鸣器会响,当游戏结束的时候,蜂鸣器静止。

4.板子上的姿态传感器能够及时的将屏幕调整至最适合游戏的方向。

5.当蛇成功吃到食物时,蛇能够伸长一格。

6.当蛇咬到自己时或者撞到墙的时候,游戏结束,来到游戏开始界面。

实现的思路

1.先分析项目需求,将它们拆分称一个个小问题。

2.先在网上找到一个能够成功运行的贪吃蛇C语言代码。

3.通过直播课以及B站上的正点原子的视频学习如何使用STM32cubeMX和MDK。

4.让蜂鸣器在游戏中响,在游戏结束时安静。

5.通过不断查找MPU6050的资料。用DMP对MPU6050进行姿态解算。

6.在CSDN上找到了一个类似的用STM32F103驱动OLED,并用摇杆玩贪吃蛇和项目中提前完成大佬分享的代码的灵感下,进行不断地调整、修改,完成了本次任务。

完成的功能及达到的性能

1.给板子通上电后,会进入一个初始页面,初始页面上有:欢迎语,游戏规则介绍等。

FmnRnxNBxTNitHFBtB92C1ExH0wa

2.进入初始页面后,随便按一个按键,我们可以进入游戏,游戏开始时,随着蛇的移动,蜂鸣器会不断发出声音。

FnwwfNRt3snyJcKCNdshM9kLoQAq

3.游戏过程中,我们旋转板子,也可以旋转屏幕,此时游戏在刷新的过程中会暂停,刷新完成后就会立马继续游戏。

FrQRoHro4UIeACc7m2dPTC3OowZe

4.食物不会出现在墙上和蛇的身体上,蛇初始长度为4,每吃一个食物,蛇会伸长一格,满分是1000分,共有4个难度。随着难度的提升,蛇的速度也会越来越快,蜂鸣器响的频率也会越来越快。

5.在蛇移动的过程中,我们按与它移动方向相同和相反的的方向的按键,蛇移动的方向不会发生改变.

Fs3kOHsYMXR1VHh2HOlt50cj5Glc

6.当我们游戏过程中,蛇咬到自己或撞到墙时都会结束游戏,游戏结束时屏幕会刷新,按一次按键,又能进入游戏。

FpIqaJHL_t8dhI32EB9GinojBljh

7.死亡后刷新屏幕的颜色一共有20种(共设分有20段颜色显示),屏幕刷新后,会出现Cheer up!Try again!You can do it!的加油鼓励的话。然后屏幕立即刷新,来到游戏结束画面。游戏结束画面里出现的文字也是鼓励的话。

FumOzO5tkaiMmXNNJEO2gG7EXD_x

Fu7GoMlLE2novgM2qTAkyZAwECHyFhB9d5vFe7G-r0VrNJ_7vaoIgZVBFl0G7Bqyw2zJQsPyScsTr2dsCXzJ

遇到的主要难题

1.在设置游戏初始页面的时候,由于对mpu6050原理不太懂,所以初始页面的文字无法跟着屏幕的旋转一起旋转,同样的游戏结束的时候也是这样。也就是说mpu6050的功能只应用在了游戏中,在游戏过程中,旋转屏幕,蛇以及食物的位置会发生相对的改变。

2.插上板子上传代码后,蛇的速度与停止板子供电后(拔掉后)蛇的速度并不一样。这个问题查了好多资料也没有解决。

3.游戏结束后,本来想加上得分显示功能的,但是让屏幕显示变量的函数我还是不懂,所以就去掉了。

未来的计划建议

总的来说,这次寒假在家练的活动让我受益匪浅。第一是对keil MDK的软件更加的熟悉了,也懂得了如何烧录。对LCD_ShowString()更加的熟悉了。之前为了加上游戏结束显示游戏得分的功能,查了好多资料,网上的都是LCD_ShowString()括号里面都是六个元素,而我的例程里的括号里有7个元素。于是我想着把LCD.c和LCD.h整个给换了,在网上的找到例程后,开始了“换血”,可是我还是太天真,没有经历过社会的毒打。最后熬到半夜2点多的时候看到编译报n个错后,顿时感觉山重水复疑无路,柳暗花明还是堵。学习的道路没有尽头,我还要接着走下去!

FogYIPkWN2sipRjNpTbm4l-dzpY3

 

 

附件下载
贪吃蛇.rar
源代码
新贪吃蛇.rar
修改后的代码,演示视频可以在进度里查看
团队介绍
南昌大学电子信息类20级
团队成员
郭熙彦
南昌大学电子信息大一学生
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号