基于单片机的AGV智能车的设计

发布者:rockstar6最新更新时间:2018-04-11 来源: eefocus关键字:单片机  AGV  智能车 手机看文章 扫描二维码
随时随地手机看文章

    随着计算机和信息技术的快速发展,AGV智能车在运输、仓储等工业领域获得了广泛的应用。特别是随着现代物流业的飞速发展,运输以及仓储成本问题已成为物流企业在成本核算中一个无法忽视的问题,实现产品的零库存是节约成本、提高产品竞争力的目标之一。一方面是为了节约成本,实现零库存;另一方面是为了获得规模效益而不断扩大的储备仓库,要实现不同产品的自动归库和自动出仓,需要一种可以实现自动化操作的智能设备,来完成这些无人化工作,从而实现高效管理和自动控制的目标。AGV智能车恰好可以实现这样的功能。本文基于单片机的原理,探讨和模拟了AGV智能车在仓库中实现对产品的自动归库和自动出仓的工作方式


    1 方案选择及硬件电路设计

    1.1 MC9S12DJ128单片机

    MC9S12DJ128 MCU是一种16 bit的MCU,其内部主要由MCU的基本部分和CAN功能模块组成。MCU的基本部分主要包括:

    (1)时钟和复位产生模块CRG(CLOCk and Reset Generator)。包括低电流振荡器或是标准振荡器的选择、锁相环时钟频率放大器、看门狗、实时中断和时钟监控器。

    (2)存储器包括128 KB的Flash、 8 KB的RAM、 2 KB的EEPROM。具有5V输入和驱动能力,CPU的工作频率可达到50 MHz,并支持单线背景调试模式(BDM),可以在线调试。

    (3)29路独立的数字I/O接口,20路带中断和唤醒功能的数字I/O接口;2个8通道的10位A/D转换器、具有外部转接触能力;具有8通道的输入捕捉/输出比较,还具有8个可编程PWM通道,可配置成8通道8位或4通道16位PWM,其每个通道的周期和占空比均可以通过编程独立设置。

    (4)具有2个串行异步通信接口SCI、2个同步串行外设接口SPI、Byteflight,Inter-IC总线以及SAE J1850 Class B数据通信网络接口[1]。

    为了实现AGV智能车的控制实现无人化操作,硬件电路的设计主要包括路径信息采集分离模块、电源管理模块、舵机控制模块、电机驱动控制模块及速度检测控制电路等。其设计框图如图1所示。

11.jpg

    为了方便硬件电路调试、便于硬件电路的分割处理、避免硬件电路可能出现的信号干扰、串扰问题,方便机械结构的设计,本设计采用模块化设计,不同模块之间可以通过屏蔽线或同轴电缆实现信号传输,通过实验,其效果比较理想。

    1.2 电源管理模块

    本设计中AGV智能车采用7.2 V的电池组供电。常用的直流低压控制电路可采用开关稳压和串联稳压方式。开关稳压芯片的工作效率高但电路有较大的电源噪声,适用于耗电量较大的电路[2]。当电路的电池电压由于消耗变低时,通用的LM7805芯片输出电压就难以保证,容易造成单片机的自复位。另外在考虑到驱动电机有较大的电流,尤其智能车在启动和加速时,可能会造成电池比较大的输出压降。

    基于以上的考虑,本设计电源模块的主控芯片分别采用MAX1771CSA和MAX1626ESA,该芯片有较大的电压输入范围,能有效地保证由于电池的损耗输出电压降低而造成的稳压电路的较大电压波动输出。采用MAX1771CSA构成12 V升压电路,MAX1626ESA构成5 V降压电路。单片机主控制电路、舵机驱动、速度检测均需要+5 V的控制电压,而视频采集电路需+12 V控制电压。该电源供电模块设计完全可以满足控制要求。

    1.3 CCD视频采集分离模块

    本文采用Clarion CC-450型车载前端摄像头,该摄像为NTSC制式,扫描525线30帧/s的图像。CCD摄像头输出标准的视频复合信号,通过行扫描的方式,将图像信息转换为一维的视频模拟信号输出。通过对比S12单片机采集图像分辨率的特点及路径检测所需图像分辨率的要求可以发现,在安装CCD摄像头的时候,只要将其旋转90°,则图像信息也将旋转90°,如图2所示。通过A/D转换器采集的图像信息,水平分辨率与垂直分辨率会发生互换,从原来的水平分辨率低、垂直分辨率高的图像,变成水平分辨率高、垂直分辨率低的图像,正好可以满足道路参数检测的要求。

