### 1.前言
这是我和我的队友们在实验室共同奋斗了两年多的最后一次竞赛,也是最重大的一个比赛。收获国赛一等奖我们非常激动。本次比赛设计了一个基于自制飞控板的四旋翼飞行器的植保飞行器,其中包括了双目摄像头、激光雷达、自制图像处理模块、超声波测距模块等传感器。植保飞行器能够根据赛题要求,自动控制农药的播撒。
- - -
### 2.团队介绍
我和一位队友来自通信学院通信工程专业,另一位队友来自通信学院电子信息工程专业。
- - -
### 3.项目分析
![捕获.PNG]
![捕获2.PNG]
- - -
### 4.作品简介
经过多次测试,飞机能很好的完成“播撒农药”任务,飞行高度稳定。错误播撒的概率极低。平均耗时在1分钟左右,满足时间限制要求。降落精准,偏差始终小于5cm。
经过多次测试,飞机“播撒农药”之前能够正确判断下方是否为“播撒区域”。每次“撒药”都精准、正确。能够快速寻找到杆塔,正确识别出条形码内容,并按照要求精准降落。
### 5.原理图电路分析
1.飞控电路设计
mcu原理图:
![3.png]
馈电原理图:
![1.png]
IMU原理图:
![2.png]
其它外部接口原理图:
![4.png]
**1.1 **基本设计思路**
**
本系统以TM4C129作为核心器件,制作飞控,飞控成本较低,拓展性强。
TM4C129是一种基于ARM Cortex-M4平台单片机,移植实时操作系统FreeRTOS,使用C语言编程,作为飞控有足够的运行效率和灵活度。在PCB上集成了用于遥控控制的NRF24L01、九轴传感器MPU9250、气压计BMP280以满足飞控基本功能,同时引出了烧录口、UART、SPI、I2C和PWM口,使飞控能连接各种外设以丰富其功能。
**1.2 ******电路设计******
**
***1.2.1 *********
电源电路设计*********
***
使用AMS-1117(3V3)将分电板输入的5V电压转换为3.3V,前后级并联100uf
钽电解电容与0.1uf
去耦电容,避免直流电源出现波纹与自激,使用LED灯指示是否正常工作。PCB上共设计了两路电源电路,一路给核心TM4C129、陀螺仪MPU9250、气压计BMP280以及按钮、拨码、LED供电,在该路电源上并联了多个0.1uf去耦电容,滤除高频杂波,保证所有器件运行稳定。另一路给引出的拓展接口供电,防止接口连接的外设出现问题,保护控制电路部分。所有电路以铺铜共地。
***1.2.2 *********核心电路设计*********
***
TM4C129构成可运行的基本系统,需要电源、晶振、逻辑电平配置和
复位电路。逻辑电平和电源皆为3.3V电压,晶振采用16MHz无源晶振,晶振的IN、OUT端与单片机0SC1、0SC0口连接,与地并联12pf负载电容。考虑到无人机的使用场景,在需要复位的情况下,切断电源会更为安全,且复位按钮会挤占PCB空间,故采用由10K电阻与0.1uf电容构成的简单复位电路,即上电时依靠电容充电时间复位。
***1.2.3 *********传感器电路设计*********
***
通过I2C总线方式,在一个I2C口上挂载MPU9250与BMP280两个从器件。BMP280气压计3.3V供电,通过返回的气压与温度数据粗略算出高度变化。MPU9250采用3.3V供电,芯片下方焊盘采用打过孔、连铜皮方式散热,MPU9250 自带的数字运动处理器,非常方便的实现姿态解算,通过I2C输出16位的数字量和单片机进行数据交互,同时大大降低了开发难度。
***1.2.4 *********PWM输出电路设计*********
***
电调接口采用3孔2.54mm弯头排针,1、3口分别接单片机PWM引脚与地,2脚悬空。舵机接口采用3孔2.54mm排针,1、2、3口分别接单片机PWM引脚、5V、地。
***1.2.5 ***外设接口电路设计***
***
从单片机上引出了4个UART口、2个SPI口和1个I2C口的通信接口。两个SPI口都为3.3V供电,分别连接NRF24L01和光流。NRF无线模块用于遥控数据传输,光流用于辅助无人机室内定位。 UART口和I2C口都具备电压选择设计,可以通过短接的方式选择供电为3.3V或5V,以提高外设适用性。其中,UART1默认连接超声波KS103用于无人机精确定高。**
**
- - -
### 6.PCB设计分析
板图如下:
![777.png]
信号线线宽0.254mm,电源线宽0.762mm,
数字电路 ,注意铺铜与泪滴。
- - -
### 7.实物展示
![微信图片_20211219170431.jpg]
任务演示视频:[https://www.bilibili.com/video/BV1rZ4y1D7yv?spm_id_from=333.999.0.0](https://www.bilibili.com/video/BV1rZ4y1D7yv?spm_id_from=333.999.0.0)
- - -
### 8.作品装配
## 8.1 定高方案的论证与选择
方案一:使用激光定高
利用发射激光和接收激光来确定飞机的高度实现定高。该方案容易受到地面材料的影响,而且光学系统需要保持干净,否则将影响测量。
方案二:使用气压计定高
根据气压与高度的关系求出飞机所处高度实现定高。该方案容易受到气压影响,气压数据有很大的滞后性,并且四轴飞行过程垂直向下的风也会干扰气压读数。
方案三:使用超声波定高
利用发射超声波和接收声波来确定飞机的高度实现定高。超声波比较耐脏污,不会受到传感器上尘土影响;测距范围为3厘米到5米,精度在1厘米,受周围障碍物影响大,适合与室内测量。考虑到场地障碍物少,该方案可靠性高。
方案四:使用双目摄像头定高
根据T265双目摄像头景深数据来获得飞行器z方向的位置。T265双目摄像头z方向的精度为3个方向中最低的一个,但是由于双目摄像头竖直向上安装,所以不易受到障碍物的影响。
综合以上分析,选择使用超声波和双目摄像头融合定高,最大化高度数据的可靠性。
## 8.2定点悬停方案的论证与选择
方案一:光流定位
采用PMW3901模块,该模块是一款高精度低功耗光学追踪传感器,具备非常高的感光度。光流传感器在复杂地面可以做到精确定位。但是本次任务的场地没有纹理细节,颜色较为单一,光流传感器输出的数据置信度较低,且容易发生漂移。经初步测试,该方案不可行。
方案二:激光雷达定位
A2M8激光雷达传感器给出的数据精度极高,但根据原始点云数据结算位置数据的算法对算力要求较高,且延迟较大。激光雷达数据刷新率与自身转速相关,若想得到高刷新率的位置数据,需要增大转速,这会对飞机的姿态控制带来不利影响。激光雷达传感器自身不集成IMU,需要使用飞机姿态数据对位置数据进行修正,再度增加了延迟。经初步测试,该方案不可行。
方案三:T265双目摄像头定位
将T265双目摄像头竖直朝上安装,通过获取飞机正上方图像信息进行自定位。飞机的正上方不会有障碍物所以干扰较小。同时T265双目摄像头内部集成了IMU,所以不需要调用飞机的姿态数据进行位置数据的修正,故延迟较小。经初步测试,该方案可行。
综合以上三种方案,选择方案三。
## 8.3 图像处理模块的论证与选择
方案一:使用OV2640摄像头的Stm32f407图像处理
此模块可以对单个目标的处理,但该芯片处理速率与可用资源有限,本次需要拍摄的条形码较小,且需要精确解码。故此模块不符合要求。
方案二:使用自制K210模块
K210是基于Python的嵌入式机器视觉模块,开发环境友好,除了用于图像处理外,还可以用Python调用其硬件资源,进行I/O控制。经过初步测试,本模块可以很好地判断正下方为播撒区域还是非播撒区域,并且可直接对激光笔进行控制,达到可观的效果。
方案三:使用树莓派驱动USB摄像头
USB摄像头的分辨率较高且刷新率较快,可以在较远距离拍摄到清晰的条形码图像。树莓派4b算力较大,可以很好的运行条形码识别的算法。
综合以上三种方案,选择方案二与方案三,可完成所有数字图像处理需求。
## 8.4寻杆方案的论证与选择
方案一:使用视觉模块寻杆
将摄像头固定在飞行器上,飞行器自旋一周寻找杆塔。由于杆塔是黑色的且很细,所以无论是其颜色特征还是形状特征,都不利于通过数字图像识别寻杆。
方案二:使用超声波模块寻杆
将超声波测距模块固定在飞行器侧面上,使用超声波模块寻杆。超声波束角较大,在测得杆塔离飞机的距离后仍不能很好的确定其位置。单个超声波模块可覆盖的范围有限,在寻杆时若不结合飞机自旋会产生盲区。
方案三:使用激光雷达寻杆
激光雷达可全方位探测,数据精确度较高。无论杆塔在作业区内的任何位置,都可以被精确定位出来。经过初步测试,此方效果非常好。
综合以上三种方案,最终选择方案三。
## 8.5播散方案的论证与选择
方案一:
使用飞控按照路径进行飞行,使用视觉模块判断自身位置,在合适的位置进行撒药。因为地面网格特征非常不明显,故此方案难度较大。
方案二:
使用飞控进行定速巡航,当双目摄像头判断位置到达网格中心时,调用K210进行判断和撒药。经过初步测试,此种方案速度最快,但是可靠性略低。
方案三:
使用飞控根据里程表,将飞机步进移动到每个网格的中央,然后调用K210进行判断和撒药。经过初步测试,此方案可靠性最高,速度较快。
综合以上三种方案,为了最大化可靠性,最终选择方案三。
- - -
安装框图:
![400框图.PNG]
以下为各模块的介绍:
飞行电脑1使用LattePanda开发板([https://item.taobao.com/item.htm?spm=a230r.1.14.16.6ca542a0deddPY&id=562386233597&ns=1&abbucket=18#detail](https://item.taobao.com/item.htm?spm=a230r.1.14.16.6ca542a0deddPY&id=562386233597&ns=1&abbucket=18#detail))
可以使用标准windows10操作系统,驱动各个传感器非常方便,环境好配。
飞行电脑2使用树莓派4b开发板([https://item.taobao.com/item.htm?spm=a230r.1.14.22.694a261enlqyzG&id=619656726932&ns=1&abbucket=18#detail](https://item.taobao.com/item.htm?spm=a230r.1.14.22.694a261enlqyzG&id=619656726932&ns=1&abbucket=18#detail))
视觉模块使用MaiXy开发板([https://detail.tmall.com/item.htm?spm=a230r.1.14.16.466357ce2j4Dl8&id=620956683354&ns=1&abbucket=18&skuId=4383099480887](https://detail.tmall.com/item.htm?spm=a230r.1.14.16.466357ce2j4Dl8&id=620956683354&ns=1&abbucket=18&skuId=4383099480887))
简单好用的轻量化数图模块,集成了丰富的IO资源。
- - -
### 9.程序设计
主程序流程图:![主流程图.PNG]
- - -
### 10.总结
参加完竞赛,感觉只有一个字--累!四天三夜紧张拼搏的日子已经过去,时间飞快走过的感觉仿佛依旧,充实忙碌的情景依然时时浮现眼前。经过这次竞赛,我学到了许多东西,拓广了电子信息技术的认识,锻炼了自己的思维,主要有以下几点收获:
1、有利干我们学习能力的提高。这里所说的学习能力包括获取资料的能力、理解前人思路的能力、系统设计能力、动手能力、分析排除故障能力、表达能力等很多方面,电子设计竞赛的赛制决定了上述能力缺一不可。
2、有利于我们团队精神的培养。在课堂之外实际的工作中,我们一般都要与人合作共同完成某一项目,这就非常需要团队精神,而这一点在课堂常规教学中得到的锻炼是很有限的。电子设计竞赛要求三人组队参赛,集体计算成绩,这就要求三个人必须互相信任、互相配合、分工合作。在顺境时小组成员要相互提醒保持冷静,逆境时要相互鼓励共度难关,出现问题时不能相互埋怨。三人最好是软件硬件机械各有所长,然后就是配合要默契,队伍要团结;
3、有利于我们心理素质的锻炼。电子设计竞赛的赛制决定了竞赛结果的产生会有很大的不确定性,一个极其偶然的失误都会导致最终的不理想结果,因此需要参赛者具备良好的心理素质,全心全意投入紧张激烈的比赛,并且以一颗平常心面对最终的结果。顽强的意志力,通过这次比赛使我重新认识了自己,96小时的连续奋战,不敢相信我的体力会如此充沛,能把题目做出来,这次比赛也让我明白了一个道理:人的潜能是巨大的,关键是自己怎样去挖掘。
4、有利于我们应变能力的提高。电子设计竞赛的赛制要求我们在规定时间内完成规定的题目,时间急迫会出现各种意想不到的结果,所以我们必须在尽可能短的时间内解决问题,这就需要在平时的训练中提高应变能力。多尝试,赛题出了之后,只有经过多种尝试才能知道哪种方案才是最好的。
总之,这次电子设计竞赛是我们很多人美好的回忆,它也让我成长了很多。让我在充分展示了自己之后也更深刻的了解了自己,了解了自己的实力,了解了自己的不足,这将是一笔宝贵财富,它会激励我在未来的道路上砥砺前行。竞赛过程给我的历练不仅仅在学习和科研上,更多的是心理上的成熟。我的大学也因为这项比赛而更加精彩。