基于Arduino技术的光电搬运机器人设计与编程(一):循线技术与线路控制

李振宇

(首都师范大学数学科学学院,北京 100048)

摘要:本文基于Arduino技术,对中国工程机器人大赛的光电搬运项目所涉及的循线与线路控制2个关键技术环节,做了较详尽的技术分析.采用模拟及数字红外传感器作为搬运机器人制作的前端输入部件,实现模拟循线,同时利用传感器返回的数字信号对小车的行驶线路实施精确控制.

关键词:Arduino;光电搬运;红外传感器

中图分类号:TP273

DOI:10.19789/j.1004-9398.2021.04.002

收稿日期:2020-09-14

0 引 言

中国工程机器人大赛是由国家教育部主办、以大专院校本科生为参赛主体的国际性赛事,自2011年以来,现已举办9届.首都师范大学数学科学学院本科生组队参加了2019年的大赛,取得良好成绩,有效促进了学院的实践教学活动的开展.

1 项目简介

该项赛事由任务一和任务二组成(图1),任务一要求机器人分别将位于A、C和E 3个点的随机颜色物块搬入相应颜色标识的靶点.任务二将分置于F和G区堆放的各5个不同颜色物块分别搬入相应靶点.合计搬运13个物块,要求5 min内完成,依据取得总环数计算比赛成绩.

图1 搬运比赛场地图示(2 260 mm×2 260 mm)

本例的光电搬运机器人小车设计采用常见的“钩取”技术.小车共有8个独立单元构成(图2),核心部件是Arduino控制板.小车的设计思路可以概括为:(1)通过读取红外传感器的模拟数值实现循线;(2)通过读取红外传感器的数字数值实现线路控制;(3)通过超声波测距把握钩取物块时机;(4)通过颜色识别判定行驶线路;(5)通过PWM数值控制左、右马达转速以驱动小车;(6)通过PWM数值控制角度舵机抬臂升钩与落臂降钩.

图2 马达驱动光电搬运机器人结构示意

机器人小车的宽度和长度都有严格要求,分别为:宽度≤160 mm,长度≤270 mm,超范围判违规.

2 OpenDuino控制板与马达驱动

为了尽量节省开发时间,本机器人小车采用了OpenDuino控制板(图3).该板是由深圳鸥鹏科技公司开发的一款集成了Arduino核心技术与部件,以及马达驱动、XBEE联网、蓝牙通信等技术的专用Arduino开发板,稳定性较好,很适合于非计算机类专业理工科学生采用.

图3 OpenDuino控制板示意

Arduino技术是目前市场上最简单流行的单片机应用技术,有3个显著特点,即AVR技术、C语言环境、丰富的开源函数库.

基于AVR技术的wiring编程,将复杂的单片机的设置及接口功能简化为函数操作,这些函数简单易懂,与C语言兼容,近乎完全取代专业性极强的汇编语言.C语言是理工科学生的通行语言,将C语言应用于单片机,可以提高学生对C语言的深入理解.丰富的开源函数库,是工程师们的智慧结晶,对诸如颜色测试、超声波测距等众多模块的使用,给出了设置简单、标准化程度高的类定义.因为开源,使用者可以在此基础上做进一步修改,以方便使用,极大节省了开发者的精力.

机器人小车设计为两轮马达驱动,使用Open-Duino控制板的马达驱动端口,马达采用通用的直流减速电机.根据控制板说明,可以方便设定左、右马达的PWM驱动及转向,小车行驶函数如下:

其中,函数的形式参数cmd如FARWARD等事先做出整数定义,Speed1、Speed2参数是调用该函数时,给出的PWM数值,本例实验设置为115.

3 红外传感器布局

机器人小车在图1所示场地上快速稳定行驶,是以循线技术和转角技术(线路控制)为基础.机器人小车的循线与转角控制在设计上采用TCRT5000红外反射传感器(图4).传感器分别设有模拟输出(analog output,AO)和数字输出(digital ouptut,DO)输出端口.

图4 TCRT5000红外反射传感器示意

注:AO为模拟输出;DO为数字输出;VCC为通用直流电压;GND为通用接地.

设计思路是模拟端口用于循线,数字端口用于控制.采用4个传感器并置于小车前端(图5),传感器反射点与小车2个车轮中轴距离为55 mm.

图5 红外传感器布局示意

传感器自右向左命名为:trac0、trac1、trac2、trac3.其各自数字引脚DO分别接入OpenDuino控制板(图3)的数字端口.

中间2个传感器即trac2,trac1的模拟引脚分别接入OpenDuino控制板的模拟输入端.

循线线宽为20 mm,由trac2与trac1模拟传感器完成.传感器间距为23 mm.经测试,单个传感器的模拟数值变化为39~690.完全白色数值最小,为39;完全黑色数值最大,为690.

4 模拟循线与线路控制

循线的关键是克服小车行驶中的抖动.模拟循线通行的做法是比例-积分-微分控制(proportionalintegral-derivative,PID)技术.该技术要求实时监控左右2个车轮的转速,再根据传感器的返回值计算出2轮的差速.计算和设计较为复杂,一般用于高速行驶的赛车.本项目机器人小车的对行驶速度要求不高,所以,采用了更为简便的方法实现差速控制.程序如下:

利用传感器的差值乘以系数0.058,尽量去接近连续差速控制.对于非高速行驶的机器人小车,可以完全做到平顺循线.系数0.058是实验数值.SPEED为设定的基础PWM数值.改变PWM数值,系数也应随之微调.

线路控制主要是对小车行驶到场地中心点,或者其他交叉点、靶点等小车的原地转角控制.小车在中心点转角(图1),可以理解为“跨线”.中心点原地右转 45°,实际上是向右“跨过”1条黑线,转角 90°,就是原地“跨过”2条黑线,以此类推.下面给出向左、向右“跨过”1条黑线的函数:

以上函数在中心点循环2次,则“跨过”2条黑线,等效于转角90°.

在直线上原地执行一次上述函数,则等效于掉头,即转角 180°.

5 结束语

本文阐释了马达驱动机器人小车的设计、部分选材和制作原理,同时也描述了行驶函数、模拟循线函数、以及实现原地转角的线路控制函数等编程.循线是机器人小车正常行驶最基础最核心的部分,是在实现其他功能前,首先要完成的实验项目.下一篇将讨论对物块的颜色识别,以及超声波测距准确捕获物块的程序设计方案,从而完成光电搬运项目机器人小车的完整实现.

参考文献

[1] 赵彬,高宏力,张艳荣,等.搬运机器人控制系统设计[J].机械设计与制造,2014(12):183-186.

[2] 王媛媛,刘海龙,蔡逸锋.基于单片机的吸附式仓储搬运机器人研发[J].机电信息,2020(5):85+88.

[3] 徐明娜,张峰,寇志伟.教学手动机器人控制系统设计与实现[J].制造业自动化,2015,37(7):120-123.

[4] 陈吕洲.Arduino程序设计基础[M].2版.北京:北京航空航天大学出版社,2015.

Design and programming of photoelectric carrying robot based on Arduino technology(Ⅰ):tracking line technology and line control

LI Zhenyu
(School of Mathematical Science,Capital Normal University,Beijing 100048)

Abstract:Based on Arduino technology,this paper makes a detailed technical analysis on the two key technical links of the photoelectric transportation project of China engineering robot competition,which are line inspection and line control.The analog and digital infrared sensors are used as the front-end input components of the transport robot to realize the analog line inspection.At the same time,the digital signal returned by the sensor is used to control the driving line of the car accurately.

Keywords:Arduino;photoelectric carrying;infrared sensor

(责任编辑:马田田)