基于Arduino 的物料搬运控制系统设计

2022-06-29 06:08张连震钱思屹娄素琦
电子设计工程 2022年12期
关键词:灰度小车二维码

葛 旺,张连震,钱思屹,娄素琦

(1.南京航空航天大学工程训练中心,江苏南京 210016;2.南京航空航天大学电子信息工程学院,江苏南京 210016;3.南京航空航天大学自动化学院,江苏南京 210016;4.南京航空航天大学机电学院,江苏南京 210016)

随着社会和科技的发展,很多领域中人类的工作逐渐被智能机器取代,智能机器在实际工厂生产中,具有提高生产率和产品质量、降低生产成本等优势[1]。而目前的工业生产加工环节中,物料的移动搬运占据了较多的生产成本和时间,很多地方仍然采用人工的方式,这些搬运工作既繁重又枯燥乏味。由于人为因素在工作中很容易出现错误,因此文中提出了一种智能物料搬运小车的设计方案,通过机械部分、电路和控制部分的设计,以及颜色识别、扫码识别、场地定位等技术来组成具有室内定位、路径规划与自主行走功能的搬运小车。对工业物流中自动化和信息化的实现具有重要意义[2]。

1 小车机械结构设计

如图1 所示,小车的机械结构主要包括麦克纳姆轮、三层的透明亚克力平板、舵机支架、减速电机支架以及夹持机械手爪。把第三层平板作为小车底盘,下方安装4 个带有霍尔编码器的直流减速电机和具有全向移动特点的麦克纳姆轮,构成基本的四轮小车移动单元。同时在底盘四周各安装一组高精度的灰度传感器,通过灰度传感器实时检测地面黑线进行计数和运算,实现实时定位功能[3]。在第二层亚克力平板上安装有五自由度的机械臂,使用5 个大扭矩数字舵机带动机械臂的运动,用来实现物料的抓取与放置。机械臂末端安放有Open MV 摄像头,可以识别物料的颜色,保证抓取功能的准确性[4]。小车的侧面安装有一个二维码扫码模块,该器件用于识别特定的二维码,读取搬运任务信息。同时第一层亚克力平板上放置了一块如图2所示的OLED显示屏,用来显示搬运任务信息,图中R、G、B 分别代表红色、绿色、蓝色,表示小车第一个需要搬运的是红色物料,第二个需要搬运的是绿色物料,第三个需要搬运的是蓝色物料[5]。

图1 物料搬运小车

图2 OLED显示屏

2 机器人硬件电路设计

该控制系统硬件电路结构如图3 所示,主要是由Arduino 主控模块、电机驱动模块、舵机驱动模块以及Open MV 摄像头、二维码扫描模块、灰度传感器、OLED 显示屏、直流减速电机、舵机等元器件组成。该系统选取mega2560 作为控制板,主要负责控制搬运小车的信息处理运算、移动控制、机械臂抓取控制等功能[6]。小车在行走过程中,通过4 组安装在底盘四周的灰度传感器实现空间范围的位置识别,对地面十字形交叉的黑线进行精确检测,在交叉路口进行计数与定位[7]。搬运任务信息储存在二维码中,因此需要使用二维码识别模块读取信息,并且传送到主控芯片中进行逻辑运算,以便判断后输出下一步的机器动作指令。搬运物料的颜色识别功能由Open MV 摄像头来完成[8]。

图3 控制系统硬件电路结构

2.1 电源模块

整个系统通过一个12 V 的锂电池进行供电,通过选择输出电流能力为3 A 的LM2596S 型号降压芯片,把电源的12 V 电压降低到稳定的5 V 和3 V,为mega2560 主控板、Open MV、扫码模块、灰度传感器等各个传感器供电。12 V 电源还需要直接向TB6612电机驱动模块供电,再由该电机驱动模块向底盘的4 个直流减速电机供电[9-10]。

2.2 主控MCU部分

