基于STM32和OV5640的无人机农情监测系统

2018-09-21 10:46杨颂张少伟孙培壮郭军
物联网技术 2018年7期
关键词:农情飞行器摄像头

杨颂 张少伟 孙培壮 郭军

摘 要:现有的农情监测设备在实际作业中常会遇到作业范围小、实时监测难、作业效率低等难题。为解决这些难题,设计了一种以无人机为平台的农情监测系统。将OV5640图像传感器、STM32处理器、4G通信等模块搭载于无人机上,由OV5640采集农作物的图像数据,通过DMA方式送入内存并通过4G网络发送至服务器,管理者通过PC客户端了解农情并制定管理方案。该系统具有低成本、高效率、高灵活性等特点。测试结果表明,系统稳定可靠,采集到的图像十分清晰,在精准农业领域具有广泛的应用前景。

关键词:农情监测;图像采集;无人机;STM32;4G网络

中图分类号:TP92;TP212 文献标识码:A 文章编号:2095-1302(2018)07-00-04

0 引 言

随着信息技术的快速普及,农业向信息化方向迈进,精准农业成为农业发展的主题之一。精准农业采用信息技术,定位、定时、定量地进行农事操作与管理,达到低投入、高收入、低污染、高效率的目的[1]。农情监测是精准农业的核心之一,需要获取及时、客观、准确、大范围的农情图像信息,如作物长势、农业灾害、作物种植面积、种植结构等信息[2]。而卫星遥感存在成本高、误差大等问题,传统的监测设备又存在作业范围小、实时监测难等问题,无法满足精准农业的发展要求[3,4]。因此,将无人机及遥感技术应用到农业方面可解决以上问题,开发出满足精准农业的无人机农情监测系统。

1 系统总体设计

为了解决现有农情监测设备面临的难题,本文设计了一种基于STM32和OV5640的无人机农情监测系统。系统总体结构如图1所示。系统由PC客户端和搭载于无人机上的OV5640摄像头、STM32F429处理器、4G通信、电源等模块组成。PC客户端为上位机,无人机及其搭载的模块为下位机。OV5640摄像头拍摄到的农作物图像数据通过STM32F429的DCMI数字摄像头接口送入处理器进行下一步处理,处理器通过DMA将图像数据送入内存,同时通过控制4G通信模块将采集到的图像数据传输到服务器,连接因特网的PC客户端负责把采集到的农作物图像数据保存并呈现给管理者,同时还需控制无人机飞行。

2 系统硬件设计

2.1 STM32F429处理器

2.1.1 STM32F429处理器简介

下位机处理器采用Cortex-M4内核的STM32F429。最高主频为168 MHz,提供2 MB的FLASH,192 kB的SRAM,16个DMA通道,每个DMA通道有4×32位FIFO。拥有单精度浮点运算单元,支持对图像信息使用DSP进行高速图像处理[5]。值得注意的是,该处理器内置DCMI数字摄像头接口,能够驱动摄像头采集图像数据并进行加工处理。

2.1.2 DCMI接口

STM32F429内置有同步并行的DCMI数字摄像头接口,能够接收由CMOS摄像头输出的8位、10位、12位、14位图像数据。可以采用DMA方式传输,当DCMI_CR寄存器中的CAPTURE位被置为1时,DMA接口被激活。当其寄存器中接收到一个32位数据时,触发一个DMA请求。

DCMI接口的信号有以下几种:

(1)数据输入信号D[0:13]:用于接摄像头的数据输出;

(2)行同步输入信号HSYNC:指示行的开始或结束,用于接摄像头的HSYNC/HREF信号;

(3)帧同步输入信号VSYNC:指示帧的开始或结束,用于接摄像头的VSYNC信号[6];

(4)像素时钟输入信号PIXCLK:用于接摄像头的PCLK信号。

DCMI信号波形如图2所示,结构框图如图3所示。

2.2 图像采集模块

2.2.1 OV5640摄像头

系统的任务是向管理者提供高质量、清晰的农作物图像信息,因此采用OmniVision公司設计的CMOS图像传感器OV5640。该传感器支持输出最大为500万像素的图像(2 592×1 944),具有自动对焦功能,带有两个1 W的高亮LED闪光灯,支持夜间或者光线昏暗的拍摄场景。

通过SCCB总线控制图像质量、数据格式和传输方式,包括伽玛曲线、白平衡等功能的设置。可以输出整帧、子采样等方式的各种分辨率为8或10位的图像数据。QSXGA(分辨率为2 592×1 944的输出格式)图像最高达到15帧/秒[7,8]。

2.2.2 SCCB总线

