方案名称:
基于GD32的空中鼠标设计
空中鼠标功能介绍:
办公会议经常会用的电脑接投影仪来演示PPT,使用常规鼠标操作往往很麻烦,而且还经常出现问题。空中鼠标就是为解决这个问题而诞生的,只需要拿着鼠标在空中划来划去就可以在电脑上实现普通鼠标的功能。
空中鼠标系统设计框图:
空中鼠标制作讲解:
使用GD32 Colibri开发板,读取MPU6050加速度传感器的X,Y坐标的加速度值,捕获手在空中的动作。然后能过nRF24L01+ 2.4G无线通讯发射至电脑端的接收器,电脑端GD32实现USB鼠标功能。在接收器收到数据后,根据X,Y的值移动鼠标到相应的位,发射端同时检测GD32 Colibri开发板上的按键,把按键情况发送至电脑接收端,接收端再模拟鼠标按键,空中飞鼠的大体功能就基本实现。
在代码部分借鉴了MBED的思想,对SPI和I2C进行抽像,在这实现nRF24L01+驱动的时候,就是从mbed移植过来。我觉得这部分是精华,在调试硬件I2C的时候也花了很长时间,走了些弯路。如果你也遇到了问题,可以参考我之前发的贴子,希望能对大家有帮助。
最后由于在GD32开发USB的时候遇到了至今还没有解决的问题,所以电脑端用KF64代替,等把GD32的USB搞定,再把代码移植过来。
注意:代码使用了Keil.GD32F1xx_DFP.1.0.5开发包,如果没有装这个,用keil打编译可能会报一堆错误。
视频展示:
【GD32】nRF24L01无线通讯空中鼠标实物图片展示: