基于STM32的多功能空中鼠标设计

2018-09-20 11:29曾泽良唐盈辉赖英杰欧录富
无线互联科技 2018年15期

曾泽良 唐盈辉 赖英杰 欧录富

摘要:在传统的人机交互中,一般用鼠标、键盘、遥控器或操纵杆等设备,将用户的控制指令发送给相应的控制终端。随着多媒体智能设备的发展,平板电脑、笔记本、智能电视机、大屏幕设备、智能游戏机等各种产品对交互的方式各有要求,传统的交互设备已经不能满足移动办公、移动娱乐、和生活对三维空间操纵的需要。文章基于STM32设计一种多功能空中鼠标,在空中操作即可实现普通光电鼠标的功能,多种输入方式,使用方便。

关键词:STM32;空中鼠标;输入方式

传统的鼠标按其工作原理及其内部结构以及电路原理的差异可以分为机械式、光机式和光电式等。

机械式鼠标和光机式鼠标器都属于滚轮鼠标,在多年以前随着光电鼠标的发展,滚轮鼠标由于其结构缺陷、精度低、滚轮易受污染等原因,逐渐被用户所淘汰。

光电鼠标器是基于光电信号,来检测鼠标的位移,将鼠标的位移信号转换为电脉冲信号,再通过芯片进行程序处理,以USB或PS/2方式将数据发送到电脑上,电脑根据相应的驱动程序将数据转换位为屏幕上的光标移动命令,以此来控制屏幕上的光标箭头的移动。

近年来,随着多媒体智能终端的发展,对人机交互的方式要求越来越高,输入方式越来越多种,在一些应用场合,普通鼠标已不能满足输入要求,从而产生了空中鼠标的概念,相关的产品也层出不穷[1],本文就此基于STM32设计一种具有多种输入方式的多功能空中鼠标。

1 方案设计

光电鼠标的工作原理限制了其只适用于平面操作,而无法在三维空间中进行立体操作。不同于光电鼠标基于光电信号的位移监测原理,本设计通过MPU6050传感器来检测鼠标的角速度、加速度变化,计算出鼠标的空间坐标动态变化,进而控制屏幕上光标的移动。MPU6050为6轴传感器,在电脑屏幕上鼠标指针的移动是二维平面,即上下方向和左右方向,所以在普通的应用中,只需读取鼠标在X轴和Z轴上的位移变化即可,但在一些特殊应用上,如三维设计时,多维度的传感器可以使操作更便捷和直观。而对于不适合立体操作的场合,本文设计了摇杆电位器输入方式,在使用时,在前后或左右两个维度上推动摇杆时,摇杆电位器的输出电压会相应地发生变化,单片机通过读取电位器的电压输出,通过AD转化,将电压的变化转换为光标的位移量。OLED显示屏用于显示相应的操作、操作记录,以及相应的操作说明[2]。

本设计的系统框如图1所示。

图1基于STM32的多功能空中鼠标系统框

2 硬件电路设计

如图1所示,据本系统的工作原理,硬件部分主要有MPU6050模块、无线模块、STM32最小系统电路、充电电路、稳压电路、OLED和锂电池等。

从图1可知,本设计硬件电路的重点在于输入部分,包括MPU6050、摇杆电位器和按键。

MPU6050是一种用途非常广泛的6轴姿态传感器芯片,模块在电路硬件上接口为IIC方式,因此在设计与STM32硬件电路的连接时,可以连接到STM32的IIC总线引脚上,其驱动程序通过单片机内部的IIC实现。其驱动程序的编写可根据其时序图来实现[3]。

摇杆电位器是一种常见于操纵杆、手柄等设备上的传感器。因摇杆电位器为模拟输出,STM32通过AD读取其模拟输出,需要注意的是摇杆电位器需要采用精度较高、温漂小的,且在电路上对AD的参考电压也要求较高,电压纹波在成本范围内尽量小。

按键电路包括基本功能按键,即左键、右键、确认键和姿态模式开启按键,为了适应多媒体应用场合,本设计增加了扩展按键,包括音量增加键、音量减小键、全屏播放键、返回键等。

对于传输部分,本设计的无线模块可采用NRF2401模块。NRF2401模块为SPI方式,通过SPI接口与STM32单片机连接,相应的驱动程序也采用单片机内部SPI实现。

本设计电路如图2所示,包含手持端和接收端两部分,MCU采用STM32F103C8T6。手持端为电池供电,充电采用TP4056电池管理模块,稳压电路采用LDO方式。接收端通过USB供电及向PC端发送数据。

3 程序设计

程序的设计分为手持端和接收端。手持端通过读取按键、MPU6050、摇杆电位器的数据并转换为相应的控制命令,通过NRF2401发送数据。接收端通过NRF2401接收数据并将数据通过USB发送到PC。

手持端的程序主要包括按键读取函数、MPU6050的IIC驱动函数、摇杆电位器的AD转换函数、NRF2401的SP頭动函数、显示屏的驱动函数以及数据处理函数。

接收端的程序主要包括RF2401的SPI驱动函数、USB-HID协议函数和数据处理函数。

4 结语

本文所设计的空中鼠标硬件电路部分较为简单,MPU6050和摇杆电位器的结合,使得本设计在平面操作和立体操作上都极为简单。整体来说,本设计整合了平面操作和立体操作,通过MPU6050、摇杆电位器和按键进行光标的位移控制、左右键功能和多媒体控制功能,既可以满足一般的应用场合,在一些特殊场合如户外、工作现场和移动式等环境下,也具有普通鼠标不具备的优勢。

[参考文献]

[1]陈建新,卜翔,王荣,等.基于MEMS加速度的三维无线鼠标设计与实现[J].无线互联科技,2011(8): 22-25.

[2]滕飞,胡湘娟,阳泳.基于STM32F103的空中鼠标设计与论述[J].科技创新与应用,2015(34): 40.

[3]张冬忙,邓忠平,赵宝龙,等.一种应用于空中鼠标的数据校正方法[J].广播电视信息,2013(6):54-57.