首页 自动往返小车论文

自动往返小车论文

举报
开通vip

自动往返小车论文自动往返小车论文 1、任务要求 (1)车辆从起跑线出发(出发前车体不超出起跑线),到达终点后停留10s,然后自动返回起跑线(允许倒车返回)。往返一次的时间应力求最短(从合上汽车电源开关 开始记时)。 (2) 到达终点线和返回起跑线时,停车位置离起跑线和终点线偏差应最小(以车辆中心点与终点线或起跑线之间的距离作为偏差的测量值)。 (3) 能检测到相应黑色标志线,区分不同的区域,D,E间为限速区,车辆均要求以低速通过,通过时间不得少于8s,但不允许在限速区内停车。 (4)能显示一次往返时间、行驶距离以及行驶速度 ...

自动往返小车论文
自动往返小车论文 1、任务要求 (1)车辆从起跑线出发(出发前车体不超出起跑线),到达终点后停留10s,然后自动返回起跑线(允许倒车返回)。往返一次的时间应力求最短(从合上汽车电源开关 开始记时)。 (2) 到达终点线和返回起跑线时,停车位置离起跑线和终点线偏差应最小(以车辆中心点与终点线或起跑线之间的距离作为偏差的测量值)。 (3) 能检测到相应黑色标志线,区分不同的区域,D,E间为限速区,车辆均要求以低速通过,通过时间不得少于8s,但不允许在限速区内停车。 (4)能显示一次往返时间、行驶距离以及行驶速度 2、 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 比较与论证 2.1 处理器的比较与选择 方案一:以AVR单片机为核心,产生 PWM控制电机 AVR单片机IO口驱动能力强,反应速度快。 二:以51系列单片机为该系统的控制核心。51系列单片机有51和52方案 两种,经典51 单片机具有价格低廉,使用简单等特点,但其运算速度低,功能单一STC89C51单片机有128B的RAM,4KB的ROM,5个中断源,2个定时器 ; 52单片机内部资源丰富,加密性好,超强抗干扰超低功耗,价格低廉,同时支持在线仿真技术,软硬件调试方便,为课程 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 提供了极大的方便。STC89C52单片机有256B的RAM,8KB的ROM,6个中断源,3个定时器(比51多出的定时器具有捕获功能)。 考虑到我们此次的设计对实时性要求不是很高, 51系列单片机完全以满足处理速度的要求,并且AVR单片机需要专门的开发工具且价较贵,所以我们选用51系列的单片机。又由于我们此次的设计中用到的中断比较多,且有很多地方要用到定时器进行定时,所以基于以上方案对比,及其资源的利用、运算速度等各个方面的综合考虑,我们采用STC89C52作为本系统的核心。 2.2 小车行驶避障模块方案的比较与选择 小车在跑道中行驶时,由于跑道很长,而且小车不一定能严格沿着直线行驶,因此很可能会碰到两侧的挡板,如果没有相应的 措施 《全国民用建筑工程设计技术措施》规划•建筑•景观全国民用建筑工程设计技术措施》规划•建筑•景观软件质量保证措施下载工地伤害及预防措施下载关于贯彻落实的具体措施 ,容易使得行驶速度受到影响,才可能造成翻车。解决的方案有两种: 方案一:导向轮避障 直接在车的前头和后头加上导向杆,并在导向杆上装上导向轮,当小车撞到挡板时,导向轮与挡板接触,使小车贴着挡板继续前进。此法虽然简单,但小车与挡板之间还是存在机械摩擦。 方案二:碰撞开关避障 1 在车头与车尾的两侧分别装上碰撞开关,当开关接触到挡板时发出一个信号,使小车做出相应的纠正动作。这种方法在检测上很可靠,但不足之处就是存在碰撞开关与挡板的摩擦。 方案三:红外检测法避障 此方案通过发射端发送红外光,接收头接收到障碍物反射回来的红外光,经过单片机控制从而实现小车的主动避障。由于小车应该尽可能在距障碍物4,7cm就执行避障操作,所以我们可以采用调制型红外检测电路,此电路灵敏度高,尺寸小,质量轻,更重要的是抗干扰能力强,可靠性高,与挡板间不会有接触。市面在有集成的红外避障传感器,但考虑到成本问题,可以利用NE555定时器、红外发射二极管、红外一体接收头1838自制一个红外避障传感器,此自制传感器完全能满足本设计的避障要求,性价比高。 通过以上的方案论证与比较,我们选择了使用NE555定时器、红外发射二极管以及红外一体接收头1838自制红外避障传感器。 2.3 显示模块的比较与选择 方案一:使用传统的数码管显示,采用动态扫描的方式。 采用数码管显示,程序简单,显示部分也比较好控制。缺点是显示的内容不够丰富,用数码管动态显示,会占用很多时间来刷新显示。当需要同时显示大量数据时必然造成资源的浪费,同时给硬件调试带来了不便。 方案二:使用16位字符型液晶(LCD)显示。 液晶显示屏具有低功耗、影像稳定不闪烁、画面效果好、抗干扰能力强等特点。液晶显示内容丰富,可显示所有数字和大、小写字母,并且动态显示功能强大,不用像数码管那样用程序不断刷新显示,而是由1602自动完成,并且1602提供了一个友好的用户界面,使系统更加直观,更趋智能化和人性化。 综上所述,方案二更加符合我们的要求,故使用LCD1602显示。 2.4 电机的比较与选择 方案一:采用直流电机 直流电机是一种只需加上直流电压即可连续地转动的电磁机械装置,控制也较为简单,通过PWM控制算法就可以实现对电机转速的调节。直流电机具有良好的调速性能,响应迅速,起动和制动转矩大,过载能力强,调速范围宽。 方案二:采用步进电机 步进电机是一种将电脉冲信号转换为相应角位移的电磁机械装置。当给步进电机输入一个电脉冲信号时,电机的输出就转动一个步距角。使步进电机连续地转动,需要连续不断地输入电脉冲信号。步进电机响应迅速,启动、停止时间短,转角输出精度高。但是当步进电机由静止突然启动时,如果脉冲频率过大,电机 2 可能会出现丢步,在整步状态时振动较大。 在本系统设计中,小车大部分时间要求快速行进,以求往返时间最短,若采用步进电机势必给编写程序带来麻烦。综合考虑后我们选用方案一 2.5检测黑线设计方案比较与选择 方案一:利用发光二极管和光敏二极管构成检测电路。 此方案元件少,且电路结构非常简单,但此方案的缺点在于其它环境光源对光敏二极管的工作产生很大的干扰,一旦外界光强改变,很可能造成误判和漏判,采用超高亮发光二极管可以在一定程度上提高抗干扰能力,但又势必会增加额外的功耗。 方案二:利用红外发射二极管和红外接收二极管构成检测电路。 此方案尺寸小,质量轻,且可以降低可见光的干扰,灵敏度高,可以完成黑线的检测任务。 方案三:采用单束反射式红外光电传感器ST178检测黑线 ST178由高发射功率红外光电二极管和高灵敏度光电晶体管组成。其外围电路少,检测精度高,抗干扰能力比方案二更强。 综合考虑各方面的因素,我们最终选择方案三。 2.6 测速测距模块 方案一:采用霍尔器件。 该器件内部由三片霍尔金属板组成,当磁钢正对金属片时,由于霍尔效应,金属板发生横向导通,因此可在电机轴上安装固定有磁片的圆片,而将霍尔器件固定在距圆片上方1cm的范围,通过对脉冲的记数实现对速度的检测。 方案二:采用反射式光电传感器。 可以将其置于固定轴上,再在电机齿轮上均匀贴上黑线,让其恰好通过沟槽,产生一个个脉冲。通过脉冲的计数实现对速度的检测。 综合考虑性能与价格等因素,我们选择方案二。 2.7电源模块设计方案比较与选择 方案一:单电源给整个系统供电。 用6V电源给整个系统供电,节省了电池数量,有效减轻了小车的重量,减轻了电机的负担。但电机与单片机共用电源,很可能会因为电机负载加重时,将单片机的IO口的电平拉低,影响单片机的工作。 方案二:双电源给整个系统供电。 用12V电源给电机驱动模块( 主要指H桥芯片L298)独立供电,用一个6V电源给其它部分供电。这样虽然增加了电池的数量,加重了小车的重量,但是此种方案有效避免了单片机IO口被拉低的可能,并且给电机驱动模块独立供电有 3 效提高了小车的速度,这与赛题往返一次的时间力求最短的要求相符合。 经过。 为了避免单片机I0口电平被拉低,且为了使小车往返一次的时间最短,我们选择方案二。 3、系统硬件电路设计 3.1系统硬件结构设计及工作原理 整机系统结构的框图如图1所示,其中包括微控制器模块、液晶显示模块、电机驱动模块、电源模块、测速模块、红外避障模块、黑线检测模块7个模块。黑线检测模块主要完成跑道上黑线的检测,如果检测到黑线则将检测的结果以优先级最高的外部中断0告知单片;红外避障模块主要完成发射与接收红外光,将接收到的信号以反馈给单片机; 测速模块也黑线检测模块的电路结构完全一样,它主要是完成对车轮上黑线的检测,检测到的信号以外部中断1告知单片机; 电源模块分别给两大部分供电,其一为电机驱动模块,此部分独立于其它部分单独供电,且供电电压高于其它部分,其二为除电机驱动模块以外的部分;电机驱动模块主要负责驱动电机; 液晶显示模块完成小车行驶时间、行驶路程、全程平均速度、通过限速区平均耗时的显示。 液晶显示黑线检测 模块模块微 控 制红外避障电机驱动 模块模块 器 模 块测速模块电源模块 图1 整机框图 3.2 各模块电路设计 3.2.1 红外避障模块电路设计 4 3.2.1.1 38KHz载波产生电路 利用NE555构成多谐振荡器,产生频率为38KHz的方波,具体实现电路图图如图1所示,输出方波的频率计算公式为 f=1/T=1/[(R1+2R2)Cln2]=1.49/[(R1+2R2)C], 其中电阻R1为NE555定时器8脚和7脚之间的电阻,电阻R2为NE555定时器2脚与7脚之间的电阻,C为2脚与地之间的电容值大小。通过调节可变电阻R22,即可调节3脚输出的方波的频率。输出方波的占空比计算公式为 q=T1/T =(R1+R2)/(R1+2R2) 调节R22可实现输出方波占空比的调节。 图1 NE555定时器产生38KHz方波的电路 3.2.1.2 红外发射电路 将NE555输出的方波输入到Q1三极管的基极,红外二极管接于Q1的集电极,通过此NPN三极管将其38KHz的方波与红外光进行调制,由红外发射二极管发射出去,M右前连接到单片机的P1.3口,当单片机给出P1.3口一个低电平时,Q2三极管导通,随之Q6导通,红外光经过调制发射出去。 5 图2 红外发射电路 3.2.1.3 红外接收电路 当红外一体接收头收到由障碍物反射回来的红外光,即会产生一个低电平脉冲,此脉冲通过1838接收头的输出脚(图中的AVOID_BACK)送入单片机。 图3 红外一体头接收电路 6 3.2.2 黑线检测模块电路设计 26(如图4)可以改变ST178的检测灵敏度,ST178的输出接到 通过可调电阻R 74F14反向器的一个,其对应输出脚接到单片机的中断口。 图4 ST178应用电路 3.2.3 测速模块电路设计 测速模块与黑线检测模块原理完全相同,实现电路也完全相同(如图4 ) 3.2.4 电机驱动模块电路设计 采用PWM控制加集成H桥驱动芯片L298,并在电机两端接上快恢复二极管做电路保护。 7 图5 电机驱动电路 4、系统软件设计 4.1 软件实现的功能 小车的软件设计主要是通过综合 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 各种传感器(如避障传感器,黑线检测传感器)传来的信息,控制小车的行驶速度的切换,使小车在限速区减速,通过限速区后马上加速,在终点线及时停车(当返回时是在起跑线及时停车)。另外软件还需要将小车行驶的总时间、总路程、平均速度以及限速区的平均通过时间通过1602液晶显示出来。 8 4.2 程序流程图 开 始 初始化 高速行驶 否制动 停车 是第3根黑线, 是第12根黑线? 减 速否 高速行驶 低速行驶否 是 第10根黑线?第4根黑线, 否是 低速行驶加速 减 速高速行驶否 是 第9根黑线?第6根黑线, 否是 制动高速行驶停10s 主控程序流程图 9 5、系统调试与测试 5.1调试方法与步骤 采用各功能模块程序分开调试(即只保留当前测试模块的程序,关闭其它模块的测试程序),然后再联合调试的方法对整个系统进行调试。 5.1.1 红外避障模块测试 (1)首先调试小车前方的避障,通过多次调试,使小车前方左右两个红外 避障传感器的灵敏度一致。前方避障调试成功以后,我们以同样的方 法高度小车后两个红外避障传感器的灵敏度一致。 (2)在避障功能模块调试过程中,遇到的问题是:小车前方和后方的避障 传感器的灵敏度相差很大,且有时出现误判的现象。 5.1.2 黑线检测模块测试 单独加载黑线检测程序进行测试 5.1.3 测速模块测试 单独加载测速程序进行测试 5.1.4 液晶显示模块测试 单独加载黑线检测程序进行测试 5.1.5 联合调试 在分步调试全部通过的基础上,我们开始了整个系统的协调调试,协 调黑线传感器、测速传感器、红外避障传感器、液晶显示的配合工作。 5.2 测试方法 (1) 首先测试小车往返一次的时间及停车位置偏差 按下开关,小车开始行进后开始按下秒表记时,当小车停于终点线时,记下小车中心线的位置,此时秒表不停,然后用直尺测出此位置与终点线 之间的距离。当小车返回,停于起跑线时,停止记时,并记下此时小车中心线的位置,然后用直尺测量出此位置距起跑线的距离,并 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 下通过全程所用的时间。用此方法重复测量3次。测量完成后,将所测实际值与液晶的显示值做比较,分析显示结果是否正确,并分析出现误差的原因。 (2) 然后分别测试小车通过限速区所用时间及小车两次通过限速区平均耗时 当小车经过第3根黑线时,启动秒表开始记时,当小车通过第4根黑线后,马上停止记时,在纸上记录下所用时间,并将秒表清零。当小车返回,经过第9 10 根黑线时,启动秒表开始记时,当小车通过第10根黑线后,马上停止记时,记录下小车此次通过限速区所用时间。将两次通过限速区所用时间进行求平均值运算,比较此测量值得到的实际值与液晶上显示出的通过限速区的平均耗时,分析结果。 6、 测试结论 6.1 基本要求实现 (1)采用红外避障,避免了小车与跑道挡板的接触,提高了行驶速度。 (2)通过多次的整机的联合调试,逐渐缩短了通过限速区的时间,但此时间大于8s,从而也有效缩短了通过全程的时间,符合赛题“往返一次的时间力求最短,且限速区通过时间不少于8s”的要求。 (3)通过定时器定时,实现了小车在到达终点线后停车10s。 6.2 发挥部分实现 (1)用1602液晶比较准确地显示出小车往返一次的时间。 (1)用1602液晶比较准确地显示出小车行驶的总路程。 (3)用1602液晶准确地显示出小车的实时速度、小车通过全程的平均速度以及小 车通过限速区的平均耗时。 6.3整机功能实现 对小车关键指标进得了测试,测试结果如下表所示。我们使用的仪器设备 是秒表。 指标 总时间 总里程 停车时间 限速区平终点线停起跑线停 平均速度 均时间 车位置偏车位置偏 第i次 /s /m /s /s 差 差 m/s /cm /cm 1 58 19.8 10.0 8.2 2.5 2.0 0.34 2 69 20.2 9.7 8.5 2.1 1.9 0.29 3 70 23.3 9.8 8.8 1.9 2.1 0.33 表1 实测数据值 11 6.4 结果分析 液晶显示的测量结果与实际的测量值之间还存在一定的偏差,经过分析,得出出现这些偏差可能的原因: (1)电池的电量对测试的结果有影响。经过多次的测量,发现当电池电量较足时,小车的行驶速度较快,所以随着测试次数的增多,小车往返一次所用时间也就越长,通过限速区所用时间也越长。 (2)小车不一定走直线,电量足时,红外避障灵敏,电机转速快,在稍微转弯避障的时候,可能会出现转弯的幅度大的情况,从而使小车以S形路线前进。这样会造成行驶完全程耗时的偏差,以及全程距离的偏差。 (3)跑道两侧的挡板是否与跑道垂直,也影响测量的结果,虽然赛题要求跑道两边的挡板要与地面垂直,但是在架跑道时,由于跑道比较长,很难严格地做到挡板也地面垂直。 (4)选用小车的方案也会影响到我们测量的结果,因为小车机械方面的原因,两轮电机驱动的速度不会完全相同,这样也就造成了小车不会沿直线行驶。 参考文献 [1]阎石主编.数字电子技术基础.北京:高等教育出版社,2006 [2]杨素行主编.模拟电子技术基础简明教程.北京:高等教育出版社,2006 [3]戴仙金.51单片机及其C语言程序开发实例.北京:清华大学出版社,2008 [4]高吉祥.全国大学生电子设计竞赛培训系列教程.北京:电子工业出版社,2007 [5]沈红卫.基于单片机的智能系统设计与实现.北京:电子工业出版社,2005 12 附录 附1:元器件明细表 序 号 名 称 数 量 1 STC89C52 1块 2 1602液晶 1块 3 5mm红外发射二极管 4个 4 红外一体接收头1838 2个 5 反向器17S14 1个 6 NE555定时器 1块 7 集成H桥驱动芯片L298 1块 8 可调电位器102 若干 9 快恢复二极管FR107 8个 10 发光二极管 7个 11 杜邦线 若干条 12 ST178 2个 表2 元件明细表 13 附2:仪器设备清单 序 号 仪 器 名 称 1 TDS 2012B数字示波器 2 秒表 表3 仪器设备清单 附3: 设计的程序清单 head.h /************************************************ ************功能:为变量分配端口******** ***********************************************/ void delay(uint z)// 延时1ms #include #include #define uchar unsigned char #define uint unsigned int #define C 0.03 //轮子的周长 // msb reload value exemple 高位重载值:延时60ms #define MSB_reload_value 0x36 // lsb reload value exemple 低位重载值 #define LSB_reload_value 0x36 // lsb reload value exemple 低位重载值 /*********************************** *注意 :P1^7口还没用 ** **************************************/ /************************************ 蔽障检测端口定义 ************************************/ sbit avoid_br=P1^5; //右后 sbit avoid_hr=P1^3; //右前 sbit avoid_bl=P1^2; //左后 sbit avoid_hl=P1^4; //左前 sbit avoid_back=P3^7; //前方蔽障检测 sbit avoid_head=P3^6; //后方蔽障检测 /************************************ 14 电机控制端口定义 ************************************/ sbit M1_PWM = P2^5; //左边电机PWM端 sbit M1_direct = P2^3; //左边电机方向端(为0表示正转) sbit M2_PWM = P2^2; //右边电机PWM端 sbit M2_direct = P2^0; //右边电机方向端(为0表示正转) sbit M1_EN = P2^4; //左边电机的使能端 sbit M2_EN = P2^1; //右边电机的使能端 sbit fmq =P2^7; sbit led1=P2^6; /************************************ 液晶控制端口定义 ************************************/ sbit lcdrs=P1^0; sbit lcden=P1^6; sbit lcdrw=P1^1; /************************************ 指示灯端口定义 ************************************/ sbit xz =P3^3; sbit test=P3^2; /************************************ 所用变量定义 ************************************/ uchar code table1[]=" : m/sT: s"; uchar code table2[]=" istance: m"; uchar line_count=0; //黑线计数变量 uchar temp=0; //进入定时器0中断的变量 uchar num[2]={10,10}; //产生PWM信号的变量 uint speed_count=0; //转速计数(最大值大于255,要用uint型) uint time=0; //总路程所用的时间计数(最大值大于255,要用uint型) uchar wait_count=0; //等待时间计数(最大值只要200,所以定义为uchar型) bit wait=0; //置1表示等待10s开始计时 bit flag=0; //置1表示前进结束 bit flag_last=0; //置1表示总过程结束 uint time_10ms=0; //速度变量,现在定义d-t=0.5s uint speed_a[2]={0,0}; //速度变量,两者之差为d-y 15 float d_y=0; //两个脉冲之间走过的距离 float d_t=0; //两个脉冲之间所用的时间 uint d_v=0; //速度变量 uint date[5]; uchar count=0; uint s,time_total; /************************************ 测试用变量(定时器2) ************************************/ /************************************ 延时1ms子程序 ************************************/ void delay(uint z) 1602.h /********************************************** *********功能:lcd1602显示************* **********************************************/ void write_com(uchar com) // 写控制子程序 void write_date(uchar date)// 写数据子程序 void write_dat(uchar add,uchar dat) //在某地址处写一个数据子程序void init_lcd()//液晶初始化程序 scan.h /********************************************** *********功能:功能见以下的注释******** **********************************************/ #include"1602_2.h" void display()//显示子程序 { //距离的计算与显示 //速度的计算与显示 //显示黑线数目 //总过程平均速度的计算与显示 //总距离的计算与显示 16 //限速区时间的计算与显示 //蔽障子程序 //蔽障子程序 } Main.c /********************************************** *********功能:实现整个系统的功能******** **********************************************/ #include"scan.h" void System_init() //定时器、计数器配置 void hei_xian() interrupt 0 //黑线检测计数端(外部中断0) 输出PWM波控制直流电机(定时/计数器0) void PWM() interrupt 1 //void speed() interrupt 2 //轮子转速计数端(外部中断1) void wait_10s() interrupt 3 //总路程计时和等待十秒计时(定时器1) //定时器2的应用 void timer2 (void) interrupt 5 /**************** **主函数** ****************/ void main() { init_lcd(); //初始化液晶子函数 System_init(); //系统初始化子函数 while(1) { if(flag_last==0) scan(); //红外检测子函数 else display(); //显示距离、速度、时间子函数 } } 附4:电路图图纸 17 18
本文档为【自动往返小车论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_654168
暂无简介~
格式:doc
大小:166KB
软件:Word
页数:21
分类:工学
上传时间:2017-09-29
浏览量:24