用STM32F103使用OLED屏实现贪吃蛇游戏

偶然一天突发奇想想在MCU上实现一个小游戏,综合现有硬件开发资源和开发能力,想来想去贪吃蛇最为合适。
有之前朋友留给我的一块四轴飞行器遥控器的电路板,上面有摇杆按键和OLED瓶。STM32F103R8T6。于是决定在这块板子上开发。

移植UCOS-II

这个就说了,参考正点原子移植的例程,然后拷贝UCOS代码过来,没有什么难度。

写OLED,LED,摇杆按键RCT,24L01驱动

这个也不想多说。没意思。博文后面我会留下我写的工程,也就用了SPI,和ADC。

原理

首先需要OLED屏是一次写八个数据进去,也就是一次在屏幕上显示竖着的八个点,也就是说OLED屏幕,X范围在0-132。Y的范围在0-7,那么我就想了一下,食物的大小和蛇的单位长度在OLED上显示出来就是8x8的点。所以在屏幕蛇的移动范围就是10x8的屏幕空间。

蛇移动的实现原理

我用的是一个大的数组来便是蛇身体的各个位置,一个8位的数据,高四位表示X,低四位表示Y,0号元素是蛇头,然后它根据按键上一次输入的方向来移动,200ms移动一个单位距离。蛇头移动方向的相应的XY坐标运算,然后1号元素等于0号元素,2号等于1号。。。依次类推。最后蛇尾的坐标被丢弃。
当然如果判断吃到食物那么就在数组里面加一个元素,这个元素就是如果没吃到食物就要被丢弃的蛇尾坐标。

用STM32F103使用OLED屏实现贪吃蛇游戏_第1张图片

操作方法,右摇杆,左右摇选择功能,左摇杆按下进入应用,右摇杆按下退出应用,玩贪吃蛇游戏的时候是左摇杆上下左右来操作,右摇杆移动一下则暂停游戏。按下去退出游戏。

那么下面贴上我的工程和PCB原理图的链接,如果有想法,可以自己找个板子实现一下,不移动要OLED屏,其他的也可以。重点只是原理而已,因为是OLED屏所以显示方面只能这么简单。

https://download.csdn.net/download/weixin_42783751/11226152

你可能感兴趣的:(UCOS)