基于STM32 控制的水下管道智能巡检机器人设计*

2023-03-01 17:06满达虎王丽芳周玉华
科技与创新 2023年4期
关键词:串口密封单片机

汤 俊,满达虎,王丽芳,周玉华

(九江学院材料科学与工程学院,江西 九江 332005)

随着科学技术日新月异的发展,智能机器人在众多领域已全部或部分代替了人类完成规定的任务。近几年,水中智能机器人的发展尤为迅猛。水中智能机器人可应用于军事、海洋开发、水中工程监测、水中娱乐休闲等领域[1]。基于水中机器人广泛的市场前景和应用价值,同时也为了培养新时代大学生的实践动手能力、创新能力以及团队沟通协作能力,教育部高等教育司每2 年主办一届“中国大学生工程实践与创新能力大赛”,水下管道智能巡检是该项赛事“智能+”赛道中的一个赛项。

1 比赛规则

参赛队伍将机器人放置在出发区等待出发,如图1所示。裁判发出指令,计时开始,机器人从出发区沿着水下白色PVC 管道进行巡迹游动,依次进入浅水区、渐变区和深水区;机器人在巡游的同时检测管道上是否有黑色吸附物,并按照吸附物的不同形状闪烁不同颜色的灯光进行报警提示;完成规定的任务后,水中机器人来到返回区,结束计时。根据水中机器人是否检测到吸附物并报警的正确与否以及回到返回区用时长短等计算比赛成绩。

图1 比赛场地示意图(单位:mm)

2 硬件设计方案

2.1 整体硬件系统设计

如图2 所示,基于STM32 控制的水下管道智能巡检机器人由STM32 单片机主控模块、电源稳压模块、OpenMV 模块、运动组件、显示模块(TFTLCD)和LED 信号灯模块等构成。以STM32 单片机为核心控制器,结合OpenMV 视觉模块上的摄像头(感光元件为OV7725),利用OV7725 采集到的信号并通过图像处理算法将信息传递给STM32 控制器,通过运动组件控制机器人沿水下白色PVC 管道的游动方向、转弯等运动,从而实现航道的巡迹。同时,机器人在沿管道巡游过程中,利用OpenMV 内置的库函数资源对管道上的黑色吸附物形状进行判断,STM32 单片机对数据整合处理后将吸附物信息显示在TFTLCD 屏幕上,同时使LED 信号灯闪烁相应颜色的灯光作为检测信号。

图2 总体框架图

2.2 主控模块

主控模块采用STM32F103VET6 单片机作为整个执行系统的控制核心。该单片机拥有实时功能强、功耗低、信号处理能力强、体积小等优点,具有USART、I2C、定时器等丰富的外设,便于开发和应用[2]。STM32F103VET6 具有4 个通用定时器、2 个高级定时器、2 个基本定时器,能够轻松地实现定时器中断、输入捕获、输出比较、PWM 输出等功能[3];5 路USART接口,支持ISO7816、LIN、IrDA 接口和调制解调控制,方便与其他控制器进行串口通信;7 通道DMA 控制器,节省MCU 计算资源;3 路12 位ADC 和2 路12 位DAC,实现数字信号与模拟信号的相互转换;80个快速I/O 口。

2.3 OpenMV 模块

OpenMV 是一款基于STM32 单片机和图像传感器的机器视觉模块,通过OpenMV IDE 可以轻松地完成机器视觉(Machine Vision)应用,可选的图像处理像素模式有灰度模式和色彩模式2 种。由于灰度模式的算法比色彩模式的算法运行得更快,因此本次比赛的机器人选用了灰度模式。OpenMV 上搭载了Micro Python 解释器,用户可以通过Python 语言编写程序从而实现一系列的功能[4]。通过调用OpenMV 内置的图像识别算法库函数资源完成对物体形状的判断,得到的数据通过串口通信传递给STM32 主控模块,单片机对数据进行整合处理将物体信息显示在TFTLCD 屏幕上,同时使LED 信号灯闪烁相应颜色的灯光作为检测信号。将OpenMV 资源丰富的优点和STM32 单片机控制简单的优势相结合,从而达到精确识别物体的目的。

2.4 电源稳压模块

整个系统完成规定任务所需要的能量由电源稳压模块提供。本设计采用12 V 航模电池,可以通过充电器对其充电。由于STM32 单片机所有的I/O 引脚输出3.3 V 并且5 V 耐受,因此,首先通过LM2596S 稳压电源将12 V 航模电池的电压降到5 V,然后给各模块供电。

2.5 运动组件

本次比赛所用机器人运动组件包括4 个垂直方向的螺旋桨推进器和2 个水平方向的螺旋桨推进器。垂直推进器和金属配重块用于实现机器人游动过程中自由的上浮和下沉,水平推进器用于实现机器人游动过程中顺畅的前后运动和偏航导正运动。

2.6 显示模块(TFTLCD)

