聚丰项目 > 基于STM32的打地鼠游戏设计

基于STM32的打地鼠游戏设计

本作品是在stm32开发板上开发了我们常见得一款游戏——打地鼠,用了一块7寸的电容触摸屏作为显示和操作界面,用STM32作为主控平台,并在游戏中加入了各种音效,可以作为非常有趣味的一个学习项目。

1413909 1413909

分享
16 喜欢这个项目
团队介绍

1413909 1413909

团队成员

薛海瑞 学生

分享
项目简介
本作品是在stm32开发板上开发了我们常见得一款游戏——打地鼠,用了一块7寸的电容触摸屏作为显示和操作界面,用STM32作为主控平台,并在游戏中加入了各种音效,可以作为非常有趣味的一个学习项目。
硬件说明

   本作品主要包括的硬件主要有STM32开发板,MP3音频播放模块,7寸带触摸功能的液晶屏,分别负责任务调度及控制,音频解码及播放,界面显示及人机交互。下面分别进行介绍:

   1.STM32主控板

    主控版采用的芯片型号为STM32F401,使用高性能的ARM® Cortex™-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。所有型号的器件都包含2个12位的ADC、3个通用16位定时器和1个PWM定时器,还包含标准和先进的通信接口:多达2个I2C接口和SPI接口、3个USART接口、一个USB接口和一个CAN接口。

   这里我们用到了stm32的spi接口与音频模块进行通信,单片机先读取SD卡中的mp3音频文件,然后通过 SPI 口向 VS1053音频模块不停的输入音频数据, 它就会自动帮我们解码了,然后从输出通道输出游戏的背景音乐。

   主控芯片原理图如下:

   stm32.PNG

   2.音频解码模块

    解码芯片用的是VS1053,VS1053 是继 VS1003 后荷兰 VLSI 公司出品的又一款高性能解码芯片。该芯片可以实现MP3/OGG/WMA/FLAC/WAV/AAC/MIDI 等音频格式的解码,同时还可以支持 ADPCM/OGG 等 格式的编码,性能相对以往的 VS1003 提升不少。VS1053 拥有一个高性能的 DSP 处理器核 VS_DSP,16K 的指令 RAM,0.5K 的数据 RAM,通过 SPI 控制,具有 8 个可用的通用 IO 口和 一个串口,芯片内部还带了一个可变采样率的立体声 ADC(支持咪头/咪头+线路/2 线路)、一 个高性能立体声 DAC 及音频耳机放大器。

    VS1053 通过 SPI 接口来接受输入的音频数据流,它可以是一个系统的从机,也可以作为独 立的主机。这里我们只把它当成从机使用。

    电路原理图如下:

    音频.PNG

   3.7寸液晶串口屏

    本作品的显示界面用了一块7寸的HMI串口液晶屏,这种串口屏具有界面设计简单,交互性好,使用方便的特点,且它使用usart进行与主控版进行通信,便于控制部分与显示部分独立进行调试,也便于通信协议的制定,本作品便是利用这一优点进行了设计。

    界面设计如下图所示:

    IMG_099.jpg

 


软件说明

   本作品的软件部分主要分两部分,一部分即为主控这边的音频文件读取与播放并且与串口屏的通信,另一部分即为串口屏图形界面的设计,所以下面分两部分进行介绍。

  1.stm32主控程序说明

   stm32先初始化相应的系统时钟,spi通信端口及usart通信口,然后根据串口屏发来的命令播放相应的背景音乐,串口屏依据不同的情况发送不同的命令到单片机,使其切换不同的音效。

   流程图如下:

  流程.png

   2.串口屏界面设计

    界面设计时主要结合了串口屏的特点,充分利用了串口屏实现各种控件的便利性,再结合屏幕要实现的人机交互的具体功能,比如游戏中背景图片的切换,游戏效果的展现等,按如下流程设计了一套游戏界面。

    界面流程.jpg

演示效果


1.jpg

第三.jpg

第五.jpg

评论区(11 )
  • luckypp: jzsdvjssandfjf

    回复

  • lml9910: 怎样联系您呢?想进一步咨询合作

    回复

  • mjin545: 游戏里面用的什么开发语言?

    回复

  • 电子一小时: 厉害

    回复

  • snollp: 不错,厉害

    回复

  • 鑫朗动漫: 我做儿童游戏机的,请联系我QQ765078860.英雄有用武之地。

    回复

  • 欧阳佳展: 哈哈,这个用的不是正点原子的开发板吗

    回复

  • zts329547875: HMI串口液晶屏,贵不贵呀

    回复

  • 苏眉12: 可以看一下程序吗

    回复

  • 微风凉: 怎么联系你呢?

    回复

  • 末等先生: 你好 可以联系嘛

    回复