22.jpg

    由于摄像头采集的信号数据量较大,采用单片机本身自带的A/D转换I/O口可能出现转换速度无法满足要求的情况,所以,在本设计中另外采用了1片A/D信号转换芯片ADC1775CIMTC,以满足摄像头信号采集和转换使用。步信号分离芯片LM1881和ADC1775CIMTC的A/D转换可以对视频信号进行采集,从而得到CCD的灰度图像数据,经二值化处理就可以在图像上得到黑色路径轨迹的点阵[3],视频信号通过比较器与设定的值进行比较,从而得到视频电压的二值化。二值化电路原理图如图3所示。A/D信号转换芯片ADC1775CIMTC如图4所示。调节设定电压比较值,将该值设定为视频信号中黑白亮色的分界电压值,以提高输出图像识别效果。摄像头采集电路如图5所示。

33.jpg

44.jpg

55.jpg

    1.4 电机驱动模块

    AGV智能车上采用RS-380SH型驱动电机,为了可靠保证智能车的速度,提高其负载能力,本设计采用2片并联使用的具有短路保护、欠压保护与过温保护功能的MC33887芯片驱动电机,保证电机的驱动能力,实现对速度进行控制。通过将各种状态引入单片机的中断口,使单片机能对外界的异常情况进行实时处理。采用2部分电路对称布置,如图6所示为其中的1片硬件电路。

66.jpg

    1.5 舵机控制模块

    本设计采用SRM-102型舵机,其响应速度为0.2s/60°。控制舵机的脉冲可以使用S12单片机的1路PWM产生。单片机中有8路PWM输出端口,可以将其中相邻的2路PWM输出级联成一个16位PWM输出。在单片机为24 MHz时,设置级联PWM周期常数为60 000,对应PWM周期为20 ms的脉冲信号,PWM占空比常数为4 500时对应输出为1.5 ms。改变占空比常数可以改变输出脉冲的宽度。另外,脉冲宽度与转角的线性关系计算公式为:

    a=(L-1.5)×90°

    式中,a是舵机的转角,单位为度(°);L是脉冲宽度,单位是ms。

    其转角和脉冲宽度对应关系如图7所示。

77.jpg

    测试过程中,发现舵机一定的转角有时间的延迟,时间延迟正比于旋转过的角度,反比于舵机的响应速度,通过分析可知,舵机的响应速度直接影响小车转弯的速度。而且在实际的控制现场,还影响转向的精确度。通过不断的测试发现可以适当抬高摄像头的高度,使其能够探测更远的距离,提前采集弯道信息,提前对舵机给以响应。但同样存在一个问题,摄像头抬得过高会出现采集回来的路径的灰度值偏低,必须通过不断的实验找到一个合适的结合点。

    1.6 速度检测模块

    本设计采用齿槽圆盘加直射式光电对射传感器构成车速检测电路。通过光电传感器读取齿槽圆盘转动脉冲。传感器输出的电压信号可以由单片机的A/D端口进行读取,其余的输出脉冲信号可以利用单片机I/O端口输入到单片机内部的定时器/计数器模块中进行测量。通过周期读取计数器的计数数值,可以反映脉冲的频率,从而得到车速信息。

    假设n为后轴的转速(单位为r/s);N为1个采样周期T内光电传感器记录的脉冲个数;P为齿槽盘的齿数;T为采样周期(单位s)。则:

    N=T×n×P (1)

    因此小车后轮的转速为:

    n=N/(P×T) (2)

    经测量,小车后轮直径D=55 mm,则可以得到小车瞬时速度为:

    V=π×n×D (3)

    固定在后轴上的齿槽盘是1个圆周被分成60个等份的齿槽圆盘。齿槽盘上的1个齿和1个缺口连续通过速度传感器后,速度传感器就会生成1个脉冲信号。经过整形处理有单片机的I/O口对其进行计数捕捉,每捕捉到1个脉冲信号,智能车前进的路程就可用下式得到:

    L=1/60×π×D (4)

    把D=55 mm代入公式(4)中可以得到:

    L=1/60×π×55 mm=2.879 mm (5)

    通过测试可以确定,当速度采样周期为0.2 s时效果最佳。如果采样周期太长,则脉冲累加器得到的数量太多,在软件编程时对算法不利。基于上述分析,将定时器时间设定为48 ms,即每隔48 ms定时器就产生1次中断并读取脉冲累加器中的数值。设定经过4个间隔后做1次PID算法来改变电机的驱动信号,进而改变智能车的速度。在PID算法中的检测值(反馈值)由这4次读取脉冲累加器的值平均后得到,其目的在于防止检测信号突变而干扰控制。为了滤除干扰信号,在PID控制算法中加1个滑动平均滤波器。按上述设定定时器设定值和脉冲累加器后,可以推算出智能车的速度表达式如式(6)所示,从而完成对智能车的速度的测量。
