Ameba_Arduino 发表于 2016-7-28 12:04:37

【Ameba Arduino】实战:Ameba 四轴飞行器

本帖最后由 Ameba_Arduino 于 2016-7-28 12:04 编辑

Ameba四轴飞行器简介§ 马达编号与转向
Ameba 四轴飞行器依照马达在四轴上的位置定义其编号分别为 0、1、2及3,马达在四轴飞行器不同位置所对应的编号及转向如下图。


§ 飞行原理
四轴飞行器运动姿态可分为横滚(Roll)、俯仰(Pitch)及偏航(Yaw)三种类型 ,定义如下图:

藉由控制三种姿态使飞行器前进后退、左右移动及旋转,控制方法如下:
[横滚姿态]
– 向右飞行: 马达编号 0、3 加速,马达编号 1、2 减速
– 向左飞行: 马达编号 0、3 减速,马达编号 1、2 加速
[俯仰姿态]
– 向前飞行: 马达编号 2、3 加速,马达编号 0、1 减速
– 向后飞行: 马达编号 2、3 减速,马达编号 0、1 加速
[偏航姿态]
– 顺时针旋转: 马达编号 0、2 加速,马达编号 1、3 减速
– 逆时针旋转: 马达编号 0、2 减速,马达编号 1、3 加速
Ameba Quadcopter 硬体
§元件清单与规格

§电路图
Ameba Quadcopter 电路配置如下,不同位置的马达必须依照编号连接到相同编号的 PCA9685 PWM 通道,顺序不可改变。

请将MPU9xxx 焊接在洞洞板上并以排针将洞洞板与连接,确保飞行时的稳定性,如下

MPU9XXX 应放置于机体中心位置,请注意摆放方向必须如下图,不可任意改变。

Ameba Quadcopter 软体§Ameba 端
请先下载sketch档:https://github.com/Ameba8195/Arduino/raw/master/sketch/RealtekQuadcopter.zip
解压缩至Arduino的workspace里面,你可以在preference里面找到Arduino设定的workspace位置,
它的位置可以在 “File”-> “Preferences”, 选项里有个Sketchbook location, 这个位置就是ArduinoIDE预设放置sketch与library的地方

接着重开Arduino IDE, 就可以在sketch里看到 “RealtekQuadcopter”

直接编译并下载至Ameba即可。
§手机控制端
请至google play下载Realtek Pilot app,或是从网页开启: https://play.google.com/store/apps/details?id=com.quadcopter.quadpilot§ 控制介面
姿态控制介面控制四轴飞行器飞行时上升下降、前进后退、左右移动及旋转,有两种控制模式可选择,其控制方法如下

§姿态资讯介面
此介面显示四轴飞行器定期回传至手机端的 仰俯 (Pitch),横滚 (Roll) 及航偏 Yaw) 角度资讯 ,可用来确认 MPU9XXX 状态是否正常。

§参数设定介面
此介面用于设定系统参数,设定方式请参考下一章节。

参数设定
§ PID 控制器

Ameba 四轴飞行器使用两个 PID 控制器,分别为姿态 PID 控制器以及角速度 PID 控制器,一般情况下只需要修正以下参数:
– Roll、Pitch 和 Yaw 的姿态(attitude)PID 控制器 P 项。
– Roll、Pitch 和 Yaw 的姿态(attitude)PID 控制器 I 项及 I Limit 项。
– Roll、Pitch 和 Yaw 的角速度(rate)PID 控制器 P 项。
– Roll、Pitch 和 Yaw 的角速度(rate)PID 控制器 D 项。
修正方式如下:
1. 将 PID 控制器所有栏位的参数设定为 0。
2. 将 Roll、Pitch 和 Yaw 的姿态 PID 控制器 P 项设置为 1。
3. 将Roll、Pitch 和Yaw 的角速度PID 控制器P 项设定为0.1,尝试让四轴飞行器起飞并观察姿态修正的情况,若是修正力道过小,将值逐渐加大,若是修正过大导致飞机翻覆,将值减小,调整出一个值让四轴飞行时晃动幅度最小。
4. 若是飞行时抖动仍然太大影响飞行,将Roll、 Pitch 和Yaw 的角速度PID 控制器D 项设定为0.0001,尝试让四轴飞行器起飞并观察姿态修正的情况,若是抖动无法消除,将此值逐渐加大直到抖动消除或变小。
5. 若使用摇杆改变飞时方向时四轴飞行器反应过于灵敏,可调整Roll、 Pitch 和Yaw 的姿态PID 控制器I 项及I Limit 项降低灵敏度,将I 值设为1,I Limit 设定为5,尝试让四轴飞行器起飞并观察姿态修正的情况,若是操控摇杆时四轴飞行器反应仍过于灵敏则逐渐将Limit 加大,若反应过于迟钝则逐渐将Limit 减小。
6. 视各姿态(Roll、Pitch 和 Yaw)飞行状况重复 1-5 步骤各自进行微调。
§ 角速度限制

