查看原文
其他

项目分享| STM32实现最简单空中鼠标(完全开源)

妮mo 达尔闻说 2021-01-17

不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我!

怎样才能设计一个好项目?达尔闻为你支招。项目分享系列准备连更啦!

我们开源分享原理图,代码等,并把挖掘时下最IN, 最值得学习和挑战的好项目分享给大家,涵盖物联网,嵌入式,FPGA,AI等领域。如果你手头也有好项目,欢迎联系达尔闻,让更多的人跟着你动手实践!

最早的“空中鼠标”(AirMouse)概念是加拿大公司Deanmark于2010年提出的,同时他们推出了一款全新概念的鼠标,它可以像手套一样“戴”在手腕上。利用光学引擎操作。用户可以将其在空中挥舞,鼠标依旧正常工作,鼠标的工作方式开始有了全新的变化。

今天我们分享:如何制作一个基于STM32, MPU6050, NRF24L01实现的空中鼠标,简单到仅需12种器件就可以完成的。

作为电脑的输入设备,空中鼠标可以像传统鼠标一样操作屏幕,仅需要在空中晃动或者移动就可以实现鼠标的操作和翻页等功能。
制作空中鼠标用到的器件:

STM32F103主控芯片——处理MPU6050数据,并传输给接收端。

MPU6050——6轴运动处理组件,跟踪鼠标的动作。

NRF24L01——无线收发器芯片,几乎可以连接到各种单片机芯片,并完成无线数据传送工作。

相信不用我说,大家都知道他们分别是什么作用了吧。
空中鼠标硬件由两个部分组成,鼠标端(发射板)和USB端(接收板)
◆ 发射板主要器件是STM32、MPU6050、NR24L01。MPU6050感知人手的动作(X、Y、Z轴上的角速度值),并将测得的数据通过I2C数据接口传输给STM32。STM32内部自带12位ADC对数据做转换,并且通过NRF24L01无线传输给USB端。
◆ 接收板是模拟的HID鼠标和键盘即插即用,通过USB接口和电脑连接。USB端同样有一颗NRF24L01芯片接收发射板传输过来的数据,通过SPI接口传输给STM32。
这个空中鼠标的项目所有资料均开源分享给大家,包括发射端和接收端原理图/PCB源文件以及源码。在“达尔闻说”微信回复:空中鼠标,即可获得。

上面分享的项目是比较初阶的项目,如果你想让空中鼠标更实用,在上面的基础上,要考虑一下因素:
1)抗静态偏移。鼠标在不移动的时候,光标自然是不能移动的。但廉价的陀螺仪本身会有静态输出,有些甚至能达到20度/s。 好在偏移通常不会因为环境而发生变化。所以需要在出厂前进行校正。买到偏移误差小的陀螺仪就可以解决了。
2)平滑算法。消费级陀螺仪由于成本所限,精度必然不会很高,数据会出现抖动。通过提高采样速率,即所谓的过采样技术,对同一时刻多个数据进行滤波和平滑,从而尽可能准确地反馈当时的运动状态。
3)运动平面不匹配。如果以Z为轴,向Y方向旋转,那么鼠标会划出一条水平的轨迹。但当设备本身发生一定倾斜,如在X轴上有一个旋转角,那么像刚才的移动,就会划出一条斜线。这可能会对用户造成费解。如果拥有加速度计,测量设备的倾斜程度,通过传感器融合算法,就能相对而言避免这类问题,但算法要求较高。
4)旋转,而不是位移。普通鼠标都是基于位移的,移动多少,光标就移动多少。但空中鼠标是基于旋转的。如果把空中鼠标在不旋转的基础上,移动一定距离,会发现光标完全没有变化(可能会因为一些干扰造成晃动)。
5)防按键抖动。普通鼠标的按键基本都做在鼠标的顶部,所以按键不会造成鼠标位移。想象按键若做在鼠标侧面,而且按键很硬的话,可能就会出现抖动。因此空中鼠标对按键的要求很高,需要尽可能的软,同时还能有明确的触觉反馈。在按下去的时候,能尽量让鼠标不发生位移。最麻烦的是双击操作,双击时人点击鼠标的力量通常比单击大不少。而且会有两次连续的抖动。如果位移过远,操作系统会将其认为是一次拖拽操作,而非双击操作,这需要额外的处理。
6)手势识别。这涉及到比较高级的问题,空鼠显然脱离键盘,一些快捷操作无法实现,通过一定的手势能够检测特定的动作,从而触发之前定义的操作。但这涉及到机器学习的话题,而且需要较高的用户学习成本。同样的操作,不同用户做出来的特征可能完全不同。
最后,按照我们提供的资料,通过基本原理实现最简单的空鼠并不困难。完成这个项目,你获得一个好用的工具之外,还可以提升技能,如绘制PCB,学习STM32编程等。但妮姐更希望大家在基础之上,有更多创新,比如数据通信改为蓝牙。动手试一试,设计出更好用的空中鼠标吧。
END

达尔闻项目分享系列——聚焦物联网、嵌入式、AI、FPGA等热门应用技术,开源分享原理图、代码等项目方案,做你手边的知识库。

项目分享系列集锦:

STM32物联网智能家居项目
树莓派+计算棒2完成实时人脸识别项目

嵌入式开发板的云计算平台搭建


我们是妮mo,达尔闻创始人,只讲技术不撩汉的小姐姐。达尔闻在线教育平台旨在服务电子行业专业人士,提供技能培训视频,覆盖各细分领域热门话题,比如嵌入式,FPGA,人工智能等。并针对不同人群量身定制分层级学习内容,例如常用知识点,拆解评测,电赛/智能车/考研等,欢迎关注。

官网:www.darwinlearns.com

B站:达尔闻

QQ群:786258064

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存