Microduino 四轴飞行器教程
Language | English |
---|
目录概述四旋翼飞行器,又称为四旋翼直升机,顾名思义,是一种具备4个螺旋桨的飞行器,与直升机类似,可以完成空中悬停、飞行的动作。传统直升机会用一个主桨来产生推力,用一个尾桨来抵消主桨产生的扭矩(即锁尾),而四旋翼飞行器对角螺旋桨采用正反桨设计,从而不需要额外的机构进行“锁尾”。4个螺旋桨呈十字形对称分布,1和2 号桨逆时针转动,而3和4号桨顺时针转动,但4个螺旋桨产生的推力相同时,两组正反桨对机身所施加的反扭矩两两抵消,使得绕垂直方向旋转的反扭矩平衡,从而确保了航向的稳定。 | ||||||||||||||||||||||||||||||||||||
根据飞行器自定义的首尾方向,可以将四旋翼飞行器分为十字模式和X字模式两种。十字模式意味着首尾的方向会指向某个螺旋桨,而X字模式则是指首尾方向指向两个螺旋桨中间。 | ||||||||||||||||||||||||||||||||||||
大多数飞行器采用的是X字模式。X字模式相对于十字模式来说,控制起来更加困难,但动作的灵活性会更高。
原理系统架构如图是四旋翼飞行器的结构简图。飞行器包括主要包括遥控器(航模遥控)、飞行控制器以及四个电机组成。而飞行控制器又包括微控制器、遥控信号接收模块、传感器模块(陀螺仪、加速度计、电子罗盘和GPS定位模块)和电机驱动模块。 飞行原理垂直运动即飞行器垂直上升或下降。正如前文所说的,四个电机保持在同一转速,就能够在水平方向上保持稳定。如图2.2.1所示,如果四个电机增加到在同一个转速,产生的推力足以克服飞行器自身的重力,便能够上升;反之,如果四个电机同时降低到同一个速度,产生的推力无法克服飞行器的重力,便可以下降。如果外界没有其他的扰动,四个电机产生的推力恰好克服飞行器的重力,这样,飞行器就可以悬停在空中。 | ||||||||||||||||||||||||||||||||||||
只要让四个电机保持在相同转速,便能够让飞行器平稳地垂直运动,相对来说比较简单。
前后运动和侧向运动电机1为飞行器头部,而电机2为飞行器尾部。 | ||||||||||||||||||||||||||||||||||||
为了在水平上获得一个推力,增加电机2的转速,尾部的推力增加;降低电机1的转速,头部的推力减小;整个机身会向前倾,合成了一个水平向前的推力,机身便能够向前运动。同时保持电机3和4的转速,反扭矩平衡,才能够保证机身平稳地向前。向后运动正好与向前运动相反。 | ||||||||||||||||||||||||||||||||||||
因为四旋翼飞行器是中心对称的,前后运动和侧向运动的控制是完全类似的,两组正反电机的控制方式对调即可。例如,保持电机1和2的转速不变,增加电机4的转速而降低电机3的转速,便能够产生向左的水平力,于是机身向左运动。
偏航运动前面介绍的三种运动都是空间三个轴上的平移,接下来要介绍的三种运动是绕着三轴的旋转。 | ||||||||||||||||||||||||||||||||||||
偏航运动就是在水平方向上的左右转动,即绕着Z轴的旋转。旋翼在转动的过程中,由于空气阻力的作用,会形成与转动方向相反的反扭矩。偏航运动就是利用反扭矩实现的。当飞行器悬停时,4个电机的转速相同,两组正反扭矩相互抵消,维持平衡。当四个电机转速不完全相同时,不平衡的反扭力会引起四旋翼飞行器水平转动,从而实现偏航运动。如图所示,提升电机1和2的转速,同时降低电机3和4的转速,1和2 电机产生的顺时针反扭矩大于3和4电机产生的逆时针反扭矩,而且总的向上推力没有发生变化,于是机身在水平面上顺时针转动,又不会出现垂直位移。逆时针转动正好相反。
俯仰运动和滚转运动俯仰运动是指在Y轴上的旋转,而滚转运动则是在X轴上旋转。 | ||||||||||||||||||||||||||||||||||||
如图所示,提升电机1的转速,降低电机2的转速,两者转速的变化量应该一样,同时保持电机3和4转速不变。机身头部的推力大于尾部的推力,不平衡的力矩使得机身仰起。同样的,俯身运动则是降低电机1的转速,而提升电机2的转速,产生一个向前倾的力矩。 | ||||||||||||||||||||||||||||||||||||
同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。
控制流程遥控器发出控制命令,比如起飞、向左飞等等,控制信号通过无线接收
| ||||||||||||||||||||||||||||||||||||
因为四旋翼飞行器的四个电机组合控制才能实现6个方向的运动,是一个欠驱动系统,必须要有一个飞行控制器来控制整个系统。 | ||||||||||||||||||||||||||||||||||||
在飞行控制器中,传感器,如陀螺仪和加速度计,是必须的。微控制器计算这两个传感器所传来的数据,获得当前飞行器的姿态,然后通过PID等算法调整电机的转速,以保持飞行器的稳定。当然还可以加入电子罗盘掌握机身的方向,加入GPS模块确定飞行器的地理位置。所以简单来说,四旋翼飞行器是一个具备两个闭环控制的系统,大环由遥控接收设备注入输入量,小环由姿态传感器注入输入量。 | ||||||||||||||||||||||||||||||||||||
当然,这个过程中也有一些技术细节需要设计,比如传感器读入的数据需要进行滤波、俯仰(Pitch)、滚转(Roll)、偏航(Yaw)等动作的PID算法设计及调整。这是一个较复杂的综合系统,如果玩家想在理论方面从零开始学习则需要介绍许许多多,受篇幅所限,请参考相关资料,这里就不详细介绍了。 | ||||||||||||||||||||||||||||||||||||
总的来说,所使用四旋翼飞行套件包括飞行器和遥控器两大部分,两者通过CoreRF传输控制指令。 | ||||||||||||||||||||||||||||||||||||
飞行器主要由带4个电机的机架、Microduino-CoreRF和Microduino-10DOF等模块组成。其中Microduino-10DOF集成了四种传感器,分别是三轴加速度+三轴陀螺仪传感器(MPU6050)、磁场强度传感器(HMC5883L)、数字气压传感器(BMP180)。通过I2C进行通信。 | ||||||||||||||||||||||||||||||||||||
MPU6050是其中最主要的姿态传感器,内部集成了三轴加速度计和三轴陀螺仪,不仅消除了组合加速度计和陀螺仪时容易出现的对准误差,而且内置了可编程的低通滤波器,即使在飞行器经受较大振动时,控制程序通过配置适当频率的低通滤波器,可以滤掉高频振动。这种处理方式可以减小四旋翼飞行器自身的振动对陀螺仪数据产生的影响。
四轴飞行器机架搭建与调试四旋翼飞行器材料清单
程序下载调试
Microduino-USBTTL下载模块在下载程序和串口调试校准四轴的时候才用到,其他时候可以不叠加。 校正四旋翼飞行器
注意:文件需使用JAVA开发环境打开,没有JAVA开发环境可以选择Microduino_Joypad_QuadCopter\java环境安装。
设置PID参数直接LOAD配置文件,点击LOAD,浏览到你下载你配置文件夹选择pkj.mwi导入,如图所示: 设置飞行模式 | ||||||||||||||||||||||||||||||||||||
在调整PID的右侧点击”SELECT SETTING”(下图右下)我们可以看到各种飞行模式以及对应辅助开关的一个二维表。一个开关或者多个开关的组合可以指定为一种飞行模式。我们建议玩家按照下图设置飞行模式。 | ||||||||||||||||||||||||||||||||||||
设置方法为在方块处点击鼠标左键,灰色的方块就会变成白色,如下图点击3个白色方块处(本应为灰色,)。 | ||||||||||||||||||||||||||||||||||||
这样就指定了在这样的开关方位时处于对应的飞行模式。ANGLE是增稳模式,这有助于我们飞行。设置好点击WRITE以将数值写入飞控。
图 4.8 设置飞行模式 图 4.9堆叠的飞行控制器 设置完飞行模式后,关闭MultiWiiConf串口连接,将USB线从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数值为正 飞行模式在MultiWiiCong GUI中,通过发送器的辅助开关可以选择多种飞行模式。如果你的发送器有5个或以上的通道,你可以在软件上使用第5个通道(辅助开关)来改变飞行模式。每种模式定义如下。
遥控器(Microduino-Joypad)搭建与调试前面已经提及,遥控器由控制板(Microduino-Joypad)、微控制器(Microduino-CoreRF)、显示模块(Microduino-TFT)、以及下载调试模块(Microduino-USBTTL)组成。
硬件搭建
遥控器程序调试
将Microduino-CoreRF、Microduino-USBTTL叠堆到一起,打开【Joypad_RC】程序,选择好板卡Microduino-Core RF和对应的Serial Port端口,点击左上角的√进行编译操作,在编译结束后,点击→完成对硬件的烧录。 程序下载完毕,将Microduino-CoreRF叠堆到Joypad底板上。 遥控器操作及说明 图 7.1 遥控器按钮功能说明 将左上边是油门控制开关,打开(拨到上面),才能进行控制,你可以摇动摇杆,观察屏幕的变化。 右边开关是精度调整开关,开关拨到上面可以最大幅度控制,否则只能小幅度控制了,小幅度有助于稳定控制。 左边摇杆在垂直方向上控制油门,越往上油门越大,动力越大飞的越高,在水平方向上控制四轴在水平方向旋转。 右边摇杆在垂直方向上控制前后方向移动,往上向前,往下向后,在水平方向上控制左右方向移动。 开机配置调试Microduino-Joypad
打开遥控器电源开关,按下复位按键(左边USB接口右边那个)进入系统,请在4S内按下【key1】按键,进入遥控器校准和控制选择模式。 图 7.2 开机配置 摇杆校准,将左边摇杆拨动到中间,显示屏上第二个数据在0左右即可。 图 7.3 摇杆校准 选择控制模式,我们可以通过【key3】按键来选择是控制四轴飞行器(Quad.)还是机器人(Robot),同时Robot模式可控制平衡车和BOXZ mini,黑色表示选中。因此我们需要选择到Quad.模式。 图 7.4 选择控制模式 我们可以通过【key4】按键来选择是否是体感控制模式,当然选择体感模式,你必须叠加Microduino-10DOF模块,选择“MPU ON”。如果是摇杆控制模式,选择“MPU OFF”。 图 7.5 选择控制模式 至此,飞行控制器和遥控器已经组装完成,接下来便是将两者结合起来,开始试飞,除了练习使用操纵杆,还要观察飞行器实际的飞行状态,以便进一步优化PID等参数。 整体测试把电池装到四轴机架底下,再和Microduino-QuadCopter电源线连接,注意正负,红线为正,黑线为负。 图 8.1 安装电池 打开Microduino-QuadCopter上的开关,放置在平稳的地方,按下复位按键,系统将对传感器进行校准,未完成时板子上的led灯闪烁,校准完成后将熄灭,此时等待解锁。
请把Joypad遥控器左上边开关拨到下面(关闭油门),防止解锁后不小心开了油门使四轴飞行器迅速起飞发生意外。 右边的开关拨到上面(幅值达到最大才能解锁)。 将油门摇杆拉到最低后移到右边等待2S左右, led长亮说明解锁成功,这样就可以准备飞了,否则将油门摇杆置于中间,重新操作。如果尝试多次不能解锁,对四轴飞行器核心复位,系统将对传感器进行校准,重新尝试解锁。 图 8.3 解锁操作 再把油门摇杆拨到最下方,左上边开关往上推(打开油门开关),初次使用建议将精度调整开关调成拨到下面,使飞行更稳定。 图 8.4 起飞配置 这时参考图 8.5,你只要轻轻推动油门即可看到四个螺旋浆开始飞速转起来了。继续加大油门,确保它飞起来了。可以稍微高一点,不要紧贴地面,然后通过方位摇杆控制平衡了。 图 8.5 遥控器控制说明 注意问题尽管在前面的内容中列出了不少要注意的一些问题,这里再总结一下。
四旋翼飞行器的四个螺旋桨是有顺序的,如果安装出错,很有可能导致飞行器飞不起来。 锂电池正负极,红线为正极,黑线为负极,一旦接错很容易烧坏电路,尤其在给Microduino-Joypad供电时,因为没有防插错设计,很容易插反,这要格外注意。
参考第四小节所介绍的内容来调整飞行器PID参数和飞行模式。建议在推荐配置的基础上进行修改。如果要手动修改PID参数,建议每次只修改一个参数,否则不太容易确定调整的哪些参数发生作用。
蓝牙连接是第一步,也是关键的一步,请确定两个蓝牙能够连接。 Microduino-USBTTL与蓝牙模块用相同的引脚作为串口,所以在使用Microduino-USBTTL下载程序时,请不要叠加使用蓝牙模块,会引起串口冲突,容易出现问题。 必须对遥控器(Microduino-Joypad)和飞行器进行校准,否则容易导致飞行器飞行不稳。
务必选择一个空旷的地方就行试飞,比如学校的操场上,公园比较大的草坪。 遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。 当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否则会使四旋翼飞行器失控,容易发生意外。
当飞行器,或者遥控板上的电源指示灯突然熄灭,说明电池已经耗尽,要尽快充电。飞行器或者遥控板上都集成了充电管理芯片,用普通的手机充电器,通过micro USB数据线接入板上的micro USB口即可。充电时要注意,Microduino-Joypad(如图 9.1所示)两个micro USB接口,我们要使用的是右边的充电接口。 图 9.1 Joypad接口说明 |