APP下载

微型自动循迹搬运车控制系统的开发*

2017-07-31赵玉刚王显达张晋烨张海云

组合机床与自动化加工技术 2017年7期
关键词:循迹舵机小车

张 军,赵玉刚,杨 强,王显达,张晋烨,张海云

(山东理工大学 机械工程学院,山东 淄博 255049)



微型自动循迹搬运车控制系统的开发*

张 军,赵玉刚,杨 强,王显达,张晋烨,张海云

(山东理工大学 机械工程学院,山东 淄博 255049)

为了探究复杂路径多点搬运的问题,开发了基于Arduino控制器的微型循迹搬运车控制系统。对系统硬件和系统软件进行了研究,系统硬件包含控制器、驱动元件和检测元件等,系统软件按功能将其分成循迹模块、颜色识别模块和串口通信模块等。提出了采用Arduino Nano和串口通信对小车进行控制,以实现循迹校正、红外寻标、自动搬运等功能。通过现场调试,该系统能控制自动搬运小车在铺设的轨迹上对不同颜色的物体进行循迹搬运,并根据颜色的不同将其放置在指定位置。

自动循迹;搬运车;控制系统;开发

0 引言

有别于劳力、纯机械式搬运的传统输送装置,新型无人搬运车(AGV)[1]以其高效、智能、灵活多变、环保等优点[2-3],受到越来越多的瞩目,逐渐被各行业所应用。无人搬运车始于1953年,经过20世纪50~60年代的飞速发展,在导引方式上分为光学导引、电磁导引、激光导引等,但这些导引分别存在路径易污染、易摩擦;抗干扰能力差;成本高等缺点。近年来国内外在研究一种新型的视觉导引技术,由于识别及处理方面存在缺陷,并未投入应用[4]。我国于1976年开始AGV研究,虽然起步较晚,但近年需求量大增,预估2017年销量较2016年同比增长超过四成,极大地促进国内AGV的快速崛起[5]。

控制系统是搬运车的核心,关系着搬运车的工作方式与使用效率[6],对仓库的无人化程度是一个大的提升[7-10]。为探究复杂路径多点多种类物体的搬运问题,从系统硬件和系统软件方面开发了微型自动搬运车的控制系统。根据搬运车的复杂程度,系统采用Arduino控制,通过对地面铺设的轨迹进行光学导引,根据物体的颜色,对其进行自动分类并搬运到不同的地点。

后续可以对搬运方式进行开发,以搬运不同形状尺寸的物体;对循迹方法进行开发,适应于多种场合;对识别功能进行开发,实现颜色、尺寸、形状或混合标准的物体的识别。

1 总体设计思路

设计的一辆能自动循迹的微型搬运车,要求小车从起始点出发,沿着铺设的轨迹运行,捕获物体并放到指定地点。在运行过程中,需要完成循迹、识别、抓捕、分辨颜色、返回、放下物体等动作,铺设的轨迹如图1所示。

A、C、E物体起始点;F、G、H物体存放点图1 铺设轨迹

分别把红、绿、蓝不同颜色的物体随机放在图1中的A、C、E三点,小车从图1中的正下方出发点开始运行,分别运动到物体起始点A、C、E点,到达目标点后,若无目标物体则继续运行到下一个物体起始点,若有物体就自动捕获,根据物体的颜色把物体放到对应颜色的存放点,然后继续执行下一个动作循环。其完成一次搬运的逻辑动作流程如图2所示。

图2 逻辑动作流程图

2 系统硬件设计

根据实现动作的机械结构选择相应的控制硬件,需要起计算和控制作用的处理器,检测轨迹、分辨颜色、寻找目标的检测元件及驱动元件,如图3所示为硬件功能图。

图3 硬件功能图

2.1 控制元件

因所控制的小车不需要复杂的动作,故选用体积小、使用方便的单片机控制。选用一款以AVR单片机为内核的Arduino控制器。

Arduino Nano作为一款小尺寸的控制器,成本低且使用方便[11],其处理器Atmega328、14个I/O口(6个作为PWM输出)已足够使用。本文使用两块单片机,一块用于系统的控制,另一块判断所抓物的颜色。

2.2 驱动元件

在常见的电机中,直流减速电机无反馈,无刷电机不适合,最终选择型号PDI-6221MG的360°舵机,舵机是一种带反馈的驱动器,其以角度控制,适合于运动机构角度不断变化的控制[12],在循迹过程中小车需要不断调整方向,且根据反馈调整路径,非常适合本设计小车的需要。同时,舵机多与单片机配合使用,用舵机配合Arduino的控制对于设计的微型搬运车是十分符合的。

2.3 检测元件

小车设计中要实现自动识别线路、分辨颜色及寻标的功能,故其需要相对应的检测元器件,以下分别讨论。

