test3
第一章 绪论
1.1 任务要求
基于MPU-9250陀螺仪模块实现对体感游戏手柄倾角的测量、获得按键的状态、获得摇杆的状态,将解算的数据传输给上位机,在OLED上显示部分信息。
用unity引擎编写游戏,接受来自单片机传输的数据,控制游戏物体的移动与交互。设计方案主框架图如图1.1所示。
图1.1 设计框架图
基本功能:
(1)正确读取按键及摇杆状态
(2)正确初始化陀螺仪模块并读取会当前角度位置信息。
(3)在LCD屏上实时显示当前陀螺仪传感器倾角位置等信息。
(4)用unity(C#)编写上位机,接受来自单片机发送的数据
(5)将按键状态、摇杆状态、陀螺仪状态发送给上位机。
(6)编写游戏用对应的按键进行控制。
(7)在上位机中用3d模型显示手柄状态。
1.2 设计方案的选择
根据课程任务设计书中的基础要求及任务分析,我认为方案设计已经非常清晰了,无法从社会、健康、安全、法律、文化以及环境等方面进行设计方案进行考究。
所以我从主控芯片和陀螺仪两方面进行选择:
表3.1 主控芯片的比较
主控芯片 stm32f103c8t6 Esp32nodemcu32s
价格 19.8元
下载器 14.7元 不需要
硬件资源 最多两个I2C 两个I2C
具有蓝牙和WiFi通讯功能
3个SPI 4个SPI
3个12bit的ADC 2个12位ADC
分析所需要的资源,从价格等诸多方面考虑选择esp32,后续也可以扩展无限手柄,非常方便,且我想后续做一套动捕设备。若用STM32则需要再购买HC05蓝牙模块和esp8266。
陀螺仪:
对手柄进行状态采集需要用到姿态传感器,一般可以分为三类第一类为加速度传感器与陀螺仪相互配合,主要产品为mpu6050,可以测出大致运动姿态;第二类为mpu6050与磁强计相互配合,这是目前主流的运动姿态检测方法;第三类为Inven Sense公司最新推出的一款九轴惯性传感器,其内部集成了三轴陀螺仪、三轴加速度计、三轴磁强计,主要产品为mpu9250。
单独使用MPU6050可以初步测得运动姿态,但是缺少磁强计的支持,会使得数据发生便宜与误差,可以测得三维旋转角速度和角位移,是一款经典的惯性导航元件。Mpu6050加磁强计与直接使用mpu9250效果相差不大,本设计直接使用mpu9250。
1.3 本人工作
由于本人的水平有限,无法自己设计芯片周围电路,也无法对现成的芯片PCB打板后进行贴片焊接,所以我使用现成的模块设计“直插式”的PCB。首先构思设计,进行系统框图、程序流程图、上位机功能表设计,初步建立系统框架。购买现成的模块和线材进行可行性分析,资源分配。将本设计模块化,对每个模块进行调试、验证,然后设计PCB。准备工作完成后首先进行通讯,初期设想是可以通过串口、蓝牙、WIFI进行多方式通讯,所以我对信息发送函数进行重写,方便进行后续扩展。然后通过串口检验对按键和摇杆状态的读写,对MPU9250进行解算,使之能正确输出角度。进行上位机的编写,unity引擎中接受来自串口的数据,进行分割,储存进数组,通过判断数组中的值进行控制。上位机中设计了三个游戏,需要通过按键、摇杆和MPU进行操作,OLED屏幕上显示上位机中显示的当前关卡,显示关卡选择页面和显示角度信息。
第二章 硬件设计
2.1硬件总体框架
主控芯片使用esp32 NodeMCU-32S,外设搭配按键、摇杆、MPU9250和OLED,总体框架如图2.1所示。
图2.1 总体框架图
2.1 硬件模块
2.1.1主控芯片NodeMCU-32S
本次课程设计主控选用NodeMCU-32S核心开发板,NodeMCU-32S开发板集成了传统蓝牙、低功耗蓝牙和Wi-Fi。具有广泛的用途:Wi-Fi支持极大范围的通信连接,也支持通过路由器直接连接互联网;而蓝牙可以让用户连接手机或者广播BLEBeacon以便于信号检测。模组支持的数据传输速率高达150 Mbps,天线输出功率达到 20 dBm,可实现最大范围的无线通信。因此,这款模组具有行业领 先的技术规格,在高集成度、无线传输距离、功耗以及网络联通等方面性能极佳。
NodeMCU-32S管脚示意图如图2.2所示,在使用时要注意P0口下载模式时,外部拉低;运行模式时,悬空或者外部拉高。但是在实际使用过程中我发现,P2在运行模式下也会被置高,所以这两个引脚都不要使用。
图2.2 NodeMCU-32S管脚示意图
2.1.2 按键
按键使用直插4脚立式开关,该按键绝缘电阻≥100MΩ,接触电阻≤0.03Ω。按键使用上拉方式,按键按下时IO口读得低电平。共使用6个按键,IO分配表2.1所示。
图2.3按键部分原理图
表2.1 按键IO分配表
按键 上 下 左 右 确认 取消
IO 15 4 16 18 5 17
2.1.3摇杆
摇杆使用PS2游戏摇杆,PS2游戏双轴摇杆传感器模块由采用原装优质金属PS2摇杆电位器制作,具有2轴(X,Y)模拟输出,1路(SW)按钮数字输出。双轴按键摇杆主要由两个电位器和一个按键开关组成,两个电位器随着摇杆扭转角度分别输出X、Y轴上对应的电压值,在Z轴方向上按下摇杆可触发轻触按键。在配套机械结构的作用下,无外力扭动的摇杆初始状态下,两个电位器都处在量程的中间位置。
图2.4电位器摇杆实物图 图2.5电位器摇杆原理图表
PS2游戏摇杆可以被视为一个按钮和两个电位计的组合。其原理图如图2.6所示
图2.6电位器摇杆原理图
2.2电位器摇杆IO分配表
X Y SW
35 32 33
2.1.4 0.96寸OLED显示屏
OLED有机发光二极管又称为有机激光显示、OL ED显示技术具有自发光的特性、采用非常薄的有机材料涂层、和玻璃基板、当有电流通过时、这些有机材料就会发光、而且OLED显示屏幕可视角大、功耗低、OL ED由于同时具备自发光、不需背光源(只上电是不会亮的、驱动程序和接线正确才会点亮)、对比度高、厚度薄视角广、反应速度快、可用于挠曲面板、使用温度范围广、 结构及制程等 优异之特性、先接触的1286屏都是LCD的、需要背光、功耗较高、而OLED的功耗低、更加适合小系统、由于两者发光材料的不同在不同的环境中、OLED的显示效果好、模块供电可以是3.3V也可以是5V、不需要修改模块电路、OLED屏具有多个控制指令、可以控制OL ED的亮度、对比度、开关升压电