开源四轴飞行器系统/zh

来自Microduino Wikipedia
Zhangfengfeng讨论 | 贡献2017年8月2日 (三) 09:20的版本 四轴飞行器机架搭建与调试
跳转至: 导航搜索
Language English

概述

四旋翼飞行器,又称为四旋翼直升机,顾名思义,是一种具备4个螺旋桨的飞行器,与直升机类似,可以完成空中悬停、飞行的动作。传统直升机会用一个主桨来产生推力,用一个尾桨来抵消主桨产生的扭矩(即锁尾),而四旋翼飞行器对角螺旋桨采用正反桨设计,从而不需要额外的机构进行“锁尾”。4个螺旋桨呈十字形对称分布,1和2 号桨逆时针转动,而3和4号桨顺时针转动,当4个螺旋桨产生的推力相同时,两组正反桨对机身所施加的反扭矩两两抵消,使得绕垂直方向旋转的反扭矩平衡,从而确保了航向的稳定。

根据飞行器自定义的首尾方向,可以将四旋翼飞行器分为十字模式和X字模式两种。十字模式意味着首尾的方向会指向某个螺旋桨,而X字模式则是指首尾方向指向两个螺旋桨中间。
大多数飞行器采用的是X字模式。X字模式相对于十字模式来说,控制起来更加困难,但动作的灵活性会更高。
Pitchd Roll.jpg

原理

系统架构

Jiagou.PNG

如图是四旋翼飞行器的结构简图。飞行器主要包括遥控器(航模遥控)、飞行控制器以及四个电机。而飞行控制器又包括微控制器、遥控信号接收模块、传感器模块(陀螺仪、加速度计、电子罗盘和GPS定位模块)和电机驱动模块。

飞行原理

垂直运动

即飞行器垂直上升或下降。正如前文所说的,四个电机保持在同一转速,就能够在水平方向上保持稳定。如图2.2.1所示,如果四个电机增加到在同一个转速,产生的推力足以克服飞行器自身的重力,便能够上升;反之,如果四个电机同时降低到同一个速度,产生的推力无法克服飞行器的重力,便可以下降。如果外界没有其他的扰动,四个电机产生的推力恰好克服飞行器的重力,这样,飞行器就可以悬停在空中。

只要让四个电机保持在相同转速,便能够让飞行器平稳地垂直运动,相对来说比较简单。
Chuizhi-sport.jpg


前后运动和侧向运动

电机1为飞行器头部,而电机2为飞行器尾部。
为了在水平上获得一个推力,增加电机2的转速,尾部的推力增加;降低电机1的转速,头部的推力减小;整个机身会向前倾,合成了一个水平向前的推力,机身便能够向前运动。同时保持电机3和4的转速,反扭矩平衡,才能够保证机身平稳地向前。向后运动正好与向前运动相反。
因为四旋翼飞行器是中心对称的,前后运动和侧向运动的控制是完全类似的,两组正反电机的控制方式对调即可。例如,保持电机1和2的转速不变,增加电机4的转速而降低电机3的转速,便能够产生向左的水平力,于是机身向左运动。

Head-back-sport.jpg


Right-left-sport.jpg

Media:right-left-sport.mp4


偏航运动

前面介绍的三种运动都是空间三个轴上的平移,接下来要介绍的三种运动是绕着三轴的旋转。

偏航运动就是在水平方向上的左右转动,即绕着Z轴的旋转。旋翼在转动的过程中,由于空气阻力的作用,会形成与转动方向相反的反扭矩。偏航运动就是利用反扭矩实现的。当飞行器悬停时,4个电机的转速相同,两组正反扭矩相互抵消,维持平衡。当四个电机转速不完全相同时,不平衡的反扭力会引起四旋翼飞行器水平转动,从而实现偏航运动。如图所示,提升电机1和2的转速,同时降低电机3和4的转速,1和2 电机产生的顺时针反扭矩大于3和4电机产生的逆时针反扭矩,而且总的向上推力没有发生变化,于是机身在水平面上顺时针转动,又不会出现垂直位移。逆时针转动正好相反。

