加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

横扫饥饿吧!平民级USB有线电脑游戏手柄制作(原理图、PCB源文件、程序源码、设计报告)

2016/10/26
62
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
方块图(2)
相关方案
  • 方案介绍
  • 相关文件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

PC电脑智能游戏手柄设计背景及概述:

智能手机随处可见的今天,各式各样的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具有片内62KFlash ROM,而accel = -8192 ~ 8192,存储8192个浮点数据需要8192 * 4 = 32K字节,采用SLH89F5162单片机没有任何压力。

视频演示:

硬件设计框图:

软件设计框图:

作品展示:

  • 硬件原理图.rar
    描述:硬件原理图,见截图展示
  • 软件源码.rar
    描述:软件源码,见截图展示
  • 项目报告书.doc
    描述:项目报告书

相关推荐

电子产业图谱