欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    光电.docx

    • 资源ID:8991359       资源大小:766.87KB        全文页数:26页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    光电.docx

    1、光电北京联合大学“启明星”第五届智能汽车竞赛设计方案 队伍名称: 参赛队员: 带队教师: 摘要:本文详细介绍了了一种基于激光传感的循迹自动行驶小车的方法。使用了在汽车自动控制中使用较为广泛的一种单片机:Freescale MC9S12XS128 单片机。智能车通过模拟摄像头获得黑线信息,再经过一定算法控制舵机和电机,实现转向和速度控制,最终实现循迹的功能。关键词:循迹,摄像头,PID目录第一章 引言 51.总体设计 5第二章 机械设计 7第三章 硬件设计 11第四章 算法设计 154.1 图象处理算法 154.1.1“二值化”算法 164.1.2 “去噪”算法 174.2 控制算法 204.2

    2、.1 转向控制 204.2.2 速度控制 22第五章 调试部分 265.1 开发工具 265.2 软件调试 265.3 无线调试模块 28第六章 主要技术参数 30第七章 结论 317.1主要性能 317.2 改进方向 32参考文献 33附录 34第一章 引言1.总体设计循迹小车大部分都是基于光电传感器控制的,能够的沿赛道行驶,因此我们这里尝试速度上的突破,采用激光控制来获得更高的速度和更好的前瞻性。小车的基本工作原理为:以跑道上的黑线为引导,通过mc9s12xs128来调整、控制小车的速度和转向,实现小车在赛道上平稳正确的行驶。图表 1 总体工作流程图其中最关键的部分为:道路信息采集、处理器

    3、对电机和舵机的控制。道路监测器可有两类:光电传感器和摄像头传感器。首先,考虑到道路监测要求的完整性及准确性,我们选择了光电传感器具有摄像头无法比拟的稳定性,能够对赛道稳定的采集。同时光电又可分为激光和红外两类,激光前瞻性好,使用调制信号可以很大程度过滤干扰。但是使用电流源供电,并且售价较高。因此综合考虑,我们最终选择激光传感器作为我们的路径检测传感器,其次,对于速度传感器,可供选择的方案较多,最终我们选用了精度比较高的接触式光电编码器。对于电机和舵机的控制,我们采取了速度控制中较为常用的PWM宽带脉冲调制的方法,实现转速方向的准确控制。关于电机的驱动,初步定为采用基于H桥电路的英飞凌bts79

    4、60芯片作为电机驱动芯片。另外,对于系统控制部分的设计,初步定为闭环反馈控制算法PID。因为循迹小车的制作是一个系统的工作,其中必然会出现很多错误。为了能够更为方便的调试小车的循迹算法,我们决定通过无线发射器实时将小车运动时的道路信息及小车所处状态发送到PC机上,通过matlab对数据进行读取、分析、仿真,然后对小车的算法和参数作出相应的调整。第二章 机械设计 车模为1/10的Matiz仿真车模,如 下图 所示。控制采用前轮转向,后轮驱动方案。在买到车模以后,我们发现车模还有很多机械上的改进空间。意识到要获得更高的速度,机械设计必然是基础,任何的控制算法及软件程序都是在一定的机械结构上来执行和

    5、实现的,并且这种基础作用在软件程序达到一定高度时显得格外重要。因此,我们对购得车模的机械部分作了相应的改进。第一、 对主销后倾角、主销内倾角、前轮外倾角等进行改进。适合的主销后倾角可以增加小车直线行驶的稳定性。参考资料,我们将后倾角定在23度。前轮外倾角对汽车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性,角度大概设为1度。主销内倾角相对于前两者对车的影响性能不是很大,所以,我们将其略去。第二、 对舵机的改装。舵机的作用是实现小车的转向。原车模的舵机的安置方法是横直式的,舵机转向点不在正中间,连杆长短也不一样,因此,在单片机输出PWM波控制舵机相对于中值不对称,这将会给

    6、后面的编程及调试带来麻烦,其次,转向连杆和转向盘交点的距离到转向中心轴的距离较短,尽管如此会使转向力大,但是会使响应延时较大,会造成在高速行驶时转向不灵敏。为了使这方面的性能更加优化,我们决定将转向盘的半径延长,同时,使转向点在中间。此外,该种改装能够使转向时两前轮轴线延长线相交于后轮轴线上,使转弯时横向摩擦更少,减小侧滑几率。具体实现如下图:第三、 对激光管的安装。激光管的安装位置得选取合适。安装得低了,会视域不够广阔,影响寻线的有效范围;安装得高了,指引线在图像坐标上会变得过窄而无法被检测到,而且赛车系统会因重心抬高而稳定性变差。安装位置合适的一个标准就是:在此位置的采集范围大小能满足控制

    7、的需要。控制的策略简单,则所需的采集范围就可较小;反之策略复杂,需获得的赛道信息较多,则拍摄范围应大一些。最后经过计算,我们决定把激光管的位置初步定为高:30cm,倾角:30度,至于具体到哪个位置更好,我们将留给调试部分完成。第四、差速器调整。车模后轮采用RS-380SH-4045电机驱动,为车模自带。电机轴与后轮轴之间的传动比为 9:38(电机轴齿轮齿数为18,后轮轴传动轮齿数为76)。齿轮传动机构对车模的驱动能力有很大的影响。齿轮传动部分安装不恰当,会增大电机驱动后轮的负载;齿轮配合间隙过松则容易打坏齿轮,过紧则会增加传动阻力。所以在电机安装过程中尽量使得传动齿轮轴保持平行,传动部分轻松、

    8、流畅,不存在卡壳或迟滞现象。差速机构的作用是在车模转弯的时候,降低后轮与地面之间的滑动;并且还可以保证在轮胎抱死的情况下不会损害到电机。差速器的调整中要注意滚珠轮盘间的间隙,过松过紧都会使差速器性能降低,转弯时阻力小的车轮会打滑,从而影响车模的过弯性能。好的差速机构,在电机不转的情况下,右轮向前转过的角度与左轮向后转过的角度之间误差很小,不会有迟滞或者过转动情况发生。第三章 硬件设计以S12 为核心的单片机最小系统单片机最小系统板使用MC9S12XS128单片机,80引脚封装,为减少电路板空间,板上仅将本系统所用到的引脚引出,包括两路PWM接口,一路计数器接口,一路外部中断接口,8路普通IO接

    9、口。其他部分还包括电源滤波电路、时钟电路、复位电路、串行通讯接口、BDM接口。单片机引脚规划如下:PORTA:道路信号PT0:光电编码器脉冲输入信号。PWM7:舵机角度控制信号输出。PWM4、5:电机速度控制信号输出。PS4-7:SPI通讯信号按照电路设计设计我们所需要的电压有两种5V,7.2V。其中,7.2V由电池提供用于后轮电机驱动;5V用于为MC9S12XS128芯片、舵机及光电编码器和激光管提供电压。为了实现上述电压的获取,我们总共用到了如下的芯片:Bts7960(两片):通过其中的H桥实现电机的正反转。两片BTS7960构成完整H桥,提高芯片驱动能力。输入两路PW波,如果IN1 有P

    10、WM信号,IN2低电平,电机正转,反之,电机反转,如此可以实现反向制动,这对于小车在赛道上行驶最高速度的限制会大大减少。为了减少编程了复杂程度,我们这里直接将IN2接地,只通过IN1实现PWM控制,不考虑电机反转的情况。AS1015(一片):用于5V电压的提取,从7.2V稳压到5V,在实际使用中LM2940在电池只有5.8V依旧可以提供5V供电,提高了电池的效率,节约调试时间,但是供电电流和波纹都不理想,因此换用了功率更大,波纹小的AS1015芯片。图 2 BTS7960电路连接图AS1015稳压电路如下:图 3 5v稳压电路图图4 光电编码器采集电路第四章 算法设计阐述循迹控制算法思想。附程

    11、序流程图。(此部分可以阐述多种循迹算法)。智能车能否在赛道快而稳地行驶,可以说完全取决于循迹算法,可见其重要性。算法整体包含两部分:图象处理算法、控制算法,控制算法又可进一步分为转向控制算法和速度控制算法,以下将从这三个方面逐个详细说明。4.1 软件流程如果说系统硬件对于智能车来说是它的骨架和躯体,那么软件算法就是它的思想。软件算法的优劣直接体现了智能车辆的“智能”高低。所以软件系统对于智能车来说至关重要。首先,赛车系统通过路径识别模块获取前方黑色引导线的信息,同时通过速度检测模块实时获取赛车的速度。利用连续路径识别算法求得赛车与黑线位置的偏差,接着采用P方法对舵机进行控制,根据检测到的实时车

    12、速,结合模糊控制策略对赛车速度进行恰当的控制调整,使赛车在符合比赛规则情况下沿赛道快速前进。赛车系统的软件流程如图所示。图5软件流程图4.2 控制算法4.2.1 转向控制转向控制确定为位置式PID算法,基本表达式为:其中T是采样时间,、为三个待调参数。具体过程如下:第一、 判断出赛道类型。赛道有大S弯、小S弯、左(右)转弯、直坡道、直道区共五种。首先,根据引导线是否为直线可以将弯赛道与直赛道区分开,如果是直赛道,则不需要转向;如果是弯道,根据引导线是否朝一个方向弯区别S弯和左(右)转弯,最后,对于S弯,求出引导线各点横坐标的方差,如果方差小于某值(根据赛道调试绝对),则对应的S弯为小S,舵机也

    13、不需要转向,直冲,大于该值时定为大S弯。第二、 根据赛道类型进行转向控制。除去大S弯、左(右)转弯道的其余赛道类型都不需要转向,可以直冲。仔细分析,可以发现大S弯与左(右)弯的控制策略完全一样。具体由上面所述的位置式PID算法实现:首先,设定PWM波占空比与左(右)转转角对应的参考关系(具体由调试确定,转角可以用角度的正切脚表征,即横纵坐标的比值),其次,读出引导线左(右)转最远点的横纵坐标,求处比值。最后,按上述参考关系可查处比值处的参考PWM波占空比,读出S12XS128单片机输出的实际PWM占空比,求出相应的,即可得到S12XS128应该调成的占空比值。 具体流程图如下:图8 转向控制流

    14、程图4.2.2 速度控制PID控制是工程实际中应用最为广泛的调节器控制规律。问世至今70多年来,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。单位反馈的PID控制原理框图如下图所示。图9 PID 控制示意图单位反馈e代表理想输入与实际输出的误差,这个误差信号被送到控制器,控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,得到输出量u。其中, , , 分别称为比例系数、积分系数、微分系数。u接着被送到了执行机构,这样就获得了新的输出信号u ,这个新的输出信号被再次送到感应器以发现新的误差信号,这个过程就这样周而复始地进行。PID各个参数作用基本介绍

    15、:增大微分项系数可以加快动态系统响应,但容易引起震荡。一般增大比例系数能够减小上升时间,但不能消除稳态误差。增大积分系数能够消除稳态误差,但会使瞬时响应变差。增大微分系数能够增强系统的稳定特性,减小超调,并且改善瞬时响应。对连续系统中的积分项和微分项在计算机上的实现,是将上式转换成差分方程,由此实现数字PID调节器。位置式PID控制算法用矩形数值积分代替上式中的积分项,对导数项用后向差分逼近,得到数字PID控制器的基本算式(位置算式)基本表达式为:、为三个待调参数。第一、 速度传感器传入适时速度值。因为每个速度值与传感器单位时间内的转动圈数一一对应,因此我们每隔一具体时间读出相应的圈数来表征速

    16、度。同上述位置式PID算法一样,先必须求出圈数与横纵坐标比值所表征的角度的参考对应关系,不过这里的参考关系有两种,一种是窄道的,一种是非窄道的,具体得到方法,也需要根据具体调试。第二、 判断赛道类型。基本方法同上述一样,不过,这里还需要对窄道进行判断,判断方法为检测黑色三角形。第三、 读出实际速度及参考速度(用圈数表示)。求出,进一步求出并将转速调为即可。具体流程图如下:图10 PID控制流程图第五章 调试部分5.1 开发工具程序的开发是在组委会提供的CodeWarrior IDE下进行的,包括源程序的编写、编译和链接,并最终生成可执行文件。CodeWarrior for S12 是面向以HC

    17、1和S12为CPU的单片机嵌入式应用开发软件包。包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器。使用BDM来下载程序,把编译好的程序下载到单片机里运行。5.2 软件调试软件调试主要通过串口进行,单片机通过串口发送数据到上位机显示,从而获取一些信息。上位机接受数据主要通过串口精灵进行,如下图所示。图11 串口调试精灵摄像头获得的模拟信号经过AD后,可以通过单片机发送到上位机上,进行及时的显示,从而判别摄像头的安置等是否正确,也可以知道针对图像的一些处理算法是否正确。前期调试时采用最原始的办法:及把采样到的数据直接发送到

    18、上位机上,上位机接受后人手工将数据复制粘贴并整理成excel数据,再通过matlab将excel读入,利用MATLAB强大的作图能力将数据画出来。意识到这种方法的落后以后,我们们决定利用能够及时显示图像的软件来取代原来较为原始的方法。因此我们们采用了基于Labview的一套上位机图像显示系统。 其运行界面如下图12 上位机显示软件这样,通过串口通信,模拟摄像头AD后的数据就可以及时的在上位机上显示。该软件工作流程如下图所示。图13 上位机图像显示软件工作流程图5.3 无线调试模块在后期调试中,需要将小车行驶时的数据及时的发送出来,通过上位机观看数据,以方便改进。这时就需要用到无线Zigbee模

    19、块。Zigbee模块工作的原理这里不再复述。它的一些接口为TTl电平的串口,用来链接到单片机;RS-232电平的串口,用来连接到电脑的串口。要让其正常工作,只需将单片机的串口TX端连接到zigbee的TTl电平串口RX端,单片机的RX端连接到zigbee的TTl电平串口TX端,然后将com_TX, com_RX和GND连接到RS-232串口线上,再接到电脑上即可。Zigbee模块的示意图如下图所示。图14 无线zigbee发送模块第六章 主要技术参数项目参数路径检测方法(赛题组)光电组车模几何尺寸(长、宽、高)(毫米)335、169、185车模轴距/轮距(毫米)轴距197前轮160后轮162车

    20、模平均电流(匀速行驶)(毫安)1400电路电容总量(微法)1600传感器种类及个数激光传感器(12个)光电编码器(1个)新增加伺服电机个数0赛道信息检测空间精度(毫米)2赛道信息检测频率(次/秒)50主要集成电路种类/数量3车模重量(带有电池)(千克)1.2第七章 结论7.1主要性能 总体上,智能车已经实现了加速、减速、转向、刹车的基本功能,能够沿黑色导航线比较平稳、快速地行驶了。 本智能车辆的控制算法部分主要解决如下问题:车辆直线行驶的稳定性问题,车辆转弯控制问题,车辆行驶速度与转向角度大小的相关性问题,行驶轨迹的跟踪及预测问题等。PID控制算法就可以解决这些问题。它有诸多优点:1)我们采用

    21、状态控制。在每个很小的一段时间内,认为车辆状态不变,因而在这段时间内可将车辆作静态处理。转向目的就是减小小车所在的中心线与车辆行驶的黑色导航线的静态误差。状态控制不考虑时间过程,而注重调整前后的状态变化。实际应用过程中,当时间足够小时,由于执行机构的响应能力远远低于单片机的运行速度,实际控制操作效果就如同连续控制一样,保证了控制的准确性。2)控制输出不要求最优。从实际情况可知,在相同的情况下,同一驾驶员两次控制的结果可能不尽相同的,具有一定的随机性,但结果都能完成所要求的任务。因此,对于本智能车的控制输出的转向角,不要求它在当前位置是最优的,而只要求它满足两个条件,即方向正确,转向角度合理。3

    22、)控制算法交易实现。比较其他比较复杂的算法,如最优控制必须考虑时间的过程,因而需要了解各执行机构的动态响应特性,以获得准确的传递函数。而本文提供的算法只需要车辆当前的状态信息,即小车的当前位置(由传感器提供)与小车所应处的位置(由算法提供),即可得到转向控制角。整个过程不涉及执行机构的动态响应函数,从而降低了难度。7.2 改进方向 本控制算法还存在一些不足:1)算法的稳定性不够,极其容易受到光照和路面条件的影响,鲁棒性不够。2)作为辅助输入量的速度并不十分准确,所取的速度是算法赋予小车的速度,并非小车的真实速度。不同的路面,不同的转向对小车的速度都会产生影响,而这些影响是很难量化的。3)算法中

    23、参数的调整完全依靠实验人工标定,工作量比较大。这些问题都亟待解决。 参考文献1 邵贝贝. 嵌入式实时操作系统LCOS-(第2 版)M. 北京清华大学出版社20042 邵贝贝. 单片机嵌入式应用的在线开发方法M北京清华大学出版社20043 王晓明. 电动机的单片机控制M北京. 北京航空航天大学出版社20024 臧杰,阎岩. 汽车构造M. 北京. 机械工业出版社20055 安鹏,马伟S12 单片机模块应用及程序调试J. 电子产品世界. 2006第211期 162-1636 童诗白,华成英模拟电子技术基础M北京. 高等教育出版社20009 沈长生常用电子元器件使用一读通M北京. 人民邮电出版社200

    24、410 宗光华机器人的创意设计与实践M北京. 北京航空航天大学出版社200411 张伟等Protel DXP 高级应用M北京. 人民邮电出版社200212 张文春. 汽车理论M北京机械工业出版社2005附录部分程序代码/*功能介绍:整体算法特征描述:所有点的平均值综合控制和远处点综合控制,每场图像56*160有效点数最高速度-Code Warrior 4.7Target : MC9S12XS128Crystal: 16.000Mhzbusclock: 80.000MHzpllclock:160.000MHz */#include includehfile.h/1S延时程序void onesec

    25、ond_delay(void) word i_num; word j_num; for(i_num=0;i_num3000;i_num+) for(j_num=0;j_num10000;j_num+) _asm(NOP); void main(void) / /byte i_num; system_init(); DisableInterrupts; /for(i_num=1;i_num10) for(i_num=0;i_num1) /for(i_num=0;i_num2) offset_one=0; for(i_num=first_effectrow_num;i_num20) offset_two=mid_


    注意事项

    本文(光电.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开