1.项目需求
移植或自己编写一款经典的游戏,并可用板上的4个按键操作,同时蜂鸣器能够发出声音,姿态传感器能够感知板子旋转的方向,自动将屏幕调整到合适观看的角度。
选择了贪吃蛇小游戏,通过四个按键分别控制射的不同方向上下左右移动来吃到食物,然后增加蛇身的长度,速度也会不断加快。当碰到墙壁或者蛇自身时,游戏结束。
2.实现的思路
首先拿到STM32这块板子之后,要先知道它的具体配置和功能所用开发板资源,学习使用之后,找到合适的平台开始编译代码。这里使用的是keil5,有一个问题就是下载最好在官网使用最新版,确保能够顺利运行,否则可能无法与STM32F103进行匹配,会浪费很多时间。相关代码参考了“03-1.54IPS程序源码.zip,但是要修改一些引脚的差异。
游戏界面主要的设计思路就是在连接完成开始之后先显示初始界面,任意按键后即可开始游戏,初始化后蛇开始朝着任意方向运动,食物的位置也是随机的。之后每走一步都要考虑蛇头朝向,并紧接着判断前方是食物还是墙还是身体或空白,进入不同分支判断,若是吃到食物则身体长度增加,速度加快,遇到墙或身体就game over,这样才能保证贪吃蛇的正常运行和结束,通过反复刷新屏幕就可以实现。
3.完成的功能及达到的性能
可以正常运行贪吃蛇游戏,并且每走一步蜂鸣器会发出声音,在引脚上设置电平改变的频率和持续时间即可,同时速度也会加快,即难度增加。通过姿态传感器mpu6050获得角速度和加速度的原始数据,并对其进行姿态解算,最后能够感知板子旋转的方向,自动将屏幕调整到合适观看的角度。
4.遇到的主要难题
主要还是对STM32和keil软件的初次使用不熟练,许多地方不太好理解。
5.代码参考
主函数部分
通过start函数可以设计开始界面图案
6.感想
本次活动收获颇丰,了解了很多有新知识,非常感谢,希望以后还有这种机会探索更多相关的领域提升自己。