stm32f107的usb体感游戏设备

摘 要摘 要目前很多人喜欢用电脑玩游戏,一般使用键盘与鼠标,运动量较小,长期游戏会出现手臂酸痛,身体抵抗力下降等症状。也有许多人购买专门的体感游戏主机比如日本任天堂公司出品的体感游戏机wii。但相对价格较贵,平台支持游戏比较单一,普及度并不高。但随着社会的发展,个人电脑几乎家家都有且多功能扩展能力强,故可以借助USB的可扩展特性来开发出一款可以在pc上操作的体感设备。现在体感设备的实现一般通过摄像头进行用户动作捕捉及分析,但由于其开发模块组件昂贵,门槛高,且并不适配pc上游戏资源,故采用动作传感器加USB模拟实现类似鼠标的功能来间接适配pc游戏。本文主要利用STM32F107芯片为主控制器,通过SMBus协议配置mpu605并获取其X轴,Y轴测量值并利用STM32F107内部自带的USB控制器通过HID协议传输数据到pc端达到模拟鼠标进行电脑游戏操作的目的。但由于陀螺仪本身测量数据漂移的问题,故系统又设计了4个上下左右按键 每次按下对USB鼠标进行精确微调,并且设计了dpi加减按键动态调节dpi值。关键字:陀螺仪;STM32F107;mpu6050;USB-HID目 录
第一章 绪论 1
1.1 课题概述 1
1.1.1 课题背景 1
1.1.2 课题意义 1
第二章 系统开发分析 2
2.1 系统目标 2
2.2 系统概述 2
2.3 系统需求 3
2.3.1 硬件需求 3
2.3.2 软件需求 3
2.3.3 开发环境的选择 3
2.3.4 开发语言的选择 3
第三章 硬件原理图设计 5
3.1 选用芯片介绍 5
3.1.1 STM32F107的USB有以下特性 5
3.1.2 STM32F107的SMBUS有以下特性 8
3.2 MPU60X50轴运动处理传感器 8
3.2.1 MPU6050模块引脚描述 9
3.2.2 数字运动处理器(DMP) 9
3.2.3 可编程中断 10
3.2.3.1 自由落体中断(Free Fall Interrupt) 10

 *好棒文|www.hbsrm.com +Q: %3^5`1^9`1^6^0`7^2# 
性 5
3.1.2 STM32F107的SMBUS有以下特性 8
3.2 MPU60X50轴运动处理传感器 8
3.2.1 MPU6050模块引脚描述 9
3.2.2 数字运动处理器(DMP) 9
3.2.3 可编程中断 10
3.2.3.1 自由落体中断(Free Fall Interrupt) 10
3.2.3.2 运动中断(Motion Interrupt) 10
3.2.3.3 静止中断(Zero Motion Interrupt) 10
3.2.4 传感器数据寄存器 11
3.2.5 数字输出温度传感器 11
3.2.6 陀螺仪原理及数据分析处理 11
3.2.7 mpu6050与STM32F107连接 12
3.3 系统原理图设计 13
3.3.1 防抖按键的设计 13
3.3.2 STM32最小系统 13
3.3.3 mpu6050陀螺仪 14
3.3.4 USB接口电路 15
3.4 Smbus协议解析 15
第四章 USB HID协议实现 17
4.1 USB协议简述 17
4.1.1 USB设备 17
4.1.2 USB设备端点 17
4.1.3 USB硬件接口 17
4.1.4 USB通讯协议 18
4.1.4.1 数据包(packet) 18
4.1.4.2 信息包 19
4.1.5 USB接口的HID设备驱动开发 20
4.1.6 STM32 USB通讯协议库解析 22
第五章 关键代码解析 26
5.1 STM32F107 USB控制器编程 26
5.2 mpu6050 SMBus编程 28
第六章 系统测试 32
6.1 测试的目的 32
6.2 测试步骤 32
总结 33
致谢 34
文献参考 35
第一章 绪论
课题概述
课题背景
1968年Engilehbart博士向世界展示了世界上第一个机械鼠标,虽然其当时还需要外部供电且木质体积大不适合人手握持,但这一发明影响了世界计算机操作方式。后来罗技在1984年发明了光机鼠标,体积外观设计非常符合人体力学设计。2001年,安捷伦推出了光学成像算法加dsp引擎将分辨率升级到800DPI。当然,伴随着电脑控制系统的改进,人们使用电脑不再拘泥于办公,而是尝试使用电脑进行电脑游戏开发。伴随着第一人称射击游戏的流行,人们习惯了使用鼠标定位枪械的准星,这也反向促进了高性能鼠标的发展。如今很多为电脑开发的游戏都依赖于鼠标作为游戏控制器,越来越多的年轻人习惯了使用鼠标对电脑进行操作。
课题意义
目前很多人特别喜欢用一般使用键盘与鼠标玩电脑游戏,运动量较小,长期游戏会出现手臂酸痛,身体抵抗力下降。也有许多人购买专门的体感游戏主机比如日本任天堂公司出品的体感游戏机wii。但相对价格较贵,平台支持游戏比较专一,普及度并不高。但随着社会发展,个人电脑几乎家家都有且多功能扩展能力强,故可以借助USB的可扩展特性开发出一款可以在pc上操作的体感设备,使人们在玩游戏的同时可以锻炼身体,同时也大大提高了游戏程序的可玩性。同时该设备支持四档dpi调速且自带四个指示灯提示当前灵敏度,从而可以使用户自己调节适合自己运动幅度的灵敏度。
第二章 系统开发分析
系统目标
以用户将设备USB端插入个人电脑后,个人电脑枚举出设备,并建立连接后。用户可以通过电路板上陀螺仪控制电脑,或通过按键进行精确控制电脑,模拟鼠标进行相关pc游戏操作,如第一人称射击类游戏操作。
系统是按照模块化方式开发的,将系统按功能划分成如下:
(1)用户通过USB连接电脑,通过摆动硬件设备,陀螺仪采集数据到STM32, STM32对数据进行处理并通过USB HID协议发送至pc端。
(2)用户通过设备上的上下左右及模拟鼠标的左键,右键向pc发送精确的控制信息。
(3)实现按键控制装置的dpi灵敏度,按下dpi加按键,dpi增加,按下dpi减按键。
系统概述
本课题所设计的基于CORTEX M3的体感游戏设备主要包含两个主要系统:硬件系统以软件程序系统。
硬件系统:
硬件系统采用意法半导体投资有限公司的STM32F107作为主处理器,硬件系统主要由STM32F107收集陀螺仪MPU6050的数据进行USBHID协议打包发送至pc端。详细内容将会在硬件原理设计章节介绍。
软件系统:
软件程序的编写采用C语言,利用KEIL

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/2325.html

好棒文