匿名科创 ANO TC 凌霄飞控手册

匿名科创 ANO TC 凌霄飞控手册_第1张图片

1 凌霄飞控特点及功能

1.1 凌霄飞控的特点

纵观近两年各类多旋翼相关比赛的规则和大家的“解题思路”,我们发现,比赛限制飞控完全自制的情况
几乎没有,而且从零开始做竞赛用飞控也几乎无法拿奖,飞控工程越来越复杂,比赛时间却相当紧迫,短时间
内能飞稳定就以及很难了,更别说去调试导航以及目标识别。同时比赛也越来越趋向于考核大家多传感器融合
导航以及目标识别的能力,已经不是 N 年前自己写个飞控,能悬停就能拿奖的阶段了。
此时,飞控越来越扮演着一个基础模块的角色,用竞赛组织方规定的 mcu 充当大脑,大脑综合各个传感
器的信息,进而通过控制指令来控制飞控完成规定的飞行动作。
鉴于此,为了进一步提升性能和简化二次开发难度,匿名团队开发了新款凌霄飞控,在提供稳定飞行性能
的同时,提供专用的二次开发接口,让不关心飞控底层的用户能够以更快的速度高效率的对飞控进行二次开发,
只需发送前进后退的命令,即可完成指定动作的飞行,快速完成需要功能并能稳定的执行飞行任务。
目前飞控技术越来越复杂,国内各家开源飞控都出现了为了保留核心竞争力而不完全开源的情况(打着开
源的旗号,却在源码设置重重阻碍,例如关键源码改为汇编或者关键源码封装成 lib,不提供源码),匿名创新
的采用了硬件模块分离的思路,将不开源的部分做成单独硬件,也就是“凌霄 IMU”,相比汇编、lib 封装的模
式,其移植需要在特定编译器、特定 mcu 系统间进行,且随着二次开发的进行,有用户代码影响核心飞控源
码的风险。
而匿名的模块化方案,完全不限制外部 MCU 以及编译环境,比如 51、STM、NXP 甚至树莓派等,都可
以简单的配合凌霄 IMU 从而组成性能强劲的飞控系统,各种竞赛官方要求的核心板更是不在话下。同时匿名
团队依然坚持保留完全开源的拓空者系列飞控,让需要了解飞控底层的用户能得到完整的飞控源码,充分了解
底层,滤波、姿态解算、控制逻辑等。飞控相关源码均为标准 C 语言格式,并尽量做好注释,方便用户对飞控
底层的学习和移植。

1.2 凌霄飞控系统硬件组成

凌霄飞控系统的核心是匿名凌霄 IMU 模块。由凌霄 IMU 完成传感器融合、数据滤波、姿态解算、控制算
法以及电机 PWM 输出。此时,只需要由一个辅助单片机,将遥控控制数据或者用户导航指令,通过串口发送
给凌霄 IMU,然后接收凌霄 IMU 输出的 PWM 数据并转换成 PWM 波输出给电调,即可完成整个飞控的功能。
其逻辑框图如下:
匿名科创 ANO TC 凌霄飞控手册_第2张图片

看似通用 MCU 需要做许多工作,但我们仔细梳理一下通用 MCU 必须要做的事情:
驱动部分:
➢ 接收机信息采集:串口采集 SBUS 信号或者 IO 采集 PWM 信号,仅仅需要 IO 驱动或者串口驱动。
➢ GPS 信息采集:串口驱动
➢ 光流信息采集:串口驱动
➢ 其他传感器信息采集:IO、PWM、串口等驱动
➢ 电调控制:PWM 输出,PWM 驱动
➢ 电池电压监测:ADC 驱动
➢ 与凌霄 IMU 通信:串口驱动
综上:通用 MCU 只需要串口驱动、IO 驱动、PWM 驱动、ADC 驱动即可,可以说对任意单片机来说这些都是最最基础的外设了。
算法部分:
➢ 遥控控制飞控飞行:直接将采集到的遥控控制数据转发至 IMU 即可,无需任何算法。
➢ 传感器数据处理:GPS、光流传感器数据仅需通用 MCU 采集并转发至 IMU,无需任何算法,同时 GPS、光流数据及其他传感
器对用户是开放的,用户可直接使用,加入自己的导航逻辑。
➢ 控制算法:所有滤波、姿态、控制算法,均在 IMU 内部运行,凌霄 IMU 直接输出 PWM 数值给通用 MCU,通用 MCU 只需将
PWM 数值转换成 PWM 波输出,无需任何算法。
综上:在不增加导航控制逻辑的情况下,通用 MCU 部分几乎不用加任何逻辑算法,仅仅进行数据转发和执行即可。

