基于Open MV的智能追踪小车的研究与设计

2022-11-19 05:11李志强康钦清王东滔肖玉亮李本高
科教导刊·电子版 2022年26期
关键词:主控板色块小车

李志强,黄 明,康钦清*,王东滔,肖玉亮,李本高

(湖南涉外经济学院信息与机电工程学院,湖南 长沙 410205)

0 前言

有视觉功能的智能小车在各行各业中的应用越来越广泛[1]。它们可以协助人们完成某些特殊产品或物品的分拣分类,比如有毒化学物品,易燃易爆物品等危险品。可以大大提高效率,降低危险。

颜色识别是将要识别的颜色从外界众多的颜色中凸显出来[2]。如果把颜色识别与智能小车的追踪功能相结合,对不同物品的颜色特征进行识别,从而实现对物品的追踪,减少人与物品的接触,提高工作效率和保障员工人身安全[3-4]。

本系统选定需要追踪的目标物体颜色,采用Open MV作为图像采集模块,对目标物体进行识别,并计算得到目标物体的中心坐标,传送给Arduino UNO3开发板为主控板的智能小车,结合组合传感器测距模块,完成对目标物体的追踪[5]。

1 系统硬件设计

1.1 系统整体设计方案

本设计由电源模块、控制模块、执行模块组成,系统硬件总体框图如图1所示。利用Open MV摄像头自动识别物体的颜色,返回物体的中心坐标,根据中心坐标的偏离程度驱动电机完成小车的行进。借助组合传感器测距模块,精确判断小车跟踪或躲避的距离。电源模块为整个智能小车提供需要的电源,保证各部分正常工作。

图1 小车硬件系统总体框图

1.2 主控制模块

Arduino UNOR3开发板以ATMGA328P作为主控芯片,并将其IO端口全部引出。Arduino UNOR3开发板通过UART串口与Open MV进行通信,接收目标色块的中心坐标。依据其横坐标所在数值区间控制小车的左转或右转。同时依靠组合传感器测距模块测量小车与目标之间的距离,从而实现对目标的追踪或躲避。

1.3 Open MV摄像模块

本设计采用Open MV作为图像采集与识别模块。0pen MV摄像头是一款小巧,低功耗,低成本,可扩展,可使用Python语言的可编程图像传感器模块。STM32H743VIT6作为主控芯片,且在其Open MV IDE开源开发环境中将大多数图像处理算法模块化并封装供用户调用。Open MV将采集到的图像进行二值化处理,通过阈值编辑器初始化需要识别的颜色阈值,同时计算所采集图像中最大的目标色块面积并计算其中心坐标,通过UART串口发送给小车主控模块。

1.4 组合传感器测距模块

小车采用由超声波传感和激光传感器VL53L0X构成的组合传感器测距模块。将超声波传感器安装在位于智能小车整体顶部最上方的舵机上,通过舵机旋转识别左、前、右方的距离,进行障碍物的判断。激光传感器可以及时判定远距离的前方有无障碍物。

1.5 电机驱动模块

在本设计中,采用L298N模块作为电机驱动模块,在输入6V~46V的输入电压范围,可输出2A的电流供给电机工作,驱动四轮小车正常运行。L298N模块的控制输入端与主控板IO口相连接。通过IO口的高低电平的变化,控制电机的正反转及停止。当主控板接收到Open MV发送的障碍物或追踪目标的中心坐标后,主控平台向L298N发送相应的高低电平,从而控制小车的左转,右转,前进,后退及停止。

表1 L298N电机控制真值表

1.6 电源模块

采用LM2596S稳压模块作为电压转换模块,具有转换效率高,输入电压范围广,输出电流大,带负载能力强等特点。LM2596S稳压模块为主控板等电路提供正常工作电压,还要为电机驱动板提供稳定的12V电压,使电机工作更加稳定,小车的运转更加流畅,速度更加稳定。

2 软件系统设计

