CC2540 CC2541 蓝牙4.0BLE开发板实现 空中飞鼠、体感游戏手柄【多图】

利用SmartRF蓝牙4.0开发板、mpu6050六轴传感器等组件,成功实现空中飞鼠及体感游戏手柄功能。通过修改固件并加入mpu6050 DMP驱动,开发团队克服了多项技术挑战。
       蓝牙4.0BLE开发板实现空中飞鼠、体感游戏手柄

      近年来开始流行空中飞鼠与体感游戏手柄,正好我们的开发板上设计有插入mpu6050六轴传感器的适配接口,我们中秋节期间兴趣使然,实现了这么一个方案。
       感谢  “圆点博士STM32” 提供的mpu6050 dmp输出欧拉角度的例程,没有他们预先移植到stm32上,我们也没那么快在我们这个开发板上能跑上mpu605的dmp输出。

      感谢 Micorduino的小潘, 给我提了不少好建议,他们在做 Arduino的兼容产品,效果优秀。

       硬件需求:
      1, 一块 amomcu 的SmartRF 蓝牙4.0开发板, cc2541核心板 (目前只支持cc2541, 未来可考虑支持cc2540)。
      2, 一块 mpu6050模块, 可插到我们的SmartRF 蓝牙4.0开发板上。
      3, 一块 usbdongle适配器, 用于模拟成hid设备,接收smartRF发送过来的坐标和按键数据。
      4, 一块 cc debugger仿真器, 用于烧录usbdongle 和smartRF开发板。


       软件需求:
      1, usb dongle 烧录  “\BLE-CC254x-1.3.2\Projects\ble\HIDAdvRemoteDongle”工程固件。
      2, 在 “\BLE-CC254x-1.3.2\Projects\ble\HIDAdvRemote”工程基础上,修改按键,添加 mpu6050dmp输出驱动,通过欧拉角判断,添加坐标发送。

     缺点:
     1, mpu6050的dmp输出有一个角度会飘,放得越久飘得越大,跟朋友讨论,应该要通过磁场芯片数据来矫正。
     2, 开发板按键数量有限,比如我们在用飞鼠来打cs时,换子弹都没有按键了。若是做成产品,还有很多事情要做, 不过我们玩玩的目的是达到了。
   
参考正点原子战舰开发板上的鼠标例程,我也做了一个空中鼠标,其实只是将他的有线鼠标改造成无线的。 鼠标由发射板和接收板组成,发射板主要包括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都是可以正常工作的。 最后,附上原理和程序,没有太注释,因为程序我自己写的部分很简单,其他部分都是官方或者战舰开发板上成的例程,在我的程序, 除了控制方向,鼠标左右键外,还增加了两个按键同时按下开启滚轮功能,期望有人能在我的基础上继续优化程序,因为我对算法这边实在了 解的不
鼠标由发射板和接收板组成,发射板主要包括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都是可以正常工作的。 最后,附上原理和程序,没有太注释,因为程序我自己写的部分很简单,其他部分都是官方或者战舰开发板上成的例程,在我的程序, 除了控制方向,鼠标左右键外,还增加了两个按键同时按下开启滚轮功能,期望有人能在我的基础上继续优化程序,因为我对算法这边实在了 解的不
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值