俯仰运动和滚转运动

俯仰运动是指在Y轴上的旋转,而滚转运动则是在X轴上旋转。

如图所示,提升电机1的转速,降低电机2的转速,两者转速的变化量应该一样,同时保持电机3和4转速不变。机身头部的推力大于尾部的推力,不平衡的力矩使得机身仰起。同样的,俯身运动则是降低电机1的转速,而提升电机2的转速,产生一个向前倾的力矩。
同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。
Headback-sport.jpg


Turn over-sport.jpg

控制流程

遥控器发出控制命令,比如起飞、向左飞等等,控制信号通过无线接收

  • 遥控信号接收模块接收到控制信号,将其转化为PWM或者PPM等信号传递给飞行控制器。
  • 微控制器根据遥控信号以及传感器的值(当前飞行器的状态,如加速度、方位等信息)来通过PWM控制四个电机以达到预期的动作。
因为四旋翼飞行器的四个电机组合控制才能实现6个方向的运动,是一个欠驱动系统,必须要有一个飞行控制器来控制整个系统。
在飞行控制器中,传感器,如陀螺仪和加速度计,是必须的。微控制器计算这两个传感器所传来的数据,获得当前飞行器的姿态,然后通过PID等算法调整电机的转速,以保持飞行器的稳定。当然还可以加入电子罗盘掌握机身的方向,加入GPS模块确定飞行器的地理位置。所以简单来说,四旋翼飞行器是一个具备两个闭环控制的系统,大环由遥控接收设备注入输入量,小环由姿态传感器注入输入量。
当然,这个过程中也有一些技术细节需要设计,比如传感器读入的数据需要进行滤波、俯仰(Pitch)、滚转(Roll)、偏航(Yaw)等动作的PID算法设计及调整。这是一个较复杂的综合系统,如果玩家想在理论方面从零开始学习则需要介绍许许多多,受篇幅所限,请参考相关资料,这里就不详细介绍了。
总的来说,所使用四旋翼飞行套件包括飞行器和遥控器两大部分,两者通过CoreRF传输控制指令。
飞行器主要由带4个电机的机架、Microduino-CoreRF和Microduino-10DOF等模块组成。其中Microduino-10DOF集成了四种传感器,分别是三轴加速度+三轴陀螺仪传感器(MPU6050)、磁场强度传感器(HMC5883L)、数字气压传感器(BMP180)。通过I2C进行通信。
MPU6050是其中最主要的姿态传感器,内部集成了三轴加速度计和三轴陀螺仪,不仅消除了组合加速度计和陀螺仪时容易出现的对准误差,而且内置了可编程的低通滤波器,即使在飞行器经受较大振动时,控制程序通过配置适当频率的低通滤波器,可以滤掉高频振动。这种处理方式可以减小四旋翼飞行器自身的振动对陀螺仪数据产生的影响。

四轴飞行器机架搭建与调试

材料清单

  • Microduino设备
模块 数量 功能
Microduino-CoreRF/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-10DOF/zh 1 姿态稳定
Microduino-QuadCopter/zh 1 四轴驱动底板
2.4G天线 1 加长无线传输距离
  • 其他设备
设备 数量 功能
USB数据线 1 连接
机架 1 飞行
动力电池 1 供电
螺丝 8 固定
螺丝刀 1 固定

搭建步骤







  • 两根线正负极不要反了,红色线连红色线,黑色线连黑色线。
  • 电池线从电极臂下方连接,防止螺旋桨转动时与电池线碰撞。

程序下载