系统主控MCU 部分采用了Arduino mega2560 单片机主控模块作下位机控制器,如图4所示。Arduino是一款开源的电子设计平台,与其他主控硬件平台例如STM32 系列与51 单片机系列等相比,具有价格低、开发编程语言简单、功能齐全、资源丰富等优点,丰富的串口资源可以快速实现市面上各传感器模块的电路连接以及编程控制,适合学生群体快速地入门以及参与到项目的开发中去[11]。同时多项研究也证明了以Arduino 为核心,以传感器模块和各种电机等硬件为载体的电子设计的可行性,并且性能上也能满足各类机器人丰富的功能需求,因此文中采用Arduino 作为小车系统的主控模块[12]。

图4 Arduino mega2560核心板

2.3 灰度传感器

系统采用SEN1595 型号传感器,如图5 所示,安装在底盘四周。传感器在工作时由高亮白色聚光LED 作为发光源,接收管对反射回来的光线进行光强对比处理,反射光的强度差值越大则分辨效果越好。由于浅色的反射性强,黑色的反射性弱,光敏元件接收到不同强度的光时电阻会有明显变化,从而影响电路的输出电压。此时,只需要根据工作时的场地和光线情况调节传感器上的电阻器来调节基准电压的阈值,传感器将对比后的信号以数字输出的方式反馈给主控模块,再由主控模块对返回的信号进行处理分析,判断执行下一步程序。由于小车完成任务的运行场地布置为浅色地面,由纵横交错的黑色线条将场地等分为若干相同规格的小格,因此可以设计物料的存放区域与黑色线条对齐,利用黑色线条作为寻迹轨迹,通过计数的方式进行定位,判断当前位置并计算出下一步需要到达的执行动作位置[13]。

图5 灰度传感器

搬运小车处于行走运动时,在行走方向的前后排传感器用于实现稳定的巡线移动功能,沿线行走保证路线的准确性。此时,左右两侧的传感器用于实现计数功能,每次经过一条黑线时传感器接收到的信号会变化一次,方便了算法实现小车位置平面坐标系。如果在工业物料搬运现场中使用类似此布置的地面,再加以配合此套程序算法则可以实现智能而实用的搬运作业[14]。

2.4 二维码扫描模块

采用的MH-ET LIVE Scanner v3.0 型号二维码扫描识别模块获取任务信息,该模块采用了针对条形码、二维码识别的专业图像处理芯片,可以快速而准确地扫描解析出纸张、屏幕、瓶子等载体上的条码信息,具有可以在复杂环境中稳定读取条码信息的超高性能。通过UART 接口与Arduino 单片机实现串口通信,搬运物料信息的二维码如图6 所示,二维码扫描模块通过识别二维码上的信息,二维码包含的信息内容如图7 所示,其中内容“red,green,blue”回传到单片机上与Open MV 摄像头返回的颜色信息进行对比分析判断,能识别出各种颜色的物料,进而完成搬运和运送功能。

图6 搬运物料信息二维码示例图

图7 二维码信息内容

2.5 Open MV摄像头

系统设计的搬运小车的任务对象是不同颜色的物料,根据二维码上颜色的排列顺序来决定不同颜色物料的搬运顺序,因此需要运用到颜色识别技术。可以采用Open MV 摄像头进行颜色识别,识别过程如图8 所示。根据色光三原色的理论可以知道,各种颜色是由不同程度的红、绿、蓝三原色混合形成的。因此只要知道所构成颜色的三原色各自具体的值,就可以测量出待测物体的具体颜色。在Open MV 摄像头中使用了3 个颜色滤波器来指定红、绿、蓝三原色通过,其他原色则被过滤无法通过[15]。经过白平衡调整后传感器分别测得红色、绿色、蓝色的值。在这里搬运所用到的物料模型简单地被设置为红、绿、蓝3 种颜色,即理论上对应的RGB 值应为红(255,0,0)、绿(0,255,0)、蓝(0,0,255),那么只需要在算法上进行简单滤波之后判断对比待测物料颜色的RGB 值,取R 值、G 值以及B 值的最大值即可认为是物料的实际颜色,从而完成识别功能,RGB 色彩空间图如图9 所示。

图8 OpenMV识别图

图9 RGB色彩空间图

3 机器人软件控制系统设计