V=(L×N)/48 (6)

    1.7 键盘显示控制模块

    本设计采用的单片机自身带有可用于扩展键盘和显示的I/O口,硬件设计直接采用外置式8针插拔4×4键盘,以及带有字库的外置式点阵液晶显示模块,以方便在调试过程中及时纠正智能车在运行过程中的路径偏差。在实际的控制现场,可以采用无线通信模块来给AGV传输指令,实现远距离操控[1]。

    2 系统软件设计

    2.1 系统初始化

    在系统运行开始时,首先需要进行初始化,初始化主要包括时钟初始化、A/D口初始化、PWM初始化、IRQ初始化以及I/O口初始化。其中,A/D和IRQ在CCD图像采集过程中使用,PWM主要应用在舵机的控制和电机驱动的控制上。

    2.2 PID算法设计

    舵机转角与电机转速算法从最远的一行图像开始,根据预设的标志位判断该行是否有效。如果不是有效行,则判断下一行,直到找到有效的第1行为止。找到有效行就可以获得中心线的位置信息,继续寻找最后一行有效黑线,据此计算出黑线的斜率。将黑线中心位置及黑线的斜率代入本设计的舵机控制量与中心位置公式,计算出舵机应有的控制量,从而确定相应的舵机转角及电机的转速。计算公式如下:

    舵机控制量=比例控制量+积分控制量+微分空置量 (7)

    式中,比例控制量根据黑线中心位置乘以比例系数得到,积分控制量根据黑线斜率计算得到,微分空置量则是第K次与第K-1次比例控制量的差值[5]。各控制量的系数值均通过测试选定。

    对于电机速度的控制,主要根据在起始时给定智能车的运行速度以及启动后计算出的舵机控制量判断智能车是否行驶在直道上,如果是在直道上则加快速度,否则根据控制量的大小进行适当的减速,以保证智车能在过弯时能更加顺畅和精确。

    2.3 CCD图像采集

    本设计采用的CCD图像传感器采集图像的帧周期为33.4 ms,行周期为63.6 μs。在智能车行驶过程中需要对采集的图像进行实时处理,并不断进行反馈以对舵机转角和速度进行控制,因此,在采集工程中以半帧为1个采集周期,每8线采集1线,剩余时间执行其他任务。

    2.4 图像处理

    通过CCD采集获得的是一幅灰度图像,为了确定路径,需要进行二值化并对中心线进行直线拟合。由于单片机要不断地进行图像采集,所以计算时间剩余十分有限,为此进行二值化和直线拟合就需要采用计算量最小的算法来完成。

    2.5 图像阈值的确定

    由于摄像头采集的图像信息数据量比较大,而且必须是动态实时的路径信息。基于单片机的处理速度和时间,本文采用固定的阈值进行图像的二值化。单片机本身无法进行动态计算,所以需要确定一个比较合理的方法来确定一个固定阈值。本设计利用分割最优阈值迭代算法进行阈值计算[6]。当采集完1幅图像之后进行最优阈值计算,计算完成后将计算结果发给单片机,然后进行下一幅图像采集,如此循环。

    在迭代算法中,需要对分割出的图像分别求出其灰度平均值,计算如下:

8.jpg

    式中,E{g(x,y)}表示灰度平均值,f(x,y)表示图像二维定义,e(x,y)表示偏差函数。
(8)式、(9)式说明了随着迭代次数的增加,平均灰度值将趋向于真值。因此,用迭代算法求得的最佳值不受噪声干扰的影响。

    在计算过程中,首先选择一个近似值作为初始值,然后进行分割,产生子图像;并根据子图像的特性选取新的值,然后用新的值分割图像,经过几次循环,使错误分割图像像素点降到最少。这样做的结果明显优于用初始值直接分割图像的效果,值的改进策略是用迭代算法的关键[7]。具体步骤如下:
