CN112439195A - 一种基于stm32的游戏实现系统及实现方法 - Google Patents
一种基于stm32的游戏实现系统及实现方法 Download PDFInfo
- Publication number
- CN112439195A CN112439195A CN201910800326.5A CN201910800326A CN112439195A CN 112439195 A CN112439195 A CN 112439195A CN 201910800326 A CN201910800326 A CN 201910800326A CN 112439195 A CN112439195 A CN 112439195A
- Authority
- CN
- China
- Prior art keywords
- guideboard
- screen
- color
- sram
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/50—Controlling the output signals based on the game progress
- A63F13/52—Controlling the output signals based on the game progress involving aspects of the displayed game scene
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/56—Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提出了一种基于STM32的游戏实现方法,通过读取陀螺仪的数据,得到偏转角,然后送给单片机,进行小鸟的高度操控;对于TFT显示,对于需要移动和反复刷新的图素,小火车在不停地运动中,实际上就是不同运动位置的转换,给火车建立18*26的缓存;建立两个缓存,一个是路牌自身的缓存:先将需要的路牌完整地画在已计算好大小的缓存中,之后直接将缓存中的内容刷入屏幕相应位置即可显示路牌,该缓存大小为259*39;另一个缓存则是写入路牌右边3个像素宽度的背景,路牌每次向左移动1‑3个像素,第二次刷屏的时候直接在路牌平移后的位置刷图像即可,老图像则会被自动覆盖,之后再一次性地刷到屏幕中,即可实现路牌不停移动的效果。
Description
技术领域
本发明涉及电子仪器技术领域,具体涉及一种基于STM32的游戏实现系统及实现方法。
背景技术
近年来,社会发展十分迅速,特别是以计算机技术、软件、通信为核心的高新技术产业取得了十分迅速的发展。随着手机、电脑等各种智能产品的腾飞,嵌入式系统也深入到我们日常生活的方方面面。单片机系统也属于嵌入式系统中的一种,因为它可靠性高、成本低、功能强大。单片机不仅可以开发工业类产品,也经常用于开发消费类的电子产品,如电子表、MP3、MP4、掌上游戏机等等。如今掌上游戏机非常盛行,游戏带给人们成功的兴奋和失败的懊恼,给人们一种现实生活无法满足的奇妙体验。顺应嵌入式开发热门的潮流和游戏机的热门潮流,本设计应运而生。是一款基于嵌入式系统的趣味性游戏。
发明内容
本发明是为了在stm32上面设计一个游戏,主要有两大部分组成,分别是硬件部分和软件部分。硬件部分用自制的电路板,以实现角度的实时获取功能。软件部分则是在KeiluVision5上进行功能开发,通过TFTLCD屏幕的显示、陀螺仪的使用和AD模块从而实现相应功能。
本发明主要包括以下几个部分:
第一,单片机配置部分
1、SRAM配置:整个作品是基于SRAM来运行的,由于需要不断刷新屏幕,所以将图片以帧的模式存储在SRAM里面。由于在开发板上单片机芯片内部的FSMC已经与SRAM相连接,所以直接初始化FSMC即可进行对SRAM的操作。
2、DMA配置:将TFTLCD看作一个SRAM,即可通过FSMC将SRAM与TFTLCD联系起来。由于图片需要不断刷新,所以采用DMA模式,由于DMA传输最大为60K,经过计算我们每次传输半帧的图像,即每开始一次传输会进行两次半帧的传输。
第二,屏幕显示部分
本设计选用的TFTLCD屏幕分辨率为240*320,横向240个像素点,纵向320个像素点。所有的屏幕显示均通过基础函数DrawPoint实现DrawPoint函数的入口参数为x,y和color, x为所画点的x坐标,y为所画点的y坐标,color为想要画入的颜色,x,y和color均为16位数据,向位置为(x,y)的点填充color颜色。屏幕后续所有的画图均基于该函数。在TFTLCD屏幕上显示图片时,需要先将图片取模。由于取模得到的颜色数据位为8位的16进制数据,而DrawPoint函数的输入为16位颜色,故需要对取模得到的数据进行混色操作。形成16位颜色,再调用画点函数画点。
第三,陀螺仪部分
MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。
作品种MPU6050采用了IIC通信,通过IIC读取寄存器,以获得开发板倾斜角。
程序先初始化MPU6050等外设,然后利用DMP库,初始化MPU6050及使能DMP,最后,在死循环里面不停读取:温度传感器、加速度传感器、陀螺仪、DMP姿态解算后的欧拉角等数据。
实现的方法是:
通过读取陀螺仪的数据,得到偏转角,然后送给单片机,进行小鸟的高度操控。对于TFT 显示,由于单片机中的快速画点函数对于游戏要求的画点速率来说还是过慢,故对于需要移动和反复刷新的图素,例如:火车、路牌和下方移动的铁轨,都建立了相应的缓存。小火车在不停地运动中,实际上就是不同运动位置的转换,为了节约内存给火车建立18*26的缓存。由于路牌也在不停地平移中,于是需要建立两个缓存,一个是路牌自身的缓存:先将需要的路牌完整地画在已计算好大小的缓存中,之后直接将缓存中的内容刷入屏幕相应位置即可显示路牌,该缓存大小为259*39。另一个缓存则是写入路牌右边3个像素宽度的背景,路牌每次向左移动1-3个像素,第二次刷屏的时候直接在路牌平移后的位置刷图像即可,老图像则会被自动覆盖,之后再一次性地刷到屏幕中,即可实现路牌不停移动的效果。路牌背景的缓存大小为259*39。
本发明有益效果在于:设计了一款基于STM32芯片设计了一款掌上游戏机。游戏名称为《The Way to Home》。主要的应用模块和电路包括STM32核心电路、TFTLCD显示屏、陀螺仪传感器、AD采样模块、独立按键等。具有多种游戏模式,画面丰富美观,游戏难度可调。
附图说明
图1为本发明游戏逻辑图。
图2为陀螺仪电路图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
如图1所示,本发明所述基于STM32的游戏设计主要包括以下几个部分:
第一,单片机配置部分
1、SRAM配置:整个作品是基于SRAM来运行的,由于需要不断刷新屏幕,所以将图片以帧的模式存储在SRAM里面。由于在开发板上单片机芯片内部的FSMC已经与SRAM相连接,所以直接初始化FSMC即可进行对SRAM的操作。
2、DMA配置:将TFTLCD看作一个SRAM,即可通过FSMC将SRAM与TFTLCD联系起来。由于图片需要不断刷新,所以采用DMA模式,由于DMA传输最大为60K,经过计算我们每次传输半帧的图像,即每开始一次传输会进行两次半帧的传输(DMA2_MEM_LEN=240*320/2)。
第二,屏幕显示部分
本设计选用的TFTLCD屏幕分辨率为240*320,横向240个像素点,纵向320个像素点。所有的屏幕显示均通过基础函数DrawPoint实现DrawPoint函数的入口参数为x,y和color,x为所画点的x坐标,y为所画点的y坐标,color为想要画入的颜色,x,y和color 均为16位数据,向位置为(x,y)的点填充color颜色。屏幕后续所有的画图均基于该函数。在TFTLCD屏幕上显示图片时,需要先将图片取模。由于取模得到的颜色数据位为8位的16 进制数据,而DrawPoint函数的输入为16位颜色,故需要对取模得到的数据进行混色操作。形成16位颜色,再调用画点函数画点。
第三,陀螺仪部分
MPU6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了安装空间。
作品种MPU6050采用了IIC通信,通过IIC读取寄存器,以获得开发板倾斜角。
程序先初始化MPU6050等外设,然后利用DMP库,初始化MPU6050及使能DMP,最后,在死循环里面不停读取:温度传感器、加速度传感器、陀螺仪、DMP姿态解算后的欧拉角等数据。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
Claims (3)
1.一种基于STM32的游戏实现系统,其特征在于,包括:
第一,单片机配置部分:
SRAM配置:整个系统是基于SRAM来运行的,将图片以帧的模式存储在SRAM里面;由于在开发板上单片机芯片内部的FSMC已经与SRAM相连接,所以直接初始化FSMC即可进行对SRAM的操作;
DMA配置:将TFTLCD看作一个SRAM,即可通过FSMC将SRAM与TFTLCD联系起来;由于图片需要不断刷新,所以采用DMA模式,由于DMA传输最大为60K,每次传输半帧的图像,即每开始一次传输会进行两次半帧的传输;
第二,屏幕显示部分:
选用的TFTLCD屏幕分辨率为240*320,横向240个像素点,纵向320个像素点;所有的屏幕显示均通过基础函数DrawPoint实现DrawPoint函数的入口参数为x,y和color,x为所画点的x坐标,y为所画点的y坐标,color为想要画入的颜色,x,y和color均为16位数据,向位置为(x,y)的点填充color颜色;屏幕后续所有的画图均基于该函数;在TFTLCD屏幕上显示图片时,需要先将图片取模;由于取模得到的颜色数据位为8位的16进制数据,而DrawPoint函数的输入为16位颜色,故需要对取模得到的数据进行混色操作;形成16位颜色,再调用画点函数画点;
第三,陀螺仪部分:
MPU6050是整合性6轴运动处理组件;所述MPU6050采用了IIC通信,通过IIC读取寄存器,以获得开发板倾斜角;
程序先初始化MPU6050外设,然后利用DMP库,初始化MPU6050及使能DMP,最后,在死循环里面不停读取:温度传感器、加速度传感器、陀螺仪、DMP姿态解算后的欧拉角数据。
2.一种基于STM32的游戏实现方法,其特征在于,包括:
通过读取陀螺仪的数据,得到偏转角,然后送给单片机,进行小鸟的高度操控;对于TFT显示,由于单片机中的快速画点函数对于游戏要求的画点速率来说还是过慢,故对于需要移动和反复刷新的图素,小火车在不停地运动中,实际上就是不同运动位置的转换,为了节约内存给火车建立18*26的缓存;由于路牌也在不停地平移中,于是需要建立两个缓存,一个是路牌自身的缓存:先将需要的路牌完整地画在已计算好大小的缓存中,之后直接将缓存中的内容刷入屏幕相应位置即可显示路牌,该缓存大小为259*39;另一个缓存则是写入路牌右边3个像素宽度的背景,路牌每次向左移动1-3个像素,第二次刷屏的时候直接在路牌平移后的位置刷图像即可,老图像则会被自动覆盖,之后再一次性地刷到屏幕中,即可实现路牌不停移动的效果;路牌背景的缓存大小为259*39。
3.如权利要求2所述基于STM32的游戏实现方法,其特征在于,采用如权利要求1所述的基于STM32的游戏实现系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910800326.5A CN112439195B (zh) | 2019-08-28 | 2019-08-28 | 一种基于stm32的游戏实现系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910800326.5A CN112439195B (zh) | 2019-08-28 | 2019-08-28 | 一种基于stm32的游戏实现系统及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112439195A true CN112439195A (zh) | 2021-03-05 |
CN112439195B CN112439195B (zh) | 2022-07-05 |
Family
ID=74741023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910800326.5A Active CN112439195B (zh) | 2019-08-28 | 2019-08-28 | 一种基于stm32的游戏实现系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112439195B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103616813A (zh) * | 2013-12-08 | 2014-03-05 | 桂林理工大学 | 实时多通道并行通用计时测量系统 |
JP2015019817A (ja) * | 2013-07-18 | 2015-02-02 | 株式会社三球電機製作所 | 遊技機用傾斜角度調整装置 |
CN205323219U (zh) * | 2016-01-07 | 2016-06-22 | 广州大学 | 一种脑电波控制的坦克游戏机器人 |
CN206209622U (zh) * | 2016-07-05 | 2017-05-31 | 陕西科技大学 | 一种基于stm32微控制器的无线空中鼠标 |
CN106781921A (zh) * | 2017-01-18 | 2017-05-31 | 广州大学 | 一种基于stm32微控制器的物联网实验箱 |
CN106843215A (zh) * | 2017-02-14 | 2017-06-13 | 上海大学 | 基于人体动态行为追踪的智能跟随机器人系统和方法 |
CN108536275A (zh) * | 2017-03-04 | 2018-09-14 | 上海盟云移软网络科技股份有限公司 | 一种虚拟现实头盔系统 |
-
2019
- 2019-08-28 CN CN201910800326.5A patent/CN112439195B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015019817A (ja) * | 2013-07-18 | 2015-02-02 | 株式会社三球電機製作所 | 遊技機用傾斜角度調整装置 |
CN103616813A (zh) * | 2013-12-08 | 2014-03-05 | 桂林理工大学 | 实时多通道并行通用计时测量系统 |
CN205323219U (zh) * | 2016-01-07 | 2016-06-22 | 广州大学 | 一种脑电波控制的坦克游戏机器人 |
CN206209622U (zh) * | 2016-07-05 | 2017-05-31 | 陕西科技大学 | 一种基于stm32微控制器的无线空中鼠标 |
CN106781921A (zh) * | 2017-01-18 | 2017-05-31 | 广州大学 | 一种基于stm32微控制器的物联网实验箱 |
CN106843215A (zh) * | 2017-02-14 | 2017-06-13 | 上海大学 | 基于人体动态行为追踪的智能跟随机器人系统和方法 |
CN108536275A (zh) * | 2017-03-04 | 2018-09-14 | 上海盟云移软网络科技股份有限公司 | 一种虚拟现实头盔系统 |
Non-Patent Citations (2)
Title |
---|
CHINAZHANGZHONG123: "STM32F4——TFT-LCD原理及FSMC", 《HTTPS://BLOG.CSDN.NET/CHINAZHANGZHONG123/ARTICLE/DETAILS/54022016》 * |
SHAWNWANG1994: "利用stm32f4单片机的mpu6050六轴加速度传感器获取姿态角详解(有代码)", 《HTTPS://BLOG.CSDN.NET/SHAWNWANG1994/ARTICLE/DETAILS/86266126》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112439195B (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020186935A1 (zh) | 虚拟对象的显示方法、装置、电子设备和计算机可读存储介质 | |
CN1324473C (zh) | 具有图形上下文管理器的图形渲染装置、方法和系统 | |
CN102254292A (zh) | 远程3d指令渲染系统及方法 | |
KR20130040251A (ko) | 디스플레이 활동을 제어하기 위한 기법들 | |
US20130016111A1 (en) | Optimization of memory bandwidth in a multi-display system | |
CA2011102A1 (en) | Method and apparatus for detecting changes in raster data | |
CN101398994B (zh) | 多功能晃动式led显示装置 | |
CN106448614A (zh) | 电子装置以及画面刷新率控制方法 | |
CN1981519A (zh) | 用于显示图像帧序列的方法和系统 | |
US20020075251A1 (en) | Method and apparatus for adjusting video refresh rate in response to power mode changes in order to conserve power | |
US20080297525A1 (en) | Method And Apparatus For Reducing Accesses To A Frame Buffer | |
TW200821984A (en) | Work based clock management for display sub-system | |
CN114616536A (zh) | 使用超帧传送表面数据的人工现实系统 | |
CN112439195B (zh) | 一种基于stm32的游戏实现系统及实现方法 | |
CN101127847A (zh) | 一种在屏显示的合成方法及合成装置 | |
KR910000202B1 (ko) | 화상 처리장치 | |
CN102073376A (zh) | 便携式无线操作系统及方法 | |
CN106875884B (zh) | 一种绘制单色屏幕的方法和装置及一种电子设备 | |
KR100738916B1 (ko) | 임베디드 시스템에서 실행중인 비디오 컨텐츠의 디스플레이영상 저장방법 | |
CN106710568A (zh) | 显示系统以及画面刷新率控制方法 | |
CN107239246A (zh) | 一种图片同步显示方法及系统 | |
CN103777993A (zh) | 一种多用户计算机系统 | |
WO1999040518A1 (en) | Method and apparatus to synchronize graphics rendering and display | |
CN106406791B (zh) | 快速同步显示方法、系统及与该系统连接的装置 | |
CN208819191U (zh) | 一种多个minidp接口输出的显示卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |