0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用全包套件组装、启动、探索和开发小型无人机

丫丫119 来源:未知 作者:肖冰 2019-08-08 09:53 次阅读

四旋翼无人机,即四轴飞行器,在各种应用中发挥的作用日趋重要,但这方面的设计仍然相当复杂,需综合机械、电子和软件子系统方面的知识。虽然设计人员有能力学习掌握所需的知识,但无人机开发套件可以为他们提供一个良好的开端,集合了无人机飞行理论和实践经验累积所需的所有元素。

本文介绍了STMicroelectronics开发套件,该套件可为开发人员提供易于组装的小型四轴飞行器无人机,同时也充分展示了所有多旋翼飞行器必备的复杂飞行控制系统

四轴飞行器动力学

就最常见的形式而言,四轴飞行器为航空摄影、现场检测、监控等众多应用提供了相当稳定的平台。与固定翼飞机,甚至可变螺距直升机不同,由于小型高效直流电机的广泛应用,固定螺距多旋翼无人机的设计相对简单,且易于构建。

这些无人机的机械简单性和空气动力学稳定性,主要源自各旋翼间的协调配合以控制各种动作,而不像飞机利用飞行表面控制,或如直升机利用主旋翼和尾桨的配合。

在四轴飞行器中,位于机身对角线上的一对电机旋转方向相同,而与另一对电机的旋转方向相反。若四个电机的转速相同,无人机则可上升、下降或悬停。如果某对对角电机比另一对电机转速快,则无人机发生偏航,保持在同一水平面绕重心旋转(图 1,左)。

图 1:无人机通过不同的转速组合操控动作,例如偏航动作(左)时两个对角电机 (M2, M4) 同时加速;或一个对角电机 (M2) 加速,同时另一对角电机 (M4) 减速,从而完成更复杂的俯仰、滚转动作(右)。(图片来源:STMicroelectronics)

如果前(或后)旋翼电机转速发生变化,无人机就会像固定翼飞机上升或下降飞行一样,机头上升或下降。若左或右旋翼作出类似调节,将导致无人机滚转,即绕中心线旋转。通过调节对角电机或单个电机的相对速度,无人机可轻松实现更复杂的飞行姿态(俯仰、偏航和滚转的组合)(图 1,右)。发烧友公众号回复资料可以免费获取电子资料一份记得留邮箱地址。

无人机的飞行控制系统负责调节适当的电机转速,实现所需的飞行姿态,从而完成所需操作。

例如在实践中,不仅在转弯时,即使在水平飞行期间,控制系统也需要不断调节电机转速,以校正诸如风、热流或湍流的扰动力。即使在室内操纵小型无人机,飞行控制系统也需要测量无人机的实际姿态和所需姿态之间的差值。

对于工程师而言,利用误差信号校正电机转速是常见的控制回路反馈问题,可以通过比例-积分-微分 (PID) 控制器来解决。而所剩的唯一概念挑战则是确定测量无人机姿态的方法,不过使用高精度智能传感器数据来做欧拉角计算,即可轻松解决这一问题。

欧拉角可表示物体相对于某个 xyz 参考坐标系的 XYZ 坐标系方向,这两个坐标平面相交于直线 N(图 2)。而欧拉角的定义为:

  • α:x 轴与 N 之间的夹角
  • ß:z 轴与 Z 轴之间的夹角
  • γ:N 与 X 轴之间的夹角

图 2: 欧拉角 (α, ß, γ) 描述了旋转坐标系 (XYZ) 相对于固定参考坐标系 (xyz) 的相对方向,两个坐标平面相交于直线 N。(图片来源:Wikimedia Commons CC BY 3.0)

对于飞行控制系统,物体坐标系和参考坐标系直接对应为无人机的当前方向 (XYZ) 及所需姿态 (xyz)。而欧拉角则表示无人机所需的轴向旋转以实现所需姿态。尽管多年来用于确定当前方向的原始数据一直由机械陀螺仪提供,但高精度微机电系统 (MEMS) 加速计和陀螺仪的出现,使该方法甚至可以应用于轻小型无人机。

如今,各种形状和大小的无人机都依赖基于传感器的姿态和航向参考系统 (AHRS),该系统可为欧拉角计算提供位置信息。而欧拉角用于为 PID 控制器提供误差信号,PID 控制器则管理电机转速以实现所需飞行操作。挑战在于在移动平台上使用软件实现该方法,该平台必须能够完成计算并以所需的速度和精度来调整电机。