智能物料搬运机器人的软件控制系统采用基于C 语言开发的Arduino 语言编写。程序已尽量使用模块化设计以方便地实现调用各种不同的任务需求功能,例如行走路径规划控制模块、机械臂动作模块、二维码识别任务、物料的颜色识别、地标灰度检测等。在整个智能化的识别以及物料搬运过程中,机器人首先是通过识别特定位置屏幕上显示的二维码而领取物流搬运任务信息,再根据物料的颜色和搬运顺序在任务规定的搬运路径内运动,其中路径的标准选择方式有许多不同的排列组合,因此机器人就需要通过调试和优化代码设计出最佳的运动状态和行走路径[16]。

软件程序的设计是智能搬运小车控制系统设计的核心,具体操作流程如图10 所示。程序设计流程分5 个步骤:1)实现巡线功能,保证行进路线和到达地点的准确性,贯穿搬运任务的全过程;2)扫描二维码读取任务信息,在到达指定二维码区域,调用扫码模块实现信息的获取。这是保证后期机械手精准抓取物料的前提;3)颜色识别,只有准确地识别物料的颜色,才能准确地放置到指定的相同颜色物料存放区域;4)机械手的控制,做到控制机械手既能准确抓到所需物料,又能抓牢,不允许出现掉落在搬运中途的情况发生,还要保证可以准确地放置到指定的区域;5)控制电机速度,它决定了小车的移动速度,在保证效率的同时又不能让行进的速度太快,否则当小车到达停车地点时,灰度传感器的信号反馈到单片机后,无法快速刹车而导致小车冲出范围[17]。

图10 软件设计流程图

进行小车整体功能测试时,首先将搬运小车移动至工作场地中指定的出发区域,将小车系统电源打开,在出发区域启动并按照设定好的规划路线前进,到达指定地点实现精准停车并开启扫码功能获取任务信息,紧接着到达物料存放区域进行物料的颜色识别以及实现准确抓取,根据颜色传感器返回到单片机的物料颜色信息来控制机械臂的抓取。随后移动到物料放置区,如图11 所示,把不同颜色的物料准确地放在对应目标区即完成全部任务,小车移动到结束区域,停止工作。

图11 小车物料投放图

在进行多次具体实验后,可以总结得到物料搬运小车对物料进行投放的准确度在80%以上,整个搬运过程在3 min 以内,满足搬运性能要求,运行过程稳定性较好。

在具体的算法实现中容易遇到的问题是开环控制直流减速电机时会因为车身负载、地面摩擦等环境因素造成的小车行走方向出现偏移的情况,为了保证小车行走方向的确定性,可以引入陀螺仪动态检测运动时的角度偏移参数进行直流电机的闭环控制。

控制机械臂抓取和放置动作实际上是通过控制舵机来实现,然而舵机具有转矩大、速度快等特点,因此实际控制中极其容易出现超调的情况,那么为了改善这种情况可以采用PID 调节的方式,在实际调试中需要不断修正Kp、Ki和Kd参数。同时也不能直接给定一个参数进行直接变换,可以设计延迟函数进行短暂的缓冲,利用递增参数的方式让机械臂运动时更加平稳[18]。

4 结束语

文中顺应智能物流分拣和自动化的时代潮流,设计研发了一款基于Arduino 单片机的智能物流搬运机器小车,可以在3 min 内完成指定物料从物料存放区到物料放置区的搬运工作任务,同时抓取和放置的准确率达到80%。提高了物流搬运行业的效率、精度并且降低人工成本。通过灰度传感器以及四驱动全向轮结构,提高了物流搬运过程中的稳定性和灵活性;同时通过颜色识别和算法实现机械抓取装置精准抓取物料。经过二维码识别模块和Open MV 摄像头进行数据和任务信息的采集和传输,为机器人的实际应用提供了便利。

猜你喜欢
灰度小车二维码
航空滤光片阵列多光谱图像条带灰度调整算法
采用改进导重法的拓扑结构灰度单元过滤技术
天津港智慧工作平台灰度发布系统和流程设计
大车拉小车
Arduino小车巡线程序的灰度阈值优化方案
刘老师想开小车
二维码
二维码让政务公开更直接
去修理厂
二维码,别想一扫了之