《手把手教你学嵌入式无人机》——2.航模遥控器通信协议
一、接收机的使用
接收机可以直接用来控制舵机、电调(有刷或无刷),同时也可以通过特定的通信协议与单片机通信,单片机再进行对外围设备的控制。
实事上,舵机、电调内部也都有单片机,接收机控制舵机、电调也是通过与其内部的单片机通信来实现的。
二、接收机的三种标准通信协议
1.PWM
PWM的通信协议广泛用于接收机与舵机、电调的控制,网络上关于其具体形式描述不一,这里以遥控器的实测波形为准,来介绍“一种” “通用”的PWM控制协议。
首先如图1硬件接线,用示波器来看通道3(油门遥杆)的波形:
![](/assets/blank.gif)
可以看到波形图2:
![](/assets/blank.gif)
发现图2波形为普通PWM波,周期约18ms,频率约55Hz,可以近似看作20ms、50Hz。
将其中一个波形放大如图3所示:
![](/assets/blank.gif)
图中高电平时间为1ms,拔动遥杆发现高电平时间会随之改变:
实际测量得到高电平的变化范围在1~2ms之间,域宽1ms。则这1ms的差值可以控制舵机0~180度转动,也可以控制电机静止到满油门的转速。
2.SBUS
SBUS协议与串口通信协议极其相似。实际使用时可以通过电平反向电路将其转化为标准串口信号,这样,就可以用单片机的一个串口来与接收机直接通信啦!
2.1 SUBS信号的波形
使用示波器来显示接收机SBUS信号的波形,探测结果如图2.1、2.2所示。SBUS原始信号发送的频率约为70Hz。
![](/assets/blank.gif)
![](/assets/blank.gif)
2.2 转化为标准串口信号
其实原理很简单。如图2.3.1为需要的电平反向电路,原始的SBUS信号经过 该电路转换,咻!就变成了标准的串口通信信号。其实物就长图2.3.2的样子。
![](/assets/blank.gif)
此时用示波器检测输出信号,得到结果如图2.4、2.5
![](/assets/blank.gif)
![](/assets/blank.gif)
2.3 上位机查看输出信号
到这里,我们就可以使用串口与接收机正常通信了。这里先用上位机来进行显示。如图2.6, 注意,经处理后的SBUS标准串口信号 的参数为:
波特率:100000(5个零哦)
数据位:8位
停止位:2位
偶校验
无硬件流控制
能同时设置辣么多参数的上位机不好找,这里用到了野火的串口助手,结果如图2.6、2.7
![](/assets/blank.gif)
![](/assets/blank.gif)
当然,接收完成SBUS数据帧后不要进一步进行解析,从而得到每个通道的值。原理不再赘述,文后附有SBUS转PPM的PCB电路、程序,使用的是Stm32C8T6
SBUS转PPMstm32c8t6航模遥控器-嵌入式文档类资源-CSDN下载
航模遥控器SBUS信号转PPM - 嘉立创EDA开源硬件平台
《手把手教你学嵌入式无人机》——2.航模遥控器通信协议相关推荐
- 《手把手教你学嵌入式无人机》——入门航模遥控器使用(MC6C)
一. MC6C入门航模遥控器简介 六通道MC6C迈克遥控器是普遍使用的一款入门航模遥控器,价格较为低廉,同时性能比较稳定,性价比较高. 遥控器与接收机 1.基本参数: 遥控器: 遥控范围:大于800米 ...
- c++从入门到精通_资料下载:从入门到精通,手把手教你学DSP
学习一个东西首先是了解它,比如DSP到底是什么?用在什么地方?怎么用?和单片机特点有那些相同与不同?开发需要注意什么?想了解清楚这些问题自然就清楚比较清楚的认识DSP.DSP,因为它是用来做数据处理, ...
- 手把手教你学dsp_新课免费看| 手把手教你学DSP,C2000从入门到精通
课程简介: 目前,国内许多高校针对相关专业的本科生及硕士生已经开设了基于C2000系列的DSP应用课程,并建立了DSP重点实验室:许多企业也正在对C2000系列处理器进行开发和应用研究,因此迫切需要这 ...
- 第11章 UART 串口通信(手把手教你学51单片机pdf部分)
手把手教你学51单片机-C语言版.pdf
- python global用法_14_手把手教你学Python之函数(下)
变量作用域:根据变量定义的位置,可将变量分为全局变量和局部变量. 全局变量:定义在函数外面的变量,可以在多个函数中进行访问,但不能执行赋值操作.如果有赋值语句,相当于创建了一个同名的局部变量: 局部变 ...
- 手把手教你学Dapr - 5. 状态管理
介绍 使用状态管理,您的应用程序可以将数据作为键/值对存储在支持的状态存储中. 您的应用程序可以使用 Dapr 的状态管理 API 使用状态存储组件来保存和读取键/值对,如下图所示.例如,通过使用 H ...
- oracle数据库更新语句_20_手把手教你学Python之操作数据库
数据库是数据的仓库,将大量数据按照一定的方式组织并存储起来,方便进行管理和维护,例如快速检索和统计等.数据库的主要特点: 以一定的方式组织.存储数据: 能为多个用户共享: 与程序彼此独立. -- 数据 ...
- python中字典的value可以为任意对象_手把手教你学Python之字典
字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...
- 手把手教你学Python之波士顿房价预测(scikit-learn的应用)
目录 1.波士顿房价预测介绍 2.线性回归算法 3.调用scikit-learn库实现房价预测 1.波士顿房价预测介绍 问题描述:波士顿房价数据集统计的是20世纪70年代中期波士顿郊区房价的中位数,统 ...
最新文章
- 编程小问题系列(6)——新年第一帖: 关于Silverlight在VS2010RC下无法正常运行的问题...
- c语言递归求差分方程,递归方程组解的渐进阶的求法——差分方程法
- linux学习——大话linux网络
- VTK:Snippets之CameraPosition
- apache 限制IP网段访问
- 提示No Launcher activity found
- CSS干货直击:腾讯无边界访问控制体系建设
- 脉冲神经网络的开发公司AI-CTX
- ofo回应发币传闻:从未参与虚拟货币的发行 与GSE Lab合作已终止
- 独家百度刷权重全套代码工具教程
- canvas 画图移动端出现锯齿毛边的解决方法
- select 多选下拉框获取值
- Python3 - seaborn: lmplot(), hue, scattr_kws{}, aspect, height
- Vue 基础之常用内置指令
- 通过QQ号获取QQ头像、昵称以及空间头像
- css+分散,【原】css实现两端对齐的3种方法
- Zynq中FPGA上电时序
- 猪是坚强的,所以取名朱坚强!
- ros局部路径规划器dwa
- vscode 中写完代码 Ctrl + s 保存即可格式化代码 或者 (Shift+Alt+f)