登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
飞控开发区
›
Pixhawk飞控
›
Arduino趣味制作--FUTABA-S.BUS总线解析
返回列表
发新帖
查看:
720
|
回复:
2
Arduino趣味制作--FUTABA-S.BUS总线解析
[复制链接]
macheng0824
macheng0824
当前离线
积分
1060
窥视卡
雷达卡
339
主题
380
帖子
1060
积分
金牌飞友
金牌飞友, 积分 1060, 距离下一级还需 1940 积分
金牌飞友, 积分 1060, 距离下一级还需 1940 积分
积分
1060
飞币
676
注册时间
2017-7-3
发消息
发表于 2022-11-8 13:13:06
|
显示全部楼层
|
阅读模式
S.BUS是FUTABA(模型遥控器知名品牌)特有的一个接收机串行总线输出,通过这根总线,可以获得遥控器上所有通道的数据。目前很多模型及无人机电子设备都支持S.BUS总线的接入,如:V-BAR陀螺仪、Pixhawk飞控等。使用S.BUS总线获取通道数据,效率是比较高的,而且非常节省硬件资源-只需要"一根线"即可获取所有通道的数据。
在本次试验中,使用的遥控器为FUTABA T10CHG,接收机使用的穿越机专用神器:FM800PRO微型总线输出接收机,Arduino板使用的MEGA2560板。
在解析数据前,先说说S.BUS总线的一些特性。经过资料查阅得到:S.BUS总线使用的是TTL电平的反向电平,即标准TTL中的1取反为0,而0则取反为1,串口波特率为100000,数据位为8位,2个停止位,偶校验。因此,这里需要制作一个电平反向电路,电平反向电路在百度上可以找到大神们的无私共享,这里直接给出原理图,图中使用的三极管型号为:SS8050。
下图为制作好的电平反向电路模块,这个模块在上面原理图的基础上做了一点小小的改进:增加了一个5V的VCC贯通输入和输出端,图中的3.3V上拉则从5V的VCC上经过电阻分压获得,这样的方便之处在于方便用Arduino板对模块接收机供电,也可以接收机对模块及Arduino板供电。
获得正确的电平后,接下来看看S.BUS的数据帧结构。S.BUS一帧数据的长度为25个字节,其中第"0"个字节为帧头:0x0f;第24个字节为帧尾:0x00;从第1个字节到第22个字节为1-16号比例通道的数据字节;第23字节中,第7位为数字开关通道17通道,第6位为数字开关通道18通道,第5位为帧状态标志为(判断是否丢帧),用于控制接收机上的LED的状态,第4位为失控保护激活标志位,此位为1时,表示接收机进入失控保护状态,本次试验所用的接收机对于第23字节为做出处理,但使用福睿斯接收机时可以正确判断失控保护。
(注:数字字节帧的排位从0开始,第0个实质上是指第一个字节)
接下来看1-16比例通道的数据解算,每个通道用11位(bit)二进制数表示,通道数据的值为:0-2048:
1通道(AILE):第2字节的低3位(11位数据的高3位)+第1字节(11位数据的低8位);
2通道(ELEV):第3字节的低6位(11位数据的高6位)+第2字节的高5位(11位数据的低5位);
3通道(THRO):第5字节的最低1位(11位数据的最高1位)+第4字节(11位数据的中间8位)+第3字节的最高2位(11位数据的最低2位);
4通道(RUDD):第6字节的低4位(11位数据的高4位)+第5字节的高7位(11位数据的低7位);
这里的文字叙述比较繁琐,下面直接给出通道解算的代码:
简要说明:sbusData[]用于存放从串口读取的原始数据,channels[]用于存放解算完成的通道数据,其中channels[0]代表1通道AILE。
下面来看看如何进行帧同步,即寻找帧头。本次试验用Arduino mega2560的串口1来接收SBUS数据,再由串口0将通道数据发送到串口监视器。接收串口数据用串口中断来处理,下面直接给出中断函数:
简要说明:sbus_flag用于判断是否读取到了帧头,开始时sbus_flag为0,此时还未同步到帧头,程序会一直停留在寻找帧头的位置,不断地从串口缓冲区中读取字节数据,读取一次判断一次,当寻找到帧头0x0f时,sbus_flag置1,跳出帧头寻找,进入后续的帧读取,当sbusData更新完毕后,sbus_flag重新置0,准备进入下一轮的读取。下图为串口监视器显示1-12比例通道+原始数据第23字节(本次试验用的遥控器只有10个通道)的状态:
从上图可以看到,摇杆在中位时,解算出来的通道数据为1024左右,以一通道AILE为例:中杆时为1024,左右满行程的值分别为1686和366,此时的遥控器AILE行程设置(END POINT)为左右100%。至此,SBUS总线数据成功解析,通过试验验证了FUTABA T10CHG确实有10个通道,而且10个通道均为标准PWM(舵机)输出;其中1-8通道可设置为比例通道,即可跟随摇杆、旋钮或3端开关;而9,10通道只能作为开关通道,即只能用两段开关控制PWM的最大值和最小值,但行程可调。
实际上这一套解算代码小编早已引用到自制的Arduino四轴飞行器中,下面有图有真相,注意看图中的FM800PRO接收机:
此刻小编在想:手持"18嫂子"(T18SZ遥控器)、"16嫂子"(T16SZ遥控器)或者"14帅哥"(T14SG遥控器)的模型老司机们是不是可以以最节省的方式获得一个多通道接收机了。有需要完整解析代码的朋友可以留言。后续我还将介绍JR、SPEKTRUM系列的DSM2以及PPM的解析过程,敬请持续关注。
arduino
,
解析
,
总线
,
制作
,
趣味
相关帖子
•
废旧泡沫板千万不要丢,手把手教你轻松制作遥控航模,能飞的哦!
•
【城区·四月份主题活动】『巧手妙思同培养 创意科学齐飞翔』聊报小记者『我的·湛蓝梦想』航模科技制作活动开始啦~
•
Qt无人机地面站设计与制作视频教程
•
请问怎样自己制作航拍无人机需要准备一些什么购买哪些配件非诚勿扰...
•
【无人机作者制作】假如在第77集中马桶科学家还活着
•
第35集eVTOL案例讲解, 非矢量飞行器, 深度解析Lilium Jet飞行器。#低空经济 #eVTOL
•
如何制作一台自己想要的无人机?
•
无人机飞控系统解析:如何实现精准姿态控制[保华润天航空无人机]
•
制作世界上最大的RC C-17环球霸王,每个细节还原到极致,试飞那刻帅呆了
•
趣味运动会、航模DIY……三亚这些文体活动开始招募→
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
瞬云无人机
瞬云无人机
当前离线
积分
1524
窥视卡
雷达卡
43
主题
755
帖子
1524
积分
金牌飞友
金牌飞友, 积分 1524, 距离下一级还需 1476 积分
金牌飞友, 积分 1524, 距离下一级还需 1476 积分
积分
1524
飞币
754
注册时间
2017-8-18
发消息
发表于 2022-11-8 13:27:52
|
显示全部楼层
sbus波特率10000,在开发版怎么设置MEGA2560
回复
支持
反对
使用道具
举报
照妖镜
51fly
51fly
当前离线
积分
1600
窥视卡
雷达卡
39
主题
800
帖子
1600
积分
金牌飞友
金牌飞友, 积分 1600, 距离下一级还需 1400 积分
金牌飞友, 积分 1600, 距离下一级还需 1400 积分
积分
1600
飞币
793
注册时间
2017-9-25
发消息
发表于 2022-11-8 13:39:48
|
显示全部楼层
转发了
回复
支持
反对
使用道具
举报
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表