限制角速度PID 控制器的最大输出值,一般情况可将此值设定为一个极大值(例如: 1000), 在干扰较大的环境(例如: 强风环境) 可尝试设定较小的值避免四轴飞行器过度修正造成震荡。
§ 横滚角补偿参数及俯仰角补偿参数

四轴重心偏移中心或是MPU9XXX 摆放倾斜会造成四轴惯性飞向某一飞行,此时需要设置角度补偿消除误差,横滚角补偿参数修正衡滚误差,俯仰角补偿参数修正俯仰误差,修正方式如下
– 惯性向左飞行: 设置横滚角补偿参数大于 0,值越大修正幅度越大。
– 惯性向右飞行: 设置横滚角补偿参数小于 0,值越小修正幅度越大。
– 惯性向前飞行: 设置俯仰角补偿参数小于 0,值越小修正幅度越大。
– 惯性向后飞行: 设置俯仰角补偿参数大于 0,值越大修正幅度越大。
§ 摇杆增益

改变摇杆前后及左右方向的控制增益,若将此参数增大,推动摇杆将获得较大的变量。
§ 油门限制

限制遥控器所能控制的油门最大值
§ 控制模式

设定控制介面的模式。
§锁定、解除锁定以及同步按键



– 锁定按键: 点击后系统进入锁定状态,锁定状态将无法以手机控制四轴飞行器
– 解除锁定按键: 解除系统锁定状态并同步设定参数
– 同步按键: 点击后参数设定介面所设定参数将与四轴飞行器同步,每次修正系统参 数后须点击此键将手机与四轴飞行器同步
开始飞行§ 飞行场地
请确保飞行场地符合以下条件
– 空旷
– 低风速
– 在草地上方飞行可降低摔机时四轴飞行器的损坏程度§ 启动四轴飞行器并与手机连线
– 将 ameba 上电后,使用手机搜寻 ameba WiFi AP (SSID: quadcopter) 并连线
– 连线后姿态资讯介面会动态显示四轴飞行器俯仰、横滚及偏航角度,请检查数值是否正常§ ESC 校正
第一次飞行时请依照以下步骤校正 ESC
– 移除飞行器上的桨
– 将所有 PID 参数设定为 0
– 将油门限制设定为 100%
– 解除系统锁定状态
– 依照 ESC 说明书指示进行校正§ 解除控制系统锁定状态
ameba 四轴飞行器上电后初始状态会将控制系统锁定,点击解除锁定按键解除锁定状态,此时与 ameba 脚位 18 连接的 LED 灯会亮起。§ 起飞
– 缓慢推动油门,观察四轴飞行器起飞状态
– 若是飞行容易翻覆或难以控制,尝试修正 PID 及横滚角、俯仰角补偿参数§ 其他注意事项
接近四轴飞行器前请先锁定系统避免发生危险
– 受到讯号范围影响,飞行距离请勿超过 10 公尺
– 锂聚电池过度放电将使电池寿命及品质降低,请避免电池内各cell的残电量低于3.8V异常状态排除§ 无法开机
– 重新烧录 ameba 四轴飞行器程式
– 检查电路元件各脚位是否连结到正确的位置,无短路及接点松动的情况发生§ 无法稳定飞行
– 检查马达旋转方向是否正确
– 检查桨的配置是否正确
– 检查各 ESC 与 PCA9685 所连接的通道编号是否正确
– 重新校正 ESC
– 调整 PID 参数
– 检查电路是否发生短路
– 避免环境有过多 2.4GHz 讯号干扰§ 起飞后惯性朝特定方向飞行
修正横滚角度补偿参数及俯仰角度补偿参数
关于更多介绍请访问RealtekAmeba官方主页:http://www.amebaiot.com/cn
官方QQ交流群:Ameba Arduino技术交流群(184666894)
论坛干货:
【新品推荐】Ameba Arduino全功能IoT解决方案
【Ameba Arduino】入手教程之一:开发环境搭建
【Ameba Arduino】入门教程之二:5分钟玩转小车无线控制
【AmebaArduino】入门教程之三: Wi-Fi之初体验
【Ameba Arduino】入门教程之四:Ameba WebServerLED 控制
【Ameba Arduino】入门教程之五:给无线小车添加“眼睛”
【Ameba Arduino】入门教程之六:无线小车进阶控制---六轴姿态控制
【Ameba Arduino】实战:用Ameba打造Wi-Fi控制的MP3播放器
【Ameba Arduino】实战:用Ameba读写SD卡
【Ameba Arduino】实战:Airkiss配置Ameba连接Wi-Fi
【AmebaArduino】实战:QQ物联--手机QQ和Ameba通讯
页: [1]
查看完整版本: 【Ameba Arduino】实战:Ameba 四轴飞行器