基于STM32F103的空中鼠标设计与论述

2015-05-30 04:41滕飞胡湘娟阳泳
科技创新与应用 2015年34期

滕飞 胡湘娟 阳泳

摘 要:随着电子技术的飞速发展,各类电子芯片在性能不断提高的同时价格却在不断降低,文章将采用STM32F103来制作一款空中鼠标,在方便实用的同时整体成本又比较低廉。目前市面广泛应用的光电鼠标是通过一个发光二极管发出光线经过桌面、鼠标垫等平面反射后传到光感应器件来分析运动轨迹并传输给电脑。它的原理决定它必须要一块相对平整的反射面才能正常工作,在一些特殊场合使用时将会受到限制。文章介绍的空中鼠标在空中即可实现普通光电鼠标的功能,使用十分方便。

关键词:STM32;MPU6050;姿态解算;空中鼠标

1 方案设计

普通的光电鼠标通过底部的LED灯以一定角度照射在桌面上,在鼠标移动时反射光线通过一块透镜传入传感器来得到连续的图案,然后通过对比前后的图案变化来分析鼠标的位移来得到鼠标在二维坐标的具体移动数值,最终将数据传送给电脑。正是由于工作原理的限制,所以在实际使用中光电鼠标在一些特殊的场合使用将受到限制。不同于光电鼠标的位移检测原理,本设计的位移检测是通过MPU6050芯片来检测空间的对应坐标方向的角速度,由于MPU6050是六轴运动处理器件,而电脑鼠标指针的移动是二维平面,所以只用读取X轴和Z轴的角速度即可。STM32F103芯片读取对应值后通过NRF24l01无线传输模块将数据发送至数据接收端,接收端通过USB接口将数据发送至电脑从而实现鼠标的功能。

2 硬件电路设计

据本系统的工作原理,硬件部分主要有MPU6050模块,NRF24l01无线传输模块,STM32F103芯片,锂电池一块,按键电路,USB串口电路等。

2.1 MPU6050模块

MPU6050是InvenSense公司的整合性6轴运动处理组件,内部自带3轴陀螺仪和3轴加速度传感器,自带有数字运动处理器硬件加速引擎,大大减少了MCU由于对运动处理计算而带来的复杂计算,同时开发难度也大大降低了,利用InvenSense公司提供的运动处理资料库,可以十分方便的实现姿态解算。MPU6050的时钟设置、采样率设置、传感器使能都是通过配置相关寄存器来实现,使用方便。时钟源一般选择X轴陀螺PLL作为时钟源,可以得到高精度的时钟。MPU6050的量程范围也是可以选择的,共有四个可选档位,分别为±250°/S;±500°/S;±1000°/S;±2000°/S;陀螺仪的ADC为16位分辨率,鼠标使用起来较为流畅。MPU6050的超低功耗和4*440.9mm的超小封装也使发射端的制作和使用简便了很多。发射部分可使用一块小锂电池供电,因此可反复充电使用,同时锂电池的充电器生活中非常常用,减少了用户的后续开支,由于本设计只用到了X轴和Z轴的角速度值,MPU6050芯片的性能对本设计来说已经绰绰有余。

2.2 NRF24l01无线传输模块

NRF24L01是一款低功耗无线收发专用芯片,工作频率高,传输速度快,功耗很低,等待模式电流仅为22uA,通过PCB天线即可以实现10m的有效传输距离,可以方便的实现发射和接收。外部电路也较为简单,而模块的价格也只有几块钱,所以本设计直接采用了现成的NRF24l01无线传输模块。两个芯片工作在相同的模式下即可实现相互通信。

3 程序设计

由于本设计分为发射端和接收端两个部分,所以编程也要分开进行。发射部分主要包括MPU6050数据读取,按键数据读取,数据发送。接收端编程主要为数据接收,与PC的USB通讯。因为STM32F103系列芯片都自带了USB,符合USB2.0规范,所以通讯十分方便。在调试时可以使用四轴飞行器的上位机软件调试发射部分的程序,分模块进行调试。

4 结束语

本次基于STM32F103的空中鼠标设计硬件部分较为简单,体积较小,节能稳定,发射部分采用锂电池供电,可以反复充电,减少了不必要的开支,接收部分直接通过电脑的USB端口供电,数据传输和供电共用的是一个USB接口,减少了电脑端口的占用。整体来说,本空中鼠标设计可以方便的在空中实现鼠标指针的位移控制和左右键功能,实现了基本的鼠标功能,可以满足普通的使用,在一些特殊场合比如户外,工业前线等等,具有光电鼠标不具备的优势,对实际应用具有一定的意义。同时对于MPU6050和来STM32来说,本实验仅仅用到了部分功能,仍有很大的改进空间来升级功能和使用体验。

参考文献

[1]正点原子.MPU6050六轴传感器实验[EB/OL].开源电子网,2014(12).

作者简介:滕飞(1994-),男,湖南常德人,汉族,学生,在读本科,所学专业为电子信息工程。