“Microduino 四轴飞行器教程”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
程序下载调试
 
(未显示4个用户的92个中间版本)
第4行: 第4行:
 
|
 
|
 
==概述==
 
==概述==
*项目名称:Microduino四轴飞行器
+
四旋翼飞行器,又称为四旋翼直升机,顾名思义,是一种具备4个螺旋桨的飞行器,与直升机类似,可以完成空中悬停、飞行的动作。传统直升机会用一个主桨来产生推力,用一个尾桨来抵消主桨产生的扭矩(即锁尾),而四旋翼飞行器对角螺旋桨采用正反桨设计,从而不需要额外的机构进行“锁尾”。4个螺旋桨呈十字形对称分布,1和2 号桨逆时针转动,而3和4号桨顺时针转动,但4个螺旋桨产生的推力相同时,两组正反桨对机身所施加的反扭矩两两抵消,使得绕垂直方向旋转的反扭矩平衡,从而确保了航向的稳定。
*目的:通过Microduino Joypad来控制四轴飞行器。
+
|-
*难度:高级
+
|根据飞行器自定义的首尾方向,可以将四旋翼飞行器分为十字模式和X字模式两种。十字模式意味着首尾的方向会指向某个螺旋桨,而X字模式则是指首尾方向指向两个螺旋桨中间。
*耗时:6小时
+
|-
*制作者:Microduino Studio-PKJ&Microduino Studio-Joseph Leung
+
|大多数飞行器采用的是X字模式。X字模式相对于十字模式来说,控制起来更加困难,但动作的灵活性会更高。
 +
 
 +
[[File:_Pitchd_Roll.jpg|center|400px]]
 +
 
 +
==原理==
 +
===系统架构===
 +
[[File:jiagou.PNG|center|300px]]
 +
如图是四旋翼飞行器的结构简图。飞行器包括主要包括遥控器(航模遥控)、飞行控制器以及四个电机组成。而飞行控制器又包括微控制器、遥控信号接收模块、传感器模块(陀螺仪、加速度计、电子罗盘和GPS定位模块)和电机驱动模块。
 +
 
 +
===飞行原理===
 +
====垂直运动====
 +
即飞行器垂直上升或下降。正如前文所说的,四个电机保持在同一转速,就能够在水平方向上保持稳定。如图2.2.1所示,如果四个电机增加到在同一个转速,产生的推力足以克服飞行器自身的重力,便能够上升;反之,如果四个电机同时降低到同一个速度,产生的推力无法克服飞行器的重力,便可以下降。如果外界没有其他的扰动,四个电机产生的推力恰好克服飞行器的重力,这样,飞行器就可以悬停在空中。
 +
|-
 +
|只要让四个电机保持在相同转速,便能够让飞行器平稳地垂直运动,相对来说比较简单。
 +
[[File:chuizhi-sport.jpg|center|300px]]
 +
 
 +
 
 +
====前后运动和侧向运动====
 +
电机1为飞行器头部,而电机2为飞行器尾部。
 +
<br>为了在水平上获得一个推力,增加电机2的转速,尾部的推力增加;降低电机1的转速,头部的推力减小;整个机身会向前倾,合成了一个水平向前的推力,机身便能够向前运动。同时保持电机3和4的转速,反扭矩平衡,才能够保证机身平稳地向前。向后运动正好与向前运动相反。
 +
<br>因为四旋翼飞行器是中心对称的,前后运动和侧向运动的控制是完全类似的,两组正反电机的控制方式对调即可。例如,保持电机1和2的转速不变,增加电机4的转速而降低电机3的转速,便能够产生向左的水平力,于是机身向左运动。
 +
 
 +
[[File:head-back-sport.jpg|center|400px]]
 +
 
  
==材料清单==
+
[[File:right-left-sport.jpg|center|400px]]
*Microduino设备
+
 
{|class="wikitable"
+
====偏航运动====
 +
前面介绍的三种运动都是空间三个轴上的平移,接下来要介绍的三种运动是绕着三轴的旋转。
 +
|-
 +
|偏航运动就是在水平方向上的左右转动,即绕着Z轴的旋转。旋翼在转动的过程中,由于空气阻力的作用,会形成与转动方向相反的反扭矩。偏航运动就是利用反扭矩实现的。当飞行器悬停时,4个电机的转速相同,两组正反扭矩相互抵消,维持平衡。当四个电机转速不完全相同时,不平衡的反扭力会引起四旋翼飞行器水平转动,从而实现偏航运动。如图所示,提升电机1和2的转速,同时降低电机3和4的转速,1和2 电机产生的顺时针反扭矩大于3和4电机产生的逆时针反扭矩,而且总的向上推力没有发生变化,于是机身在水平面上顺时针转动,又不会出现垂直位移。逆时针转动正好相反。
 +
 
 +
====俯仰运动和滚转运动====
 +
俯仰运动是指在Y轴上的旋转,而滚转运动则是在X轴上旋转。
 
|-
 
|-
|模块||数量||功能
+
|如图所示,提升电机1的转速,降低电机2的转速,两者转速的变化量应该一样,同时保持电机3和4转速不变。机身头部的推力大于尾部的推力,不平衡的力矩使得机身仰起。同样的,俯身运动则是降低电机1的转速,而提升电机2的转速,产生一个向前倾的力矩。
 
|-
 
|-
|Microduino-Core||2||核心板
+
|同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。
 +
 
 +
[[File:headback-sport.jpg|center|400px]]
 +
 
 +
 
 +
[[File:turn over-sport.jpg|center|400px]]
 +
 
 +
===控制流程===
 +
遥控器发出控制命令,比如起飞、向左飞等等,控制信号通过无线接收
 +
*遥控信号接收模块接收到控制信号,将其转化为PWM或者PPM等信号传递给飞行控制器。
 +
*微控制器根据遥控信号以及传感器的值(当前飞行器的状态,如加速度、方位等信息)来通过PWM控制四个电机以达到预期的动作。
 
|-
 
|-
|Microduino-USBTTL ||1||下载程序
+
|因为四旋翼飞行器的四个电机组合控制才能实现6个方向的运动,是一个欠驱动系统,必须要有一个飞行控制器来控制整个系统。
 
|-
 
|-
|Microduino-10DOF ||1||姿态稳定
+
|在飞行控制器中,传感器,如陀螺仪和加速度计,是必须的。微控制器计算这两个传感器所传来的数据,获得当前飞行器的姿态,然后通过PID等算法调整电机的转速,以保持飞行器的稳定。当然还可以加入电子罗盘掌握机身的方向,加入GPS模块确定飞行器的地理位置。所以简单来说,四旋翼飞行器是一个具备两个闭环控制的系统,大环由遥控接收设备注入输入量,小环由姿态传感器注入输入量。
 
|-
 
|-
|Microduino-BT||2||无线通讯
+
|当然,这个过程中也有一些技术细节需要设计,比如传感器读入的数据需要进行滤波、俯仰(Pitch)、滚转(Roll)、偏航(Yaw)等动作的PID算法设计及调整。这是一个较复杂的综合系统,如果玩家想在理论方面从零开始学习则需要介绍许许多多,受篇幅所限,请参考相关资料,这里就不详细介绍了。
 
|-
 
|-
|Microduino-Joypad ||1||遥控
+
|总的来说,所使用四旋翼飞行套件包括飞行器和遥控器两大部分,两者通过CoreRF传输控制指令。
 
|-
 
|-
|Microduino-TFT||1||显示
+
|飞行器主要由带4个电机的机架、Microduino-CoreRF和Microduino-10DOF等模块组成。其中Microduino-10DOF集成了四种传感器,分别是三轴加速度+三轴陀螺仪传感器(MPU6050)、磁场强度传感器(HMC5883L)、数字气压传感器(BMP180)。通过I2C进行通信。
 
|-
 
|-
|Microduino-QuadCopter||1||四轴电机驱动
+
|MPU6050是其中最主要的姿态传感器,内部集成了三轴加速度计和三轴陀螺仪,不仅消除了组合加速度计和陀螺仪时容易出现的对准误差,而且内置了可编程的低通滤波器,即使在飞行器经受较大振动时,控制程序通过配置适当频率的低通滤波器,可以滤掉高频振动。这种处理方式可以减小四旋翼飞行器自身的振动对陀螺仪数据产生的影响。
|}
+
 
