【DIY无人机】主控程序

简介: 如何自己动手制作一个飞控?

image.png

前言

上图是《三傻大闹宝莱坞》中的片段,笔者初中的时候看到这个电影对这个四轴飞行器有着极大的兴趣,但因为当时经费的问题,在开发了一般没有自稳的迷你小四轴以后就不了了知了。

Multiwii Copter

image.png
Multiwii是控制多旋翼航模的开源固件,Multiwii最初由法国航模爱好者Alex创立,用于控制他自己做的三轴飞行器。后经全世界各大高手改造扩展,现在Multiwii不仅仅支持三轴飞行器、四轴、六轴等多轴系列,还支持固定翼和直升机等航模。功能强大而且简单易用,其支持的传感器类型极为丰富,而且支持十分广泛的外部设备和飞行模式,这让Multiwii飞控固件发展为国外最受欢迎的多轴开源固件之一。同时Multiwii也有缺点,与APM、海盗等其他开源固件相比,Multiwii最大的不足就是目前还不支持地面站。

四轴飞行器基础知识

image.png
笔者认为关于这些理论的知识,不是本篇文章的重点,关于这些基础的知识,如果有新入门的童鞋,可以先去度娘或者各大论坛等等去了解一下,毕竟掌握了这些基本的知识,才知道一个四轴飞行器是如何组成的,六轴也同理。还有就是虽然现在的飞控都是白菜价了,但是如果通过自己搭建一个四轴飞行器,并让其稳定的飞起来,这是虽然很有难度,而且会耗费大量的时间,但是这种满足感跟这种DIY的精神是我非常向往的。

飞控板的制作

大家完全可以参照Multiwii官网的硬件要求,自行设计制作飞控板,这样你对MWC四轴整个系统将会有更深刻的理解。Multiwii硬件分为Arduino 328p(ATmega328P)和Arduino mega(ATmega2560)两种版本。两个版本各有优劣,均支持多种外设,但接口稍有不同。mega版本只能用串口接GPS和声呐,由于两个外设占据了串口,如要用蓝牙或FTDI查看飞控状态信息,这就是不可能的了。328p版本虽然容量小,但可以采用双328p的模式,再用一片ATmega328P制作一块I2C-GPS/Sonar导航板,这样就可以用I2C来读取GPS和声呐的数据,不必占据串口,那这样一来就可以实时的用蓝牙等查看飞行状态信息了。所以笔者采用飞控板是基于Arduino 328p版本的。简单来说,MWC飞控板由Arduino pro mini + GY-86 组成。

Arduino pro mini 原理图

image.png

   Arduino pro mini 接线图

image.png

  绘制PCB

image.png

制板

image.png
在某宝上采购 Arduino pro mini 跟 GY-86 ,其实也可以把GY-86换成MPU6050,两个加起来的成本也就不到二十元,而GY-86就比较贵了,它在55元左右,是因为GY-86包含了MPU6050(三轴加速度计和三轴陀螺仪) +HMC5883L(三轴磁强计) +MS5611(高精度气压计,就是为了这颗气压计),下面简单说一下它们的作用

  1. MPU6050:主要四轴的姿态传感器
  2. HMC5883L:磁强计一个用途是用来锁定航向,另一个用途是GPS配合磁强计使用才能实现GPS HOME(失控返航)等功能,这也就是MWC为什么要设置当地地磁偏移量(后续会讲)的原因。
  3. MS5611:它的测量精度很高,再刷入Multiwii 2.2固件,那四轴的定高精度不是一般的好。大家如果自己做飞控的话,还是多花点钱买个MS5611,定高效果很不错

image.png

主控程序

我们首先需要一个FTDI USB下载器,用来给Arduino pro mini进行上传固件,这个是需要驱动的
下载地址:https://www.ftdichip.com/Drivers/VCP.htm
image.png
image.png

一共6个针脚从DTR依次对接到飞控板上Pro mini 对应的针脚即可,但是需要注意的一个地方是针脚VCC供电。

image.png
从原理图可以看到,RAW经过 MIC5219 处理后,得到 VCC,度娘了下 MIC5219,它有反向电流保护,所以从VCC上接入供电5V,RAW是不会输出的。当然这个在烧录的时候没什么问题,但是后期我们需要调试,所以笔者直接把VCC的供电,接入到RAW上即可,加压供电如下图。
image.png

