查看“Microduino 四轴飞行器教程”的源代码
←
Microduino 四轴飞行器教程
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|Microduino-Quadcopter Tutorial}} {| style="width: 800px;" |- | ==概述== *项目名称:Microduino四轴飞行器 *目的:通过Microduino Joypad来控制四轴飞行器。 *难度:高级 *耗时:6小时 *制作者:Microduino Studio-PKJ&Microduino Studio-Joseph Leung ==材料清单== *Microduino设备 {|class="wikitable" |- |模块||数量||功能 |- |Microduino-CoreRF||2||核心板 |- |Microduino-USBTTL ||1||下载程序 |- |Microduino-10DOF ||1||姿态稳定 |- |Microduino-Joypad ||1||遥控 |- |Microduino-TFT||1||显示 |- |Microduino-QuadCopter||1||四轴电机驱动 |} *其他设备 {|class="wikitable" |- |USB数据线||1||下载程序 |- ||四轴飞行器机架||1||搭建四轴 |- |电池||2||供电 |} ==文档== *下载四轴控制程序: 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 ==简介== 四旋翼飞行器,又称为四旋翼直升机,顾名思义,是一种具备4个螺旋桨的飞行器,与直升机类似,可以完成空中悬停、飞行的动作。传统直升机会用一个主桨来产生推力,用一个尾桨来抵消主桨产生的扭矩(即锁尾),而四旋翼飞行器对角螺旋桨采用正反桨设计,从而不需要额外的机构进行“锁尾”。如图 1.1所示,4个螺旋桨呈十字形对称分布,1和2 号桨逆时针转动,而3和4号桨顺时针转动,但4个螺旋桨产生的推力相同时,两组正反桨对机身所施加的反扭矩两两抵消,使得绕垂直方向旋转的反扭矩平衡,从而确保了航向的稳定。 根据飞行器自定义的首尾方向,可以将四旋翼飞行器分为十字模式和X字模式两种。如图 1.1所示,十字模式意味着首尾的方向会指向某个螺旋桨,而X字模式则是指首尾方向指向两个螺旋桨中间. 大多数飞行器采用的是X字模式。X字模式相对于十字模式来说,控制起来更加困难,但动作的灵活性会更高。 图 1.1 十字模式和X字模式 。 图 1.1 十字模式和X字模式 ===原理=== 四旋翼飞行器通过调节4个螺旋桨的转速,改变推力,从而控制飞行器的姿态和位置。如图 1.2所示,在3个坐标轴上实现旋转,可以完成3个动作,即偏航(Yaw)、俯仰(Pitch)和滚转(Roll);如果在三轴上实现平移的话,可完成垂直、前后和侧向运动。 <gallery> File:Example.jpg|Caption1 File:Example.jpg|Caption2 </gallery> 图 1.2 四旋翼飞行器的基本动作 '''垂直运动''' 即飞行器垂直上升或下降。正如前文所说的,四个电机保持在同一转速,就能够在水平方向上保持稳定。如图1.3所示,如果四个电机增加到在同一个转速,产生的推力足以克服飞行器自身的重力,便能够上升;反之,如果四个电机同时降低到同一个速度,产生的推力无法克服飞行器的重力,便可以下降。如果外界没有其他的扰动,四个电机产生的推力恰好克服飞行器的重力,这样,飞行器就可以悬停在空中。 只要让四个电机保持在相同转速,便能够让飞行器平稳地垂直运动,相对来说比较简单。 图 1.3 垂直运动 '''前后运动和侧向运动''' 如图 1.4所示,电机1为飞行器头部,而电机2为飞行器尾部。 为了在水平上获得一个推力,增加电机2的转速,尾部的推力增加;降低电机1的转速,头部的推力减小;整个机身会向前倾,合成了一个水平向前的推力,机身便能够向前运动。同时保持电机3和4的转速,反扭矩平衡,才能够保证机身平稳地向前。向后运动正好与向前运动相反。 因为四旋翼飞行器是中心对称的,前后运动和侧向运动的控制是完全类似的,两组正反电机的控制方式对调即可。例如,保持电机1和2的转速不变,增加电机4的转速而降低电机3的转速,便能够产生向左的水平力,于是机身向左运动。 图 1.4 前后运动和侧向运动 '''偏航运动''' 前面介绍的三种运动都是空间三个轴上的平移,接下来要介绍的三种运动是绕着三轴的旋转。 偏航运动就是在水平方向上的左右转动,即绕着Z轴的旋转。旋翼在转动的过程中,由于空气阻力的作用,会形成与转动方向相反的反扭矩。偏航运动就是利用反扭矩实现的。当飞行器悬停时,4个电机的转速相同,两组正反扭矩相互抵消,维持平衡。当四个电机转速不完全相同时,不平衡的反扭力会引起四旋翼飞行器水平转动,从而实现偏航运动。如图 1.5所示,提升电机1和2的转速,同时降低电机3和4的转速,1和2 电机产生的顺时针反扭矩大于3和4电机产生的逆时针反扭矩,而且总的向上推力没有发生变化,于是机身在水平面上顺时针转动,又不会出现垂直位移。逆时针转动正好相反。 图 1.5 偏航运动 '''俯仰运动和滚转运动''' 俯仰运动是指在Y轴上的旋转,而滚转运动则是在X轴上旋转。 如图 1.6所示,提升电机1的转速,降低电机2的转速,两者转速的变化量应该一样,同时保持电机3和4转速不变。机身头部的推力大于尾部的推力,不平衡的力矩使得机身仰起。同样的,俯身运动则是降低电机1的转速,而提升电机2的转速,产生一个向前倾的力矩。 同样是因为中心对称的缘故,滚转运动与俯仰运动的原理一样。维持电机1和2的转速不变,改变电机3和4的转速,产生不平衡的力矩,使得机身绕着X轴做出滚转的运动。 图 1.6 俯仰运动和滚转运动 ===结构=== 图 1.7 四旋翼飞行器示意图 如图 1.7所示,是四旋翼飞行器的结构简图。飞行器包括主要包括遥控器(航模遥控)、飞行控制器以及四个电机组成。而飞行控制器又包括微控制器、遥控信号接收模块、传感器模块(陀螺仪、加速度计、电子罗盘和GPS定位模块)和电机驱动模块。 基本的控制流程如下: 遥控器发出控制命令,比如起飞、向左飞等等,控制信号通过无线接收 #遥控信号接收模块接收到控制信号,将其转化为PWM或者PPM等信号传递给飞行控制器。 #微控制器根据遥控信号以及传感器的值(当前飞行器的状态,如加速度、方位等信息)来通过PWM控制四个电机以达到预期的动作。 因为四旋翼飞行器的四个电机组合控制才能实现6个方向的运动,是一个欠驱动系统,必须要有一个飞行控制器来控制整个系统。 在飞行控制器中,传感器,如陀螺仪和加速度计,是必须的。微控制器计算这两个传感器所传来的数据,获得当前飞行器的姿态,然后通过PID等算法调整电机的转速,以保持飞行器的稳定。当然还可以加入电子罗盘掌握机身的方向,加入GPS模块确定飞行器的地理位置。所以简单来说,四旋翼飞行器是一个具备两个闭环控制的系统,大环由遥控接收设备注入输入量,小环由姿态传感器注入输入量。 当然,这个过程中也有一些技术细节需要设计,比如传感器读入的数据需要进行滤波、俯仰(Pitch)、滚转(Roll)、偏航(Yaw)等动作的PID算法设计及调整。这是一个较复杂的综合系统,如果玩家想在理论方面从零开始学习则需要介绍许许多多,受篇幅所限,请参考相关资料,这里就不详细介绍了。 图 1.8 四旋翼飞行器套件实物 总的来说,本书所使用四旋翼飞行套件包括飞行器和遥控器两大部分,两者通过蓝牙传输控制指令。 飞行器主要由带4个电机的机架、Microduino-CoreRF、Microduino-BT和Microduino-10DOF等模块组成。其中Microduino-10DOF集成了四种传感器,分别是三轴加速度+三轴陀螺仪传感器(MPU6050)、磁场强度传感器(HMC5883L)、数字气压传感器(BMP180)。通过I2C进行通信。 MPU6050是其中最主要的姿态传感器,内部集成了三轴加速度计和三轴陀螺仪,不仅消除了组合加速度计和陀螺仪时容易出现的对准误差,而且内置了可编程的低通滤波器,即使在飞行器经受较大振动时,控制程序通过配置适当频率的低通滤波器,可以滤掉高频振动。这种处理方式可以减小四旋翼飞行器自身的振动对陀螺仪数据产生的影响。 图 1.9 Microduino-10DOF 遥控器是在Microduino-Joypad的基础上改造而成,包括Microduino-CoreRF、Microduino-TFT、Microduino-Joypad面板等模块组成。 图 1.10 遥控器 ===优点=== 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" |- |模块||数量||功能 |- |Microduino-Core||1||核心板 |- |Microduino-USBTTL ||1||下载程序 |- |Microduino-10DOF ||1||姿态稳定 |- |Microduino-BT||1||无线通讯 |- |Microduino-QuadCopter||1||四轴驱动 |} 将飞控底板用四颗螺丝固定在机架底座上。安装时请自行设定一个向前的方向,飞控底板默认的前向是Upin口的开口方向。 [[File:Microduino_QuadCopter_setup1.jpg||600px|center|thumb]] 将Microduino-QuadCopter用四颗螺丝固定在机架底座上。 [[File:Microduino_QuadCopter_setup2.4.jpg||600px|center|thumb]] 将四个电机臂用螺丝安装在机架底座上,安装的时候玩家按照如下方法设定一个机头方向:一般的我们定义橙色的两个桨是前方的桨,黑色的两个桨是后方的桨,这样在飞远了以后仍然可以依靠桨的颜色来判别机头方向。安装时还要按照正确的顺序来,左前方和右下方的桨要安装A桨,右前方和左下方的桨要安装B桨。每个桨的上面都写有A、B来区分: [[File:Microduino_QuadCopter_setup2.1.jpg||600px|center|thumb]] 请玩家注意。安装方法如下图所示: [[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]] 在固定好四个机臂后将四个电机的导线接到飞控地板对应的焊盘上,其实底座和接口是匹配的,用户只需要插上去即可,但是最好还是确认下电机白色、红色的线接到底板标注有“+”的焊盘上,黑色、蓝色的线接到地板标注有“-”的焊盘上。如果接反,电机的转向就会反了,这样我们的小飞机就无法起飞。安装好的底板如下图所示。 [[File:Microduino_QuadCopter_setup3.1.jpg||600px|center|thumb]] [[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以将数值写入飞控。 通过点击SELLECT SETTING,我们可以进行参数设置,并且看到模拟的姿态,如图所示: [[File:Microduino_QuadCopter_MultiWiiConf4.jpg||600px|center|thumb]] ====设置PID参数==== 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模块。四轴控制器就做好了。 [[File:Microduino_QuadCopter_MultiWiiConf_ANGLE.jpg||600px|center|thumb]] ==遥控器(Microduino-Joypad)搭建与调试== 遥控器我们采用Microduino-Joypad来实现,当然,你还需要其他模块,Microduino-TFT、Microduino-Core、Microduino-USBTTL、Microduino-BT(从机)。这样才能把遥控器搭建起来。 {|class="wikitable" |- |模块||数量||功能 |- |Microduino-Core||1||核心板 |- |Microduino-USBTTL ||1||下载程序 |- |Microduino-BT||1||无线通讯 |- |Microduino-Joypad ||1||遥控 |- |Microduino-TFT||1||显示屏 |} ===硬件搭建=== *步骤一:将Microduino-TFT安装在Microduino-Joypad面板上; [[File:Microduino_Joypad_TFT.jpg||600px|center|thumb]] *步骤二:将尼龙螺丝安装在Microduino-Joypad上,并且将底面板粘贴在Microduino-Joypad底部; [[File:Microduino_Joypad_nilong.jpg||600px|center|thumb]] *步骤三:将Microduino-TFT与Microduino-Joypad通过转接线连接起来; [[File:Microduino_Joypad_Connection.jpg||600px|center|thumb]] *步骤四:将锂电池连接到底板上,注意正负极别接反了,板子背面标注了正负极; [[File:Microduino_Joypad_power.jpg||600px|center|thumb]] *步骤五:将底板和面板用尼龙螺丝固定好; [[File:Microduino_Joypad_face_bord.jpg||600px|center|thumb]] *步骤六:你可以打开电源开关,观察供电是否正常。 [[File:Microduino_Joypad_switch.jpg||600px|center|thumb]] *步骤七:将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:'''、'''_01_Microduino_TFT_ST7735 :'''、'''_01_Microduino_TFT:'''、'''_08_Microduino_Shield_Joypad:''' 参考:[[安装Arduino IDE Microduino程序库支持包]] *打开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]] *选择控制模式 **我们可以通过【key3】按键来选择是控制四轴飞行器(Quad.)还是机器人(Robot),同时Robot模式可控制平衡车和BOXZ mini,黑色表示选中。因此我们需要选择到Quad.模式。 [[File:Microduino_Joypad_config2-quad.jpg||600px|center|thumb]] **我们可以通过【key4】按键来选择是否是体感控制模式,当然选择体感模式,你必须叠加[[Microduino-10DOF/zh]]模块,选择“MPU ON”。如果是摇杆模式,选择“MPU OFF”。 [[File:Microduino_Joypad_config3-quad.jpg||600px|center|thumb]] *摇杆校准 **360度最大幅度旋转两个摇杆,看TFT屏上数据没变化即可按下【key2】按键,进入玩耍。 [[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(主机)连接,蓝牙模块连接指示灯不再闪烁。 [[File:Microduino_QuadCopter_Remote4.jpg||600px|center|thumb]] *对四轴进行解锁,将左上边开关拨到下面(关闭油门),防止解锁后不小心开了油门使四轴飞行器起飞发生意外。将油门滑竿置于最右下方,可看到机架底板上led灯开始闪烁,准备链接,等待2S左右,恢复油门滑竿,再置于最又下方,依次循环,直到led长亮说明解锁成功,这样就可以准备飞了。如果尝试多次不能解锁,对四轴飞行器核心复位,系统将对传感器进行校准,重新尝试解锁。 [[File:Microduino_QuadCopter_Remote5.jpg||600px|center|thumb]] *再把油门摇杆拨到最下方,左上边开关往上推(打开油门开关),这时参考摇杆控制示意图,你只要轻轻推动油门即可看到四个螺旋浆开始飞速转起来了。继续加大油门,确保它飞起来了。可以稍微高一点,不要紧贴地面,然后通过方位摇杆控制平衡了。 [[File:Microduino_QuadCopter_Remote6.jpg||600px|center|thumb]] *当发现在猛推油门的情况下飞机也只会贴着地飞行而无法一飞冲天的时候就表明电池电量已耗尽,请给电池充电以避免事故发生。我们的飞控底板集成了充电管理,只需要将usb线缆的一头插在充电器上,另一头插到飞控底板上的microusb接口即可对电池充电。 [[file:Microduino-Joypad-Pinout4Big.jpg|800px|thumb|center]] *当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否者四轴将失控,避免发生意外。 ==注意问题== *蓝牙连接是第一步,也是关键的一步,请确定两个蓝牙能够连接。 *下载程序时候请不要叠加BT模块,这样会引起串口冲突,容易出现问题。 *注意四轴飞行器四个螺旋桨的安装,别错了,否者飞不起来。 *锂电池正负极别接错了,否则会烧坏电路。 *飞行器请先对遥控器(Microduino-Joypad)进行校准,否者容易导致飞不稳。 *遥控解锁前请先把左上边开关拨到下面(关闭油门),开始试飞请先把油门调到最低,避免解锁后油门值太大起飞发生意外。 *当你想关掉飞行器,请一定要先断开四轴的电源,再断开遥控器电源,否者四轴将失控,避免发生意外。 |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
Microduino 四轴飞行器教程
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息