基于SLH89F5162单片机的游戏手柄设计

来源:本站
导读:目前正在解读《基于SLH89F5162单片机的游戏手柄设计》的相关信息,《基于SLH89F5162单片机的游戏手柄设计》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于SLH89F5162单片机的游戏手柄设计》的详细说明。
简介:本文设计了一款基于SLH89F5162单片机的低成本重力游戏手柄。

一、项目背景概述

在智能手机随处可见的今天,各式各样的APP层出不穷。由于手机有重力感应功能,手机游戏自然也不会错过这个,相比八、九十年代的小游戏,如今的游戏不再只是用眼去看,用手指操作,更多的是让玩家用身体去体验游戏。赛车类、飞机类、游艇类等游戏,通过控制手机的姿态就能控制游戏对象,这种体验使的很多人着迷。

但是,在游戏体验得到大幅度提升的同时,也存在一些问题。重力传感器与手机是一体的,手机屏幕也是手机的一部分,当敌机快速朝我方冲来时,我们会最大限度的倾斜手机来躲避敌机。但是此时由于手机倾斜,我们要么看不见屏幕内容,要么头也随手机倾斜。

为了解决这个问题,我想把传感器与屏幕分离出来,即使控制与显示独立。正值“深联华杯单片机应用设计大赛”如火如荼的进行,我就借此机会将我的计划实现。制作一款具有重力感应的游戏手柄。

虽然带重力感应的游戏手柄在市场上也有,但是上百元的价格并不是人人都会购买的。深联华SLH89F5162单片机是增强型51单片机,兼容传统的51单片机,又添加了许多实用的周边模块,使得单片机真正成为“单片微机”。同时因其低廉的价格,使得制作出来的重力游戏手柄的成本也极低,属于平民级的消费电子,市场竞争力不言而喻。

二、项目设计原理

1、 原理概述

SLH89F5162单片机从传感器MPU6050获取游戏手柄的实时2轴加速度值,经过运算可得到游戏手柄的倾斜角度,将这个角度信息通过串口发送到电脑上的接收程序,由接收程序经过简单的数据打包,就能把游戏手柄的姿态传递给游戏对象,从而达到与智能手机重力感应游戏一样的游戏效果。

2、 硬件设计原理

SLH89F5162单片机有内部16.6MHz振荡器,所以不接外部晶振也可正常工作。用其产生115200波特率,通讯速度快,误差极小,可忽略不计,测试了数万个数据,没发现出错的数据。同时,产生的波特率越小,误差越大。单片机内部有复位电路,可省去外部复位电路,因此一片单片机芯片就是一个最小系统。

控制器SLH89F5162单片机为主控制器,负责传感器的控制,传感器信息的读取、矩阵键盘扫描、独立按键输入、与电脑的串口通讯。

传感器MPU6050内部集成了3轴陀螺仪、3轴加速度计、温度传感器和数字运动处理器,并支持外接其他辅助传感器。I2C通讯接口,数字量输出,体积小。

115200波特率的分频系数 = 16.6M / 16 / 115200 = 9.00608

38400波特率的分频系数 = 16.6M / 16 / 38400= 27.0182

19200波特率的分频系数 = 16.6M / 16 / 19200 = 54.0365

9600波特率的分频系数 = 16.6M / 16 / 9600 = 108.073

3、 软件设计原理

软件开发环境采用Keil3,编程语言采用汇编。采用模块化方法,将I2C读写函数、MPU6050操作函数、键盘扫描函数、数学运算、表格分开在不同的文件,编译时再链接在一起。

MPU6050只支持I2C通讯,最大I2C时钟为400KHz,采用汇编语言编写,可最大限度的满足其时钟要求,这是高级语言无法做到的。重力传感器输出的是某一轴的加速度大小,该值与重力加速度g的比值,就是传感器绕该轴与竖直方向夹角的正弦值,只要求其反正弦就可得到相应的角度大小。

angleX = arcsin(accelX / g)

angleY = arcsin(accelY / g)

采集的数据具有噪声,采用数字低通滤波器可有效减小噪声干扰。某一轴上不仅存在重力加速度的分量,同时也存在运动加速度的分量,这会对倾角的计算带来误差。运动加速度的分量比重力加速度小很多,持续时间也很短,采用低通滤波算法也能较小运动带来的误差。

低通滤波算法:y = a * y + (1 - a) * x; x:输入, y:输出, a:系数

由于8位的51单片机先天不足,对浮点数据运算的支持很差,尤其是涉及三角函数、反三角函数。所以我采用空间换时间的方法,即通过查表得到arcsin(accel)的值,这样运算非常快,而且精度没有打任何折扣。SLH89F5162具有片内62K Flash ROM,而accel = -8192 ~ 8192,存储8192个浮点数据需要8192 * 4 = 32K字节,采用SLH89F5162单片机没有任何压力。

三、项目设计框图

1、硬件设计框图

2、软件设计框图

四、测试结果

一、作品展示

图一

图二

图三

二、作品演示

演示视频链接:http://pan.baidu.com/s/1i35JhVR

(注:视频分辨率为1024×768,为了保证画面清晰,建议全屏或者下载观看。)

提醒:《基于SLH89F5162单片机的游戏手柄设计》最后刷新时间 2024-03-14 01:13:15,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于SLH89F5162单片机的游戏手柄设计》该内容的真实性请自行鉴别。