当前位置:   article > 正文

开源自制的6通道航模遥控器(二)-Arduino接收机增加SBUS输出_arduino sbus

arduino sbus

前言

前几天开源了自制的6通道航模遥控器(开源自制的6通道航模遥控器,超简单不超过100行代码),受到许多粉丝的关注,美中不足的是只实现了6个通道的PWM输出,没有SBUS输出,接线太复杂。经过一段时间的查阅资料和开发,终于实现了SBUS输出,这样就可以用三根线实现16个伺服通道和2个数字通道的输出了!

1. 新增元件

1k电阻一个,10k电阻一个,SS8050三极管一个(贴片体积更小)

2. 电路连接

原理图如下,基本和之前的原理图相同,只是加上了SBUS的取反电路。

如果使用Arduino UNO或者NANO开发板,请将原理图中的11脚和12脚调换位置,因为UNO和NANO的11和12正好与PRO MINI相反!

元件连接图如下:

3. 软件部分

SBUS协议使用波特率为100000、8个数据位,偶数奇偶校验位和2个停止位的反向串行逻辑。SBUS数据包的长度为25个字节,包括:
字节[0]:SBUS头,0x0F
字节[1-22]:16个伺服通道,每个伺服通道采用11位编码
字节[23]:
          位7:数字通道17(0x80)
          位6:数字通道18(0x40)
          位5:丢帧(0x20)
          位4:用来激活故障安全(0x10)
          位0-3:n/a
字节[24]:SBUS结束字节,0x00

S.Bus协议通过硬件电路取反,如果没有反相电路,Arduino将无法直接与其他SBUS设备通信。F1和F4飞控根本没有内置反相器,因此任何UART都可以直接使用;对于F3和F7飞控,INAV / Betaflight固件可以禁用软件中的反相。
程序中采用“ FASSTest 18CH”协议的Futaba S.Bus 编码16个RC通道和2个数字通道(ON / OFF)。

SBUS的每个RC通道值映射为:
-100%= 173(相当于PWM伺服信号中的1000)
0%= 992(相当于PWM伺服信号中的1

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号