蓝牙模块兼容小白控教程

来源:哔哩哔哩    时间:2023-08-22 13:37:37

1,硬件基础,考验你焊工的时候到啦

虽说咱们使用小白控时就跟使用串口没什么区别。但是接收机发出的DBus信号实际上和TTL电平是反相的关系。所以在A板和C板上实际上有一个反相电路,实时把DBus信号反相,转换为TTL电平。

所以还不能直接把蓝牙模块插到DBus接口上,需要对A板的硬件做一点修改。

上图中标出的“MCU Rx”焊点,即为反相器输出端,直接与单片机引脚相连。当反相器输入端悬空时,可以通过直接操作这一点电平向单片机发送信号。在这里我直接把蓝牙模块的Tx引脚飞线连接到了这个焊点。


(资料图)

信号线连接上后再把供电也连接上,就可以使用蓝牙模块了。至此,硬件部分准备完毕。

2,遥控器的替代——手机

有大佬开发了一款手机APP,可以使用蓝牙模块模拟很多东西。这是介绍的文章/p/1a8262492619。建议还是先看一遍这个文章再接着往下看。我们就用这个APP模拟遥控器。

首先在通信设置里添加要发送的数据。五个摇杆通道用short(int16_t)发送。由于这个app的控件限制,两个拨杆开关使用byte(int8_t)发送。

小白控的发送周期为14mS,我们这里保持一致。选择持续定时发送,间隔为14mS。

添加控件后给每个控件绑定要发送的数据,在图上用红字已标出。五个摇杆的数据范围为[-660,+660]。两个拨杆对应的滑动条,范围为[0,2]。    至此,手机部分准备完毕

3,调用官方的代码完成接收

本着有现成的就不再自己写驱动的精神,我们在这里使用官方的代码完成数据接收。我们在这里使用宏定义的方法来兼容两套控制方式。

在remote_中修改下方代码

改为

通过修改BlueCtrl的宏定义值即可切换两套控制方式。之后的代码都将采用宏定义的if语句来判断。官方代码使用DMA接收,通过判断已收到的字节数来判断是否接受完整个数据包。我们自定义的数据包只有15个字节,所以要对这部分进行修改。否则将永远无法正常接收。

在中对cubeMX生成的用于初始化串口1的代码进行修改如下。同时记得在中包含remote_头文件。

因为有些蓝牙模块并不支持100Kbps这样特殊的波特率。所以要在此处把串口1在蓝牙控制时,切换为115200波特率,无校验位,1停止位。这个波特率一版蓝牙都支持,且为最常用的波特率。

最后修改解包函数sbus_to_rc(volatile const uint8_t *sbus_buf, RC_ctrl_t *rc_ctrl)

至此,所有兼容工作完成。

其实这个APP也有一点缺点,就是他不支持多点触控。有点烦。

以普惠擦亮高质量发展底色 渤海银行获“2023年度普惠金融服务银行天玑奖”
<< 上一篇
最后一页
下一篇 >>

X 关闭

  • 太阳能

Copyright ©  2015-2022 南非新能源网版权所有  备案号:沪ICP备2022005074号-13   联系邮箱:58 55 97 3@qq.com