基于 AVR 单片机的自动对靶喷雾控制系统设计
众所周知,我国农药生产技术处于国际先进水平,而我国植保机械和农药使用技术严重
落后的现状与我国高速发展的农药水平极不相称,已严重妨碍了农作物病虫害的防治,带来
了诸如农药利用率低、农产品中农药残留超标、环境污染、作物要害、操作者中毒等负面影
响。农药利用率最好的也不足 30%,农药流失量高达 60%~70%,不仅经济损失重大,也造
成了严重的“农残问题”和环境污染。而采用自动对靶喷雾技术,可节省农药 50%~80%,因
此开展对靶喷雾技术研究将成为我国植保机械的下一个重要的研究方向。为此,本文提出了
一种以 AVR 系列的 ATmega16 单片机为 CPU,以 PC 机作为上位机,以摄像头采集的信号
作为触发信号,结合单片机控制技术和数字图像处理技术,实现自动对靶喷雾的控制系统。
2. 系统工作原理
该系统结构框图如图 1 所示,该实验装置以 PC 机作为上位机,以转盘的转动模拟拖拉
机的行走,转盘上放置着模拟杂草作为靶标。通过 PC 机对由 CCD 摄像头采集进来的信号
进行处理,对采集的彩色图像用绿色占优法进行颜色分割,当绿色分量大于一定阀值时,便
判定摄像头下有靶标,识别出靶标后,将控制信号由串口发送给单片机,根据转盘速度的不
同,设定相应的延迟时间,对信号进行延迟处理,当杂草到达喷头下方后,控制执行机构执
行喷雾,从而实现自动对靶喷雾。
3. 硬件结构设计
该硬件系统主要用于实现以下功能:(1)与上位机实现串口通信;(2)提供人机口,
可根据转速不同,设定不同延迟时间;(3)输出控制信号控制电磁阀的开闭。根据系统实
现的功能要求、可靠性、产品成本以及使用方便等因素,设计如图 2 所示的自动对靶控制
器硬件原理图。
3.1 单片机选型
该系统选择 AVR 系列的单片机 ATmega16 作为系统的 CPU,AVR 是 Atmel 公司生产的
高性能、低功耗的 8 位新型单片机,采用先进的 RISC 指令结构,执行速度快,可达到
1MIPS/MHZ,端口驱动能力强(20~40mA),而且全部具有在线下载功能。ATmega16 属于
AVR 的 mega 系列高档单片机,具有 16K 字节的系统内可编程 Flash,以及一个通用同步和
步串行接受器和转发器(USART),能为主机或从机提供时钟的同步操作,能大大简化单
片机与 PC 机的串口通信。 而且 ATmega16 单片机还具有 JTAG 接口,通过 JTAG 接口可进
行在线程序下载以及片上调试。本系统就是采用 JTAG 接口进行在线程序下载以及片上调试
的。
3.2 数据显示以及按键设定
考虑到实际的对靶延迟时间,采用 2 位共阴极超亮 LED,延迟时间范围为 0.0~9.9 秒,
IN74HCX245 作为 LED 的显示驱动器。其中管脚 1 为方向选择位,管脚 19 为输出使能位,
管脚 1 接高电平,管脚 19 接地,表明数据输出方向为从 A 到 B。该系统总共有 4 个按键,
分别为 2 个加按键,2 个减按键,S2、S3 为加按键,每按下一次分别为加 0.1s 和 1.0s,S4、
S5 为减按键,每按下一次分别为减 0.1s 和 1.0s。按键采用扫描方式,初始化时设定 PB0、
PB1、PD4、PD5 位状态为输入,高电平,内部电阻上拉使能,通过扫描上述四位是否为变
为低电平,判断按键是否按下。按下后将相应的加减标志位置 1,然后再相应的改变延迟时
间,并送数码管显示。
3.3 通讯设计
下位机与上位机的通讯采用 RS232 总线标准,由 MAX232 与 ATmega16 单片机的 USART
串行口构成与上位机的通讯电路。TXD 和 RXD 为 ATmega16 的 USART 串行口的发送引脚
和接收引脚。
3.4 输出控制
单片机的控制信号通过 PC0 引脚输出。PC0 接固态继电器(SSR),通过固态继电器控
制电磁阀的开闭。当 PC0 为高电平时,继电器吸合开关,接通电源,打开电磁阀进行喷雾;
当 PC0 为低电平时,开关断开,电磁阀关闭,不进行喷雾。
4. 软件结构设计
自动对靶控制系统运行程序采用 C 语言编写,采用模块化设计,整个程序由功能模块
子程序构成。上位机软件是基于 Visual C++6.0 开发的。
4.1 下位机软件结构
下位机软件的主要软件模块有初始化、延时、显示、键盘扫描、中断处理等功能模块。
其中延时函数采用循环计数的方法,单片机晶振频率为 7.3728MHZ,计数循环次数为 1832,
在 AVR Studio 下仿真,1ms 误差为 0.44us,所以完全可以满足实际要求。初始化时延迟时
间为 0.0s,串口为异步通信模式,8 位数据位,2 位停止位,波特率设为 9600。其主程序流
程图如图 3 所示。
4.2 上位机软件结构
上位机软件是基于 Visual C++6.0 开发的。上位机软件主要由两部分组成:(1)串口通信
部分,(2)图像处理部分。
其中串口通信通过串口类 CSerialPort 实现[3]。图像处理部分采用采集卡实时采集图像,
该系统的图像采集卡为嘉恒中自公司的 OK_C30A 采集卡。该卡是基于 PCI 总线,能采集彩
色又能采集黑白图像的采集卡,适用于图像处理、工业监控和多媒体的压缩、处理等研究开
发和工程应用领域[8]。通过该公司提供的 API 实现图像的采集和显示。图像的实时采集通过
VC 中的响应 WM_TIMER 消息实现,即每隔一定时间通过在 OnTimer 函数中调用采集卡的
API 将图像采集进来并显示。而由于杂草为绿色,所以用 2g-r-b 分量对图像进行分割[4],当
其值大于一定阀值后便认为此像素为绿色,当绿色像素所占整个图像超过一定比例时便判定
摄像头下有杂草,然后通过串口将信号发送给下位机。
- Flash损耗均衡的嵌入式文件系统设计(06-01)
- 锁相环控制及初始化简析(08-27)
- 基于AVR单片机的ISP1362OTG设计(09-06)
- 基于AVR单片机的串口转FSK的通信模块设计(01-23)
- 案例分析:基于AVR32的隧道环境监测系统(03-18)
- 科技帮我们远离灾难:灾难检测飞行器(03-18)