*其他设备
+
==四轴飞行器机架搭建与调试==
 +
===四旋翼飞行器材料清单===
 +
*Microduino设备
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
|USB数据线||1||下载程序
+
|模块||数量||功能
 +
|-
 +
|[[Microduino-CoreRF/zh]]||1||核心板
 +
|-
 +
|[[Microduino-USBTTL]] ||1||下载程序
 +
|-
 +
|[[Microduino-10DOF]] ||1||姿态稳定
 
|-
 
|-
||四轴飞行器机架||1||搭建四轴
+
|[[Microduino-QuadCopter]]||1||四轴驱动底板
 
|-
 
|-
|电池||2||供电
+
|[[2.4G天线]]||1||加长无线传输距离
 
|}
 
|}
  
==文档==
+
*其他设备
*下载四轴控制程序:
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Microduino_Joypad_QuadCopter/MultiWii
 
 
 
*下载MultiWiiConf上位机软件:
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Microduino_Joypad_QuadCopter/MultiWiiConf
 
 
 
*下载PID配置文件:
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Advanced_Tutorial/Microduino_Joypad_QuadCopter/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6
 
 
 
==简介==
 
===原理===
 
四轴飞行器,顾名思义就是有四个动力桨的飞行器,四轴与直升机类似,可以完成空中悬停、飞行的动作。与传统直升机使用一个主桨来产生升力,用一个尾桨来抵消主桨产生的扭矩(即锁尾)这样的动力方式不同的是,四轴飞行器对角电机采用正反桨设计从而不需要额外的机构进行“锁尾”。如图1.1所示,1、3号桨为一对对角正反桨,2、4号桨为一对对角正反桨,转速相同时,正桨旋转时产生的扭力会与反桨旋转产生的扭力相抵消从而保持航向(箭头所示方向)不变。示意图当中的四轴是最常见的X型四轴,还有一种四轴是十字形结构,这种四轴相对而言前方好辨认但是机动性差。
 
[[File:Microduino_QuadCopter_Introduction1.jpg||600px|center|thumb]]
 
 
 
四轴飞行器可以完成升降、俯仰(Pitch)、侧俯仰(Roll)、偏航(Yaw)四种基本动作。升降即机身垂直升降,上升由四个电机同时增加转速实现,下降亦然。俯仰即机身向前向或者后向倾斜以完成向前飞行或者向后飞行,俯由在后方的3、4号电机增加转速实现,仰亦然。侧俯仰其实是传统航模中的滚转,机身向左或者向右倾斜以完成向左或者向右飞行,向左倾斜由右方的2、3号电机增加转速实现,向右倾斜亦然。偏航为机头方向的偏移,向左偏由带有反桨的2、4号增加转速实现,向右偏亦然。玩家可以在完成四轴的安装调试后观察其飞行来理解。
 
 
 
===结构===
 
四轴的组成示意图如图下图所示,简化后(只关心信号)的系统由遥控信号接收装置(此处为航模遥控接收器或者蓝牙模块)、飞行控制器以及四个电机组成。遥控信号接收装置接收控制端的信号之后转换为PWM或者PPM等信号传送给飞行控制器,飞行控制器根据遥控信号以及传感器的值来通过PWM控制四个电机以达到预期的动作。在飞行控制器中,陀螺仪以及加速度计是必须的,四轴的姿态是由这俩个传感器得到的数据来解算的,解算之后通过PID等算法来控制电机的转速。当然也可以加入电子罗盘以确定机头位置,加入GPS以确定四轴的地理位置。所以简单来讲四轴是一个有两个环的闭环控制系统,大环由遥控接收设备注入输入量,小环由姿态传感器注入输入量。
 
[[File:Microduino_QuadCopter_Introduction2.jpg||600px|center|thumb]]
 
 
 
对于一般的固定翼航模来讲,飞控(飞行控制器)可有可无,一般玩家不会在固定翼航模上安装飞控,但是四轴不一样,四轴飞行器是一种具有三组自由度,四个控制输入的欠驱动系统。它需要一个控制系统来进行控制。
 
当然,这个过程中也有一些技术细节需要设计,比如传感器读入的数据需要进行滤波、俯仰(Pitch)、侧俯仰(Roll)、偏航(Yaw)等动作的PID算法设计及调整。这是一个较复杂的综合系统,如果玩家想在理论方面从零开始学习则需要介绍许许多多,受篇幅所限,请参考相关资料,这里就不详细介绍了。
 
 
 
===优点===
 
Microduino 采用独有的 U 型 27 Pin 接口规范(UPin-27),尺寸小巧,长25.4mm X 宽27.94mm,如一枚1元硬币的大1小。所有模块都可以通过 UPIN-27 堆叠在一起,即插即用。
 
Microduino四轴飞行器最少只需要用到5种功能模块以及推荐的330轴距机架组件就能实现其功能,分别为为:Microduino-Core、Microduino-10DOF、Microduino-BT、Microduino-QuadCopter、Microduino-Joypad。而且你只需要将模块叠堆起来就可以用,非常简单。
 
 
 
==四轴飞行器机架搭建与调试==
 
===硬件组装===
 
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
|模块||数量||功能
+
|设备||数量||功能
 
|-
 
|-
|Microduino-Core||1||核心板
+
|USB数据线||1||连接
 
|-
 
|-
|Microduino-USBTTL ||1||下载程序
+
|机架 ||1||飞行
 
