基于STM32 的智能耕种机器人系统设计
2022-06-23秦学珍
秦学珍,刘 萍
(河南开放大学,河南 郑州 450046)
0 引言
我国是一个农业大国,但当前国内农业信息化、智能化的程度总体不高。对于人口众多的中国而言,对粮食的需求较大。为了降低农民的劳动强度、提高劳动的生产率、降低生产成本、提高农作物的产量、解决劳动力不足,实现农业智能化迫在眉睫[1]。随着传感器技术、电子技术和微电子技术的发展,农业生产的智能化、精细化已成为现实。传统的农业生产自动化设备体积庞大,无法实现小面积土地的自动化操作,导致很多丘陵地、山区地依然采用最原始的农业生产方式[2]。为此,本文提出了基于STM32 智能耕种机器人的系统,此系统引进了先进的传感器采集技术。在克服传统农业自动化设备环境适应性差的同时,此系统能够保证农业操作的准确性和实时性。同时,系统设计增加WiFi 模块,实现了远程终端设备对机器人的操作,最大程度地方便了新型农民的工作需求[3]。
美国、日本、德国等国家对农业机器人的研究起步较早,发展较为完善,但其研发的农业机器人一般结构复杂,体积庞大[4]。在国内,南京农业大学、华南农业大学、中国农业大学等多所高校都对农业耕种机器人技术及其应用进行了深入的研究[5]。化农业设备装有各种传感器,不仅可以监视作业过程,而且可以避开不良的工作环境,使其始终处于最佳技术状态,提高农业操作的安全性和操作的可靠性。
1 耕种机器人总体设计
本文所研究的智能耕种机器人是基于STM32 微处理器。此处理器拥有多个GPIO(输入输出)接口,主要用来连接各种传感器、通信模块、显示模块等外设。微处理的作用是搜集传感器采集到的实际农田数据,接收图像采集设备采集到的图像信息和导航模块采集到的地理位置信息,并对采集到的众多信息进行计算、处理和分析,接着将后续的实施指令传达到各外设处,从而保证整个控制系统指令的完整性和传输判断的准确性,保障耕种机器人的正常运行。
为保证本系统微处理器平稳工作,整个系统主要在系统时钟电路和复位电路两部分硬件上进行了重点研究。整个系统的供电是由电源模块实现,保证了系统正常工作。智能耕种机器人是通过电机驱动模块驱使前、后、左、右4 个车轮前进、后退、转弯等功能。传感器部分主要由红外传感器、超声波传感器、温湿度传感器等组成,本系统通信模块采用的是WiFi 模块。智能耕种机器人通过传感器模块、语音交互模块对播种的路径进行规划。耕种机器人和障碍物之间的距离信息主要通过红外传感器和超声波传感器进行判断,避开障碍物的操作是由上位机通过通信模块对机器人的速度和方向进行调整来实现的。土壤的温湿度信息由温湿度传感器采集获得,从而决定播种深度和松土程度。智能耕种机器人控制系统结构图如图1 所示。
图1 智能耕种机器人控制系统结构
2 耕种机器人电路设计
机器人感知系统的运行是由各种传感器采集外界的信息来实现的,并对采集到的信息作相应的处理。耕种机器人电路主要包括单片机(MCU)系统电路、电机驱动电路、传感器电路、WiFi 模块电路等。下面将对这些电路进行具体分析。
2.1 单片机(MCU)系统电路
智能耕种机器人中单片机核心芯片选用的是STM32F103VET6,该款芯片属于增强型系列,可用资源丰富、功能强大,拥有定时器、串行通信接口、多种总线、ADC 模数转换,并且可外接多种外设。单片机拥有功耗低,集成程度高、易于开发等特点,所以它通常被用于智能嵌入式控制。
2.2 电机驱动电路
由于单片机自身的IO 口驱动能力有限,不足以直接驱动电机,所以本系统采用TB6612FNG 电机驱动模块来连接电机和单片机。TB6612 驱动芯片可以同时驱动两个电机。此驱动以总线通信为核心,一条指令就能完成电机的速度、转动时间以及转动方向的设置。系统可通过单片机上的USART 串行通行接口发送指令信息,控制电机驱动。
2.3 传感器电路
红外传感器对环境光线适应能力较强。发射管发射出一定频率的红外波,当检测到前方障碍物时,红外波会反射回来被接收管接收,经过比较器处理后,信号输出低电平信号并传送到单片机的I/O 端口。通过单片机对距离进行分析,检测的距离可以通过电位器进行调节。温湿度传感器的工作电压是3.3~3.5V,该传感器的特点是体积小、测量准确,信号传输距离相对较远,输出为单总线数字信号,可以实现双向传输,与单片机进行同步通信。温湿度传感器对土壤进行温湿度的检测,将采集到的数据传至单片机进行分析,从而对耕种的深度进行调节,智能地选择最佳的耕种深度。超声波传感器主要利用传感器发出的超声波进行探测,即耕种前方一段距离的土地信息,从而保证机器人平稳运行。超声波传感器上既有接收信号端,又有发射信号端,可以通过发射和接收来计算详细的耕种距离。
3 智能耕种机器人软件程序部分
本系统所需要设计的软件程序有主程序、传感器系统程序、电机驱动程序、语音交互模块程序、通信模块程序等。本系统采用程序模块化的设计,可以确保各个部分正常工作。下面对传感器系统模块和语音交互模块进行重点介绍。
3.1 红外传感器软件设计
红外传感器接口电压可选择5V 或3.3V,传感器接口有复位功能,红外接口可接入红外接头,用来控制红外传感器。当红外传感器检测到障碍物时,就将与红外传感器相连的引脚置位。通过相应的引脚状态读取函数,读出此时红外传感器的状态信息。在STM32中常用的引脚状态读取函数是:uint8 _t GPIO _ReadInputDataBit(GPIO _ TypeDef * GPIOx,uint16 _tGPIO_Pin)。
3.2 电机驱动模块
电机驱动模块以总线的方式来驱动电机,通过发送指令来进行电机的速度、转动时间以及转动方向等方面的操作,比如:
#idPpwmTtime! 指令用来控制电机,其中,id 相当于每个总电机的“名字”,其范围是000-254,必须为三位数,不足的位数补0;pwm 的范围是0500-2500,必须为四位数,不足的位数补0;Time 表示旋转时间(单位s),必须为四位数,范围:0000-9999。
#000PID! 读取ID 指令,读取当前电机的ID 号,#000PID! 为一般读取指令,#255PID! 为广播读取指令。
4 结语
农业耕种机器人控制核心是采用STM32F103VE系列的单片机,以电机驱动、传感器、语音交互、串口通信等电路作为外围电路。超声波传感器和红外传感器共同为机器人提供避开前方障碍物服务。WiFi 模块可以与手机相连,实现手机远程控制;通信模块与上位机相连,实现采集的数据上传至上位机。该机器人的特点是:体积小、性能稳定、成本低、操作简单,具有广阔的发展和应用场景。