由于I2C和SCCB总线类似,因此处理器可使用I2C外设与它通信。通过SIO_C和SIO_D两根数据线传输时钟信号和数据信号,从而控制摄像头。

起始信号指SCCB开始传输发生在SIO_C为高电平时,SIO_D出现一个下降沿,如图4所示。停止信号指SCCB停止传输发生在SIO_C为高电平时,SIO_D出现一个上升沿,如图5所示。数据有效性指在数据传输过程中,当SIO_C为高电平时,SIO_D上的数据稳定[9],如图6所示。

2.2.3 DVP接口

OV5640支持数字视频接口DVP,同时处理器STM32F429内置的DCMI接口也支持DVP接口,因此可以采用OV5640的DVP接口向处理器输出图像数据。OV5640提供的DVP接口虽是10位,但也支持8位接法,使用时一般采用8位连接方式,如图7所示。

2.2.4 图像数据输出时序

OV5640的输出信号包括像素时钟信号PCLK、帧同步信号VSYNC和行同步信号HREF/HSYNC。在PCLK,VSYNC和HREF/HSYNC的控制下由Y2~Y9的8个引脚输出图像数据。

行输出时序如图8所示,图像数据在HREF为高电平时输出,采用8位接法,每一个PCLK时钟输出一个8位数据。

QSXGA模式下的帧时序如图9所示,处理器可以按照这个时序读取OV5640的图像数据。

2.3 4G通信模块

相比2G和3G网络,4G网络不仅数据传输速度大大提高,且时延较低,因此能够满足本系统实时传输高视频数据的要求。本系统采用移远EC204G模块,该模块同时支持LTE,UMTS和GSM/GPRS网络,最大上行速率为50 Mbps,最大下行速率为100 Mbps,供电电压在3.3~4.3 V之间,内置多个标准接口。通过串口和处理器连接,并以AT命令来控制。本系统将4G模块插入Mini PCIE转接板,从而和STM32单片机相连接,实现串口通信,由于4G模块自身内部集成有TCP/IP协议,因此使用TCP/IP协议与服务器通信,实现数据传输。STM32单片机与4G模块之间的连接如图10所示。

2.4 四旋翼飞行器

下位机作为图像采集设备,要求无人机具有体积小,机动灵活,维护方便等特点,因此采用四旋翼飞行器作为搭载设备。同时,由于无人机搭载的各类模块数量较少且普遍较轻,对动力没有过于苛刻的要求,因此对各种姿态传感器进行如下设计。

2.4.1 无刷电机和电调

在下位机工作时,无人机要尽量机动灵活,因此采用A2212-1400 kV型号的无刷电机,该电机运转顺畅,体积小,效率高,调速宽度大。同时采用好盈30 A电调,持续输出电流为30 A,短时电流为40 A,具有欠压保护,过压保护,过热保护等功能。

2.4.2 姿态传感器模块

飞行器在飞行过程中需要测量的姿态信息一般包括加速度、角速度、航向和高度,进而采用特定的算法来控制飞行姿态。本文采用集成了3轴加速度计和3轴陀螺仪的MPU6050测量飞行器的加速度和角速度;采用HMC5883L磁力计测量飞行器的航向;采用MS5611气压计测量气压,并根据式(1)计算出海拔高度,分辨率为0.1 m,再根据地面的海拔高度就可以算出飞行器相对地面的高度了。

3 系统软件设计

3.1 下位机软件设计

3.1.1 DCMI驱动OV5640

DCMI驱动OV5640步骤如图11所示。这部分软件设计的重点是与OV5640和DCMI相关的函数功能设计,以下是几个较为重要的函数:

(1)与OV5640相关:

①OV5640_Init函数:初始化OV5640相关的I/O口,并完成OV5640的寄存器序列初始化;

②OV5640_ImageWin_Set函数:用于设置ISP输入窗口;

③OV5640_OutSize_Set函数:用于设置预缩放窗口和输出大小窗口;

④OV5640_Focus_Init函数:用于初始化自动对焦功能;

⑤OV5640_Focus_Single函数:用于实现一次自动对焦;

⑥OV5640_Focus_Constant函数:用于开启持续自动对焦功能。

(2)与DCMI相关:

①DCMI_IRQHandler函数:用于处理帧中断,可以实现帧率统计和JPEG数据处理等;

②DCMI_DMA_Init函数:用于配置DCMI的DMA传输;

③DCMI_Init函数:用于初始化STM32F407的DCMI接口;

④DCMI_Start函数:用于开启DCMI接口;

⑤DCMI_Stop函数:用于停止DCMI接口。

3.1.2 飞行器的控制

通过PC客户端控制飞行器的飞行状态,主要过程是通过客户端发出指令和数据,下位机通过4G通信网络接收处理器综合姿态传感器的测量数据,采用特定的算法计算后发出控制量控制飞行。