小车需要沿自动铺设的路线行走,故需要一款识别路线的循迹传感器。选择SEN1595-1D型传感器是由于其适应性强、使用方便的特点,光源为高亮度的LED[13],其有效距离2~30cm也完全符合需要。经过分析,为了确保小车对轨迹的偏差小,把小车中线及两侧都装上传感器,如图4所示, 装有X0、X1、X2三个传感器。

图4 传感器安装图

设计思路是根据颜色来判别物体,故需要一个识别颜色的传感器,选用型号为TCS3200的传感器元件作为全色彩的颜色传感器,其采用的可控制色彩的频率转换适合于颜色变化的场合,通过三原色原理,控制三种基本色彩(红、绿、蓝)的频率的变化来得到传感器上的颜色。

根据一定距离内是否有物体来判断所寻的目标,故使用红外传感器感知前方的物体,这种传感器是以红外线光作为测量光源来进行探测的元件,对外界的干扰有较强的抵御作用。除了探测作用,在系统中其还作为反馈元件,检测物体是否被捕获,当物体一直保持在小车上时,传感器就会感知。

3 系统软件设计

小车搬运过程中,将其各项功能模块化,使得各个动作互不干涉,在整体上又能实现设定的功能,系统模块图如图5所示。

图5 系统模块图

对单片机的引脚设定,控制两舵机的引脚设为10和8,搬运机构的电机引脚设为12和13,左传感器定义为A1,右传感器定义为A2,中传感器为A0,节点传感器为A3。

引脚设定程序如下:

void setup() //初始化设定

{

delay(5000);

serial.begin(9600);

lservo.attach(10);

rservo.attach(8);

pinMode(12,OUTPUT);

pinMode(13,OUTPUT);

digitalWrite(12,HIGH);

digitalWrite(13,HIGH);

}

3.1 循迹模块设计

根据设计思路,小车自动循迹行走的过程中要完成不同的动作,其功能图如图6所示。

图6 循迹功能图

自动循迹是搬运小车最基本的要求,小车在轨迹上行走,必须要判断与轨迹的偏差,并且有找正功能。循迹的正确与否决定了小车能否完成搬运的工作。而循迹的准确性,取决于小车与地面交互信息的准确性与频率性。小车与地面轨迹偏差的越小,准确率越高;小车与地面轨迹的交互越多,频率也越高。如图4所示,只有当X0检测到轨迹的时候,小车才会继续前进,每当小车出现跑偏时,两侧的传感器能感知并通知小车做出纠正。

小车找正程序

if(!d(A1)&&!d(A2))

{

xingzou(87,101);

}

else if(d(A1)&&!d(A2))

{

xingzou(89,104); //当左侧传感器触线

//小车左转归中

}

else if(!d(A1)&&d(A2))

{

xingzou(85,92);

}

else

{

xingzou(83,104);

}

void xingzou(int m,int n)//自定义函数,//调用控制小车的Servo函数

{

lservo.write(m);

rservo.write(n);

delay(30);

}

如图7所示,小车从出发点到中点后,车头指向C点,完成右转-行走-掉头-行走,再次回到中点。依次类推从E点到C点、A点、出发点都要经历右转-行走-掉头-行走,这就实现了小车到达E、C、A三个点的动作。

节点传感器在每个节点得到一次信号,小车走到中心点时会得到三次信号,当其右转后得到第五次信号,当小车从E点捕捉完物体回到中点时,向右转继续捕捉C点的物体,以此类推,小车从E点依序到达C点、A点、出发点时都是向右转,对于中点的判断都是一样的,因此小车捕捉A、C、E点的物体后回到出发点要经过四次右转,因此可以设定一个向右转的循环程序来确保小车的转向。

图7 A、C、E点捕捉的4次右转

交叉点判断程序

void panduan()

{

if(d(A5))

{

i++;

switch(i)

{

case 0:break;

case1:xingzou(80,108);

delay(120);Serial.println(i);

break;

case2:xingzou(80,108);

delay(120);Serial.println(i);

break;//行使到中点

case3:rt();xingzou(80,108);

delay(200);Serial.println(i);break; //调用rt()程序,在中点实现右转

case4:diaotou();Serial.println(i);

i=0;break;//行使到E、C

//A后掉头

}

}

}

3.2 颜色识别模块设计

当小车捕捉完物体后回到出发点进行颜色识别,将每个颜色的物体放在对应的存放点处。连接TCS3200与Arduino的端口,设置S0、S1引脚的比例因子为2%。S2、S3引脚高低电平选择滤光器,分别实现红、绿、蓝三色的滤波。颜色传感器输出信号连接到0号端口,引发脉冲信号中断。放球程序里的参数,根据颜色传感器传递的参数,设置F、G、H为三色物体存放的位置。

在颜色模块编程前,对传感器进行定义。

3.3 串口通信模块设计

单片机串口通讯传递的数据类型是字符串,采用拆分字符串、累乘相加的方法传递数据。

4 系统调试

