APP下载

基于SBUS协议四旋翼的控制

2017-10-18崔晓康高润秋曾云豪庄志鹏

智富时代 2017年8期

崔晓康+高润秋+曾云豪+庄志鹏

【摘 要】本文主要是介绍一种基于SUB协议实现对四旋翼的控制。本案例采用STM32F407RBT6微控制器为核心,控制Pixhawk飞控板实现四旋翼的起飞,降落,飞行动作控制。STM32上采用外置透传模块LC12S将数据回传到上位机,已达到实时监测和紧急降落的目的。该控制芯片接口多,速率快,可用于搭載摄像头,蓝牙,电子罗盘等外设以用于四旋翼拓展功能开发。

【关键词】SBUS协议;STM32;Pixhawk飞控板;LC12S;

一、引言

多旋翼这个概念在很早以前就被提出来了,它的历史可以追溯到20世纪初,但是由于受到理论知识和科技发展水平的限制,多旋翼飞行器在很长一段时间内都没得到足够的重视和发展[1]。四旋翼是多旋翼的一种,它主要通过改变4个电机的转速来调节旋翼的升力,我们只需要控制四个电机就可以实现飞控算法的开发。传统四旋翼的控制采用控制板输出四路PWM波到飞控板,进而直接经行飞行姿态的控制。这种方式需要读取飞控板三轴加速度计算姿态角,对于输出参数还需要PID整定,这种控制方式很直接,但是算法复杂,对主控板处理速度要求高。Pixhawk公司最近推出的飞控板不仅支持传统的多通道PWM波直接控制,也添加了SBUS协议对其经行控制,本文主要是介绍SBUS协议下对四旋翼的控制。

二、SBUS协议简介

SBUS是Smart-Bus的简称,是日本Futaba公司自行研发的一种单总线探测协议,使用两条线进行通信,一条是地线,一条是信号线,单向传输距离1600m,双向可达3200m。[2]

(一)SBUS物理层协议

SBUS串口协议波特率100kbps(100000),8位数据,偶校验(even),2位停止位,无流控,每帧25字节两帧之间间隔4ms,数据长度大约7ms。每帧数据中0x0f作为该协议的其实字节,2-23字节为16个通道数据,24-25字节为结束字节。对于四旋翼的控制我们只需要控制其中5个通道数据即可实现四旋翼的整体飞行姿态控制。

(二)SBUS协议特点

该协议有两个特点:一个是数字化,一个是总线化。

我们所要发的通道数据信号都采用了PAM基带调制,数字化的信号相比于PWM波抗干扰能力更强,并且这种基带信号及其适合于单片机间通信。

采用总线化的方式,这样我们就能同时在一个接口上连接多个设备,多主机方式工作,节点上任意一个节点均可以在任意时刻主动地向网络上的其他节点发送信息,而不分主从,通信方式灵活。[3]

三、系统设计

STM32F407是意法半导体推出的高性能,高集成度的控制芯片。在168 MHz频率下,从Flash存储器执行时,STM32F407/417能够提供210 DMIPS/566 CoreMark性能,并且利用意法半导体的ART加速器实现了FLASH零等待状态。DSP指令和浮点单元扩大了产品的应用范围。通过定时器读取超声波数据,将飞机飞行高度限制在1m;通过串口与LC12S相连实现数据会传到上位机;通过JTAG经行代码调试和烧写,最后采用软件模拟SBUS协议将通道数据发给飞控板。

(一)定时器配置

对于HC-SR04超声波数据我们采用通用定时器读取数据,通过超声波数据将飞行器高度定在1m-1.3m范围内。通用定时器包含一个16位或32位自动重载计数器,可通过软件经行编程。在读取HC-SR04数据时,定时器采用输入捕获模式,计算出飞机所处高度。

四、软件设计流程

系统软件设计采用C语言开发,同时使用STM32F4xx_StdPeriph_lib v1.0.2.7标准库经行开发。这个固件库时stm32官方发布的标准库,它囊括了微控制器所有的外设特征,数据结构,宏定义。采用库文件提供的API开发,开发者不必深入了解底层硬件,开发代码可读性好,开发效率高。

(一)系统控制流程

首先初始化中断向量控制表,配置中断设置中断优先级;将PA0设置成SBUS输出的信号线,飞机的控制参量都是通过该口发送到Pixhawk飞控板上;PA2,PA3分别配置成USART2的接受和发送引脚,并和LS12C相连;定时器2配置成输入捕获模式,PB3配置成定时器2的输入捕获引脚,用来捕获来自超声波的脉冲信号PB4配置成通用输出,用来产生出发超声波的触发信号;定时器3配置成计数中断模式,用于飞机在一定高度时候的定时产生降落指令。

(二)飞行动作控制

当四旋翼定高之后,它会等待来自上位机的控制指令,在一定时间内未收到上位机的指令,四旋翼仅仅完成起飞,定高,降落。四旋翼在运行过程中它只收到主控板STM32F407的控制,因此我们规定‘S用于紧急降落,以防发生意外,除此之外我们还定义了8条指令,用于控制四旋翼的飞行动作控制,8条指令包括前,后,左,右,机头方向,油门参量的控制。

五、四旋翼飞行测试结果

本次飞行是独立于遥控器的飞行测试,四旋翼在整个飞行过程中,运行平稳,能够很好的完成起飞,定高,降落流程。另外,四旋翼对SBUS的飞行动作数据响应很快,飞行动作控制流畅,没有出现失控等异常情况。

六、结语

本文采用的方法得到了验证,飞行实验证明,采用SBUS协议对Pixhawk飞控板进行控制的方法,相对于采用4路PWM波直接控制方法更为简洁直观,飞行器飞行状态也更加稳定。除此之外STM32F407还配有丰富的外设接口,我们可以外接摄像头,电子罗盘,GPS等外设让四旋翼具有航拍,图像处理,巡航等高级功能。

致谢:本课题由北京市大学生科研与创业项目“四旋翼飞行器室内定点悬停方法实现”支持。

【参考文献】

[1] “羿-400”多旋翼飞行控制及飞控系统指导教材;北京中科浩电科技有限公司-北京航空航天大学 联合研制

[2]Futaba SBUS总线协议技术手册

[3]基于Sbus通信的多电机同步技术研究;董少鹏 2017

[4] stm32f407vgt6-IqSVMvex-OjOeJk7qe技术手册 2016