星空综合体育app下载 基于单片机的AGV智能车的设计
摘要:设计了单片机作为主控核心,通过CCD传感器采集跑步路径的视频。利用硬件控制电路和基于PID控制算法的软件程序对获得的视频数据进行分析处理,指导智能车的自主识别。正确的路径和实施。
关键词:单片机;智能汽车; CCD传感器;自动控制
随着计算机和信息技术的快速发展,AGV智能小车已广泛应用于交通、仓储等工业领域。尤其是随着现代物流业的快速发展星空·综合体育官网入口,运输、仓储成本已成为物流企业成本核算中不可忽视的问题。实现产品零库存是节约成本、提高产品竞争力的目标之一。一方面是节省成本,实现零库存;另一方面是扩大储备仓库以获得规模经济。要实现不同产品的自动返回和自动取出,需要一种能够实现自动化操作的智能设备。完成这些无人化的任务,从而达到高效管理和自动控制的目标。 AGV智能小车正是可以实现这一功能。本文基于单片机原理,探索并模拟AGV智能小车的工作方法,实现仓库内产品的自动归还和自动取出。
1 方案选择及硬件电路设计
1.1 MC9S12DJ128单片机
MC9S12DJ128 MCU是一款16位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 B类数据通信网络接口[1]。
为了实现AGV智能小车的控制,实现无人作业,硬件电路的设计主要包括路径信息采集与分离模块、电源管理模块、舵机控制模块、电机驱动控制模块和速度控制模块。检测控制电路。其设计框图如图1所示。
为了方便硬件电路的调试,便于硬件电路的分割和处理,避免硬件电路中可能出现的信号干扰和串扰问题,以及方便机械结构的设计,本设计采用模块化设计,不同的模块可以通过屏蔽线或同轴电缆连接。实现信号传输,通过实验,效果比较理想。
1.2 电源管理模块
在本设计中,AGV智能小车由7.2V电池组供电。常用的直流低压控制电路可采用开关稳压和串联稳压。开关稳压芯片工作效率高,但电路电源噪声较大,适用于功耗较大的电路[2]。当电路的电池电压因消耗而变低时,通用LM7805芯片的输出电压难以保证,很容易导致单片机自复位。另外,考虑到驱动电机电流较大,尤其是智能车启动和加速时,可能会造成电池输出电压降较大。
基于以上考虑,本设计中电源模块的主控芯片分别采用MAX1771CSA和MAX1626ESA。该芯片电压输入范围大,能有效保证因电池损耗导致输出电压降低而稳压电路的最大电压。波动输出。 MAX1771CSA用于构成12V升压电路,MAX1626ESA用于构成5V降压电路。单片机主控电路、伺服驱动、速度检测均需要+5V的控制电压,而视频采集电路则需要+12V的控制电压,电源模块设计完全可以满足控制要求。
1.3 CCD视频采集分离模块
本文使用Clarion CC-450车载前端摄像头,该摄像头为NTSC格式,以30帧/秒的速度扫描525行图像。 CCD摄像机输出标准视频复合信号,将图像信息转换为一维视频模拟信号,通过行扫描输出。通过对比S12单片机采集的图像分辨率特点和路径检测的图像分辨率要求,可以发现,安装CCD摄像头时,只要旋转90°,图像信息也会旋转90° °,如图2所示。通过A/D转换器采集到的图像信息将进行水平分辨率和垂直分辨率的交换,从原来的水平分辨率低、垂直分辨率高的图像变为水平分辨率高、垂直分辨率低的图像。该图像刚好满足道路参数检测的要求。
由于相机采集的信号数据量较大,如果使用单片机本身的A/D转换I/O口,转换速度可能无法满足要求。因此,本设计中额外使用了A/D信号转换芯片。采用芯片ADC1775CIMTC来满足相机信号采集和转换的需求。步进信号分离芯片LM1881和ADC1775CIMTC的A/D转换可以采集视频信号,获得CCD的灰度图像数据。经过二值化处理后,可以在图像上得到黑色路径轨迹的点阵[3],视频信号通过比较器与设定值进行比较,得到视频电压的二值化。二进制电路原理图如图3所示,A/D信号转换芯片ADC1775CIMTC如图4所示,调整设定的电压比较值,将此值设置为黑白与亮色的分压值。视频信号提高输出图像识别效果。相机采集电路如图5所示。
1.4 电机驱动模块
AGV智能小车采用RS-380SH驱动电机。为了可靠保证智能小车的运行速度,提高其负载能力,本设计采用两颗MC33887芯片驱动电机并联使用,并具有短路保护、欠压保护和过温保护功能。 ,保证电机的驱动能力,实现调速。通过将各种状态引入单片机的中断端口,单片机可以实时处理外部的异常情况。电路的两部分对称布置。图 6 显示了其中一个硬件电路。
1.5 舵机控制模块
本设计采用SRM-102舵机,其响应速度为0.2s/60°。控制伺服的脉冲可以使用S12微控制器的1通道PWM产生。单片机中有8个PWM输出端口,两个相邻的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所示。
测试过程中发现舵机在一定转角时出现延时现象。延时时间与旋转角度成正比,与舵机响应速度成反比。通过分析可以看出,转向器的响应速度直接影响汽车的转弯速度。而且,在实际控制现场,也影响转向的准确性。通过不断测试发现,可以适当调高摄像头的高度,这样可以检测到更远的距离,提前收集弯道信息,提前响应舵机。但也有一个问题。如果相机升得太高,采集到的路径的灰度值就会偏低。必须通过不断的实验找到合适的结合点。
1.6 速度检测模块
本设计采用齿盘和直接式光电对射式传感器组成车速检测电路。通过光电传感器读取齿盘旋转脉冲。传感器输出的电压信号可以通过单片机的A/D端口读取,剩余的输出脉冲信号可以通过单片机的I/O端口输入到单片机内部的定时器/计数器模块进行测量。通过周期性地读取计数器的计数值,可以反映出脉冲的频率,从而获得车辆的速度信息。
设n为后轴转速(单位为r/s); N为光电传感器在一个采样周期T内记录的脉冲数; P为齿盘的齿数; T为采样周期(单位s)。但:
N=T×n×P (1)
因此,汽车后轮的速度为:
n=N/(P×T) (2)
经测量,小车后轮直径D=55 mm,则可得小车瞬时速度为:
V=π×n×D (3)
固定在后轴上的齿盘是圆周被分成60等分的齿盘。齿盘上的一个齿和一个缺口连续通过速度传感器后,速度传感器将产生脉冲信号。整形处理后,单片机的I/O口进行计数并采集。每捕捉到一个脉冲信号,就可以通过以下公式得到智能车的前进距离:
L=1/60×π×D (4)
将D=55 mm代入式(4)可得:
L=1/60×π×55毫米=2.879毫米 (5)
通过测试可以确定,速度采样周期为0.2s时效果最佳。如果采样周期太长,则脉冲累加器得到的数字太大星空体育app下载入口,这对软件编程时的算法不利。根据以上分析,定时器时间设置为48 ms,即定时器每48 ms产生一次中断,读取脉冲累加器中的值。设置PID算法每隔4次执行一次,改变电机的驱动信号,从而改变智能车的速度。 PID算法中的检测值(反馈值)是通过对四个读取脉冲累加器的值进行平均得到的。其目的是防止检测信号突变而干扰控制。为了滤除干扰信号,在PID控制算法中加入移动平均滤波器。如上所述设置定时器设定值和脉冲累加器后,即可计算出如式(6)所示的智能车速度表达式,从而完成智能车速度的测量。
V=(长×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算法设计
舵机角度和电机转速的算法从最远的一行图像开始,根据预设的标志位判断该行是否有效。如果它不是有效行,则计算下一行,直到找到第一个有效行。找到有效行后,就可以得到中心线的位置信息,继续找到最后一行有效的黑线,并据此计算黑线的斜率。将黑线的中心位置和黑线的斜率代入本设计的舵机控制量和中心位置公式中,计算舵机的控制量,从而确定相应的舵机角度和电机转速。计算公式如下:
舵机控制量=比例控制量+积分控制量+差速怠速量 (7)
式中,比例控制量根据黑线中心位置乘以比例系数计算,积分控制量根据黑线斜率计算,微分空缺量为两者之差。第K和K-1比例控制量[5]。各控制量的系数值是通过测试选取的。
对于电机速度的控制,主要是根据一开始给定的智能车运行速度和启动后计算出的舵机控制量来判断,来判断智能车是否在直道上行驶。如果是在直路上,则加速,否则根据控制量进行适当的减速,以确保智能车在过弯时能够更加平稳和精确。
2.3 CCD图像采集
本设计中使用的CCD图像传感器采集图像的帧周期为33.4 ms,行周期为63.6 μs。智能汽车在行驶过程中,需要实时处理采集到的图像,并不断提供反馈来控制转向角度和速度。因此,采集工程中以半帧为一个采集周期,每八行采集一行。 ,剩余时间用于执行其他任务。
2.4 图像处理
通过CCD采集得到的是灰度图像。为了确定路径,需要对其进行二值化并用一条直线拟合到中心线。由于微控制器需要不断采集图像,剩余的计算时间非常有限。因此,二值化和直线拟合需要采用计算量最小的算法来完成。
2.5 图像阈值的确定
因为摄像机采集的图像信息量比较大,而且必须是动态、实时的路径信息。基于单片机的处理速度和时间,本文采用固定阈值对图像进行二值化。单片机本身无法进行动态计算,因此需要确定更合理的方法来确定固定阈值。本设计采用分割最优阈值迭代算法进行阈值计算[6]。收集图像后,计算最佳阈值。计算完成后,将计算结果发送给单片机,然后采集下一张图像,依此类推。
在迭代算法中,需要计算分割图像的平均灰度级,计算过程如下:
式中,E{g(x,y)}表示灰度平均值,f(x,y)表示图像的二维定义,e(x,y)表示偏差函数。
式(8)和式(9)说明,随着迭代次数的增加,平均灰度值将趋于真实值。因此,迭代算法得到的最优值不受噪声干扰的影响。
计算过程中,首先选择一个近似值作为初始值,然后分割生成子图像;根据子图像的特征选择一个新的值,然后用新的值对图像进行分割。经过几个循环后,图像像素被错误分割。指向最小值。这样的结果明显比直接用初始值分割图像的效果要好。价值改进策略是使用迭代算法的关键[7]。具体步骤如下:
(1) 选择初始值的估计
经过分析,确定16为该图像的固定阈值。实验表明,阈值为16的二值化处理后的图像比较清晰。在实验室照明良好的条件下,不会出现离散的光斑,智能车的自主识别效果非常好。在软硬件程序联调过程中,智能车在实验室正常照明环境下可以很好地沿线行驶。实际调试过程中发现,如果光线太暗,CCD相机采集到的图形灰度值就会出现偏差。低的情况。这种情况下,可以尝试使用补光措施来满足相机对环境照明的要求。智能车控制系统流程如图8所示。
智能车直线行驶时,转向器与前轴的夹角为90°。考虑到车辆行驶时偏离路径时产生的误差,当角度范围在80°~100°范围内时,直接输出舵机的输出。计算值;当检测到的角度超过这个范围时,为了保证智能车正确的行驶方向,光电传感器进一步检测其行驶路径,并输出计算出的转向角。
智能汽车按照预设路径行驶。在实际的仓库环境中,由于智能车的负载会很大,为了保证安全,智能车出现错轨时必须强制停车。在到达箱子货物之前,您必须减速。因此,针对这种情况可以安装其他设备,例如红外传感器、行程开关等,以保证检测信息足以让智能车安全行驶。
本文模拟大型仓库中AGV智能车的自主跟踪,实现仓库的无人化管理。实验证明了这款智能车在该环境下的可行性。基于多传感器信息导航系统,在大型仓库管理中实现了智能车辆的无人化管理,为工业现场多信息导航智能系统提供了有益的参考。
参考
[1] 邵贝贝.单片机嵌入式应用在线开发方法[M].北京:清华大学出版社,2004。
[2] 卓庆,黄凯胜,邵贝贝,等。学习制作智能汽车[M].北京:北京航空航天大学出版社,2007。
[3]曾星星.基于摄像头路径识别的智能车辆控制系统设计[J].湖北汽车工业学院学报,2008,22(2):72-76。
[4] 韩毅,王畅,赵轩,等。基于无线传输的智能车辆路径分析系统[J].微机信息,2008,24(8-2):280-282。
[5]何悦,林春梅。 PID控制系统参数选择的研究与应用[J].计算机工程与设计, 2006, 27(8): 1496-1498。
[6]KOCHAROVSKII DN, POKINA G A. 闭环自动控制系统中最大快速响应预测算法与 PID 算法的效率比较[J].热能工程,2006,54(1):65-71。
[7] KENDALL IR, JONES R P. 汽车电子控制系统硬件在环仿真测试的应用研究[J].控制工程实践,1999星空综合体育app下载,11(11):1343-1356。
我要评论