铺上轨迹,组装各机构与控制硬件,将程序写入单片机,小车在出发点开始运行在调试的过程中,当把交叉点传感器的信号设置为外部中断信号时,因Arduino自带外部中断的灵敏度高,感受到灰度变化时,循迹传感器信号端的电压会不稳定,出现震荡,干扰对结果的判定,通过对延时的的调整,让小车跳过灰度变化的节点,避免了干扰。

在使用定时器时,因Arduino自定义调用了0定时器,使得颜色传感器与舵机的冲突,为了避免冲突,使用两块单片机与串口通信,最终解决了问题。

将各组成整体调试,包括传感器的位置、延时时间、运行轨迹等。最终小车的实际运行与设计一致。

5 结论

设计的微型智能自动循迹搬运车控制系统能够使小车在所设计的轨迹上实现自动循迹、自动寻标、自动搬运等功能。导引是小车的重点,反馈及对反馈的处理机制决定了小车循迹的精度。搬运物体的颜色、形状、大小,决定了物体的识别模式。对搬运机构的设计,决定了搬运物的种类。

将该微型无人搬运车的搬运方式、循迹、搬运对象及识别方式进行改进扩充后,可形成不同的控制系统,进而可运用在不同的场合及领域。对该系统进行研究与拓展将具有长远的意义。

[1] 任晓军.AGV在物流工程中的应用研究[J].科技经济导刊,2016(31):49-50.

[2] 刘洪军.AGV搬运机器人的制作[J].科技展望,2016(25):162.

[3] 王登贵,于膑.基于MCU的智能搬运车控制系统设计与研究[J].煤矿机械,2014(5):215-218.

[4] 金亚萍.自动导引车关键技术现状及发展趋势[J].物流技术与应用,2015(11):96-98.

[5] 刘云.从专利申请辨析AGV发展[J].机器人产业,2015(2):84-92.

[6] 郭伟.自动寻迹搬运车控制系统设计与实现[J].中国铸造装备与技术,2015(4):39-42.

[7] 苗岱.无人化物料自动精密搬运控制系统设计[J].电子工业专用设备,2016(5):5-8,38.

[8] 缪泽宇,孔凡玉,李爱琴.基于PLC的多工位刷光线加工机床控制系统设计[J].组合机床与自动化加工技术,2016(9):40-42,46.

[9] 王玉闯,刘德平,马龙杰.基于工业机器人的电热水器倒机自动化系统的设计与研究[J].组合机床与自动化加工技术,2016(9):58-60.

[10] 王全刚,程良伦.九轴水火弯板机器人运动控制系统设计[J].组合机床与自动化加工技术,2016(3):90-92,96.

[11] 凯姆·卡尔文,泰勒·卡尔文,庞明珠.Arduino与电子制作[J].电子制作,2012(8):68-73.

[12] 蔡睿妍.基于Arduino的舵机控制系统设计[J].电脑知识与技术,2012,8(15):3719-3721.

[13] 张业明,陈江雪.基于安卓和单片机的智能公路警示器[J].传感器与微系统,2016(4):93-96.

(编辑 李秀敏)

Development of Control System for Micro Automatic Tracking AGV

ZHANG Jun,ZHAO Yu-gang,YANG Qiang,WANG Xian-da,ZHANG Jin-ye,ZHANG Hai-yun

(School of Mechanical Engineering, Shandong University of Technology, Zibo Shandong 255049, China)

In order to explore the carry of complex paths and multiple locations, a control system based on Arduino for micro automatic tracking AGV is developed. The hardware includes controllers, driver detectors etc, and the software is divided into tracking module, color recognition module and serial communication module. The Arduino Nano and serial communication are used to control AGV. At last, through the debugging, the AGV realizes the function that it can carry the various colors objects and place them in the specified locations on the laying track.

automatic tracking; AGV; control system; development

1001-2265(2017)07-0133-04

10.13462/j.cnki.mmtamt.2017.07.032

2017-02-14;

2017-03-10

国家自然科学基金(51375285);山东省自然科学基金(ZR2014FL003)

张军(1990—),男,新疆喀什人,山东理工大学硕士研究生,研究方向为数控技术、智能装备技术的开发,(E-mail)1740312191@qq.com;通讯作者:张海云(1972—),女,山东临沂人,山东理工大学副教授,博士,研究方向为数控技术、智能装备技术的开发,(E-mail)zhy@sdut.edu.cn。

TH166;TG659

A

猜你喜欢

循迹舵机小车
基于DFT算法的电力巡检无人机循迹检测系统设计
大车拉小车
自制小车来比赛
浅谈基于机器视觉和姿态检测的循迹智能车
刘老师想开小车
两轮自平衡小车的设计与实现
基于dsPIC单片机的飞艇舵机控制实现
智能差分循迹小车设计
基于高速同步485总线通信的多通道舵机控制器设计
菜鸟看模型