本设计的软件系统由图像处理模块和小车追踪/避障模块组成,系统总流程图如图2所示。借助Open MV开发平台,使用其封装好的函数模块,实现对特定颜色的识别以及最大色块的中心坐标的获取。中心坐标通过串口发送给主控板。主控板接收到最大色块的中心坐标,提取出横坐标与设定值进行比较,大则右转、小则左转。结合组合传感器测距模块得出的数据实现躲避障碍物的功能或者使小车转向目标物体。

图2 系统总流程图

2.1 颜色识别及色块中心坐标的获取

在Open MV中使用LAB颜色模型来描述颜色,L是亮度,A和B为两个颜色通道。A为红色到绿色的范围,B为黄色到蓝色的范围。通过设置L,A,B的取值范围得到要识别的颜色。如绿色色块 LAB阈值可设置为(100,0,-128,-20,-128,127)。

对比LAB颜色模型中L、A、B的取值,阈值编辑器会自动将LAB取值不等于设定值的颜色滤除,变为黑色,只保留与设定值相等阈值的颜色,由此可得到某一颜色的LAB颜色阈值。使用find_blobs和threshold函数可实现颜色识别功能。在threshold函数中填入LAB颜色模型的L、A、B的取值范围,再填入find_blobs中,系统通过颜色阈值比较自动对图像进行二值化处理,最后用方框将阈值在取值范围的颜色框出,从而达到颜色识别的目的。

图3(a)给出Open MV采集到的图片,(b)图是设定识别颜色为绿色的颜色阈值后得到的二值化图像。

图3 阈值编辑器处理图片

使用MAX函数在find_blobs函数识别出的色块中找出面积最大的色块,滤除其他的较小面积的色块。然后使用blob函数在色块中心画出十字标并获取色块的中心坐标,如图3(c)所示。最后通过UART串口将色块的中心坐标发送给主控板。

本部分实现代码如下。

2.2 智能小车的追踪或避障的实现

将Open MV模块发送的色块中心坐标与摄像头中心轴的横坐标进行对比,大则说明物体在小车的左边,小则说明物体在小车的右边,相等则说明物体在小车的正前方;于此可以操控小车做出相应的动作,从而达到追踪或避障的目的。

3 实验与结果分析

3.1 寻找最大色块实验

准备两个颜色相同、大小不一的色块,见图4所示。通过阈值比较器设置要识别的颜色阈值,写在threshold函数中。启动Open MV,烧录程序,开始识别色块。通过上位机查看Open MV传回的图像视频。图4传回图像显示,存在两个与背景颜色相差较大的色块。经过图像处理之后,系统会自动将要识别的色块用方框框起来,并将面积最大的颜色色块用十字标标出。

图4 寻找最大色块实验

3.2 智能小车的色块识别追踪实验

将小车放置在起点,在距离小车1m处放置蓝、绿、黄三个同等大小的圆形色块。通过上位机向小车分别发送蓝、绿、黄三种颜色识别指令,测量和记录小车识别到蓝、绿、黄三色块并到达色块附近的时间,如表2所示。

表2 蓝、绿、黄三色色块识别追踪

智能小车在实验场地一定、距离一定的情况下,识别形状大小相同,颜色不同的障碍物并追踪到其附近所用的时间几乎相同,摄像头对于黄、绿、蓝三色识别较为灵敏,识别用时较短。

4 结论

本文实现了基于 Open MV的智能追踪小车。利用Open MV的颜色识别功能,快速识别设定的目标物体颜色,确定其中心坐标,传送至控制中心,完成小车对目标物体的追踪功能。

猜你喜欢
主控板色块小车
足球色块
一种快速可靠的主控冗余及切换机制的设计与实现
大车拉小车
自制小车来比赛
基于校验信息隐藏的彩码抗篡改攻击技术*
升级双主控板交换机ISO
两轮自平衡小车的设计与实现
变频器检测台的设计、制作及主控板的维修
阎先公和他的瓷板色块泼彩画
三个色块