STMicroelectronics 的 STEVAL-DRONE01 小型无人机套件及相关软件提供了该方法的工作示例,可作为探索无人机飞行控制系统细节的基础。

小型无人机套件整装待“飞”

STEVAL-DRONE01 套件囊括了构建小型四轴飞行器所需的所有组件。除了塑料机身外,该套件还包括四个 8.5 x 20 mm、3.7 V、8520 无铁芯直流电机,每个电机的推力约为 35 g,并且配备 65 mm 螺旋桨。电机和螺旋桨配成两对,可顺时针和逆时针旋转。与 3.7 V 锂离子聚合物 (LiPo) 电池组装后,无人机总重量(或空中总重量,AUW)小于 70 g,无人机操作时的最佳推力重量比约为 2:1。

然而,除了机械部件外,该套件的核心组件是 STMicroelectronics 的STEVAL-FCU001V1飞行控制器单元 (FCU) 电路板及相关软件包,这些部件共同实现了上述飞行控制系统功能。FCU 电路板是高能效的复杂多传感器系统,具有低功耗蓝牙 (BLE) 连接功能(图 3)。

图 3: STMicroelectronics 的 STEVAL-FCU001V1 飞行控制器单元是完整的电池供电多传感器系统,具有 BLE 连接和直流电机驱动功能。(图片来源:STMicroelectronics)

该电路板配备基于 32 位Arm®Cortex®-M4 的 STMicroelectronicsSTM32F401微控制器,具有三个不同的 MEMS 传感器,分别用于测量无人机定位和导航的不同特征,包括:

  • STMicroelectronics 的LSM6DSLiNEMO 惯性测量装置 (IMU),集成了 AHRS 功能所需的加速计和陀螺仪
  • STMicroelectronics 的LIS2MDL磁力仪,为实现方向检测功能提供数据
  • STMicroelectronics 的LPS22HD压力传感器,用于提供垂直定位数据,分辨率为 8 cm

在传感器输入端,FCU 的 STM32F401 微控制器通过共享 SPI 总线与各传感器连接。在电机输出端,微控制器的 TIM4 通用定时器提供脉冲宽度调制 (PWM) 信号,用于控制 STMicroelectronics 的STL6N3LLH6MOSFET 功率晶体管的栅极,以驱动无人机的直流电机。

FCU 提供两个选项用于接收用户控制命令:用户可以在智能手机上,通过蓝牙连接板载 STMicroelectronics 的SPBTLE-RF模块来控制无人机,该模块包括该公司推出的BlueNRG-MS收发器,提供最佳功耗的蓝牙堆栈。或者,用户可以使用基于标准无线电控制 (RC) PWM 的遥控器。最后,对于电池和电源管理,该电路板包括 STMicroelectronics 的STC4054锂离子电池充电器 IC 和LD39015低压差 (LDO) 稳压器。

如图 3 所示,FCU 还支持与外部电子速度控制器 (ESC) 的连接,例如 STMicroelectronics 的STEVAL-ESC001V1。ESC 允许系统驱动更稳定的三相电机,使得 FCU 可以应用于承载能力较大的四轴飞行器设计。

为简化飞行准备和控制,该套件预先配置为通过 STMicroelectronics 的STDroneAndroid 移动应用程序来使用蓝牙连接选项。该应用程序设计为虚拟遥控器,可为用户提供简单的飞行控制界面,具有控制图标和两个虚拟操纵杆(图 4)。

图 4: STMicroelectronics 的 STDrone Android 移动应用程序为用户提供虚拟遥控器,可操作由该公司的 STEVAL-DRONE01 开发套件构建的小型无人机。(图片来源:STMicroelectronics)

组装后,无人机操作员可以在移动设备上使用 STDrone 应用程序启动和控制无人机。起飞前,操作员需将无人机放置在平坦表面上,触摸应用程序的“校准”图标直至图标变为绿色,则表示校准已完成。为了安全起见,无人机电机最初会通过软件禁用,要求用户在应用程序中点击另一个图标来“装载”无人机。此时,应用程序用户界面的功能则类似于遥控器,允许用户移动虚拟操纵杆,以调整无人机的电机转速和飞行姿态。

尽管超轻型 STMicroelectronics 无人机的质量和功率不足以进行广泛的户外应用,但是操作员如需在户外操作小型无人机,则需要了解无人机在预定操作区域的飞行限制。操作小型无人机可能不需要操作许可证,或为这类小型无人机注册。不过,操作员仍需要遵守相关要求。