程序烧写

    • 用数据线连接其中的Microduino-USBTTL/zh准备上传程序
    • 注意:最好不要将所有模块堆叠在一起之后再上传程序
  • 打开Arduino IDE for Microduino,环境,(搭建参考:AVR核心:Getting started/zh
  • 点击【工具】,确认开发板/处理器(Microduino/mCookie-Core RF(128rfa1))选择无误,并选中对应端口号(COMX)
  • 点击【文件】->【打开】,浏览到项目程序地址,点击““MultiWii_for_CoreRF.ino”程序打开
  • 几项都无误后,点击"→"按钮下载程序到开发板上

操作说明

校正四旋翼飞行器指南

自动校正(推荐)

  • 程序烧录好默认免上位机配置的模式,在此模式下到手即玩
  • 此模式的陀螺仪校准、自稳、解锁方式默认为以下配置:
    • 开机会自动校正陀螺仪
    • 开启自稳功能并开启自稳模式
    • AUX解锁方式默认无效,采用传统解锁方式

手动校正

  • 当玩家自己想手动校正四轴飞行器时,可参考以下步骤
  • 关闭自动校正功能
    • 要先关闭自动校正,才可进行手动配置
    • 打开四轴代码中的config.h文件,注释以下所有代码即可:
      • //#define MICRODUINO_AUTO_CALIBRATING //免上位机配置,开机自动校正陀螺仪
      • //#define MICRODUINO_AUTO_ANGLE //免上位机配置,开启自稳功能
      • //#define MICRODUINO_AUTO_ARM //免上位机配置,AUX1通道一键解锁,此时传统解锁方法失效
  • 水平摆正四轴
    • 确保四轴机架已经水平放在桌面上,为接下来校正做好准备
  • 连接上位机软件
    • 打开MultiWiiConf文件夹下对应系统类型的上位机程序 (注意:需拥有JAVA环境)
    • 在上位机软件左侧,PORT COM选择对应串行端口,进行连接
  • 设置PID参数
    • 我们推荐你载入我们的配置文件
    • 在上位机软件左侧,LOAD选择目录\MultiWiiConf\Microduino.mwi中的文件
    • 你也可以通过鼠标左键拖拽对应对象上的数值完成PID修改
    • 点击WRITE将设置写入飞控,完成设置
  • 开启自稳模式(重要)
    • 在上位机的通道映射区找到AUI1对应的ANGLE功能
    • 激活LOW、MID、HIGH三组(在方块处点击鼠标左键,灰色方块变成白色即完成激活)
    • 点击WRITE将设置写入飞控,完成设置
  • 加速度计校正
    • 点击CALIB_ACC按钮
    • 大约5秒内,等待数据平稳即可
    • 点击WRITE将数值写入飞控,完成校正


Microduino QuadCopter MultiWiiConf4.jpg


  • 使用传感器值排除故障
    • 将机身倾斜到右侧(左侧向上抬起):
      • ACC_ROLL和GYRO_ROLL数值升高
      • ACC_Z数值降低
    • 将机身往前倾(尾部向上抬起):
      • ACC_PITCH和 GYRO_PITCH数值升高
      • ACC_Z数值降低
    • 将机身顺时针方向转动(偏航):
      • CYRO_YAW数值升高
    • 机身保持水平:
      • ACC_Z数值为正


Joypad遥控指南

Joypad解锁/加锁指南

传统法

  • 确认Joypad对应开关状态:
    • 不论加锁或解锁,都需确认Joypad开关状态如下:
    • Joypad左上拨档开关拨下(油门锁定开启)
    • Joupad右上拨档开关拨上(摇杆幅值最大)
  • 四轴初始化:
    • 将四轴放置在水平地面并开启电源
    • 等待四轴上指示灯停止闪烁
  • 解锁:
    • 将左摇杆由中点打到最右,等待2S左右
    • 若指示灯长亮即说明完成解锁,否则左摇杆回中,重新操作本步
    • 如果尝试多次不能解锁,应复位四轴飞行器核心后再重新尝试
  • 加锁:
    • 在已经解锁,并且四轴静止的情况下
    • 将左摇杆由中点打到最左,等待2S左右
    • 若指示灯熄灭即说明完成加锁,否则左摇杆回中,重新操作本步

一键法

  • 修改代码,开启一键解锁
    • 打开四轴代码中的config.h文件,取消以下代码注释,重新下载四轴程序:
        1. define MICRODUINO_AUTO_ARM //免上位机配置,AUX1通道一键解锁,此时传统解锁方法失效
  • 确认Joypad对应开关状态:
    • 不论加锁或解锁,都需确认Joypad开关状态如下:
    • Joypad左上拨档开关拨下(油门锁定开启)
    • Joupad右上拨档开关拨上(摇杆幅值最大)
    • 四轴的AUX1通道为低(key1按键控制)
  • 四轴初始化:
    • 将四轴放置在水平地面并开启电源
    • 等待四轴上指示灯停止闪烁(如果一直闪烁,请检查AUX1通道是否为低)
  • 解锁:
    • 按下Joypad的key1键,将AUX1通道置高
    • 若指示灯长亮即说明完成解锁
    • 如果尝试多次不能解锁,应复位四轴飞行器核心后再重新尝试
  • 加锁:
    • 在已经解锁,并且四轴静止的情况下
    • 按下Joypad的key1键,将AUX1通道置低
    • 若指示灯熄灭即说明完成加锁


Joypad控制指南

  • 务必阅读以下文字,来保证你的安全:
    • 四轴已经解锁,并且放在空阔地带
    • 保证你的Joypad有充足电量
    • 确保你不会在四轴解锁状态,先关闭Joypad
    • 四轴的机头方向为橘黄色桨朝向
    • 解除油门锁定前,确保Joypad的油门是关闭的(左摇杆调至最低)
  • 初学者建议用以下操作来提高操控的精细度,使飞行更稳定
    • Joupad右上拨档开关拨下(摇杆幅值最小)
Microduino QuadCopter Remote6.jpg
  • 接下来,你可以准备飞行了:
    • 将Joypad左上拨档开关拨上(油门锁定关闭)
  • 轻轻推动油门使四个螺旋浆转起来
  • 慢慢加大油门,使得四轴上升至1米左右高度,以避免近地气流干扰
  • 然后通过方位摇杆控制四轴平衡
  • 操作注意
    • 将左上边是油门控制开关,打开(拨到上面),才能进行控制,你可以摇动摇杆,观察屏幕的变化
    • 右边开关是精度调整开关,开关拨到上面可以最大幅度控制,否则只能小幅度控制了,小幅度有助于稳定控制
    • 左边摇杆在垂直方向上控制油门,越往上油门越大,动力越大飞的越高,在水平方向上控制四轴在水平方向旋转
    • 右边摇杆在垂直方向上控制前后方向移动,往上向前,往下向后,在水平方向上控制左右方向移动

程序说明

注意问题

尽管在前面的内容中列出了不少要注意的一些问题,这里再总结一下。

关于安装

  • 四旋翼飞行器的四个螺旋桨是有顺序的,如果安装出错,很有可能导致飞行器飞不起来。
  • 锂电池正负极,红线为正极,黑线为负极,一旦接错很容易烧坏电路,尤其在给Microduino-Joypad供电时,很容易插反,这要格外注意。

关于飞行控制

  • 务必选择一个空旷的地方就行试飞,比如学校的操场上,公园比较大的草坪。
  • 遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。
  • 当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否则会使四旋翼飞行器失控,容易发生意外。

关于充电/干电池

  • 飞行器底板有直接给飞行器电池充电的功能,只需直接插USB线给底板供电,就可以给电池充电
  • joypad利用干电池供电需要先把电源选择开关拨到Dry bat,安好干电池,用USB线给joypad供一下电立刻拔掉(安好干电池后不能长时间用USB线供电),就可以成功激活干电池供电功能

若出现其他问题,欢迎在论坛讨论部分提出