基于互补滤波算法的体感鼠标研究与实现
景传奇+张凤登
摘要:建立体感鼠标的空间坐标系模型,利用STM32微处理器采集六轴微惯性传感器MPU6050和地磁计HMC5883L数据,进行数据融合和互补滤波,实时检测人体手指的姿态变化。将数据无线传输到电脑接收端对应鼠标光标的位移变化,实现了人只需要轻轻挥动手指就可控制鼠标光标的移动、单双击和滚轮等操作。设计了锂电池充放电电路,增加了鼠标续航时间。
关键词:体感;姿态解算;互补滤波;MPU6050;HMC5883L;STM32
DOIDOI:10.11907/rjdk.171883
中图分类号:TP319
文献标识码:A文章编号文章编号:1672-7800(2018)001-0116-06
Abstract:Based on the establishment of the spatial coordinate system model of human arm, this design uses STM32 microprocessor to collect the data of six axis micro inertial sensor MPU6050 and magnetometer HMC5883L, then uses data fusion and complementary filtering algorithm to detect the posture change of human finger. Finally, the mouse sends data to a receiver through the wireless network, and corresponds to the displacement of the mouse cursor. this kind of mouse realize that people only need to gently waving fingers to control the movement of the mouse cursor, double click and scroll operation, and uses for a long time with the lithium battery charging and discharging circuit design.
Key Words:Somatosensory; attitude solution; complementary filter; MPU6050; HMC5883L; STM32
0引言
人们通常使用的是PS/2接口或USB通过接口的有线光电鼠标,这种鼠标底部光电传感器检测鼠标在平面上的位移变化,但受到鼠标线的限制,使用空间范围有限。随着无线电子技术的发展,基于2.4Ghz的射频或蓝牙通讯的无线鼠标使用越来越多。这些无线鼠标虽然摆脱了有线的束缚,但大多数还是属于光电式的,在使用过程中需要平坦不透明的平面,使用体验并不是很理想。本文设计了基于人体姿态实时检测的体感鼠标,利用手指的移动控制鼠标光标移动,更加方便和智能。
1体感鼠标模型
实现手指姿态角度的变化对应电脑鼠标光标的位移变化,建立合适的姿态坐标系模型很重要。图1为人的手臂结构图形,为便于理论分析,以手肘关节为原点,构建空间直角坐标系,其中上臂作为Z轴,下臂作为Y轴,垂直纸面的方向作为X轴。
通过手臂控制体感鼠标,在竖直平面内的水平方向-60°~+60°和竖直方向-70°~+70°范围内,对应电脑屏幕(如分辨率1 920*1 080)光标的移动。
1.1坐标系与姿态角
在姿态检测和惯性导航领域,检测物体的位移或姿态需要先建立相应的坐标系,通常以惯性坐标系作为基准坐标系,此外还有地球坐标系、载体坐标系和地理坐标系,其它坐标系可由惯性坐标系变换而来,下面介绍常用坐标系[2]及其方向定义。
(1)惯性坐标系(i-OiXiYiZi)。惯性坐标系以地心作为坐标原点,Zi轴指向地球北极方向,Xi与Yi轴在赤道平面成90°角,Zi与Xi、Yi构成右手坐标系,简称i系,通常作为参考坐标系使用。
(2)载体坐标系(b-ObXbYbZb)。载体坐标系指固定在一个载体上随载體位置和方向变化的坐标系,坐标系原点Ob一般取载体的质心,Xb与Yb在载体所确定平面,Xb指向载体右侧,Yb沿载体纵轴方向指向,Zb垂直于Xb与Yb所确定平面竖直向上,简称b系,如图4所示。
(3)地理坐标系(n-OnXnYnZn)。地理坐标系指原点On位于载体所在的地球表面,其中一轴为与地理垂线重合的右手直角坐标系,简称n系。
姿态检测领域通常涉及b系与n系之间数据的相互转换,这个过程需要使用两个坐标系之间的轴夹角进行计算,将b系与n系之间的夹角进行如下描述和定义,方便后续研究使用:
俯仰角θ:载体坐标系绕地理坐标系旋转,OnXn轴旋转所得角度(向上转动为正),以ObZb与ObZb轴重合处为起点,取值范围:-90°~90°。
横滚角γ:载体坐标系绕地理坐标系旋转,OnYn轴旋转所得角度(向上转动为正),以ObXb与ObXb轴重合处为起点,取值范围:-180°~180°。
航向角ψ:载体坐标系绕地理坐标系旋转,OnZn轴旋转所得角度(顺时针转为正),以ObYb与ObYb轴重合处为起点,取值范围:0°~360°。
以上姿态角描述了从地理坐标系开始,沿OnZn、OnXn、OnYn顺序进行转动,经过3次转动可得到载体坐标系ObXbYbZb,旋转角度分别为ψ、θ、γ,如图5所示。
2.3系统软件设计
系统上电后,首先进行设备和传感器初始化,检测人体姿态数据和按键操作,经过内部姿态解算,对电脑接收端发送不同的指令信号,实现对电脑鼠标光标和滚轮的控制。发射端软件流程如图10所示。
电脑无线接收端接受鼠标光标移动指令和按键操作指令后,通过USB协议控制鼠标相应动作,接收端软件流程如图11所示。
3结语
本文研究了姿态解算的四元数和更新算法,设计了基于STM32嵌入式系统的体感鼠标,利用NRF24L01实现体感鼠标和电脑接收端之间数据的通讯。32字节的报文可以支持USB键盘智能化设备的开发。优化了鼠标光标定位算法,使体感鼠标在运动过程中光标移动更加平稳,提高了分辨率。开发电脑端的应用程序,识别人手指在空中画出的字母,通过API调用计算机上的应用软件(如画Q打开QQ,画e打开浏览器等),提高了用户的使用体验。
参考文献:
[1]鲁海波.基于三轴向加速度计的电子教鞭系统设计[D].苏州:苏州大学,2014.
[2]丁君.基于微惯性传感器的姿态算法研究[D].上海:上海交通大学,2013.
[3]秦永元.惯性导航[M].北京:科学出版社,2006:12-70.
[4]程庆.微型组合导航计算机系统硬件平台设计与实现[D].南京:南京航空航天大学,2014.
[5]李哲.基于微惯性传感器的猪只姿态检测[D].太原:太原理工大学,2015.
[6]高洪涛.基于微惯性组合的旋翼飞行器姿态检测及控制算法研究[D].成都:电子科技大学,2016.
[7]张金桥.基于人体姿态的跌倒检测算法研究与应用[D].大连:大连海事大学,2016.
[8]王窕丽,孙玉国.基于MEMS传感器的姿态检测系统[J].电子科技,2015(10):86-89.
(责任编辑:杜能钢)
摘要:建立体感鼠标的空间坐标系模型,利用STM32微处理器采集六轴微惯性传感器MPU6050和地磁计HMC5883L数据,进行数据融合和互补滤波,实时检测人体手指的姿态变化。将数据无线传输到电脑接收端对应鼠标光标的位移变化,实现了人只需要轻轻挥动手指就可控制鼠标光标的移动、单双击和滚轮等操作。设计了锂电池充放电电路,增加了鼠标续航时间。
关键词:体感;姿态解算;互补滤波;MPU6050;HMC5883L;STM32
DOIDOI:10.11907/rjdk.171883
中图分类号:TP319
文献标识码:A文章编号文章编号:1672-7800(2018)001-0116-06
Abstract:Based on the establishment of the spatial coordinate system model of human arm, this design uses STM32 microprocessor to collect the data of six axis micro inertial sensor MPU6050 and magnetometer HMC5883L, then uses data fusion and complementary filtering algorithm to detect the posture change of human finger. Finally, the mouse sends data to a receiver through the wireless network, and corresponds to the displacement of the mouse cursor. this kind of mouse realize that people only need to gently waving fingers to control the movement of the mouse cursor, double click and scroll operation, and uses for a long time with the lithium battery charging and discharging circuit design.
Key Words:Somatosensory; attitude solution; complementary filter; MPU6050; HMC5883L; STM32
0引言
人们通常使用的是PS/2接口或USB通过接口的有线光电鼠标,这种鼠标底部光电传感器检测鼠标在平面上的位移变化,但受到鼠标线的限制,使用空间范围有限。随着无线电子技术的发展,基于2.4Ghz的射频或蓝牙通讯的无线鼠标使用越来越多。这些无线鼠标虽然摆脱了有线的束缚,但大多数还是属于光电式的,在使用过程中需要平坦不透明的平面,使用体验并不是很理想。本文设计了基于人体姿态实时检测的体感鼠标,利用手指的移动控制鼠标光标移动,更加方便和智能。
1体感鼠标模型
实现手指姿态角度的变化对应电脑鼠标光标的位移变化,建立合适的姿态坐标系模型很重要。图1为人的手臂结构图形,为便于理论分析,以手肘关节为原点,构建空间直角坐标系,其中上臂作为Z轴,下臂作为Y轴,垂直纸面的方向作为X轴。
通过手臂控制体感鼠标,在竖直平面内的水平方向-60°~+60°和竖直方向-70°~+70°范围内,对应电脑屏幕(如分辨率1 920*1 080)光标的移动。
1.1坐标系与姿态角
在姿态检测和惯性导航领域,检测物体的位移或姿态需要先建立相应的坐标系,通常以惯性坐标系作为基准坐标系,此外还有地球坐标系、载体坐标系和地理坐标系,其它坐标系可由惯性坐标系变换而来,下面介绍常用坐标系[2]及其方向定义。
(1)惯性坐标系(i-OiXiYiZi)。惯性坐标系以地心作为坐标原点,Zi轴指向地球北极方向,Xi与Yi轴在赤道平面成90°角,Zi与Xi、Yi构成右手坐标系,简称i系,通常作为参考坐标系使用。
(2)载体坐标系(b-ObXbYbZb)。载体坐标系指固定在一个载体上随载體位置和方向变化的坐标系,坐标系原点Ob一般取载体的质心,Xb与Yb在载体所确定平面,Xb指向载体右侧,Yb沿载体纵轴方向指向,Zb垂直于Xb与Yb所确定平面竖直向上,简称b系,如图4所示。
(3)地理坐标系(n-OnXnYnZn)。地理坐标系指原点On位于载体所在的地球表面,其中一轴为与地理垂线重合的右手直角坐标系,简称n系。
姿态检测领域通常涉及b系与n系之间数据的相互转换,这个过程需要使用两个坐标系之间的轴夹角进行计算,将b系与n系之间的夹角进行如下描述和定义,方便后续研究使用:
俯仰角θ:载体坐标系绕地理坐标系旋转,OnXn轴旋转所得角度(向上转动为正),以ObZb与ObZb轴重合处为起点,取值范围:-90°~90°。
横滚角γ:载体坐标系绕地理坐标系旋转,OnYn轴旋转所得角度(向上转动为正),以ObXb与ObXb轴重合处为起点,取值范围:-180°~180°。
航向角ψ:载体坐标系绕地理坐标系旋转,OnZn轴旋转所得角度(顺时针转为正),以ObYb与ObYb轴重合处为起点,取值范围:0°~360°。
以上姿态角描述了从地理坐标系开始,沿OnZn、OnXn、OnYn顺序进行转动,经过3次转动可得到载体坐标系ObXbYbZb,旋转角度分别为ψ、θ、γ,如图5所示。
2.3系统软件设计
系统上电后,首先进行设备和传感器初始化,检测人体姿态数据和按键操作,经过内部姿态解算,对电脑接收端发送不同的指令信号,实现对电脑鼠标光标和滚轮的控制。发射端软件流程如图10所示。
电脑无线接收端接受鼠标光标移动指令和按键操作指令后,通过USB协议控制鼠标相应动作,接收端软件流程如图11所示。
3结语
本文研究了姿态解算的四元数和更新算法,设计了基于STM32嵌入式系统的体感鼠标,利用NRF24L01实现体感鼠标和电脑接收端之间数据的通讯。32字节的报文可以支持USB键盘智能化设备的开发。优化了鼠标光标定位算法,使体感鼠标在运动过程中光标移动更加平稳,提高了分辨率。开发电脑端的应用程序,识别人手指在空中画出的字母,通过API调用计算机上的应用软件(如画Q打开QQ,画e打开浏览器等),提高了用户的使用体验。
参考文献:
[1]鲁海波.基于三轴向加速度计的电子教鞭系统设计[D].苏州:苏州大学,2014.
[2]丁君.基于微惯性传感器的姿态算法研究[D].上海:上海交通大学,2013.
[3]秦永元.惯性导航[M].北京:科学出版社,2006:12-70.
[4]程庆.微型组合导航计算机系统硬件平台设计与实现[D].南京:南京航空航天大学,2014.
[5]李哲.基于微惯性传感器的猪只姿态检测[D].太原:太原理工大学,2015.
[6]高洪涛.基于微惯性组合的旋翼飞行器姿态检测及控制算法研究[D].成都:电子科技大学,2016.
[7]张金桥.基于人体姿态的跌倒检测算法研究与应用[D].大连:大连海事大学,2016.
[8]王窕丽,孙玉国.基于MEMS传感器的姿态检测系统[J].电子科技,2015(10):86-89.
(责任编辑:杜能钢)