基于MC9S12XS128MAL控制的光电导引式AGV*
2013-09-15汪宇辰梁伟健
刘 波,汪宇辰,梁伟健,叶 波,周 杰
(重庆大学机械工程学院,重庆400030)
0 引 言
自动导向小车(简称AGV[1-3])是移动机器人的一种,是现代制造企业物流系统中的重要设备,主要用来储运各类物料,为系统柔性化、集成化、高效化运行提供重要保证。
资料显示:我国虽然开始研制工业机器人仅比日本晚5~6年,但是由于种种原因,工业机器人技术的发展仍比较慢[4]。AGV从上世纪60年代开始研究,上世纪70年代,北京起重运输机械研究所研制成ZDB-1型自动搬运车,上世纪90年代中期,昆船公司在引进国外先进AGV小车的技术基础上,先后承担数十个AGV小车系统的设计、安装以及维护项目,其水平代表了目前国内的最高水平[5]。
西方发达国家经过近一个世纪的研究,AGV小车已进入高智能化、数字化、网络化、信息化的发展道路。到目前为止,全世界已拥有AGV小车系10 000多个,约十万台AGV小车[6]。
综上所述,为了节约用工成本,不少企业开始考虑引进AGV小车产品,但是国内AGV小车的价格一台就要7万元~8万元,价格太高,如:深圳市佳顺伟业科技有限公司生产的SMT专用AGV,售价8万元;上海竞舸自动化科技有限公司生产的潜入式AGV01,售价8.5万[7]。为了降低AGV小车的价格,降低企业成本,实现高效、安全运输,开发经济型工业用途的AGV小车是必要的。
基于上述原因,本研究提出成本不超过1万元的经济型AGV小车的设计方案。其思路包括:①硬件上采用价格低技术成熟的电动轮椅用电机、减速器,控制系统,传感器利用飞思卡尔智能车大赛中价格适中、技术成熟的有关配件;②控制策略设计上,在现有算法的基础上提出具有简单、实用优点的偏差累计算法[9]。
1 AGV车身结构设计
光电导引式AGV车身上主要包括:车架的上下层钢板、后轮、立柱、控制器箱体、光电传感器、直流电机、万向轮、电池、超声波避障传感器。
1.1 后轮、直流电机和光电码盘
小车的左、右后轮和光电码盘都安装在直流电机轴上,并且光电码盘安装在直流电机和后轮之间。小车的后轮与电机轴通过平键连接,光电码盘则通过粘胶剂粘在后轮中间部位。小车的前进与转弯是通过控制两个直流电机转速的。前面两个万向轮仅起支撑作用。
1.2 上、下层钢板及立柱
小车下层钢板的设计是为了安装与固定后面直流电机和前面的万向轮,下层钢板底部安装有光电传感器和避障传感器,并且下层钢板顶部安装有控制器箱体。下层钢板与上层钢板之间用4个立柱连接固定,立柱与上、下层钢板通过螺纹连接。上层钢板上安装了一个电池安装槽,这个安装槽用来固定电池。上层钢板上除了安装电池安装槽外,不再安装其他装置,以留出空间用来装运货物。
1.3 光电传感器和避障传感器
小车的光电传感器安装在底层架子上,避障传感器安装在AGV前段,两者都采用螺栓和螺母固定。光电传感器与后轮在纵向有段距离,即前瞻距离,使小车后置左电机和右电机有一定的反应时间。如果前瞻不够,则会使小车的转弯出现滞后现象。避障传感器安装在小车前段是为了实现小车避障的功能,当有障碍物阻挡小车前进方向时,利用超声波测距原理可有效避免碰撞。
1.4 电 池
小车的电池安装在电池卡槽中。该结构的优点是:避免电池因安装不牢固而损坏,并有利于电池充电,易于更换新电池。
2 硬件电路设计
硬件电路模块部分包括:MCU主控制器、D/A转换、光电码盘、避障传感器、光电传感器等主要模块。
2.1 MCU主控制器模块
MCU主控制器选用的是飞思卡尔系列的MC9S12XS128MAL芯片。该芯片是增强型的16位MCU,片上资源丰富,功能模块包括 SPI、SCI、I2C、CAN、A/D、PWM、Timer等,方便构建实际应用系统;大容量的Flash、RAM和EEPROM(Data Flash)存储器可满足大部分的存储器空间需求,具有低功耗、低电压检测复位与中断、复位控制、看门狗及实时中断等功能;可根据实际工作需要选择时钟频率,最高总线工作频率达40 MHz;该MCU具有方便快捷的在线编程调试能力、丰富的指令系统、较强的数值运算和逻辑运算能力。
2.2 D/A转换模块
在控制电路中,需要给电机控制器输入一组模拟电平以实现控制左右电机转速的目的。为了让MCU输入的数字电压信号转换成精确的模拟电压信号,本研究采用的D/A转换模块如图1所示[10]。
图1 D/A转换模块原理图
图1中,U6、U10、U11分别是 DAC0832芯片、LM358芯片、2 K电位器的原理图。
其中,DAC0832是采样频率为8位的D/A转换芯片,集成电路内有两级输入寄存器,使其具备双缓冲、单缓冲和直通3种输入方式,且精度能达到1/256。
DAC0832芯片转换的工作原理图如图2所示。
图2 DAC0832芯片转换的工作原理简图
图2中,DAC0832由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟电压V0为:
式中:VREF—基本电压值,由芯片管脚VREF给定。
由上式可见,输出的模拟电压与输入的数字电压(Dn-1·2n-1+ … +D0·20)成正比,调节飞思卡尔MC9S12XS128MAL芯片端口的高低电平可改变D/A转换模块电平,从而调节输出的模拟电压的大小。
由于DAC0832的D/A转换结果采用电流形式输出,需要相应的模拟电压信号,必须外接一个高输入阻抗的线性运算放大器来实现。
LM358内部包括两个独立的、高增益、内部频率补偿的双运算放大器,将DAC0832与LM358中的一个运算放大器相连,能得到相应的模拟信号。但是,实验所得的模拟信号是负电压,而且电压值偏小,再通过LM358的另一个运算放大器,实现电压值“翻转”,并通过2 K电位器,调节电压大小。
LM358适合于电源电压范围很宽的单电源工作模式,也适用于双电源工作模式。该设计采用的是双电源工作模式,需要为LM358芯片提供±9 V电压。
为了得到LM358工作所需的-9 V电压,本研究采用ICL7600芯片,它是MAXIM公司生产的小功率极性反转电源转换器,输入电压范围是1.5 V~10 V,能把+9 V转换为-9 V,为LM358芯片供电。
2.3 光电传感器模块
光电传感器利用光的漫反射原理进行工作。在电路设计过程中,因为光电传感器反馈的信号电压是0~24 V,而单片机能检测的电压是0~5 V,须增加一个光耦将光电传感器0~24 V的输入电压转换成0~5 V的电压。经测试,该光电传感器工作性能良好。
2.4 超声波避障传感器模块
超声波避障传感器[11]工作时序图如图3所示。
图3 超声波模块工作时序图
超声波模块的工作原理:采用I/O触发测距,当输入至少10 μs的高电平信号时,该模块会自动发送8个40 kHz的方波,自动检测是否有信号返回,当有信号返回时,通过I/0端口输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。测距公式为:距离=(高电平时间×声速(340 m/s))/2。
3 软件设计
软件设计时,首先结合机械结构、硬件电路,绘制出程序流程图;然后,利用Metrowerks公司为MC9S12系列专门提供的全套开发工具Freescale CodeWarrior IDE V5.1软件编写C语言程序代码,并进行编译与调试。
3.1 CodeWarrior IDE 编译环境
本研究利用CodeWarrior IDE V5.1软件提供的C语言集成开发环境实现AGV小车软件开发设计。
CodeWarrior的功能强大,除了一般开发工具所具有的编码、编译、编辑、链接、调试过程外,还具有如下优点:用户可在新建工程时将芯片的类库添加到集成开发环境中,工程文件一旦生成就是一个最小系统,并且用户无需进行繁琐的初始化操作,这一点正是51系列单片机无法比拟的。
3.2 控制程序流程图
除了显示小车实时信息的液晶显示程序、避障程序外,由于小车是采用左、右电机分别驱动,还需要设计小车稳定直线行驶与转弯的控制算法,并编写相应的程序代码。
综合上述因素,本研究绘制的光电导引式AGV控制程序流程图如图4所示。
图4 光电导引式AGV控制程序流程图
图4中,光电码盘的作用是保证小车稳定地直线行驶,当左、右光电码盘上测量的栅格数不同时,将会使小车小幅转弯;光电传感器的作用是保证小车顺利转弯,当左、右光电传感器感应到黑胶带后,将会使小车大幅转弯。避障部分采用定时中断,因为规定的避障距离是1 m,通过超声波测距公式,算出测1 m距离所需时间为5.9 ms,所以设定避障传感器每隔8 ms工作一次可达到测试要求;并且8 ms延时不通过“Delay”延时函数实现,而采用多次主循环累计实现,以缩短执行一次主循环所用的时间,提高控制效率。
3.3 程序编写
为使小车稳定直线行驶,需通过控制左右电机速度的增减以抵消左右电机之间的微小速度偏差。为了实现上述目的,本研究设计了一个基于偏差累积的算法。实现该算法的程序代码如下所示:
上述程序中,A与B分别代表左、右光电码盘转过的光栅数,如果A=B,左右光电码盘通过的光栅数相等,说明小车左、右后轮的速度相同。当(B-A)>2,则右光电码盘转过的光栅数大于左光电码盘转过的光栅数,说明右轮的速度大于左轮的速度,需通过小幅右转来调节以使小车保持直线行驶;对于(A-B)>2的情况,可依此类推。
4 现场实验和调试
为了验证小车能够稳定地沿着黑胶带行走,本研究通过在实验室地面上粘贴黑胶带的方式进行现场实验测试。
光电导引式小车及实验场地如图5所示。
图5 光电导引式AGV实物图
图5中,小车的上表面除了安装一个电池盒用于存放电池外,其他平整表面部分用于装运货物。经过现场测量,小车上表面与地面的平行度保持良好。
为了控制小车直线行驶或转向,本研究需要向控制器输入两组模拟电压,此处定义为黄线电压和绿线电压。通过实验,分别测得了多组黄、绿线电压值下左、右电机(前进方向为准)的转速值,如图6、图7所示。
图6 左电机转速与黄绿线控制电压曲线图
图7 右电机转速与黄绿线控制电压曲线图
如图6所示,从实验测试数据获得的拟合曲线可知,左电机转速大部分稳定在0.5 m/s,并且绿线电压值大部分在3.3 V~3.5 V之间,黄线电压值大部分在2.4 V~2.6 V之间。为了使小车直线行驶,需输入连续数据点代表的电压值,而为了使小车转向,则需输入离散数据点代表的电压值。
图7中的曲线规律与图6相似,通过与图6相同的分析方法可获得右电机稳定工作的控制电压值。
5 结束语
基于飞思卡尔芯片控制技术,本研究开发了光电导引式AGV小车。实地测试结果表明,小车性能总体上达到了预期指标。同时,笔者提出的偏差累积控制算法在小车行驶过程控制中获得了良好的应用,为以后的研究提供了重要参考依据。
在后续研究中,将在工厂车间开展小车测试,检验小车在更为复杂的路面条件下的性能;同时,该小车现阶段尚未安装蓝牙模块,无法实现对小车的远程控制,为了弥补该不足,笔者计划在后续的项目中增设蓝牙模块,以实现对小车的远程控制。
[1]HAMZHEEL M,FARAHANI R Z.An ant colony-based algorithm for finding the shortest bidirectional path for automated guided vehicles in a block layout[J].International Journal of Advanced Manufacturing Technology,2013,64(1-4):399-409.
[2]SOK Y L,HAI W Y.Navigation of automated guided vehicles using magnet spot guidance method[J].Robotics and Computer-Integrated Manufacturing,2012,28(3):425-436.
[3]YING C H,TA W L.Zone design and control for vehicle collision prevention and load balancing in a zone control AGV system[J].Computers & Industrial Engineering,2009,56(1):417-432.
[4]陈自立,徐娅萍,顾立彬.基于模糊Q学习算法的AGV路径规划研究[J].制造业自动化,2012,34(11):4-6.
[5]LIANG J H,RAO Z Q.Research and I mplementation of visual control technology with AGV[C]//Proceeding of the 2011 IEEE International Conference on Electric Information and Control Engineering.Wuhan:[s.n.],2011:1588-1591.
[6]孙 瑜,张 倩,姜一丁.AGV控制系统在烟草物流过程中的应用[J].自动化与仪表,2012,27(5):39-45.
[7]梁春苗,黄玉美,王小波.基于PMAC的自动导引运输车智能控制[J].机电工程,2009,26(8):98-99.
[8]李医中,夏 田.基于CPAC运动控制卡的AGV控制系统开发[J].机电工程技术,2011,40(2):37-38.
[9]RAJEEVA L M,WEE H G,NG W C,et al.Cyclic deadlock prediction and avoidance for zone-controlled AGV system[J].International Journal of Production Economics,2003,83(3):309-324.
[10]CHE F H.A simulation study of a bi-directional load-exchangeable automated guided vehicle system[J].Computers & Industrial Engineering,2010,58(4):594-601.
[11]程斌杰,魏逢原,金孟加.基于加速度传感器的智能小车路况自动测量系统[J].机电工程,2012,29(10):1192-1194.