姿态解算知识点3——空鼠原理和实现

1.先看效果视频

空鼠捕鱼演示-逊玛特威空鼠遥控器

 

2.目标

  • 空鼠向上下左右,0~360度挥动时,电脑端鼠标箭头也跟着移动。

 

3.鼠标运动模型的建立

鼠标在空中挥动模型可以这样定义,把三维空间模型简化为二维空间模型,我们可以把鼠标当做一个点,鼠标运动的空间当做一个XY二维坐标系,接下来我们只要分析这个点在XY坐标系下是怎么运动就可以了,鼠标在空间中运动模型如下图:

                

    我们知道在二维平面中运动轨迹可以用x、y坐标表示,因此只要求出鼠标运动过程中x,y坐标值即可。

 

那运动过程中x,y坐标用什么表示呢?它们和欧拉角又是什么关系呢?

 

其实很简单,我们把鼠标当做一个飞行器或者机器人载体,地理坐标系为朝右,朝前,垂直向上,如下图:

               

    因此鼠标水平左右挥动时,是绕地理坐标系轴旋转,即偏航角yaw;上下挥动时,是绕地理坐标系轴旋转,即俯仰角pitch再结合鼠标运动轨迹的XY二维平面图,可以得到:

X = yaw

Y = pitch

 

4.灵敏度调节

 

5.数据曲线

 

6.算法源代码

 

7.参考文献

 