1.3 凌霄飞控的“无限”可能性

从以上分析可以看出,通用 MCU 几乎就是只进行消息的传递,那么可能有人会有疑问,那还要这个通用
MCU 干什么,直接凌霄 IMU 自己做好了。这个问题很好,凌霄飞控系统的设计思路,就是为了冲破这个疑问。
这个疑问暂且不谈,我们先看看想要控制一个飞控,有哪些方法:
◼ A:遥控器控制
◼ B:修改飞控源码,加入一个自己的 pid,根据某个传感器数据,进行 pid 运算,使用速度闭环或者位
置闭环控制飞控。
那么我们再看看两种控制方法的特点:
◼ A:匿名称之为“人眼 PID”,全由人控制,仅能用于娱乐或者简单用途,精确控制是不可能的。
◼ B:可以实现自动飞行、复杂控制逻辑,并且控制精度高,自动化程度高。但是,修改飞控源码是那么
简单的吗,肯定不是的。修改源码其难度随着飞控技术的进步,同步提高,必须要看懂源码,才能知
道自己需要加入的逻辑从哪下手。
目前开源飞控的窘境就是在此,开源飞控功能越来越多,控制算法复杂度越来越高,飞行效果越来越好,
同时提高的,还有新手的入门难度,想要二次开发的开发难度。
那比如我是做导航算法的,或者我是做避障算法的,或者我是做图像识别、视觉控制的,需要一个无人机
载体,又或者我是参加电赛的,无人机只是我的一个运行载体,我需要通过视觉或多传感器组合识别、检测、
导航等方式控制无人机实现一定的飞行任务,很明显,A 控制方案肯定是行不通的。B 方案呢,可行,但是这
和我的初衷不是一个方向,我仅仅需要飞控稳定飞行并且按我要求执行飞行动作即可,而从头学习飞控底层系
统会浪费大量时间和精力。
此时,有一个“模块”,你只需通过串口,发送速度和方向,或者发送目标点坐标和速度,那么这个“模
块”就能直接输出电机所需的 PWM 信息,从而控制飞机按指令飞行呢?不用担心,凌霄 IMU 就是这个模块,
它全都帮你搞定,你只需告诉它,你需要怎么飞。你可以用 51 去控制它,可以用 ARM 去控制它,还可以用
arduino、树莓派去控制它,将你的工作重心转移到无人机上层的检测、感知、识别和控制上,而无需关心飞控
底层算法,就像使用无刷电调那样的来使用凌霄 IMU。

1.4 凌霄 IMU 的功能

凌霄 IMU 具有的主要功能如下:
匿名科创 ANO TC 凌霄飞控手册_第3张图片

1.5 凌霄 IMU 支持的 API 指令