具体飞行要求包括:保持视距,最大高度不得超过 400 ft;避开禁飞区,例如美国规定为机场 5 ml 范围内,英国规定为 1 km 范围内;避免在体育赛事或紧急行动场地附近进行操作等。无人机操作员可以使用移动应用程序,例如美国联邦航空管理局的B4UFLY应用程序,或英国国家空中交通管理局 (NATS) 的Drone Assist(无人机助手)应用程序,这些应用程序都可根据用户的 GPS 定位提供当地空域限制的相关信息。

飞行控制软件

对于工程师而言,STMicroelectronics 无人机套件的 FCU 具有一大亮眼功能,即相关软件包,STMicroelectronics 将其保存在开源的github 存储库中。该应用程序基于 STMicroelectronics 的 STM32Cube 框架,建立在蓝牙堆栈中间件和底层驱动层之上。驱动层使用 STM32Cube 硬件抽象层 (HAL) 和 STEVAL-FCU001V1 板级支持包 (BSP) 处理硬件交互的细节。驱动层包括所有上述 FCU 电路板设备的驱动程序。

该应用程序的软件架构围绕三个独立模块构建,这些模块分别用于遥控、位置确定和 PID 控制(图 5):

  • 遥控模块处理来自 STDrone 移动应用程序或 RC 遥控器的输入,从应用程序采集数据值或转换遥控器 PWM 数据,然后将数据值转换为所需飞行姿态的欧拉角。
  • 位置确定模块从 LSM6DSL IMU 采集加速计和陀螺仪数据,用于欧拉角计算所需的 AHRS 位置测定值,从而确定无人机的当前飞行姿态。虽然来自 LIS2MDL 磁力仪和 LPS22HD 压力传感器的数据也会得到采集,但截止本文撰写时,这些数据不适用于现有软件版本中的无人机飞行控制计算。
  • PID 控制模块使用所需姿态欧拉角与当前姿态欧拉角之间的差值来完成位置误差计算。该模块采用传统 PID 控制方法,使用误差信号调节各电机转速,使无人机实现所需姿态。

图 5: STMicroelectronics 小型无人机飞行控制软件功能围绕独立的模块构建,分别用于处理遥控输入(蓝色框,标记(1))、位置确定(红色框,(2))和 PID 控制(深蓝色框,(3))。随后 PID 控制驱动四轴飞行器的四个电机。(图片来源:STMicroelectronics)

使用这种功能架构,无人机应用程序将这些模块整合到所需工作流中,从而将用户操作命令转换为执行这些操作所需的电机转速调整(图 6)。尽管整体功能比较复杂,但更新飞行控制参数的主循环相对简单。

图 6: STMicroelectronics 小型无人机飞行控制软件实现一个连续读取传感器数据的工作流,更新无人机的当前飞行姿态,调整无人机四个电机的转速,从而达到飞行所需的推力,实现俯仰、滚转和偏航的动作组合。(图片来源:STMicroelectronics)

调用初始化硬件和软件系统等一系列例程后,应用程序主例程 main.c 进入无限循环(清单 1)。在主循环中,更新过程调用一系列例程来执行上述飞行控制核心算法