时下智能语音交互市场火热,越来越多的设备都开始支持原场AI语音交互。例如:智能音箱,智能电视等等。但这类产品的识别率误唤醒率还需要再不断的优化提升,以至于日常生活中人们还是离不开各式各样的遥控器。基于TDK 6-轴传感器ICM-40608炬芯 BLE SOC ATB1103的智能语音遥控器决方案实现真正的智能、万物互联。 遥控器方案整体硬件设计指南 基于Actions 炬芯的ATB110x SOC BLE语音遥控器已经大批量量产,搭配 6-轴运动传感器使其更加智能、拥有更高的市场竞争力; PCB板按功能模块分模拟信号部分(例如MIC IN走线)、射频信号部分(例如BLE及相关关键外围)、数字信号部分(例如TWI、UART、SPI等),电源部分(如芯片内部电源),模拟信号射频信号容易受到干扰,布局时尽量远离数字信号电路大电流电源电路。BLE的天线应远离喇叭(以及喇叭引线)、指示灯、频谱灯、按键等的排线。 数字、模拟元器件尽量远离并限定在各自的布线区域内。元器件周围留出电源地走线的间。数字元器件集中放置以减少走线长度。在IC的电源Pin放置0.1uF的去耦电容。晶振电路尽量靠近其驱动器件。 为利于系统散热,布局时发热量较高的器件尽量分开摆放,有EPAD的器件可以在地焊盘器件周围的地多打过孔,可以达到更好的散热效果。 在设计许可的条件下,元器件的布局尽可能做到同类元器件按相同的方向排列,相同功率的模块集中在一起布置;相同封装的元器件等炬力放置,以便元件贴装、焊接检测。 走线 RF走线 对于板载天线注意点如下: 1)板载天线面积尽量大,在匹配时带宽会更加宽,性能更佳; 2)匹配网络尽量靠近板载天线,如下图所示; 3)如果面积允许情况下靠近芯片端多预留一个TT型匹配网络,可根据情况进一步优化匹配; 4)针对两个走线的情况,在叠层选定后需计相关的线宽铺铜间距,因为板材有差异,注意板厂沟通相关阻抗情况; 电源线: 1)根据印制线路板电流的大小,尽量加粗电源线的宽度,减少环路电阻。大电流的电源过孔推荐使用大于20-12mil的过孔,并打多个过孔连接。 2)电源线、底线的走向数据传递的方向尽量保持一致,有助于增强抗噪声能力。 地线:1)模拟地、数字地、大功率器件的地在布线时分开,而最后都汇集到接地点上来,如:MIC会进行单独的AGND处理再连接到GND上。 2)接地线应尽量加粗。若接地线很细,则接地电位随电流的变化而变化,致使电子设备的信号电平不稳,抗噪声性能变差。因此应将接地线加粗,使它通过三倍于印制板上的允许电流。 TDK拥有最丰富的麦克风产品组合、基于运动传感器的光标控制的核心专利拥有者,适用于智能遥控器、智能电视机顶盒的完整软件包(、手势、游戏控制); Air Motion软件方案 嵌入式软件:AirMotion Library (AML) 6-轴软件运行在遥控器端 提供中相对指向 发送dx/dy给远端目标设备 支持基本的手势 支持无线接口 目标CPU:8051,ARM Cortex M0,M3,M4 AirMotionLib固件数据 基于ARM Cortex-M3平台验证 数据处理频率:100Hz 基于运动的功能 算法简介 AML算法获取手持遥控设备内的6轴运动传感器数据,在遥控设备端融合计出远端被控制焦点在两纬平面的实时相对位置(dx, dy)。同时,为了保证良好的用户体验,AML算法对传感器数据做实时动态校准,设备横滚补偿。AML算法还可以支持常用的遥控手势识别,如左、右、上、下四方向的划动,以及顺时针逆时针方向的快速旋转。 1、 API AIR MOTION库使用以下功能: •invn_algo_aml_init():每次处理(重新)启动时,必须调用此函数进行库初始化。•invn_algo_aml_process():每次有新的传感器值时,都必须调用此函数。该库被设计为以100Hz运行。 2、校准 陀螺仪偏移值可能会随着时间的推移而波动,具体取决于各种参数。 该库支持连续校准,实时计陀螺仪偏移值。 每次调用invn_algo_aml_process()时,都会检查陀螺仪即时“静态”。 如果考虑设备静态,计新的陀螺仪偏移值。 然后可以将遥控器视为已校准。 您可以检查'InvnAlgoAMLOutput.status'以跟踪校准状态。 'gyr_fsr'参数用于校准运动算法。 'acc_fsr'参数用于滚动补偿功能场景应用图产品实体图展示板照片方案方块图ICM-40608参数对比关键网络原理图核心技术优势TDK硬件软件的优势 》终极用户体验 最好的声音质量 快速响应的中指向 直观、高效的应用体验 》最低功耗的灵活方案 嵌入遥控器 可运动在远端设备(智能电视、机顶盒或者流媒体设备) 》低风
参考正点原子战舰开发板上的标例程,我也做了一个标,其实只是将他的有线标改造成无线的。 标由发射板接收板组成,发射板主要包括stm32,MPU6050,NRF24l01,相信我不用说明大家都知道他们分别是干什么的了吧。 接收板主要包括stm32NRF24l01,接收板通过USB接口电脑连接,USB驱动是STM32的官方例程。另外,cpu使用的是stm32f103c8t6 这个芯片有两个优点,一个是小,另外一个是便宜,统计下来做一个标刨去PCB的成本,大概60元左右。 这个中飞原理大概讲一下,就是读取MPU6050中XZ轴上的角速度值,然后通过NRF24l01发送给接收板,接收板通过NRF24l01接收到数据后,通过stm32内部自带的USB模块将数据发送给电脑,而USB部分的东西基本不用去深入研究,使用的时候只要知道那个标数据的接口函数就可以了。 https://v.youku.com/v_show/id_XNzc1MzQ1ODg0.html 视频中只有发射板,我将发射板做成跟18650电池大小差不多,这样就直接可以放到移动电源里了,这样移动电源就不仅可以充电,还可以 当标使用。怎么样实际的使用效果还可以吧? 下面是标的图片细节。 这是发射板的PCB,MPU6050NRF24l01都是直接使用的现成模块,方便了焊接并且提高了制作成功率。 这是装好后的实物图,也许你会奇怪后面为什么要用那么长的两个按键?这是因为我要把板子放到移动电源的电池仓内,所以需要很长的按键, 我也懒得再去研究怎么装按键会更好看,所以就用了这种懒办法。 这是接收板的PCB板实物图,电路其实很简单,我做了两点优化,一个是双USB接口,这样不仅可以直接插到电脑上,而且可以在调试程序的时候 使用USB线来连接,另一个是将IO口全部引出,这样接收板还可以当做开发板使用,对于我这种电子爱好屌丝来说无疑是一个很省成本的方案。 上图是发射板放在移动电源中,移动电源最好选用内部是18650的,这样方便改造。只要将线连接好,将板子固定住,在盖子上打好洞就行, 我用的LDO是一个低压差的,座椅无论你使用移动电源出来的5V或者直接连接18650都是可以正常工作的。 最后,附上原理程序,没有太多注释,因为程序我自己写的部分很简单,其他部分都是官方或者战舰开发板上现成的例程,现在我的程序, 除了控制方向,标左右键外,还增加了两个按键同时按下开启滚轮功能,期望有人能在我的基础上继续优化程序,因为我对算法这边实在了 的不多。
应用介绍: 蓝牙无线中键,能够同时实现传统的键盘标双功能。它的中使用功能,可以将你从电脑、电视旁边彻底放出来,只需要通过在中挥动RC16,就迅速响应转换成在屏幕上的光标移动,使用3D陀螺仪完美结合,用户可以以360度随意精准操作。手持操作手感舒适、方便,完全避免了传统标需要以静止的桌面为参照物操作或红外遥控器按键操作的弊端,让您躺着玩电脑、电视都不累,轻松休闲,完全 “掌”控你的电脑、电视娱乐 原理介绍: 飞思卡尔蓝牙飞以Kinetis KL16单片机、加速度计、陀螺仪电子罗盘为基础,并通过蓝牙与目标主机通信。使用了蓝牙 HID/HFP/SSP配置文件,并可以将键盘的输入数据传感器数据发送至目标主机。 它的关键特性如下: 6自由度/ 9自由度的QWERTY键盘 操纵杆6/9轴运动游戏 蓝牙连接: HID / HFP / SSP 红外遥控, 自学习 麦克风输入,头戴式耳机, 语音识别 指纹, 身份认证支持 近场通信, 快速蓝牙连接 无线充电(电路板上线圈为无线充电接收线圈) 飞思卡尔蓝牙飞主要器件清单: 飞思卡尔 Kinetis MKL16Z256VLH4(MKL16Z256VLH4数据手册)(256KB FLASH / 32K RAM)(主控芯片) 飞思卡尔 MAG3110FCR2(MAG3110FCR2数据手册)(电子罗盘) 飞思卡尔 MMA8563FCR1(加速度计) 飞思卡尔 FXAS21000CQR1(FXAS21000CQR1数据手册)(陀螺仪) RDA5876A(RDA5876A数据手册),Compliant with Bluetooth 2.1 + EDR specification(蓝牙模块) 硬件系统框图: 软件架构: 附件内容包括: 源代码 飞思卡尔蓝牙飞参考设计论文 bootloader工具软件以及CodeWarrior工程等内容 你可能感兴趣的项目设计: “标”一款不用放在标垫上的
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值