本设计选用的显示模块(TFTLCD)是2.8 in(约71.12 cm)的ILI9341 屏幕。这是一款性价比很高的屏幕,分辨率为240×320,可实现720 源输出和320 门输出,采用常见的电极输出VCOM。接口模式有8080MCU 和RGB 2 种模式(本设计采用RGB 接口模式),有全彩模式、减色模式、空闲模式、睡眠模式等多种模式,能够完成26 万种颜色深度,8 个色阶的显示,具有生成、调整VCOM,充当时序发生器或振荡器,调整背光亮度,完成直流转换、线反转、帧反转、独立RGB 伽马校正、预设伽马曲线等众多功能。

2.7 机器人密封设计

机器人作业工况为水下,主控模块、电源稳压模块、OpenMV 模块、显示模块(TFTLCD)和LED 信号灯等这些硬件易被水浸泡而失效。为了确保机器人各组件在水下正常运转,需要对其做一定的防水密封处理,对此本设计上述部分采用密封箱进行密封。密封箱材料为透明的PP,壁厚为3 mm。密封箱壳体与上盖板之间需要进行密封,密封性质为静密封,通过O 形橡胶圈密封后在密封面涂以平面密封胶,以保证密封的可靠性[5]。在密封舱侧面使用8 mm 厚PMMA板贯穿6 个5 mm 孔用于密封箱走线。走线过程中如果密封不良,极易使密封箱漏水,所以在结构上采用空心CNC 加工,316 不锈钢材质穿线螺丝,把线缆剥下保护套,尾端套入热缩管,用蓝丁胶固定,最后用环氧树脂进行灌封。

3 软件编写设计

本设计主要采用Python 和C 两种语言编写程序,程序流程如图3 所示。首先进行系统初始化,主要包括OpenMV 模块初始化和STM32 单片机的中断初始化。然后启动系统,随后将机器人释放。机器人被释放后会沿着白色PVC 管道直行,期间会遇到3 种情况,分别是直行偏差、直角右拐弯和检测到不同形状的黑色吸附物。

图3 程序流程图

摄像头实时回传数据至主控板,主控制板通过算法对可能出现的3 种情况实时监测:第一种情况出现直线行驶偏移时,串口回传,单片机利用函数通过左右微调使机器人保持在白色PVC 管道的正上方;第二种情况出现直角右转弯时,串口回传,单片机利用右转函数控制水下机器人右转;第三种情况在运行过程中当检测到不同形状的黑色吸附物时,串口回传,单片机对数据整合处理后将吸附物信息显示在TFTLCD屏幕上,同时,单片机利用函数控制LED 灯光闪烁相应的颜色作为报警示意。最终在整个循环程序中完成图1 比赛场地的管道巡迹并识别不同形状吸附物的比赛任务,机器人到达返回区等待被捞取。

4 比赛测试及优化

机器人在巡迹游动过程中必将受到水波的影响产生不同程度的摆动,从而使机器人在执行任务过程中偏移管道的概率增大。虽然在程序设计时对机器人偏移管道做了处理,但在实验室测试发现,偏移管道时有时未能及时得到修正,使机器人不能按照预期直游甚至偶尔会彻底离开管道,导致根本完不成全部任务或者完成全部任务后超出比赛规定时间和存在一定的漏检率。通过反复实验和不断摸索,发现在机器人身上装配一定的配重块,能够大幅度降低偏航的概率。意外发现,由于机器人身上加以配重块,机器人在深水区的下潜更为顺畅。在机器人身上装配重块时要尽量做到以下2 点:第一,尽可能使机器人重心在几何体的中线上;第二,尽可能降低机器人游动时尾部产生的水波。

此外,比赛场地有2 处直角右转弯,在实验室前期调试中,发现机器人不能顺畅地完成直角转弯动作,且与管道的重合度不高,从而多次出现未检测到拐弯处吸附物的现象。为解决这个问题,经过反复实验,在右拐弯时,机器人不能全速游动通过,否则由于惯性很容易冲出管道导致比赛失败,经过再三测试得出结论:通过在右拐弯时把速度降为直线管道时的60%,能够顺利完成比赛。实验室测试的过程中吸附物的识别率都在100%,并且能在规定时间内跑完全程,在2021 年第六届江西省大学生工程训练综合能力竞赛中取得第一名的好成绩。

5 结语

本研究提出了基于STM32 控制的水下管道智能巡检机器人设计及测试与优化。OpenMV 摄像头模块作为数据采集模块,以STM32 单片机作为水下机器人运行核心。整体系统在该项目比赛中识别率和运行时间都有很强的优越性。系统的设计也为智能水下机器人在水底管道巡检等应用领域提供了思路和参考。

猜你喜欢
串口密封单片机
成都化新密封有限公司
浅谈AB PLC串口跟RFID传感器的通讯应用
热轧弯辊油缸密封改进
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式