|-
 
|-
|Microduino-10DOF ||1||姿态稳定
+
|动力电池||1||供电
 
|-
 
|-
|Microduino-BT||1||无线通讯
+
|螺丝||8||固定
 
|-
 
|-
|Microduino-QuadCopter||1||四轴驱动
+
|螺丝刀||1||固定
 
|}
 
|}
 +
[[File:四轴物料1.jpg|center|600px]]
  
将飞控底板用四颗螺丝固定在机架底座上。安装时请自行设定一个向前的方向,飞控底板默认的前向是Upin口的开口方向。
+
*'''Step 1''':将四个螺旋翼按照如图所示方向插入到机架的对应机口上。
[[File:Microduino_QuadCopter_setup1.jpg||600px|center|thumb]]
+
[[File:Quostep1.jpg|center|600px]]
 +
*'''Step 2''':将电池放到机架底部的对应位置.
 +
[[File:Quostep2.jpg|center|600px]]
 +
*'''Step 3''':将模块底板放入机架顶部位置,再将旋翼的接线插入模块底板对应的接口位置。
 +
[[File:Quostep3.jpg|center|600px]]
 +
*'''Step 4''':将天线接在CoreRF上,之后与10DOF上下叠加在一起,加在底板上,Upin方向朝两个橙色桨安装(如图所示)。
 +
[[File:Quostep4.jpg|center|600px]]
 +
*'''Step 5''':将底板模块的接线头和电池的连线进行连接。
 +
[[File:Quostep5.jpg|center|600px]]
 +
*'''Step 6''':将CoreRF上的天线贴纸撕下来贴在机架背后任意位置,至此无人机组合完成。
 +
[[File:Quostep6.jpg|center|600px]]
 +
**两根先正负极不要反了,红色线连红色线,黑色线连黑色线。
 +
**电池线从电极臂下方连接,防止螺旋桨转动时与电池线碰撞。
  
将Microduino-QuadCopter用四颗螺丝固定在机架底座上。
+
===程序下载调试===
[[File:Microduino_QuadCopter_setup2.4.jpg||600px|center|thumb]]
+
*确认你搭建了Microduino的开发环境,否则参考:[[Microduino Getting started/zh]]
 +
*百度盘地址:
 +
**Joypad代码:http://pan.baidu.com/s/1o6zVh3O  提取码:z6k2
 +
**飞行器代码:http://pan.baidu.com/s/1mgrRN7q  提取码:un3x
  
