STM32与MPU6050打造低成本空中鼠标

1星 需积分: 50 35 下载量 19 浏览量 更新于2024-09-07 6 收藏 1.63MB DOC 举报
"基于STM32和MPU6050的空中鼠标设计与实现的项目,由南京工程学院通信工程学院的学生团队主导,旨在利用低成本的STM32F103微控制器和MPU6050六轴惯性测量单元(IMU)开发一款2.4GHz的空中鼠标。该鼠标具有高精度、长传输距离和低功耗的特点,适用于各种智能设备的交互。项目团队由电子信息科学与技术专业的师生组成,具备相关软硬件开发能力,曾参与多项科技竞赛并取得成果。" 本项目的核心是结合STM32微控制器和MPU6050传感器来构建一个功能完善的空中鼠标。STM32F103是意法半导体(STMicroelectronics)生产的一款基于ARM Cortex-M3内核的微控制器,以其高性能、低功耗和丰富的外设接口而广泛应用于嵌入式系统设计。在这个项目中,它负责处理来自MPU6050的数据,控制无线传输模块,并执行鼠标的运动计算。 MPU6050是一款集成了三轴陀螺仪和三轴加速度计的六轴传感器,能检测到鼠标的三维运动,包括平移、旋转等,为实现空中鼠标的关键功能提供硬件支持。通过精确的运动数据融合算法,如卡尔曼滤波或互补滤波,可以从MPU6050获取稳定且精确的运动信息,进而转化为鼠标在屏幕上的移动和旋转。 项目预计达到的技术指标包括:工作频率2.4GHz,确保无线连接的稳定性;传输距离大于等于5m,满足一般室内使用需求;动作准确率大于90%,提供良好的用户交互体验;分辨率400DPI,适用于大部分应用场景;静态工作电流小于1mA,保证长时间使用的电池寿命。 项目团队成员具有扎实的理论基础和实践经验,负责人参与过睡眠监测系统项目,其他成员也分别在单片机项目、电子竞赛中表现出色,具备软件和硬件设计能力。项目预期能够推动消费电子产品的人性化设计,提高智能家居设备的易用性,同时对学生的实践能力和创新能力进行有效锻炼,具有一定的学术价值和社会效益。
2021-04-22 上传
鼠标由发射板和接收板组成,发射板主要包括stm32,MPU6050,NRF24l01,相信我不用说明大家都知道他们分别是干什么的了吧。 接收板主要包括stm32和NRF24l01,接收板通过USB接口和电脑连接,USB驱动是STM32的官方例程。另外,cpu使用的是stm32f103c8t6 这个芯片有两个优点,一个是小,另外一个是便宜,统计下来做一个鼠标刨去PCB的成本,大概60元左右。 这个空中飞鼠的原理大概讲一下,就是读取MPU6050中X和Z轴上的角速度值,然后通过NRF24l01发送给接收板,接收板通过NRF24l01 接收到数据后,通过stm32内部自带的USB模块将数据发送给电脑,而USB部分的东西基本不用去深入研究,使用的时候只要知道那个鼠标 数据的接口函数就可以了。 视频: 视频中只有发射板,我将发射板做成跟18650电池大小差不多,这样就直接可以放到移动电源里了,这样移动电源就不仅可以充电,还可以 当鼠标使用。怎么样实际的使用效果还可以吧? 下面是空中鼠标的图片细节。 这是发射板的PCB,MPU6050和NRF24l01都是直接使用的现成模块,方便了焊接并且提高了制作成功率。 这是装好后的实物图,也许你会奇怪后面为什么要用那么长的两个按键?这是因为我要把板子放到移动电源的电池仓内,所以需要很长的按键, 我也懒得再去研究怎么装按键会更好看,所以就用了这种懒办法。 这是接收板的PCB板和实物图,电路其实很简单,我做了两点优化,一个是双USB接口,这样不仅可以直接插到电脑上,而且可以在调试程序的时候 使用USB线来连接,另一个是将IO口全部引出,这样接收板还可以当做开发板使用,对于我这种电子爱好屌丝来说无疑是一个很省成本的方案。 上图是发射板放在移动电源中,移动电源最好选用内部是18650的,这样方便改造。只要将线连接好,将板子固定住,在盖子上打好洞就行, 我用的LDO是一个低压差的,座椅无论你使用移动电源出来的5V或者直接连接18650都是可以正常工作的。 最后,附上原理图和程序,没有太多注释,因为程序我自己写的部分很简单,其他部分都是官方或者战舰开发板上现成的例程,现在我的程序, 除了控制方向,鼠标左右键外,还增加了两个按键同时按下开启滚轮功能,期望有人能在我的基础上继续优化程序,因为我对算法这边实在了 解的不多。