打开下载好的固件文件夹中的MultiWii.ino

image.pngimage.png
image.png
image.png
image.png
image.png
整个飞控程序中,我们需要配置的只有config.h。具体的配置内容,会在后续的章节中解析。

MultiWii GUI

 MultiWii GUI就相当于地面站,可以查看PID参数传感器数据,姿态,遥控器通道信息以及GPS信息等等。往飞控里烧玩程序之后,即MultiWiiConf文件夹下的MultiWiiConf.exe。要想运行MultiWiiConf.exe,得先安装JAVA虚拟机。Multiwii 的GUI程序需要JAVA虚拟机的支持,需下载安装:[http://java.com/zh_CN/download/manual.jsp?locale=zh_CN](http://java.com/zh_CN/download/manual.jsp?locale=zh_CN)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/617118/1661529100166-e4b09473-5969-44cd-8fca-f66c260e056e.png#clientId=u507b509e-0704-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=138&id=ud138c1bd&margin=%5Bobject%20Object%5D&name=image.png&originHeight=275&originWidth=614&originalType=binary&ratio=1&rotation=0&showTitle=false&size=35942&status=done&style=none&taskId=uddeccf87-6e1f-436a-bc07-09db48b1a32&title=&width=307)

image.png

image.png

目录
相关文章
|
IDE 开发工具
【DIY无人机】电调固件升级
如何升级固件,提升电调性能?
867 1
【DIY无人机】电调固件升级
|
12天前
|
程序员
DIY|ikbc C87 机械键盘有线改蓝牙小结
ikbc C87 机械键盘有线改蓝牙后,我变得焦虑了。
17 0
|
6月前
|
网络协议 Go 网络安全
一种远程升级PLC和HMI组态屏程序的方法-做个笔记
一种远程升级PLC和HMI组态屏程序的方法-做个笔记
103 2
|
11月前
|
监控 安全 物联网
一款多功能露营专用氛围灯
一、主要功能 使用COB灯丝+3D打印构建精妙的螺旋线条露营灯 选用IP5328P作为电源主控,支持双向PD快充,支持PPS档位输出 电池仓结构设计兼容26650(不可更换)或21700/18650(可更换)电池 使用WS2812灯组成顶部灯圈,可以实现照明灯+氛围灯的双重功能 通过STM32与5328进行iic通信,获取充放电数据,并通过BLE透传 通过BLE与手机APP连接,实现对“萤辉”的掌上控制(目前存在一定bug) 二、硬件说明 请注意,本项目一共有4片PCB,其中两片4层板,两片2层板(均在10*10以内可以免费打样) 硬件说明将会根据PCB编写,以便对电路设计进
110 0
|
传感器 芯片
聊聊身边的嵌入式,方便好用的人体感应灯
聊聊身边的嵌入式,方便好用的人体感应灯
|
定位技术
【DIY无人机】导航板(I2C-GPS)烧录
GPS,其实应该是指Global Navigation Satellite System全球导航卫星系统,即GNSS,主要是用来定位的系统,目前全球定位系统有下面几种.....
614 1
【DIY无人机】导航板(I2C-GPS)烧录
|
监控 安全 网络架构
解放你的插线板 - Anker 6 USB 口桌面充电器评测
随着科技的发展,越来越多的数码产品在侵蚀着我们的生活,各种手机、平板、kindle、移动电源等。这样一来,当所有设备在同一时间充电的时候,你的插线板插口有可能不够用,而且有这么多插头还会让你的桌面变得更加凌乱,同时在给设备适配充电器的时候也将会耗费你一定的时间,当我们去旅游时携带这么多充电器,也会使我们更累人......这一切,只要有了 ANKER 60W 6 USB 口桌面充电器后,所以问题都被解决。
257 0
解放你的插线板 - Anker 6 USB 口桌面充电器评测
|
数据挖掘
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)
912 0
STM32入门开发: 制作红外线遥控器(智能居家-万能遥控器)
|
Web App开发 物联网 API
DIY物联网 5 - 手机控制风扇
在[《DIY 物联网 4 - 遥控控制风扇》](http://www.liuguangli.win/archives/601)中实现了用空调遥控来控制一台普通的风扇,沿着上一章的基础,这一章我们来一个更酷的: 用手机控制风扇。
2915 0