将四个电机臂用螺丝安装在机架底座上,安装的时候玩家按照如下方法设定一个机头方向:一般的我们定义橙色的两个桨是前方的桨,黑色的两个桨是后方的桨,这样在飞远了以后仍然可以依靠桨的颜色来判别机头方向。安装时还要按照正确的顺序来,左前方和右下方的桨要安装A桨,右前方和左下方的桨要安装B桨。每个桨的上面都写有A、B来区分:
+
*Github 地址
[[File:Microduino_QuadCopter_setup2.1.jpg||600px|center|thumb]]
+
**Joypad代码:[https://github.com/wasdpkj/Joypad_RC/tree/master/Joypad_RC Joypad_RC]
 +
**飞行器代码: [https://github.com/Microduino/MultiWii_for_Microduino/tree/master/MultiWii_for_CoreRF]
 +
*将Microduino-CoreRF、Microduino-USBTTL叠堆到一起,并用MicroUSB数据线将Microduino-USBTTL和电脑连接起来。
 +
*打开Arduino IDE编程软件,点击 【文件】->【打开】,打开MultiWii_CoreRF中的【MultiWii_RF】程序,在菜单栏的Tools下的Board选择板卡Microduino-Core RF
 +
*点击“工具”,在板选项里面选择板卡(Microduino-CoreRF),在端口选项里面选择COM-XX,然后直接上传程序。完成这些配置后,点击左上角的√进行编译操作,在编译结束后,点击→完成对硬件的烧录。
 +
[[File:Microduino-CoreRF_Pitch_Roll.jpg|center|400px]]
  
请玩家注意。安装方法如下图所示:
+
Microduino-USBTTL下载模块在下载程序和串口调试校准四轴的时候才用到,其他时候可以不叠加。
[[File:Microduino_QuadCopter_setup2.2.jpg||600px|center|thumb]]
 
[[File:Microduino_QuadCopter_setup2.3.jpg||600px|center|thumb]]
 
  
将四个电机用四颗螺丝固定在机架底座上。
+
===校正四旋翼飞行器===
[[File:Microduino_QuadCopter_setup2.5.jpg||600px|center|thumb]]
+
====准备====
 +
*将Microduino-CoreRF、Microduino-10DOF、Microduino-USBTTL叠堆到一起并安装到飞控底板上。
 +
[[File:Microduino_QuadCopter_Software11.jpg|400px|center]]
  
在固定好四个机臂后将四个电机的导线接到飞控地板对应的焊盘上,其实底座和接口是匹配的,用户只需要插上去即可,但是最好还是确认下电机白色、红色的线接到底板标注有“+”的焊盘上,黑色、蓝色的线接到地板标注有“-”的焊盘上。如果接反,电机的转向就会反了,这样我们的小飞机就无法起飞。安装好的底板如下图所示。
+
*打开四悬翼飞行器文件夹选择MultiWiiConf \application.windows32 \MultiWiiConf.exe,该软件可以用来校准和调整飞行控制器的各种参数。
[[File:Microduino_QuadCopter_setup3.1.jpg||600px|center|thumb]]
+
'''注意:文件需使用JAVA开发环境打开,没有JAVA开发环境可以选择Microduino_Joypad_QuadCopter\java环境安装。'''
[[File:Microduino_QuadCopter_setup3.2.jpg||600px|center|thumb]]
 
 
 
这样就完成了机架的组装了。
 
 
 
===两个蓝牙建立连接===
 
我们是通过蓝牙建立无线遥控的,因此两个蓝牙连接就至关重要了。如何建立两个蓝牙连接,请参考:[[两个Microduino BT模块如何连接]]
 
 
 
===下载与调试===
 
先将Microduino-Core、Microduino-10DOF、Microduino-USBTTL叠堆到一起并安装到飞控底板上即可。如图3.4-1所示:
 
[[File:Microduino_QuadCopter_Software1.jpg||600px|center|thumb]]
 
 
 
将四轴放在水平桌面上,用USB数据线连接到电脑,板卡选择Microduino Core (Atmega328P@16M,5V),将修改好的程序进行编译,通过后下载到Microduino-Core中。
 
在MultiWiiConf\application.windows32里以管理员身份打开地面站软件MultiWiiConf.exe开始进行校准及参数调整。地面站软件的界面如下图。
 
[[File:Microduino_QuadCopter_MultiWiiConf1.jpg||600px|center|thumb]]
 
 
 
===电脑连接到四轴飞行器===
 
点击RECONNECT进行连接,连接成功后通过Microduino-USBTTL串口进行数据通信。连接成功通过START按钮来获取传感器数据曲线,如图所示:
 
[[File:Microduino_QuadCopter_MultiWiiConf2.jpg||600px|center|thumb]]
 
  
 
====传感器校准====
 
====传感器校准====
将四轴水平放置在桌面上,点击CALIB_ACC并在此后的大约五秒钟之内保持四轴平稳,飞控的加速度计会校准。待数据曲线稳定再点击CALIB_MAG并在此后的大约半分钟之内拿起飞机在各个轴向上反复绕动以校准电子罗盘,之后保持四轴平稳,待电子罗盘平衡后点击WRITE以将数值写入飞控。
+
*将四轴水平放置在桌面上,点击RECONNECT,带出现传感器数据曲线,点击CALIB_ACC并在此后的大约五秒钟之内保持四轴平稳,飞控的加速度计会校准。点击WRITE将数值写入飞控
 +
*点击CALIB_MAG并在此后拿起飞机以模块为中心反复绕动,校准电子罗盘后将四轴放置平稳地方。 待电子罗盘平衡后点击WRITE将数值写入飞控。
 +
[[File:RF_Pitch_Roll.jpg|center|600px]]
 +
 +
====设置PID参数====
 +
直接LOAD配置文件,点击LOAD,浏览到你下载你配置文件夹选择pkj.mwi导入,如图所示:
 +
[[File:Microduino_QuadCopter_MultiWiiConf4.jpg|600px|center]]
  
通过点击SELLECT SETTING,我们可以进行参数设置,并且看到模拟的姿态,如图所示:
+
====设置飞行模式====
[[File:Microduino_QuadCopter_MultiWiiConf4.jpg||600px|center|thumb]]
+
|-
 +
|在调整PID的右侧点击”SELECT SETTING”(下图右下)我们可以看到各种飞行模式以及对应辅助开关的一个二维表。一个开关或者多个开关的组合可以指定为一种飞行模式。我们建议玩家按照下图设置飞行模式。
 +
|-
 +
|设置方法为在方块处点击鼠标左键,灰色的方块就会变成白色,如下图点击3个白色方块处(本应为灰色)。
 +
|-
 +
|这样就指定了在这样的开关方位时处于对应的飞行模式。ANGLE是增稳模式,这有助于我们飞行。设置好点击WRITE以将数值写入飞控。
 +
 +
[[File:Microduino_QuadCopter_MultiWiiConf_ANGLE.jpg|600px|center]]
  
====设置PID参数====
+
设置完飞行模式后,关闭MultiWiiConf串口连接,可以取下Microduino-USBTTL模块。完成了整个飞行控制器的组装和调试。
PID三个标签下面对应的ROLL、PITCH、YAW值是我们要调整的。这些值通过合理的调整能使四轴非常平稳的飞行。改变这些值的方法是在其绿色的框内按下鼠标左键,向左移动鼠标数值就会减小,向右移动鼠标数值就会增大,达到想要的值以后松开鼠标左键。当然我们可以直接LOAD配置文件,点击LOAD,浏览到你下载你配置文件夹选择pkj.mwi导入,如图所示:
 
[[File:Microduino_QuadCopter_MultiWiiConf_PID.jpg||600px|center|thumb]]
 
  
====设置飞行模式====
+
====使用传感器值排除故障====
在调整PID的右侧我们可以看到各种飞行模式以及对应辅助开关的一个二维表。一个开关或者多个开关的组合可以指定为一种飞行模式。我们建议玩家按照下图设置飞行模式,设置方法为在方块处点击鼠标左键,灰色的方块就会变成白色,这样就指定了在这样的开关方位时处于对应的飞行模式。ANGLE是增稳模式,这有助于我们飞行。设置好点击WRITE以将数值写入飞控。完成后关闭MultiWiiConf串口连接,将USB线从Microduino-USBTTL模块上拔下同时取下Microduino-USBTTL模块。四轴控制器就做好了。
+
这种方法有助于排除飞行器在方向上出现的问题。它可以用来显示控制板安装的方向正确是否正确,或者有没有在“config.h”中选择正确的控制板类型。
[[File:Microduino_QuadCopter_MultiWiiConf_ANGLE.jpg||600px|center|thumb]]
+
*将机身倾斜到右侧(左侧向上抬起):
 +
**MAG_ROLL、ACC_ROLL和GYRO_ROLL数值升高
 +
**MAG_Z和ACC_Z数值降低
 +
*将机身往前倾(尾部向上抬起):
 +
**MAG_PITCH、ACC_PITCH和 GYRO_PITCH数值升高
 +
**MAG_Z和ACC_Z数值降低
 +
*将机身顺时针方向转动(偏航):
 +
**CYRO_YAW数值升高
 +
*机身保持水平:
 +
**MAG_Z和ACC_Z数值为正
  
 
==遥控器(Microduino-Joypad)搭建与调试==
 
==遥控器(Microduino-Joypad)搭建与调试==
遥控器我们采用Microduino-Joypad来实现,当然,你还需要其他模块,Microduino-TFT、Microduino-Core、Microduino-USBTTL、Microduino-BT(从机)。这样才能把遥控器搭建起来。
+
前面已经提及,遥控器由控制板(Microduino-Joypad)、微控制器(Microduino-CoreRF)、显示模块(Microduino-TFT)、以及下载调试模块(Microduino-USBTTL)组成。
 +
*Microduino模块
 
{|class="wikitable"
 
{|class="wikitable"
 
|-
 
|-
 
|模块||数量||功能
 
|模块||数量||功能
 
|-
 
|-
|Microduino-Core||1||核心板
+
|Microduino-CoreRF||1||核心板
 +
|-
 +
|Microduino-USBTTL||1||下载程序
 
|-
 
|-
|Microduino-USBTTL ||1||下载程序
+
|Microduino-Joypad||1||遥控
 
|-
 
|-
|Microduino-BT||1||无线通讯
+
|Microduino-TFT||1||显示屏
 
|-
 
|-
|Microduino-Joypad ||1||遥控
+
|2.4G天线||1||加长通讯信号
 
|-
 
|-
|Microduino-TFT||1||显示屏
+
|TFT连接线||1||连接
 
|}
 
|}
  
===硬件搭建===
+
*其他设备
*步骤一:将Microduino-TFT安装在Microduino-Joypad面板上;
+
{|class="wikitable"
[[File:Microduino_Joypad_TFT.jpg||600px|center|thumb]]
+
|-
 +
|模块||数量||功能
 +
|-
 +
|摇杆帽||1||方便摇杆
 +
|-
 +
|按键帽||1||方便按键
 +
|-
 +
|尼龙螺丝柱||1||固定
 +
|-
 +
|尼龙螺丝||1||固定
 +
|-
 +
|螺丝刀||1||固定
 +
|-
 +
|2.4G天线||1||加长通讯信号
 +
|-
 +
|TFT连接线||1||连接
 +
|}
 +
[[File:Joypad物料.jpg|center|600px]]
 +
===Joypad搭建与调试===
 +
====Joypad搭建====
 +
给Joypad的Microduino-CorRF下载程序。
 +
*打开MultiWii_CoreRF中的【Joypad_RC】程序,在编译结束后,选择好板卡和端口进行直接下载
  
*步骤二:将尼龙螺丝安装在Microduino-Joypad上,并且将底面板粘贴在Microduino-Joypad底部;
+
*'''Step 1''':将Microduino-TFT从Microduino-Joypad面板后面卡进Microduino-Joypad面板上,用尼龙螺丝固定,注意Microduino-TFT安装方向
[[File:Microduino_Joypad_nilong.jpg||600px|center|thumb]]
+
[[File:Joypadstep1.jpg|center|600px]]
 
+
'''注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。'''
*步骤三:将Microduino-TFT与Microduino-Joypad通过转接线连接起来;
+
[[File:Joypadstep1_1.jpg|center|800px]]
[[File:Microduino_Joypad_Connection.jpg||600px|center|thumb]]
+
*'''Step 2''':将传感器接线插在Microduino-TFT的接口上
 
+
[[File:Joypadstep2.jpg|center|600px]]
*步骤四:将锂电池连接到底板上,注意正负极别接反了,板子背面标注了正负极;
+
*'''Step 3''':首先分别将两个摇杆按键、电池、四个白色按键放入对应位置,之后将连接好天线的nRF模块和Core装到Joypad底板上
[[File:Microduino_Joypad_power.jpg||600px|center|thumb]]
+
[[File:Joypadstep3.jpg|center|600px]]
 
+
*'''Step 4''':将Microduino-TFT传感器接线的另一头接到底板上的相应位置,之后将长版螺丝帽放到四个角的相应位置
*步骤五:将底板和面板用尼龙螺丝固定好;
+
[[File:Joypadstep4.jpg|center|600px]]
[[File:Microduino_Joypad_face_bord.jpg||600px|center|thumb]]
+
*'''Step 5''':将Joypad的表壳和底板使用螺丝和螺丝帽固定好
 
+
[[File:Joypadstep5.jpg|center|600px]]
*步骤六:你可以打开电源开关,观察供电是否正常。
+
*'''Step 6''':组装完成后将天线上的贴纸撕下,将天线贴在底板背面的任意位置,至此Joypad组装完毕
[[File:Microduino_Joypad_switch.jpg||600px|center|thumb]]
+
[[File:Joypadstep6.jpg|center|600px]]
 
 
*步骤七:将Microduino-USBTTL、Microduino-Core叠加在Microduino-Joypad底座上。此时不需要叠加Microduino-BT模块,不然串口会冲突。
 
[[File:Microduino_Joypad_Module.jpg||600px|center|thumb]]
 
 
 
===软件调试===
 
*下载Microduino_Joypad_Ctrl程序:
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Joypad/Joypad_RC_2.3
 
 
 
同时你需要用到以下库:
 
 
 
'''_01_Microduino_TFT_GFX:'''
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Libraries/_01_Microduino_TFT_GFX
 
 
 
'''_01_Microduino_TFT_ST7735 :'''
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Libraries/_01_Microduino_TFT_ST7735
 
 
 
'''_01_Microduino_TFT:'''
 
https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Libraries/_01_Microduino_TFT
 
 
 
'''_08_Microduino_Shield_Joypad:'''https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Libraries/_08_Microduino_Shield_Joypad
 
 
 
*打开Microduino_Joypad_Ctrl程序,编译成功通过后选择好板卡下载。
 
 
 
*下载完毕后可取下Microduino-USBTTL模块,叠上Microduino-BT(主机)模块。最后进行整体调试。
 
[[File:Microduino_Joypad_BT.jpg||600px|center|thumb]]
 
 
 
==试飞==
 
===调试Microduino-Joypad===
 
*采用电池供电,拔出USB数据线,打开遥控器电源开关,按下复位按键(左边USB接口右边那个)进入系统,请在4S内按下【key1】按键(从左边数开始第一个),进入遥控器校准和控制选择模式。
 
[[File:Microduino_Joypad_config1.jpg||600px|center|thumb]]
 
  
 +
====Joypad搭建调试====
 +
*按键对应
 +
在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式
 +
[[File:Step1进入设置.jpg|600px|center|]]
 +
*进入设置模式
 +
按照图中的颜色,从左至右对应为Key1~Key4
 +
[[File:Step1按键对应.jpg|600px|center|]]
 +
注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入'''
 +
*摇杆校准
 +
按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认
 +
选择第一项Joystick Config进入摇杆设置模式
 +
继续选择Joystick Correct进入摇杆校准模式。
 +
进入之后会显示如图中第三张图所示的界面,初始状态为两个十字
 +
此时摇动左右摇杆至最上,最下,最左,最右四个极限状态
 +
(推荐操作方式:将摇杆摇动一圈)
 +
摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置
 +
校准之后按Key2确认并返回上一页面
 +
[[File:Step2摇杆校准.jpg|600px|center|]]
 
*选择控制模式
 
*选择控制模式
**我们可以通过【key3】按键来选择是控制四轴飞行器(Quad.)还是机器人(Robot),同时Robot模式可控制平衡车和BOXZ mini,黑色表示选中。因此我们需要选择到Quad.模式。
+
按Key1回到主界面,选择第二项Protocol Config进入模式选择
[[File:Microduino_Joypad_config2-quad.jpg||600px|center|thumb]]
+
选择第一项Mode,之后选择Quodro即四轴飞行器控制模式,按下Key2确认并返回
 
+
[[File:Step3设置四轴模式.jpg|600px|center|]]
**我们可以通过【key4】按键来选择是否是体感控制模式,当然选择体感模式,你必须叠加[[Microduino-10DOF/zh]]模块,选择“MPU ON”。如果是摇杆模式,选择“MPU OFF”。
+
*设置通信信道
[[File:Microduino_Joypad_config3-quad.jpg||600px|center|thumb]]
+
返回二级菜单,选择Quodrotor Channel按下Key2确认
 
+
选择12,它是与MultiWii.h中"#define RF_Channel 12"中的设置相对应的
*摇杆校准
+
[[File:Step4通信通道设置.jpg|600px|center|]]
**360度最大幅度旋转两个摇杆,看TFT屏上数据没变化即可按下【key2】按键,进入玩耍。
+
至此,飞行控制器和遥控器已经组装完成,接下来便是将两者结合起来,开始试飞,除了练习使用操纵杆,还要观察飞行器实际的飞行状态,以便进一步优化PID等参数。
[[File:Microduino_Joypad_ config4-quad0.jpg||600px|center|thumb]]
 
[[File:Microduino_Joypad_ config4-quad.jpg||600px|center|thumb]]
 
 
 
*将左上边控制开关打开(拨到上面),才能进行控制,你可以摇动摇杆,观察屏幕的变化。
 
[[File:Microduino_Joypad_ config5-quad.jpg||600px|center|thumb]]
 
*右边开关是幅度调节模式,开关拨到上面可以最大幅度控制Robot,否则只能小幅度控制了,这样有助于稳定控制。
 
 
 
*请把将左上边开关拨到下面(关闭油门),再把油门摇杆拨到最下方。
 
 
 
===调试四轴机架===
 
*确定Microduino-QuadCopter上叠加Microduino-BT(从机)模块,用来和遥控器通讯。
 
 
 
*把电池装到四轴机架底下,再和Microduino-QuadCopter电源线连接,注意正负,红线为正,黑线为负。
 
[[File:Microduino_QuadCopter_Remote2.jpg||600px|center|thumb]]
 
 
 
*打开Microduino-QuadCopter上的开关,放置在平稳的地方,按下复位按键,系统将对传感器进行校准,未完成时板子上红色led灯闪烁,校准完成后将熄灭,此时等待解锁。
 
[[File:Microduino_QuadCopter_Remote3.jpg||600px|center|thumb]]
 
  
 
===整体测试===
 
===整体测试===
*观察Microduino-QuadCopter上的Microduino-BT(从机)模块是否和Microduino-Joypad上的Microduino-BT(主机)连接,蓝牙模块连接指示灯不再闪烁。
+
*'''Step 1''':打开Microduino-QuadCopter上的开关,放置在平稳的地方,按下复位按键,系统将对传感器进行校准,未完成时板子上的led灯闪烁,校准完成后将熄灭,此时等待解锁。如果led灯一直闪说明四轴前期未校准好,请重新校准。
[[File:Microduino_QuadCopter_Remote4.jpg||600px|center|thumb]]
+
*对四轴进行解锁
 +
**请把Joypad遥控器左上边开关拨到下面(关闭油门),防止解锁后不小心开了油门使四轴飞行器迅速起飞发生意外。右边的开关拨到上面(幅值达到最大才能解锁)。
 +
**将油门摇杆拉到最低后移到右边等待2S左右,蓝色 led长亮说明解锁成功,这样就可以准备飞了,否则将油门摇杆置于中间,重新操作。如果尝试多次不能解锁,对四轴飞行器核心复位,系统将对传感器进行校准,重新尝试解锁。
 +
[[File:Microduino12_Joypad1_ config5-quad.jpg|400px|center]]
 +
**再把油门摇杆拨到最下方,左上边开关往上推(打开油门开关),初次使用建议将精度调整开关调成拨到下面,使飞行更稳定。
 +
[[File:Microdu1ino12_Joypad1_ config5-quad.jpg|400px|center]]
  
*对四轴进行解锁,将左上边开关拨到下面(关闭油门),防止解锁后不小心开了油门使四轴飞行器起飞发生意外。将油门滑竿置于最右下方,可看到机架底板上led灯开始闪烁,准备链接,等待2S左右,恢复油门滑竿,再置于最又下方,依次循环,直到led长亮说明解锁成功,这样就可以准备飞了。如果尝试多次不能解锁,对四轴飞行器核心复位,系统将对传感器进行校准,重新尝试解锁。
+
*你只要轻轻推动油门即可看到四个螺旋浆开始飞速转起来了。继续加大油门,确保它飞起来了。可以稍微高一点,不要紧贴地面,然后通过方位摇杆控制平衡了。
[[File:Microduino_QuadCopter_Remote5.jpg||600px|center|thumb]]
+
[[File:Microduino_QuadCopter_Remote6.jpg|600px|center]]
 +
*将左上边是油门控制开关,打开(拨到上面),才能进行控制,你可以摇动摇杆,观察屏幕的变化。
 +
*右边开关是精度调整开关,开关拨到上面可以最大幅度控制,否则只能小幅度控制了,小幅度有助于稳定控制。
 +
*左边摇杆在垂直方向上控制油门,越往上油门越大,动力越大飞的越高,在水平方向上控制四轴在水平方向旋转。
 +
*右边摇杆在垂直方向上控制前后方向移动,往上向前,往下向后,在水平方向上控制左右方向移动。
  
*再把油门摇杆拨到最下方,左上边开关往上推(打开油门开关),这时参考摇杆控制示意图,你只要轻轻推动油门即可看到四个螺旋浆开始飞速转起来了。继续加大油门,确保它飞起来了。可以稍微高一点,不要紧贴地面,然后通过方位摇杆控制平衡了。
+
===手机蓝牙控制===
[[File:Microduino_QuadCopter_Remote6.jpg||600px|center|thumb]]
+
*准备
 +
**确认BT的串口,四轴使用串口Serial0(D0,D1),波特率115200。
 +
:[[file:Microduino-BT-1Big2.jpg|800px|center|Microduino-BT]]
 +
<br style="clear: left"/>
 +
**下载APP
 +
[[File:Qua_app.gif|center]]
 +
*调试
 +
将BT模块叠加到校准好的四轴上(四轴校准参考上文)。然后将四轴放置在平稳的地方,等待蓝牙连接。
  
*当发现在猛推油门的情况下飞机也只会贴着地飞行而无法一飞冲天的时候就表明电池电量已耗尽,请给电池充电以避免事故发生。我们的飞控底板集成了充电管理,只需要将usb线缆的一头插在充电器上,另一头插到飞控底板上的microusb接口即可对电池充电。
+
打开手机蓝牙,打开四轴控制App,可以发现Microduino的蓝牙设备。
[[file:Microduino-Joypad-Pinout4Big.jpg|800px|thumb|center]]
+
[[File:app_microduino.png|center|600px]]
 +
点击Microduino,进行蓝牙连接,进入控制界面,连接成功之后,屏幕出现“Reday”提示即可开始对四轴解锁。
 +
[[File:Qua_app-ready.png|center|600px]]
 +
电机Locked对四轴解锁,解锁之后四轴底板上的蓝色指示灯常亮,解锁成功,如果屏幕出现“Unlocked”,请重新尝试解锁。
 +
解锁后,中间摇杆往上推就可以加油门,四轴就可以飞起来,前后左右则通过重力感应来控制。
 +
[[File:Qua_app-ok.png|center|600px]]
  
*当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否者四轴将失控,避免发生意外。
+
==程序说明==
  
 
==注意问题==
 
==注意问题==
*蓝牙连接是第一步,也是关键的一步,请确定两个蓝牙能够连接。
+
尽管在前面的内容中列出了不少要注意的一些问题,这里再总结一下。
*下载程序时候请不要叠加BT模块,这样会引起串口冲突,容易出现问题。
+
*关于安装
*注意四轴飞行器四个螺旋桨的安装,别错了,否者飞不起来。
+
**四旋翼飞行器的四个螺旋桨是有顺序的,如果安装出错,很有可能导致飞行器飞不起来。
*锂电池正负极别接错了,否则会烧坏电路。
+
**锂电池正负极,红线为正极,黑线为负极,一旦接错很容易烧坏电路,尤其在给Microduino-Joypad供电时,因为没有防插错设计,很容易插反,这要格外注意。
*飞行器请先对遥控器(Microduino-Joypad)进行校准,否者容易导致飞不稳。
+
*关于参数调整
*遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。
+
**参考第四小节所介绍的内容来调整飞行器PID参数和飞行模式。建议在推荐配置的基础上进行修改。如果要手动修改PID参数,建议每次只修改一个参数,否则不太容易确定调整的哪些参数发生作用。
*当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否者四轴将失控,避免发生意外。
+
*关于调试
 
+
**必须对遥控器(Microduino-Joypad)和飞行器进行校准,否则容易导致飞行器飞行不稳。
 +
*关于飞行控制
 +
**务必选择一个空旷的地方就行试飞,比如学校的操场上,公园比较大的草坪。
 +
**遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。
 +
*当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否则会使四旋翼飞行器失控,容易发生意外。
 +
若出现其他问题,欢迎在讨论部分提出
 
|}
 
|}

2016年9月6日 (二) 07:50的最新版本

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

偏航运动

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

偏航运动就是在水平方向上的左右转动,即绕着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 1 下载程序
Microduino-10DOF 1 姿态稳定
Microduino-QuadCopter 1 四轴驱动底板
2.4G天线 1 加长无线传输距离
  • 其他设备
设备 数量 功能
USB数据线 1 连接
机架 1 飞行
动力电池 1 供电
螺丝 8 固定
螺丝刀 1 固定
四轴物料1.jpg
  • Step 1:将四个螺旋翼按照如图所示方向插入到机架的对应机口上。
Quostep1.jpg
  • Step 2:将电池放到机架底部的对应位置.
Quostep2.jpg
  • Step 3:将模块底板放入机架顶部位置,再将旋翼的接线插入模块底板对应的接口位置。
Quostep3.jpg
  • Step 4:将天线接在CoreRF上,之后与10DOF上下叠加在一起,加在底板上,Upin方向朝两个橙色桨安装(如图所示)。
Quostep4.jpg
  • Step 5:将底板模块的接线头和电池的连线进行连接。
Quostep5.jpg
  • Step 6:将CoreRF上的天线贴纸撕下来贴在机架背后任意位置,至此无人机组合完成。
Quostep6.jpg
    • 两根先正负极不要反了,红色线连红色线,黑色线连黑色线。
    • 电池线从电极臂下方连接,防止螺旋桨转动时与电池线碰撞。

程序下载调试

  • Github 地址
  • 将Microduino-CoreRF、Microduino-USBTTL叠堆到一起,并用MicroUSB数据线将Microduino-USBTTL和电脑连接起来。
  • 打开Arduino IDE编程软件,点击 【文件】->【打开】,打开MultiWii_CoreRF中的【MultiWii_RF】程序,在菜单栏的Tools下的Board选择板卡Microduino-Core RF
  • 点击“工具”,在板选项里面选择板卡(Microduino-CoreRF),在端口选项里面选择COM-XX,然后直接上传程序。完成这些配置后,点击左上角的√进行编译操作,在编译结束后,点击→完成对硬件的烧录。

Microduino-USBTTL下载模块在下载程序和串口调试校准四轴的时候才用到,其他时候可以不叠加。

校正四旋翼飞行器

准备

  • 将Microduino-CoreRF、Microduino-10DOF、Microduino-USBTTL叠堆到一起并安装到飞控底板上。
  • 打开四悬翼飞行器文件夹选择MultiWiiConf \application.windows32 \MultiWiiConf.exe,该软件可以用来校准和调整飞行控制器的各种参数。

注意:文件需使用JAVA开发环境打开,没有JAVA开发环境可以选择Microduino_Joypad_QuadCopter\java环境安装。

传感器校准

  • 将四轴水平放置在桌面上,点击RECONNECT,带出现传感器数据曲线,点击CALIB_ACC并在此后的大约五秒钟之内保持四轴平稳,飞控的加速度计会校准。点击WRITE将数值写入飞控
  • 点击CALIB_MAG并在此后拿起飞机以模块为中心反复绕动,校准电子罗盘后将四轴放置平稳地方。 待电子罗盘平衡后点击WRITE将数值写入飞控。

设置PID参数

直接LOAD配置文件,点击LOAD,浏览到你下载你配置文件夹选择pkj.mwi导入,如图所示:

Microduino QuadCopter MultiWiiConf4.jpg

设置飞行模式

在调整PID的右侧点击”SELECT SETTING”(下图右下)我们可以看到各种飞行模式以及对应辅助开关的一个二维表。一个开关或者多个开关的组合可以指定为一种飞行模式。我们建议玩家按照下图设置飞行模式。
设置方法为在方块处点击鼠标左键,灰色的方块就会变成白色,如下图点击3个白色方块处(本应为灰色)。
这样就指定了在这样的开关方位时处于对应的飞行模式。ANGLE是增稳模式,这有助于我们飞行。设置好点击WRITE以将数值写入飞控。

设置完飞行模式后,关闭MultiWiiConf串口连接,可以取下Microduino-USBTTL模块。完成了整个飞行控制器的组装和调试。

使用传感器值排除故障

这种方法有助于排除飞行器在方向上出现的问题。它可以用来显示控制板安装的方向正确是否正确,或者有没有在“config.h”中选择正确的控制板类型。

  • 将机身倾斜到右侧(左侧向上抬起):
    • MAG_ROLL、ACC_ROLL和GYRO_ROLL数值升高
    • MAG_Z和ACC_Z数值降低
  • 将机身往前倾(尾部向上抬起):
    • MAG_PITCH、ACC_PITCH和 GYRO_PITCH数值升高
    • MAG_Z和ACC_Z数值降低
  • 将机身顺时针方向转动(偏航):
    • CYRO_YAW数值升高
  • 机身保持水平:
    • MAG_Z和ACC_Z数值为正

遥控器(Microduino-Joypad)搭建与调试

前面已经提及,遥控器由控制板(Microduino-Joypad)、微控制器(Microduino-CoreRF)、显示模块(Microduino-TFT)、以及下载调试模块(Microduino-USBTTL)组成。

  • Microduino模块
模块 数量 功能
Microduino-CoreRF 1 核心板
Microduino-USBTTL 1 下载程序
Microduino-Joypad 1 遥控
Microduino-TFT 1 显示屏
2.4G天线 1 加长通讯信号
TFT连接线 1 连接
  • 其他设备
模块 数量 功能
摇杆帽 1 方便摇杆
按键帽 1 方便按键
尼龙螺丝柱 1 固定
尼龙螺丝 1 固定
螺丝刀 1 固定
2.4G天线 1 加长通讯信号
TFT连接线 1 连接

Joypad搭建与调试

Joypad搭建

给Joypad的Microduino-CorRF下载程序。

  • 打开MultiWii_CoreRF中的【Joypad_RC】程序,在编译结束后,选择好板卡和端口进行直接下载
  • Step 1:将Microduino-TFT从Microduino-Joypad面板后面卡进Microduino-Joypad面板上,用尼龙螺丝固定,注意Microduino-TFT安装方向
Joypadstep1.jpg

注意:接不同的电池需要拨动中间的开关,在图中已有标志。需要先拨开关再接入电池,否则会影响使用。

Joypadstep1 1.jpg
  • Step 2:将传感器接线插在Microduino-TFT的接口上
Joypadstep2.jpg
  • Step 3:首先分别将两个摇杆按键、电池、四个白色按键放入对应位置,之后将连接好天线的nRF模块和Core装到Joypad底板上
Joypadstep3.jpg
  • Step 4:将Microduino-TFT传感器接线的另一头接到底板上的相应位置,之后将长版螺丝帽放到四个角的相应位置
Joypadstep4.jpg
  • Step 5:将Joypad的表壳和底板使用螺丝和螺丝帽固定好
Joypadstep5.jpg
  • Step 6:组装完成后将天线上的贴纸撕下,将天线贴在底板背面的任意位置,至此Joypad组装完毕
Joypadstep6.jpg

Joypad搭建调试

  • 按键对应

在打开Joypad之后的4秒左右时间之内按下Key1(下方最左侧的按键),会进入设置(Config)模式

Step1进入设置.jpg
  • 进入设置模式

按照图中的颜色,从左至右对应为Key1~Key4

Step1按键对应.jpg

注意:必须在进入操作界面前进入(4S左右时间)。若未进入则重启进入

  • 摇杆校准

按动Key3和Key4使光标上下移动,Key1为返回,Key2为确认 选择第一项Joystick Config进入摇杆设置模式 继续选择Joystick Correct进入摇杆校准模式。 进入之后会显示如图中第三张图所示的界面,初始状态为两个十字 此时摇动左右摇杆至最上,最下,最左,最右四个极限状态 (推荐操作方式:将摇杆摇动一圈) 摇动之后会看到十字的四个方向出现圆圈,圆圈扩大到最大状态证明已经是摇杆的极限位置 校准之后按Key2确认并返回上一页面

Step2摇杆校准.jpg
  • 选择控制模式

按Key1回到主界面,选择第二项Protocol Config进入模式选择 选择第一项Mode,之后选择Quodro即四轴飞行器控制模式,按下Key2确认并返回

  • 设置通信信道

返回二级菜单,选择Quodrotor Channel按下Key2确认 选择12,它是与MultiWii.h中"#define RF_Channel 12"中的设置相对应的

至此,飞行控制器和遥控器已经组装完成,接下来便是将两者结合起来,开始试飞,除了练习使用操纵杆,还要观察飞行器实际的飞行状态,以便进一步优化PID等参数。

整体测试

  • Step 1:打开Microduino-QuadCopter上的开关,放置在平稳的地方,按下复位按键,系统将对传感器进行校准,未完成时板子上的led灯闪烁,校准完成后将熄灭,此时等待解锁。如果led灯一直闪说明四轴前期未校准好,请重新校准。
  • 对四轴进行解锁
    • 请把Joypad遥控器左上边开关拨到下面(关闭油门),防止解锁后不小心开了油门使四轴飞行器迅速起飞发生意外。右边的开关拨到上面(幅值达到最大才能解锁)。
    • 将油门摇杆拉到最低后移到右边等待2S左右,蓝色 led长亮说明解锁成功,这样就可以准备飞了,否则将油门摇杆置于中间,重新操作。如果尝试多次不能解锁,对四轴飞行器核心复位,系统将对传感器进行校准,重新尝试解锁。
    • 再把油门摇杆拨到最下方,左上边开关往上推(打开油门开关),初次使用建议将精度调整开关调成拨到下面,使飞行更稳定。
  • 你只要轻轻推动油门即可看到四个螺旋浆开始飞速转起来了。继续加大油门,确保它飞起来了。可以稍微高一点,不要紧贴地面,然后通过方位摇杆控制平衡了。
Microduino QuadCopter Remote6.jpg
  • 将左上边是油门控制开关,打开(拨到上面),才能进行控制,你可以摇动摇杆,观察屏幕的变化。
  • 右边开关是精度调整开关,开关拨到上面可以最大幅度控制,否则只能小幅度控制了,小幅度有助于稳定控制。
  • 左边摇杆在垂直方向上控制油门,越往上油门越大,动力越大飞的越高,在水平方向上控制四轴在水平方向旋转。
  • 右边摇杆在垂直方向上控制前后方向移动,往上向前,往下向后,在水平方向上控制左右方向移动。

手机蓝牙控制

  • 准备
    • 确认BT的串口,四轴使用串口Serial0(D0,D1),波特率115200。
Microduino-BT


    • 下载APP
  • 调试

将BT模块叠加到校准好的四轴上(四轴校准参考上文)。然后将四轴放置在平稳的地方,等待蓝牙连接。

打开手机蓝牙,打开四轴控制App,可以发现Microduino的蓝牙设备。

点击Microduino,进行蓝牙连接,进入控制界面,连接成功之后,屏幕出现“Reday”提示即可开始对四轴解锁。

电机Locked对四轴解锁,解锁之后四轴底板上的蓝色指示灯常亮,解锁成功,如果屏幕出现“Unlocked”,请重新尝试解锁。 解锁后,中间摇杆往上推就可以加油门,四轴就可以飞起来,前后左右则通过重力感应来控制。

程序说明

注意问题

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

  • 关于安装
    • 四旋翼飞行器的四个螺旋桨是有顺序的,如果安装出错,很有可能导致飞行器飞不起来。
    • 锂电池正负极,红线为正极,黑线为负极,一旦接错很容易烧坏电路,尤其在给Microduino-Joypad供电时,因为没有防插错设计,很容易插反,这要格外注意。
  • 关于参数调整
    • 参考第四小节所介绍的内容来调整飞行器PID参数和飞行模式。建议在推荐配置的基础上进行修改。如果要手动修改PID参数,建议每次只修改一个参数,否则不太容易确定调整的哪些参数发生作用。
  • 关于调试
    • 必须对遥控器(Microduino-Joypad)和飞行器进行校准,否则容易导致飞行器飞行不稳。
  • 关于飞行控制
    • 务必选择一个空旷的地方就行试飞,比如学校的操场上,公园比较大的草坪。
    • 遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。
  • 当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否则会使四旋翼飞行器失控,容易发生意外。

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