基于STM32的无线飞鼠(一)

无线飞鼠(一)

       时间过得好快,大三已经过了一半了,这段时间忙的没有更新过博客,回顾下自己这段时间中的收获,感觉蛮多的。下边就一一分享下。

       一个月前,接到一个朋友的求助,帮忙做一份毕设,其实本来自己也没有时间做的,一直在忙这做学校的创新项目,面对朋友的求助,我只好答应了,谁叫我这么爱帮助别人呢!说也很奇怪,自己经常帮助别人回答一些力所能及的问题,每天都有人加我,问一些基础的问题,我也干到很欣慰,帮助别人的过程中自己收获的也挺大的。

盆友的毕设叫做“无线飞鼠”。也就是个鼠标而已,和普通的鼠标相比优势在于能够在空中进行控制,这个东西出来好多年了,也是比较流行的,自己也想试一试,就开始着手做了。

一、选材(硬件选择)

       首先说说硬件东西,毕竟这都是基于硬件上的。

       由于朋友所有硬件都已经买好了,它的目的很简单,只要功能实现了就好了,不用管其他外观、大小等等,都是买的现成的开发板。主控芯片(发射端)STM32F103C8T6,数据采集(MPU6050,该模块集加速度和陀螺仪于一身,是最好的选择了,我个人认为的,嘿嘿),数据传输(NRF24L01,2.4G无线传输),接收端芯片(STM32F103C8),都是现成的模块,这样一来,可以节省了自己设计板子,焊板子的时间了,不过我觉得还是自己设计一款板子比较好,根据需求可以将板子设计的小巧些,去掉好多不用的外设,跟方便、美观。

        硬件就是这些东西了,最后在解决电源问题,一个完美的空中鼠标就这样了!想象都很激动……嘿嘿。

       说到电源问题,我不得不说,一般单片机需要的电源是3.3V,要是外接电源就得考虑电源转换电路了,以及稳压问题。电源搞不好会烧坏板子的,自己曾经有过教训,在电源问题上吃了亏。记得那时在大二参加一次省的电子设计大赛中,当初做的是灭火小车,由于电源问题烧坏了好几块芯片,都是刚开始没有问题,小车跑着跑着就把芯片烧坏了……教训,血的教训啊!

二、模块的学习

       由于这些模块自己都不是很熟悉,必须从数据手册上一一解读,可是花了好长时间。就拿MPU6050来说,就是比较复杂,可欣的是网上有了好多前辈们的研究成果,自己搞懂后有些可以拿过来直接用,真是感谢你们了!

       由于各个模块涉及到的知识比较多,我会一一分开来谈谈我的看法,当然了具体的东西,还是看数据手册比较好了,如果我哪里说的不对,可以提出建议,大家一起交流,共同学习。如果觉得我说的都是废话,那我只能说浪费你的时间了,抱歉……

   模块一. USB协议分析

          当然这不能叫做模块了,但是这是在是一个重要而且难搞的东西,广USB协议这       块我看的时间最多,当然也只能懂个大概,USB水实在太深了,得在下功夫。详情下    篇博客STM32F103USB(一)

   地址:STM32USB(一)

欢迎转载,分享,技术在于交流、分享……
博客地址:http://blog.youkuaiyun.com/u013704336\
Email:creazylq@163.com
QQ:936563422

参考正点原子战舰开发板上的鼠标例程,我也个空中鼠标,其实只是将他的有线鼠标改造成无线的。 鼠标由发射板和接收板组成,发射板主要包括stm32,MPU6050,NRF24l01,相信我不用说明大家都知道他们分别是干什么的了吧。 接收板主要包括stm32和NRF24l01,接收板通过USB接口和电脑连接,USB驱动是STM32的官方例程。另外,cpu使用的是stm32f103c8t6 这个芯片有两个优点,个是小,另外个是便宜,统计下来鼠标刨去PCB的成本,大概60元左右。 这个空中飞鼠的原理大概讲下,就是读取MPU6050中X和Z轴上的角速度值,然后通过NRF24l01发送给接收板,接收板通过NRF24l01接收到数据后,通过stm32内部自带的USB模块将数据发送给电脑,而USB部分的东西基本不用去深入研究,使用的时候只要知道那个鼠标数据的接口函数就可以了。 https://v.youku.com/v_show/id_XNzc1MzQ1ODg0.html 视频中只有发射板,我将发射板成跟18650电池大小差不多,这样就直接可以放到移动电源里了,这样移动电源就不仅可以充电,还可以 当鼠标使用。怎么样实际的使用效果还可以吧? 下面是空中鼠标的图片细节。 这是发射板的PCB,MPU6050和NRF24l01都是直接使用的现成模块,方便了焊接并且提高了制作成功率。 这是装好后的实物图,也许你会奇怪后面为什么要用那么长的两个按键?这是因为我要把板子放到移动电源的电池仓内,所以需要很长的按键, 我也懒得再去研究怎么装按键会更好看,所以就用了这种懒办法。 这是接收板的PCB板和实物图,电路其实很简单,我了两点优化,个是双USB接口,这样不仅可以直接插到电脑上,而且可以在调试程序的时候 使用USB线来连接,另个是将IO口全部引出,这样接收板还可以当开发板使用,对于我这种电子爱好屌丝来说无疑是个很省成本的方案。 上图是发射板放在移动电源中,移动电源最好选用内部是18650的,这样方便改造。只要将线连接好,将板子固定住,在盖子上打好洞就行, 我用的LDO是个低压差的,座椅无论你使用移动电源出来的5V或者直接连接18650都是可以正常工作的。 最后,附上原理图和程序,没有太多注释,因为程序我自己写的部分很简单,其他部分都是官方或者战舰开发板上现成的例程,现在我的程序, 除了控制方向,鼠标左右键外,还增加了两个按键同时按下开启滚轮功能,期望有人能在我的基础上继续优化程序,因为我对算法这边实在了 解的不多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值