凌霄 IMU 所有功能的输入输出均通过串口实现,支持全面的串口指令控制。其支持的串口 API 指令如下:
◆ 移动控制指令:格式:移动距离+移动速度+移动方向,可实现 0-359 度随意方向的移动(须有光流或
GPS)。
◆ 一键飞行指令:格式:期望动作,如一键解锁,一键锁定,一键悬停,一键降落,一键返航等。
◆ 目标点飞行指令:格式:目标 XYZ 坐标,可实现指点飞行,飞行器自动飞向目标点(近期固件升级实
现)。
◆ 高度控制指令:格式:目标高度+变化速度,可通过该指令控制飞行器的上升下降。
◆ 姿态控制指令:格式:期望姿态角,可直接通过该指令控制飞行器的姿态。
◆ 速度控制指令:格式:期望速度的 XYZ 分量,可直接控制飞行器的速度(须有光流或 GPS)。
◆ 自旋控制指令:格式:自旋速度值,可通过该指令控制飞行器顺时针或逆时针旋转。
◆ 校准指令:格式:校准类型,可实现罗盘、6 面、快速水平等校准功能。
◆ 模式选择指令:格式:飞行模式,可通过该指令修改飞行模式,比如自稳、定点、程控等模式。
还可以通过 API 指令实现飞行参数修改、恢复默认、复位解算、控制输出信息、设置输出频率等等功能,
这里不再一一列举。
所有指令具体格式,请在上位机的帮助界面打开匿名通信协议,协议介绍内有所有指令的具体格式及用法。

2 凌霄飞控系统硬件介绍

2.1 凌霄飞控硬件组成

凌霄飞控系统由两大部分组成:凌霄 IMU+通用 MCU,通过串口进行数据通信。
凌霄 IMU 硬件配置:
➢ 惯性传感器:BMI088(加速度、陀螺仪)
➢ 磁场传感器:IST8310(罗盘)
➢ 气压传感器:SPL06(气压高度)
➢ 串口 1:连接通用 MCU
➢ 串口 2:连接数传,通过数传可以连接上位机或者通过数传控制飞行
➢ USB:可通过 USB 线连接上位机
➢ IMU 内部配置有柔性 PCB 减震、电阻加热恒温。
◆ DM、DP:USB 信号线,直接连接至 USB 座的 DM、DP 引脚。
◆ U1-TX、U1-RX:串口 1 信号线,U1-TX 连接对侧芯片 RX 引脚,U1-RX 连接对侧芯片 TX 引脚。
◆ U2-TX、U2-RX:同串口 1。
◆ 5.0V、GND:模块供电引脚,需提供 5V500ma 电源。
对于通用 MCU,匿名团队以 STM32F407 作为 DEMO 提供,提供 F407 芯片的所有源码。因为通用 MCU 所
必须的硬件外设仅为 ADC、串口、PWM、GPIO,各类单片机均可方便的移植,故通用 MCU 大家可以方便的修
改为自己熟悉的芯片或者项目要求的芯片。

2.2 凌霄飞控接口介绍

匿名科创 ANO TC 凌霄飞控手册_第4张图片
匿名科创 ANO TC 凌霄飞控手册_第5张图片
匿名科创 ANO TC 凌霄飞控手册_第6张图片橙色接口表示该接口为通用 MCU(STM32F407)接口。
蓝色接口表示该接口为凌霄 IMU 接口。
◆ 串口 RTGV:R 为串口 RX,T 为串口 TX,G 为 GND,V 为 5V 输出。
◆ LED:该接口可外接大功率共阳 RGB 灯,V 为 5V 输出,BRG 分别为蓝色、绿色、红色输出。
◆ SWD:V 为 3.3V 输入,C 为 SWD 的 CLK 信号,G 为 GND,D 为 SWD 的 DIO 信号。
◆ SBUS:S 为 SBUS 的信号线,V 为 5V 输出,G 为 GND。
◆ PWM:G 为 GND,V 为 5V 输出,12345678 分别为 1 到 8 通道的 PWM 输出。
◆ POW:两个正,两个负,正接电池正极,负接电池负极。注意,这里必须接电池电压,飞控会采集此端口电压,用于低电压保
护。
PWM 转接板介绍:
◆ S:PWM 信号线。
◆ N:对应电调线的 5V 端子,但是飞控自带供电,请不要连接此端子,若电调带有 5V 输出,请剪断电调的 5V 输出线。
◆ G:GND。
◆ PWM 转接板接入凌霄飞控的 PWM Out 接口。
S
N
G
G N S
通道:8 7 6 5 4 3 2 1

匿名科创 ANO TC 凌霄飞控手册_第7张图片

你可能感兴趣的:(飞控,匿名科创)