(1)选择一个初始值的估算值

10.jpg

14.jpg

    通过分析,确定16为图像的固定阈值。实验证明,经过以16为阈值的二值化处理后的图像比较清晰,在实验室光照较好的条件下,没有出现离散斑点,智能车的自主识别效果很好。在软硬件程序的联合调试过程中,在实验室正常灯光环境下,智能车能很好地沿线行驶,在实际的调试中发现如果光线太暗,会造成CCD摄像头采集回来的图形灰度值偏低的情况。针对这种情况,可以尝试采用补光的措施,来满足摄像头对环境光照的要求。智能车控制系统流程如图8所示。

88.jpg

    智能车在直线行驶过程中,舵机与前轴夹角为90°,考虑到车辆行驶中偏离路径出现的误差,当其夹角范围在80°~100°范围内时,直接输出舵机的计算值;当检测到的夹角超出此范围值时,为保证智能车的正确行驶方向,由光电传感器进一步检测其行驶路径,并输出计算的舵机转角。

    智能车是在预先设置好的路径上行驶。在实际的仓库环境中,由于智能车会有较大的负载,为了保证安全,在智能车出现错道情况时,必须让其强制停止。在到达箱体货物跟前必须减速。所以针对这种情况可以安装其他设备,如红外传感器和行程开关,以保证检测信息足够让智能车安全行驶。

    本文通过模拟在大型仓库中,AGV自主寻迹智能车,来实现仓库的无人化管理。通过实验证明,本智能车在这种环境中实现的可行性。基于多传感器信息导航系统在大型仓库管理中实现智能车无人化管理,给工业现场多信息导航智能系统提供有益的参考。


关键字:单片机  AGV  智能车 引用地址:基于单片机的AGV智能车的设计

上一篇:基于Freescale单片机ECAS模糊PID控制
下一篇:单片机的电动助力转向系统驱动电路设计

推荐阅读最新更新时间:2024-03-16 15:59