复制while (1) { ...if (tim9_event_flag == 1) { // Timer9 event: frequency 800Hz tim9_event_flag = 0; ...// AHRS update, quaternion & true gyro data are stored in ahrs ahrs_fusion_ag(&acc_ahrs, &gyro_ahrs, &ahrs); // Calculate euler angle drone QuaternionToEuler(&ahrs.q, &euler_ahrs); #ifdef REMOCON_BLE gRUD = (joydata[2]-128)*(-13); gTHR = joydata[3]*13; gAIL = (joydata[4]-128)*(-13); gELE = (joydata[5]-128)*13; /* joydata[6]: seek bar data*/ /* joydata[7]: additional button data first bit: Takeoff (0 = Land, 1 = Takeoff) second bit: Calibration When it changes status is active third bit: Arming (0 = Disarmed, 1 = Armed) */ gJoystick_status = joydata[7]; if ((gJoystick_status&0x04)==0x04){ rc_enable_motor = 1; fly_ready = 1; BSP_LED_On(LED2); } else { rc_enable_motor = 0; fly_ready = 0; } if (connected){ rc_connection_flag = 1; /* BLE Remocon connected flag for enabling motor output */ SendMotionData(); SendBattEnvData(); SendArmingData(); } else{ rc_connection_flag = 0; gTHR=0; rc_enable_motor = 0; fly_ready = 0; BSP_LED_Off(LED1); BSP_LED_Off(LED2); } if (joydata[7]&0x02){ rc_cal_flag = 1; BSP_LED_On(LED1); } #endif #ifdef REMOCON_PWM ...#endif // Get target euler angle from remote control GetTargetEulerAngle(&euler_rc, &euler_ahrs); ...FlightControlPID_OuterLoop(&euler_rc_fil, &euler_ahrs, &ahrs, &pid); ...} ...}

在此循环中,微控制器的 TIM9 通用定时器用作事件标志以控制更新速率。发生更新计时器的事件时,主循环调用 AHRS 更新例程 ahrs_fusion_ag(),该例程使用来自加速计 (acc_ahrs) 和陀螺仪 (gyro_ahrs) 的最新数据,执行更新涉及的传感器融合计算。然后,QuaternionToEuler() 例程使用该结果数据(四元数形式)来计算无人机当前飞行姿态的欧拉角。

此时,如果已启用蓝牙 (#ifdef REMOCON_BLE),应用程序主循环将使用蓝牙采集所需飞行姿态的相关数据;如果已启用外部 RC 遥控器,则应用程序将使用遥控器采集相关数据。而代码更新对应传统 RC 遥控器数据的四个变量:gRUD(方向舵位置,即偏航)、gAIL(副翼位置,即滚转)、gELE(升降舵位置,即俯仰)和 gTHR(节流阀位置)。采集了这些数据后,主循环使用例程 GetTargetEulerAngle() 来计算所需飞行姿态的欧拉角,以执行无人机操作员的命令。不过在执行计算之前,主循环这部分的功能对无人机操作员而言至关重要。若出于任何原因导致蓝牙连接失败,代码将停止电机。显然,这将致使无人机即刻不受控制地下降。然而有个简单却意义重大的软件扩展,可能会使用 LIS2MDL 磁力仪和 LPS22HD 压力传感器数据,在停止电机前,使无人机飞回起始点,并控制下降速度以平稳降落。

最后,主循环调用例程 FlightControlPID_OuterLoop(),更新 PID 控制器的目标值。此外,FlightControlPID_innerLoop() 则属于回调操作的一部分,旨在中断 TIM9 定时器事件。TIM9 定时器事件频率设定为 800 Hz。每次中断时,回调例程读取传感器,筛选原始数据,更新与变量 acc_ahrs 和 gyro_ahrs 相关的先进先出 (FIFO) 缓冲器。这两个变量在上述主循环中均已提及。回调例程使用无人机当前飞行姿态的更新数据,调用 FlightControlPID_innerLoop(),重新计算各电机的 PWM 值。最后,回调例程调用 set_motor_pwm(),为微控制器的 PWM 输出赋值,并结束更新过程。

开发人员可以使用各种工具链修改开源软件包,轻松探索其他飞行控制方案。这些工具链包括适用于 ARM 的 IAR Embedded Workbench、适用于 STM32 的 KEIL RealView 微控制器开发套件,以及 STMicroelectronics 推出基于 Windows 的免费版System Workbench for STM32集成开发环境 (IDE)。在对修改过的代码进行编译后,开发人员可以使用 STMicroelectronics 的ST-LINK/V2在线调试器和编程器,或连接 STMicroelectronics 的STM32 Nucleo开发板与套件随附的 JTAG 串行线调试 (SWD) 适配器板,将固件加载到 FCU 中。

总结

在航空摄影、现场检测、监控等众多应用中,多旋翼无人机因机械设计颇为简单而深受青睐。这些无人机使用智能传感器为控制算法提供数据,采用复杂的飞行控制软件,支持稳定操作,并能快速响应无人机操作员的操作命令。

虽然开发人员可以自行寻找并组装所需的机械、电气和软件组件,但 STMicroelectronics 推出的全面小型无人机开发套件,使其能够更轻松地引入小型无人机的设计和操作。通过探索甚至修改相关的开源飞行控制软件,开发人员可以快速获取多旋翼无人机飞行动力学和控制算法方面的经验。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PID
    PID
    +关注

    关注

    35

    文章

    1472

    浏览量

    85525
  • 无人机
    +关注

    关注

    230

    文章

    10437

    浏览量

    180465
  • 四轴飞行器
    +关注

    关注

    55

    文章

    206

    浏览量

    51149
收藏 人收藏

    评论

    相关推荐

    “酒驾”不能飞!轻小型无人机运行规定出台

    。 2015年12月29日,民航局出台《轻小无人机运行规定(试行)》(以下简称《运行规定》),对低、慢、小无人机运行实施放管结合的细化分类管理,为进一步维护轻小型无人机的飞行秩序,促进
    发表于 01-18 16:22

    中国新出神秘武器专攻小型无人机

    `近几年来,美国、日本等国都曾相继曝光过小型无人机意外坠落其核心区域,但由于小型飞行器的体积小且低空低速,几乎是无声逼近,所以在其坠毁前无论采取什么手段都无法发现它,只有坠毁后发现其残骸才能知道发生
    发表于 06-20 10:25

    无人机AOPA

    (中国航空器拥有者及驾驶员协会—AOPA-China)对无人机驾驶员资质认证体系,公司积极研究和探索无人机在民用领域中的实际应用和技术要领,现已形成以民用无人机为载体的多方向培训课程体
    发表于 06-07 15:39

    【资料】无人机开箱组装视频下载链接

    无人机开箱、组装视频下载链接:https://pan.baidu.com/s/1miACTIS
    发表于 05-09 18:59

    无人机流行和快速增长背后,对无人机开发平台了解多少?

    、以及先进电池和无线技术的规模化生产,导致小型消费产品级别的低价格四轴无人机迅猛发展。那么能否介绍几个无人机开发平台或者对功能解读呢?
    发表于 02-21 18:18

    无人机类型之植保无人机,带你了解什么是植保无人机?

    无人机类型有很多种,复合翼无人机,六旋翼无人机,彩虹无人机都属于不同的类型,下面来让我们了解植保无人机吧吧。 最近,植保
    发表于 06-28 10:06

    张飞电子工程师无人机硬件闲置

    因学习紧张,没有时间跟着张老师的视频学习无人机无人机硬件闲置出售,加密视频自己珍藏。只组装了电机,未焊接,箱说,众筹时买的。喜欢的同学私聊吧。QQ:2461307814
    发表于 07-16 13:25

    STM32G4微控制器推出数字电源和电机控制两版探索套件

    意法半导体加大对STM32G4微控制器的开发支持力度,推出数字电源和电机控制两版探索套件,并在最新的STM32CubeG4软件(v 1.1.0)中增加新的固件示例,帮助
    发表于 10-30 08:51

    无人机的工作原理

    如今,我们经常在很多公园或空旷场所看到有人玩那种小型无人机,每次看它们拿着手里的遥控器,让无人机自由翱翔于空中,这种感觉很“酷炫”,可是您知道无人机的工作原理吗?
    发表于 01-13 06:34

    制作无人机小型PCB

    描述使用 ESP32 的无人机飞控这是我们制作自己的无人机小型 PCB,它使用 ESP32 和 MPU-6050 进行轴控制。电机控制是通过 PWM 完成的。我们仍在忙于对其进行编程,并将在代码
    发表于 08-01 07:04

    无人机技术的研发,无人机反制设备成为热门产品

    /导航系统干扰是当下反无人机技术的主流方式之一。通过实施干扰,使无人机的通信/导航设备受到影响或失灵。考虑到当前各国出现的小型侦察无人机大多通过地面控制站、采用无线电实时遥控的方式获取
    发表于 09-08 10:10

    NXP无人机开发套件及工具

    NXP无人机开发套件及工具
    发表于 02-10 15:39 52次下载

    无人机入门指南资料,限时免费领取!

    资料将教会你:根据自身要求挑选满意的无人机;正确启动、飞行和保养无人机;通过Scratch编程控制飞行器,实现有趣的互动。这份无人机资料
    的头像 发表于 01-14 09:33 4429次阅读

    小型无人机实战运用与反制技术的探索

    小型无人机的材料一般为塑料或复合材料。所以大部分的小型无人机往往不耐用且战场生存能力较差。想要摧毁观察到的小型
    发表于 02-28 11:12 645次阅读

    探索无人机云台的奥秘与组装调试技巧

    在科技飞速发展的今天,无人机已经成为了众多领域的热门工具。而无人机云台作为其中至关重要的组成部分,其性能和精准度直接影响着无人机的拍摄效果和稳定性。接下来,就让我们一同深入探索
    的头像 发表于 10-18 17:56 374次阅读
    <b class='flag-5'>探索</b><b class='flag-5'>无人机</b>云台的奥秘与<b class='flag-5'>组装</b>调试技巧