您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于K66单片机的恩智浦智能小车制作
龙源期刊网单片机的恩智浦智能小车制作作者:袁瑞豪王一豪孙振涵来源:《无线互联科技》2019年第11期龙源期刊网摘;;要:自动驾驶汽车制作一直是前沿的汽车工业发展方向。恩智浦公司举办的恩智浦杯智能车竞赛为大学生提供了宽广的平台去了解和亲身参与自动驾驶小车的制作。文章从摄像头数字图像处理、硬件搭建、PID控制算法3个方面对智能小车的制作进行分析。关键词:摄像头;K66单片机;PID控制算法1;;摄像头1.1;图像二值化处理本次比赛中本研究采用的是灰度摄像头,也就是每幅图像的每一个像素点都有一个数字来表示它的灰度值。范围是0~255,其中,0代表白色,255代表黑色。二值化就是把图像上所有的点都用0和255表示,并存在点对应位置的二维数组中。具体将一个灰度存储为0还是255需要设置相应的阈值,在本程序中,采用OSTU大津法,获取全局阈值,大津法可以根据一幅图像每个点的灰度值来设置动态阈值。1.2;寻中线算法摄像头的算法在自动驾驶小车比赛中至关重要,摄像头算法的好坏直接决定了单片机能否高效处理摄像头传入的每一帧图像,以及单位时间内处理图像的总数。而处理图像的算法在处理不同的道路情况时有所不同。所以在单片机接收到每一帧图像时,要按照顺序做的事情就龙源期刊网是:(1)判断道路类型。(2)根据不同类型的道路选取相应的算法。(3)提取出每幅图片上道路的中线值,然后将中线值传递给舵机电机控制函数。无论处理哪一种赛道,首先要解决的就是摄像头成像的逆透视变换问题。透视变形的矫正,根据摄像头的视角进行校正,对校正图像进行修正。我们采用记录每一行赛道宽度的方式,首先,用小车摄像头拍摄一张只有直道的图形,利用串口通信读出每一行的赛道宽度,并记录在数组中。直道类型的赛道是最基本也是最简单的一种赛道,在提取中线时所用最基本的算法就是,从每一行的中点开始,向左扫描这一行的每一个点,记录从白色点跳变至黑色点的位置,将这个值存在一个变量left_line当中,再用一个变量left_flag记录是否找到边线,如果找到将其置1,未找到则置0。再回到中点,向右做相同操作。判断如果两边都找到了边线,则这一行的中点值为(left_line+right_flag)/2,如存在未找到边线情况,则道路类型不为直道。对于弯道的判断,如果检测到一条边线的丢失,另一边未丢失,则判断为小车进入弯道,如丢失右边线则进入的是左转弯,丢失左边线进入的是右转弯。左轉弯的中线为右边线的值减去对应行数赛道宽度的一半,右转弯的中线值为左边线位置加上赛道宽度的一半。如果两边边线全部丢失,则进入十字路,在十字路口时,下一行赛道图像的中线值和前一行中线值相等。在提取到一幅图片所有行的中线值后,算出这幅图像中线值的平均值,传递给控制函数从而对小车的速度,转角进行控制。2;;件电路设计方案本系统的硬件电路采用模块化设计方式。主要包括单片机最小系统模块、电源模块、图像采集模块、测速模块、串口通信模块、显示模块等部分。2.1;单片机最小系统模块本设计的核心控制器为恩智浦公司生产的32位单片机MK60DN512Z。该单片机具有144个引脚。MK60DN512Z具有丰富的系统资源和方便的外部电路接口,其中,包括32位中央处理单元,UART模块,PIT定时中断模块,IIC模块,DMA模块,RAM存储器,FLASH存储器,EEPROM存储器,FTMPWM模块等。2.2;主控板模块2.2.1;稳6;V电源模块6V稳压芯片选择LM2941。LM2941芯片为可调稳压模块,输入电压为7.2V,调节R1和R2的值可改变输出电压(见图1)。本车将电压调到6V电压给舵机供电。龙源期刊网稳5V电源模块线性稳5V稳压芯片很多,比如7805,TPS7350,LM2940-5.0,LM1084-5.0等,经过实践使用发现,LM2940的线性度较为理想,且电路简单、稳定性好。所以5V稳压芯片选择LM2940。通过LM2940芯片对7.2V稳压得到5V电压,给放大电路、驱动电路等模块供电;另取一片LM2940芯片稳压得到5V电源,给编码器供电。此处编码器单独供电是为了避免编码器对放大和驱动电路产生干扰。2.2.3;稳3.3V电源模块稳3.3V稳压芯片有线性电源:ASM1117-3.3,LM2940-3.3,LM1084-3.3开关电源:LM2596。经过比较,ASM1117的线性度较好且价格便宜,效率高,不易发热,但有纹波,电路比较复杂,适用于单片机供电。通过LM1117芯片对5V稳压得到3.3V电压,给单片机、液晶屏供电。此处采用对5V稳而非7.2V稳压是为了减少损失的电压,从而提高稳压的快速性和稳定性。2.3;电机驱动模块本次采用的电机型号为RS540,该电机采用7.2V电源供电时,最大电流为9.71A,最大功率为61.75W,因此,该电机的驱动电路设计尤为重要。常用的电机驱动有两种方式:(1)采用集成电机驱动芯片驱动。(2)采用MOSFET和专用集成MOSFET驱动芯片驱动。使用集成芯片的电路设计简单,可靠性高,但是性能受限。由于比赛电机内阻仅为几毫欧,而集成芯片内部的每个MOSFET导通电阻在120mΩ以上,大大增加了电枢回路总电阻,此时直流电动机转速降落较大,驱动电路效率较低,电机性能不能充分发挥。由于分立的N沟道MOSFET具有极低的导通电阻,大大减小了电枢回路总电阻。另外,专门设计的栅极驱动电路可以提高MOSFET的开关速度,使PWM控制方式的调制频率可以得到提高,从而减少电枢电流脉动。并且专用栅极驱动芯片通常具有防同臂导通、硬件死区、欠电压保护等功能,可以提高电路工作的可靠性。目前常用电机驱动方案为直流电机的H桥驱动电路。H桥驱动电路的内部原理解析如下。图2为一个典型的直流电机控制电路。电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个MOS管(或三极管)组成H的4条垂直腿,而电机就是H中的横杠。如图2所示,H桥式电机驱动电路包括4个MOS管(或三极管)和一个电机。要使电机运转,必须导通对角线上的一对MOS管(或三极管)。根据不同MOS管(或三极管)对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。按图2中电流箭头所示,该流向的电流将驱动电机顺时针转动。当Q1和Q4导通龙源期刊网时,电流将从左至右流过电机。对一对MOS管(或三极管)Q2和Q3导通的情况,电流将从右至左流过电机。当Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动。3;;PID控制算法3.1;算法简介在使用PID控制算法之前,应该先了解为什么要用PID控制算法来控制智能车以及基本原理。在制作智能车的时候,之所以要用到PID控制算法,原因有二。(1)MCU的处理速度并不是无限快的,预设值与实际控制效果之间存在一定的偏差、实际输出与数据反馈之间存在一定的延时。在实际控制中加入PID算法将能达到系统不断灵活变化的效果。(2)PWM波的占空比控制的是小车的加速度,所以无法通过量化PWM的占空比来精确控制速度。因此,必须通过闭环调节来控制智能车的速度,而PID控制算法是目前较为成熟的控制算法。PID算法的执行流程是非常简单的,即利用反馈来检测偏差信号,并通过偏差信号来控制被控量。其功能框架如图3所示。3.2;位置式PID在计算机中只能对离散值进行处理,所以要对PID的模拟量公式进行离散化处理。假设系统采样周期为T,第K个采样周期。PID算法的离线形式表示为:3.3;增量式PID上面的公式描述了第k个采样周期的结果,那么前一时刻也就是k-1个采样周期就可表示为:那么第K个采样周期的增量,就是U(k)-U(k-1)。于是用第k个采样周期公式减去第k-1个采样周期的公式,就得到了增量型PID算法的表示公式:3.4;选择龙源期刊网控制电极,因为位置PID需要的内存较大,不利于较低级的处理芯片的数据处理。而位置PID控制舵机,因为舵机与之前的状态无关只用PD调节,无需积分项。3.5;PID参数整定3.5.1;比例系数调节(Proportion)控制对象为电机时,比例P越大时,电机转速回归到输入值的速度将更快,及调节灵敏度就越高。(1)舵機比例系数调节:由于智能车处于不同状态时所需要的响应速度和系统稳定性各不相同。所以对此智能车进行设计时,采用了动态二次P值的设定。P的大小与对中线偏差值呈二次函数关系,使得智能车可以对不同的情况进行不同的调节。(2)电机比例系数调节:则对此智能车进行设计时,采用了动态一次P值的设定。P的大小与速度和对中线偏差值呈一次函数关系,使得智能车可以对不同的情况进行不同的调节。3.5.2;积分系数调节(Integral)积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度,也就是积分项的调节存在明显的滞后,增加系统的超调量。舵机积分系数调节:与之前的状态无关不采取I调节。电机积分系数调节:采用了固定积分系数进行调节。3.5.3;微分系数调节(Differential)微分反应了偏差信号的变化规律,或者说是变化趋势,偏差的微分实际偏差的变化速率,变化越快,其微分绝对值越大。偏差增大时,其微分为正;偏差减小时,其微分为负。舵机微分系数调节:则对此智能车进行设计时,采用了动态一次D值的设定。D的大小与速度和对中线偏差值呈一次函数关系,使得智能车可以对不同的情况进行不同的调节。电机微分系数调节:采用了固定微分系数进行调节。3.5.4;控制算法龙源期刊网(1)赛道识别:在智能车偏离赛道中线较小的范围内采用之别中线的方法,当智能车偏离过大时用黑点计数循迹,这样可以避免在S弯处摆动过大。(2)断路:遍历图像中的所有点,算出黑点的个数,然后当黑点个数多于阈值时,判断位断路,切换为电磁,减速循迹。(3)障碍:用超声波检测障碍,遇见障碍向右打死,驶出赛道。车识别到全黑,向左打死,回到赛道。调节向左打死与向右打死的时间差,使车刚好可以绕过障碍物。[参考文献][1]余卓平,邢星宇,陈君毅.自动驾驶汽车测试技术与应用进展[J].同济大学学报(自然科学版),2019(4):540-547.[2]张天懿.智能汽车自动驾驶的控制方法分析[J].时代汽车,2019(1):19-20.[3]金鑫,高伟江,王云鹏,等.智能控制小车的设计[J].汽车实用技术,2019(9):64-65.[4]蔡栩嘉,刘海刚,陈冠成,等.摄像头智能小车设计与控制算法研究[J].工业控制计算机,2018(12):98-101.[5]徐世豪.智能车设计中增量式PID控制算法的运用[J].中国新通信,2017(2):11-12.NXPintelligentcarbasedonK66MCUYuanRuihao,WangYihao,SunZhenhan(Xi’anUniversityofPosts&Telecommunications,Xi’an710000,China)Abstract:Autonomousvehicleproductionhasbeentheforefrontoftheautomotiveindustrydevelopmentdirection.TheNXPCupIntelligentCarCompetitionheldbyNXPprovidesawideplatformforcollegestudentstolearnaboutandparticipateintheproductionofself-drivingcars.Thispaperanalyzesthemanufacture
本文标题:基于K66单片机的恩智浦智能小车制作
链接地址:https://www.777doc.com/doc-3623774 .html