基于STM32 的智能割草机器人控制系统设计
2024-04-20王欣怡邓鑫宇柯宇王旭
王欣怡,邓鑫宇,柯宇,王旭
(电子科技大学成都学院 智能制造工程系,四川成都,611731)
0 引言
随着全球经济的发展,以及人类命运共同体和生态文明建设的提出,近十年来全球范围内绿地面积和公园面积逐年增加[1]。草坪的维护需要大量的人力,且劳动成本高,工作效率低,且传统的割草机器存在极大的安全隐患。智能割草机是可以代替人工修剪和自动化的设备,大大节约了人力、财力以及物力。因此,研究智能割草机技术,具有广阔的应用价值。
近年来,国内许多高校和企业对智能割草机器人开展了大量研究。例如:2020年,浙江绍兴职业技术学院徐伟锋团队在设计智能割草机器人时,将传感系统、驱动系统以及PLC 控制系统等模块集于一体,提升了割草机器人运行的稳定性[2];2021 年,华南农业大学谢逢博团队在对果园割草机器人进行路径规划时,控制方法确定为横向偏差修正算法,有效降低了机器人行进的误差[3];2022 年,烟台汽车职业工程学院王德兰采用TRIZ 发明原理,构建了割草机器人的问题和冲突矛盾矩阵,提出了解决技术矛盾的方案,提升割草效率的同时,降低了机器人动作时的故障率[4];2023 年,江苏科技大学王新彦团队采用改进Yolov5 算法用于割草机器人的障碍物识别,提升了识别的准确率[5]。从上述研究来看,割草机器人的智能化功能日趋完善,且控制系统的精度越来越高。因此上述研究表明,想要设计合理的智能割草机器人控制系统,需要根据具体的应用场景和使用需求进行针对性设计,合理配置控制系统的对应模块,从而满足便捷割草动作的同时,还能提升系统整体的控制精度。
1 割草机器人控制系统的整体布局
本文以某工业园园区内部草坪为修剪对象,设计割草机器人。园区内的草坪具有面积较大、位置分散、清理高度较小以及不同位置清理要求不同等特点。故割草机器人的设计主要考虑通过刀盘转速的调整和设置升降结构来适应不同片区的割草环境。同时,还得设计循迹、避障、无线通信等模块,来实现机器人的行进、人机交互等功能。鉴于此,控制系统的布局中,主控芯片可以选择STM32 单片机。因为该类型的单片机能耗较低,且内部具有运算速度比较快的处理器和内存,比较适合处理复杂的控制系统[6]。主控芯片确定后,再根据其他的基本功能,可以确定系统的主要模块。该控制系统的整体布局如图1 所示。
图1 系统总体布局
图2 STM32F103C8T6 最小系统图
2 割草机器人硬件设计
2.1 主控芯片的设计
智能割草机的主控芯片的选择,主要考虑的依据是:(1)强大的处理能力,有高性能的运算;(2)有丰富的储存器,可以储存大量的程序代码和数据;(3)具有较高的抗干扰能力和稳定性,可以在各种恶劣环境下工作。因此,单片机的型号确定为STM32F103C8T6[7]。
2.2 驱动模块设计
驱动模块的作用是满足割草机器人轮式结构的行进。当机器人在草坪作业时,根据工作和地形的情况,需要完成前进、后退、转弯以及制动等动作。故在驱动模块的设计中,需要选择电磁转矩较大、调速性能较好的电机。所以电机的类型可以确定为直流电机。但传统的直流电机运行效率通常只有70%~80%且存在工作寿命相对短、噪音较大等问题。因此,本文选择无刷直流电机作为驱动电机,该类型的电机工作效率可达90%以上,且系统性能稳定、噪音较小、可靠性较高。在转速控制方面,考虑到系统需要较高的控制精度,故采用脉宽调制(PWM)的方法来实现对割草机的转速调整,根据电机的电感特性,通过对占空比的改变产生不同的波形,来实现对小车电机转速的改变。由于智能割草机为较大型的机器,所以在综合考虑续航和效率的情况下,选择将两个22.2V 的航模电池并联来进行整个电路的供电。电机驱动模块选用的是L298 系列,L298是双H 桥结构,可以同时驱动两个直流电机[8],单路可达到7A 大功率,宽电压输入为6.5V~27V。将PA4,PA5,PA6,PA7 引脚设置为推挽输出模式,定义了PA1,PA2 号引脚,作为PWM 的输出端口,然后将PA4,PA5,PA6,PA7 引脚分别接到电机驱动板的信号输入引脚上,来控制旋转方向,再将PA1,PA2 分别接到电机驱动板的PWM 输入引脚上,从而实现对电机速度的控制,电机接口控制信号逻辑如表1 所示。
表1 电机接口控制信号逻辑
2.3 循迹避障模块的设计
避障模块的主要目的是让割草机能够识别到前方的障碍物,并且能自动避开障碍物继续完成割草任务。在循迹避障模块方面,本文选择用红外避障模块,原因在于红外传感器能够较好地适应外界环境的光线、抗干扰性能强、装配便捷,且使用方便[9]。考虑到循迹避障模块的运行稳定性,其比较器采用LM393。该模块的OUT 端口与单片机PB12 引脚连接,在割草机器人工作时,当检测到前方有障碍物时,电路板上的绿色输出指示灯被点亮,同时模块的 OUT 端口持续 输出低电平信号。割草机的避障距离、前进速度、旋转角度等,都可以随着割草机所处的环境而对程序进行适当的调整。循迹避障模块控制电路如图3 所示。
图3 循迹避障模块控制电路
2.4 蓝牙模块的设计
割草机器人在运行时,为确保主控系统能够实时掌握其状态并根据情况做出对应调控。无线通信技术的选择显得非常关键。本文在该模块的设计中,选择蓝牙模块作为无线通信方式。蓝牙模块的类型确定为JDY-31。因为该类型的蓝牙模块完全兼容HC-05/06 从机[10],这样可以实现Widows、Linux、android 数据透传,支持使用者通过AT 命令修改设备名以及波特率等指令,方便快捷使用灵活。本蓝牙模块的设计是把PA9 设置成TX引脚,PA10 设置成RX 引脚,然后把蓝牙模块的TX 引脚和单片机上的RX 引脚进行连接。蓝牙模块电路如图4 所示。
图4 蓝牙模块电路
2.5 刀具驱动和自动升降系统模块设计
智能割草机的刀具驱动主要是让其针对不同的割草环境来调整刀盘的转速,从而达到理想的割草效果。割草机的刀具部分设计有升降功能,使用者可以根据自己的需求来选择留下的草的长度,相对传统的割草机,本割草机更具有个性化,且可以满足不同的需求。电动推杆精度高、无污染、维护成本低、环保节能,更能贴合大环境下的生态环保。电机推杆和割草电机的电路设计部分,定义了PC1,PC2,PC3,PC4 引脚为推挽输出模式,PC1,PC2 和PC3,PC4分别接到电机驱动板上,来控制电机推杆的启动和割草电机的旋转。刀具驱动电路如图5 所示,自动升降系统模块电路如图6 所示。
图5 刀具驱动电路图
图6 自动升降系统电路图
3 系统的软件设计
3.1 系统运行程序的编写
本割草机系统编程采用易读性和移植性高的C 语言进行编写,使用Keil μVision5 by ARM 软件进行代码编译以及调试,这款IDEB 被广泛地用于代码的编写和测试。并且使用STM32CubeMX 对主控芯片的引脚进行配置,配置完成后再用Keil5 进行程序的编写。编程的思想采用模块化编程思想,模块化编写的程序不仅方便进行系统调试,而且方便移植,这样大大减少了割草机的开发时间。先进行系统的初始化配置包括定时器、延时函数、系统时钟、串口等。系统初始化完成后割草机进入等待接收命令状态,当收到模式改变命令时,割草机启动相应的程序,然后再完成相应的指令。以刀具驱动系统为例,部分主要运行程序如下:
3.2 图形用户界面的布局
系统的GUI 界面是图形用户界面。基本的运行理念为:系统内部将用户的指令转换成相应的代码信息,然后GUI程序开始运行,并创建相对应的消息列队,最后程序对队列中的消息进行处理。在本文中 ,GUI 的界面主要有四个部分:(1)电推杆的升降;(2)刀盘的转动;(3)割草机的运动;(4)割草机的自动模式。整个割草机的控制如图7 所示,中间部分是控制割草机运动的,当割草机运动到割草区域后,通过点击电推杆部分的上升或下降就可调整刀盘的高度,刀盘的高度到理想位置后,就可点击启动按钮,然后就可以开始割草。除此外割草机还带有自动模式,点击自动模式后割草机就会开始自动割草GUI 界面的基本布局,如图7所示。
图7 GUI 界面布局
4 系统的性能测试
为了更好地评估割草机,需要对割草机器人的实际性能进行测试。因此,本文制作了割草机器人实物模型,如图8所示。并对模型展开测试,部分主要的测试内容包括:割草机的电推杆以及割草盘性能测试、机器人适应地形测试、避障性能测试以及割草量测试。部分测试结果如表2 所示。
表2 部分主要测试结果
图8 割草机器人实物
从表2 所示的最终测试结果来看,割草机预设的功能基本实现,且控制系统的精度符合要求,机器人能够正常进行工作,即机器人的控制系统设计方案基本合理。
5 结论
草坪的管理工作对传统割草机的功能、性能、效率等有着较高的要求,而传统大功率的割草机污染大、噪音大,应根据生态环境的发展要求对割草机进行创新。本文的智能割草机很大程度上降低了能源的消耗和对环境的污染,且对于普通的割草机来说本文设计的智能割草机更加的安全,且避免了不必要的人力、财力花费,且割草效果良好,为将来割草机的智能化提供了一种可行方案。