基于51单片机的智能营养秤系统设计与实现
一、项目背景 随着人们生活水平和健康意识的提高,越来越多的人开始注重自己的饮食健康。在此背景下,智能营养秤系统应运而生,成为了一种非常实用的工具。本项目基于51单片机设计和实现一种智能营养秤系统,通过该系统可准确地测量食物的重量并计算其热量、蛋白质、脂肪、碳水化合物等营养成分含量。 当前系统采用了STC89C52单片机作为主控芯片,预置了多种食材的营养成分数据。用户只需要使用矩阵键盘输入食材编号,将需要称重的食材放置在重力传感器上进行依次称重,系统就可以自动计算出所有食材的各类营养含量总值,并通过液晶屏显示出来。同时,系统根据预设的营养指标,对不达标或超标的食材进行对应的声光提示,提醒用户注意饮食健康。 当前系统还配备了无
[单片机]
基于51<font color='red'>单片机</font>的智能营养秤系统设计与实现
用51单片机对激光器电流的精度控制的设计方案
引 言   近年来,随着光电技术的迅猛发展,激光器已广泛应用于医疗、国防、测量等各个领域。而环境温度变化会直接影响激光器的波长。把关键元件(如高性能晶振、SAW 滤波器、光放大器、激光二极管) 的本机温度限制在窄范围内,可以提高电子系统的精度。一般需要将温度控制在0. 1 ℃内,激光器的工作精度才能很好地保持在0. 1nm 内 。文中的设计方案能为大功率半导体激光器提供有效支持,最大电流可达2. 5A。   1  半导体激光控制器的设计   激光控制器由受控恒流源,温度监视及控制电路,主控制器及显示器构成。整体结构原理见图1。 1. 1  受控恒流源:   为了使激光器输出稳定的激光,对流过激光器的电流要求非常严格
[单片机]
用51<font color='red'>单片机</font>对激光器电流的精度控制的设计方案
意法半导体STM32系列两周年再添新丁
意法半导体在STM32系列微控制器两周年生日之时,宣布基于ARM Cortex™-M3处理器的STM32互联系列(Connectivity Line)微控制器已全面投产,新产品如预期准时上市。自此,意法半导体STM32家族已拥有包括基本型、USB基本型、增强型以及互联型四个产品线,70个型号的产品引脚与功能相互兼容。 STM32互联系列让设计人员可以在同时需要以太网、USB、CAN和音频级I2S接口的产品设计中发挥工业标准的32位微处理器的优异性能。目前互联系列下设两个产品系列:STM32F105和 STM32F107。STM32F105系列集成一个全速USB 2.0 Host/Device/OTG接口和两个具有先进
[单片机]
意法半导体STM32系列两周年再添新丁
用python写一个发送hex到单片机boot的简单小程序(YFW)
通过串口烧入hex到pic单片机(pic已经运行boot程序) down_hex.py 源码 #coding:utf-8 import serial import pic_hex_pars import time from threading import Timer #串口定时接收 class PicSerial(): def __init__(self): self.t = Timer(0.02, self.func) self.t.start() self.ser=serial.Serial( com1 , 57600, timeout=0.5) self.rx_data=
[单片机]
使用git管理KEIL5开发的单片机工程文件
前置知识 使用KEIL5开发stm32比较方便,在程序编译、连接等中间过程中会产生很多无用文件。比如一个STM32项目正常编译通过后整个项目大小为: 使用正点原子提供的keilkill.bat执行无用文件删除后文件大小为: 可以看出体积相差10倍多,一般为了备份保存,我们只需要保存执行完keil killbat的项目文件夹即可。 注意:删除无用文件后,不影响程序的正常用呢个。通过build可进行重新编译生成。 基本原理 git可指定忽略的文件类型,我们只需要将上述keilkill.bat脚本中指定删除特定扩展名的文件类型设置为git忽略即可。 具体操作 第一步:增加忽略文件 在git工程根目录下新建 .gitign
[单片机]
使用git管理KEIL5开发的<font color='red'>单片机</font>工程文件
用MSP430系列单片机设计便携式医用自动输液器
摘要:介绍了一种医用自动输液器的设计方案,该输液器以TI的MSO430系列单片机为控制芯片,配有显示模块、输液泵驱动模块和键控模块等。该设计方案整机结构新颖,体积小,耗电少,操作方便,使用安全可靠。 关键词:MSP430;液晶;步进电机;输液 1 引言 对于需要自助式护理的病人来说,尤其是由于手术后、晚期癌症、分娩等原因所导致的慢性疼痛的病人,往往需要一种可以由病人自己操作、自动定时、定量向病人进行输液的智能型自动输液器,以达到治疗和镇痛的目的。为此,笔者设计了一种便携式医用自动输液器,该仪器采用电池作为供电电源,并具有功耗小、体积小、重量轻等特点,可满足便携式需要。此外,该仪器使用安全可靠、计量准确、自动化程度高,可适应
[应用]
雷柏智能装备带你盘点AGV,看它在仓储物流中如何充当“田螺姑娘”
随着智能仓储物流系统、柔性制造系统的广泛应用,工厂自动化、计算机集成制造系统技术的逐步发展,常见的智能装备AGV小车的功能愈发齐全,应用范围与技术水平也得到迅猛发展。AGV在雷柏智能装备的各项目解决方案中充当着不可或缺的角色,它像“田螺姑娘”一般勤劳,让生产场景智能起来。 AGV作为仓储物流自动化搬运装卸的重要工具,通过联系、调节离散型物流管理系统,使各环节有效地衔接起来,实现全厂物流运输自动化、作业连续化,让工厂物流运转更加高效智能。本文简单介绍AGV在雷柏智能装备仓储物流业务中的运用情况。 首先我们来了解一下什么是AGV。 AGV是Automated Guided Vehicle的简称,即“自动导引运输车”,又称AGV无人搬
[机器人]
c51单片机外扩 62256 静态RAM
学习汇编语言寻址方式时 理论的知道 但是想知道地址总线物理的连接 所以自己就买了一个62256芯片(32K 静态RAM)进行连接,然后写程序测试。 上面原理图中 有个问题 62256芯片A0-A7没有接 需要用 74HC573 74HC573的链接图 然后网上又找到一张图 C51单片机中有ALE引脚,这个引脚会控制P0脚输出的是地址还是数据 使用原件 AT89S51 62256 74HC573 C51单片机建议买STC公司生产的40脚双列直插的 可以自己制作串口下载线
[单片机]
c51<font color='red'>单片机</font>外扩 62256 静态RAM
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved