






















介绍

以下是该产品的一些属性:
| 属性 | 参数 |
|---|---|
对码步骤
天线安装注意事项
为了让发射,接收距离更远,你需要注意以下几个点:

飞机模型的安装,官方推荐示意图

直升机模型的安装,官方推荐示意图

接口说明
引脚接口示意图如下所示:

对码时候的示意图如下所示:

舵机驱动
舵机的伺服系统由可变宽度的脉冲来进行控制,控制线是用来传送脉冲的。脉冲的参数有最小值,最大值,和频率。
一般而言,舵机的基准信号都是周期为 20ms, 宽度为 1.5ms 。这个基准信号定义的位置为中间位置。 舵机有最大转动角度,中间位置的定义就是从这个位置到最大角度与最小角度的量完全一样。 最重要的一点是,不同舵机的最大转动角度可能不相同,但是其中间位置的脉冲宽度是一定的,那就是 1.5ms。
一般而言,对于 180 度的舵机, 0.5ms 代表 0 度; 1ms 代表 45 度; 1.5ms 代表 90 度; 2ms 代表 135 度; 2.5ms 代表 180 度。
FS iBUS 协议
示意图如下所示:

解析 FS iBUS 协议的代码
下面是解析该数据的 C 代码:
// ibus.h
#ifndef __IBUS_H
#define __IBUS_H
#include <stdint.h>
typedef struct{
int16_t ch[18];
}ibus_msg;
extern int ibus_parse( ibus_msg *msg, uint8_t *src );
extern void ibus_show( ibus_msg *msg );
#endif
// ibus.c
#include "ibus.h"
#include <stdio.h>
int ibus_parse( ibus_msg *msg, uint8_t *src ){
uint16_t calc_sum = 0;
uint16_t ori_sum;
uint8_t i;
if( src[0] != 0x20 )
return -1;
if( src[1] != 0x40 )
return -1;
for( i = 0; i < 30; i++ )
calc_sum += src[i];
calc_sum ^= 0xFFFF;
ori_sum = src[30] + (src[31]<<8);
// printf( "calc_sum: %04x %04x\n", (unsigned)calc_sum, (unsigned)ori_sum );
if( calc_sum != ori_sum )
return -1;
#define IBUS_PARSE_CH1_14(x) msg->ch[x] = src[(x)*2+2] + ((src[(x)*2+3]&0xF)<<8)
IBUS_PARSE_CH1_14(0);
IBUS_PARSE_CH1_14(1);
IBUS_PARSE_CH1_14(2);
IBUS_PARSE_CH1_14(3);
IBUS_PARSE_CH1_14(4);
IBUS_PARSE_CH1_14(5);
IBUS_PARSE_CH1_14(6);
IBUS_PARSE_CH1_14(7);
IBUS_PARSE_CH1_14(8);
IBUS_PARSE_CH1_14(9);
IBUS_PARSE_CH1_14(10);
IBUS_PARSE_CH1_14(11);
IBUS_PARSE_CH1_14(12);
IBUS_PARSE_CH1_14(13);
#define IBUS_PARSE_CH15_18(x) msg->ch[x] = ((src[(x-14)*6+3+0]&0xF0)>>4) | (src[(x-14)*6+3+2]&0xF0) | ((src[(x-14)*6+3+4]&0xF0)<<4)
IBUS_PARSE_CH15_18(14);
IBUS_PARSE_CH15_18(15);
IBUS_PARSE_CH15_18(16);
IBUS_PARSE_CH15_18(17);
return 0;
}
void ibus_show( ibus_msg *msg ){
uint8_t i;
for( i = 0; i < 14; i++ ){
printf( "ch%d(%hu) ", i, (int)msg->ch[i] );
}
printf( "\r\n" );
}
注意
1. ibus 每个通道传输哦值范围在 0-4095, 而一般遥控器传输过来的摇杆过来的数据设计为操作的舵机的。 比如我在使用的 T-Lite 这款遥控器,1-4 通道分别对应油门,旋转,左右,前后四个方面的数据,而传输过来的值域范围在 1000 - 2000, 中值为 1500, 这与舵机的 15ms 代表中间位置, 10ms, 20ms 分别代表 +- 45 度的位置相对应。 当然如果你会设置遥控器这边发出的数据,那可能传输过来的数据不一样,但最好事先测试一下。
2. 接收机上面 SENS 通道其实就是上行通道(上传给遥控器的), 接收机 SERVU 则代表下行通道。 一般是你需要对遥控器过来的数据做特殊处理的时候需要用到下行通道。 当你需要安装一些传感器的时候用到上行通道(比如电压监控,气压监控等。)
3. 这两个通道的波特率是 115200, 且电平是 5V, 在某些场景你可能需要设计隔离电路。
原创文章,版权所有,转载请获得作者本人允许并注明出处
我是留白;我是留白;我是留白;(重要的事情说三遍)
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。