目前用来控制飞行器的算法有多种,但应用较为普遍的是PID控制,其中包括比例、积分及微分的计算过程,具有结构简单、高可靠性、高稳定性的特点[10]。

3.2 上位机客户端设计

PC客户端基于Java的可扩展平台Eclipse开发,其功能包括获取服务器数据并显示图像、飞行器控制、飞行器高度显示等。具体功能如下:

(1)图像显示:客户端从服务器获取图像,并进行一定的处理。

(2)控制指令:通过客户端向飞行器发送控制指令,控制飞行器的飞行方向与高度。

(3)高度显示:显示客户端从服务器获取的飞行器高度信息,为用户提供调整飞行器高度的参考信息。

3.3 服务器与数据库的搭建

在实验测试过程中,使用迅为电子的ARM9 Linux开发板作为服务器与数据库的搭载平台,进行Linux系统编程,从而实现网络通信,即连接4G模块与STM32单片机进行数据传输。利用花生壳软件实现内网穿透,将服务器与已存在IP地址的端口对应起来(端口映射),以保证4G模块可以访问服务器进行数据传输。服务器接收数据并存储后,就可以在客户端访问服务器,以获取从摄像头采集到的数据。同时服务器还负责接收来自客户端对四旋翼飞行状态的控制指令,并且将该指令发送给下位机控制飞行器飞行。

4 系统测试结果

系统测试在一片白皮松种植地里进行,无人机低空飞行进行农情监测。下位机如图12所示。调试下位机和上位机的通信状态后,从客户端控制无人机在距离地面3~10 m的高度飞行,打开摄像头采集图像数据,图像数据经STM32F429处理器处理之后通过具有高速特点的4G网络传输至服务器,最后在客户端可以实时监测植被的生长状态,上位机客户端图像显示如图13所示。

测试结果表明,系统具有较强的稳定性、可靠性。下位机部分,无人机飞行平稳;上位机部分,客户端显示的图像清晰,色彩真实,失真较小。因此系统在通信稳定度、图像清晰度等方面均满足设计要求。但是在续航能力、灵活度等方面还有待提高。

5 结 语

本文设计了一种基于STM32和OV5640的无人机农情监测系统,由无人机及其搭载的OV5640图像传感器、STM32F429处理器、4G通信等模块和PC客户端上位机组成。利用500万像素的图像传感器OV5640采集图像,并通过DCMI接口送入处理器进行处理,采用DMA方式存储,同时利用4G网络传输至服务器,最后可以在连接因特网的PC客户端上实时监测农田里的农作物。测试结果表明,相比现有的农情监测设备,本系统具有稳定性高、效率高、成本低等特点,可以大范围、实时、精准、高效率地进行农情监测,能够满足精准农业发展中农情监测的要求,在信息化农业领域的应用前景十分广阔。

参考文献

[1]胡承健.加速宁夏农用无人机开发应用 促进精准农业发展[J].宁夏农林科技,2014,55(5):8-10.

[2]李中元,吴炳方,GOMMES René,等.農情遥感监测云服务平台建设框架[J].遥感学报,2015,19(4):578-585.

[3]李继宇,张铁民,彭孝东,等.小型无人机在农田信息监测系统中的应用[J].农机化研究,2010,32(5):183-186.

[4]贾鹏宇,冯江,于立宝,等.小型无人机在农情监测中的应用研究[J].农机化研究,2015,37(4):261-264.

[5]徐伦.基于STM32与图像采集模块OV5640的物品表面缺陷检测仪设计[J].应用能源技术,2017(10):53-56.

[6]曾文兵. 基于STM32F407的视频采集与传输系统设计[D].武汉:华中师范大学,2016.

[7]张震. 基于FPGA的USB3.0高速图像采集系统设计与图像特征提取算法研究[D].西安:西安电子科技大学,2015.

[8]赵厉. 基于FPGA的彩色球形目标检测技术研究[D].柳州:广西科技大学,2015.

[9]郑焱雄,赵立宏.基于STM32F4和OV5640尿液分析仪的图像采集系统设计[J].科技风,2017(17):74-75.

[10]王文建. 四旋翼无人机控制系统设计[D].乌鲁木齐:新疆大学,2017.

猜你喜欢
农情飞行器摄像头
浙江首试公路非现场执法新型摄像头
高超声速飞行器
摄像头连接器可提供360°视角图像
重庆市农情调度体系建设现状及对策分析
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
复杂飞行器的容错控制
基于 Zigbee 网络的农情监测系统设计
神秘的飞行器
新疆农情信息调度系统建设现状及对策
适应现代农业发展 创新农情服务方式