1、智能避障小车课程设计 光机电一体化课程设计 题 目: 智能超声波避障小车 院 别: 机电学院 专 业: 机械电子工程(师范) 姓 名: 路小娃 学 号: 2013095444026 同组人员: 谢嘉玲 欧嘉兴 指导教师: 杨 永 日 期: 2016年6月16日 智能超声波避障小车摘要本设计主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用超声波测距模块,用以对有无障进行检测。主控电路采用宏晶公司的8051核心的STC89C52单片机为控制芯片。电机驱动模块采用意法半导体的L298N专用电机驱动芯片,单片控制与传统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采
2、集到的路况信号传入STC89C52单片机,经单片机处理过后对L298N发出指令进行相应的调整。我们设计的小车已经实现基本的避障功能。关键词:智能避障小车,STC89C52单片机,L298N驱动芯片,信号检测模块,避障目录 摘要 2目录 31课程设计内容 41.1项目研究的背景及意义 41.2应用场合和功能: 41.3项目主要研究内容 42总体方案论述 62.1总体方案 62.2总体功能及性能指标 62.2.1总体功能 62.2.2总体电路原理图 62.3系统方案的比较与确定 7 2.3.1系统方案的比较 72.3.2系统方案的确定 72.4最终实物图 83硬件电路的设计 93.1硬件系统的基本
3、结构 93.1.1障碍物测距系统: 93.1.2驱动模块: 103.1.3电源模块: 124.程序 134.1 程序流程图 135系统软硬件调试 145.1 硬件调试 145.2软件调试 145.3 调试中遇到的问题 14结 论 14参考文献 15附录 16附录一 相关程序 16附录二 使用元器件一览表 23附录三 心得 241课程设计内容1.1项目研究的背景及意义智能作为现代社会的新产物,是以后的发展方向,他可以按照预先设定的模式在一个特定的环境里自动的运作,无需人为管理,便可以完成预期所要达到的或是更高的目标。本设计主要体现多功能小车的智能模式,设计中的理论方案、分析方法及特色与创新点等可
4、以为自动运输机器人、采矿勘探机器人、 家用自动清洁机器人等自动半自动机器人的设计与普及有一定的参考意义。同时小车可以作为玩具的发展对象,为中国玩具市场技术含量的缺乏进行一定的 弥补,实现经济收益,形成商业价值。 超声波作为智能车避障的一种重要手段,以其避障实现方便,计算简单, 易于做到实时控制,测量精度也能达到实用的要求,在未来汽车智能化进程中必将得到广泛应用。我国作为一个世界大国,在高科技领域也必须占据一席之地,未来汽车的智能化是汽车产业发展必然的,在这种情况下研究超声波在智能车避障上的应用具有深远意义,这将对我国未来智能汽车的研究在世界高科技领域占据领先地位具有重要作用。 本智能小车系统最
5、诱人的前景就是可用于未来的智能汽车上了,当驾驶员因疏忽或打瞌睡时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离 车道或距障碍物小于安全距离时,汽车就会发出警报,提醒驾驶员注意,如果 驾驶员没有及时作出反应,汽车就会自动减速或停靠于路边。这样的小车还可以用于月球探测等的无人探月车,帮助我们传达月球上更 多的信息,让我们更加的了解月球,为将来登月做好充分准备。 这样的小车在科学考察探测车上也有广阔的应用前景,在科学考察中,有 很多危险且人们无法涉足的地方,这时,智能科学考察车就能够派上用场,在 它上面装上摄像机,代替人们进行许多无法进行的工作。1.2应用场合和功能: 应用场合:智能小车是一种
6、能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。同时在玩具的应用上深受小朋友的青睐。功能:本小车使用STC12C5A60S2单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当小车与障碍物的距离大于30cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物。在避开障碍物后,小车会沿直线前进。1.3项目主要研究内容本设计题目为智能避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于30cm,驱动电机工作,小车正常前进
7、,当小于30cm时,舵机会接受到单片机的信号,小车采取相应的避障措施。这里探测装置必不可少,因为超声波在距离检测方面的较准确定位。所以采用超声波传感器作为探测装置,由于超声波遇到障碍物时发生像光一样的反射和散射,在经过多次发射之后再回到超声波检测端口会产生较严重的路程差,从而影响对距离的检测进而影响对障碍物的较准确定位。通过软件内部校准优化消除外部物理条件造成的误差从而达到对障碍物的较准确定位。2总体方案论述2.1总体方案计划小车使用STC12C5A60S2单片机作为主控芯片,它通过超声波测距来获取小车距离障碍物的距离,当小车与障碍物的距离大于危险距离时,小车会沿直线前进,当小车与障碍物的距离
8、小于危险距离时,小车转弯以避开障碍物。在避开障碍物后,小车会沿直线前进。2.2总体功能及性能指标2.2.1总体功能1. 通过测距传感器来获取小车距离障碍物的距离。2. 当小车与障碍物的距离大于30cm时,小车会沿直线前进,当小车与障碍物的距离小于30cm时,小车转弯以避开障碍物。2.2.2总体电路原理图图二 总体电路原理图2.3系统方案的比较与确定2.3.1系统方案的比较1.方案一(1)设计超声波模块测距,STC12C5A60S2单片机作为主控模块;(2)设定报警阈值(设定30CM,可用键盘调整阈值),小车通过舵机工作来实现转弯避障;(3)利用STC12C5A60S2的P1口AD转换功能,超声
9、波模块测量距离。2.方案二(1)红外测距器的系统设计,STC12C5A60S2单片机作为主控模块;(2)用动态扫描法实现LED数字显示,红外驱动信号用单片机的定时器完成;(3)单片机使用P1.0端口输出超声波转化器所需的40KHz方波信号ISD1820语音播放距离,并用LED数字显示显示其距离值。2.3.2系统方案的确定我们小组考虑到,超声波测距方向性好,耐脏污,可以在较差环境下使用,价格中等,检测距离远。红外测距的优点是便宜,易制,安全,缺点是精度低、抗干扰能力差、方向性差、测试距离近。激光测距精度高,但是成本较高,制作难度高,对人体安全有影响,且受外界环境影响较大。三者经过相互比较,从经济
10、和我们所学的知识考虑。所以我们最终选择方案一。2.4最终实物图3硬件电路的设计 3.1硬件系统的基本结构该智能车系统可分为四个主要模块:单片机主控核心模块,传感器避障模块,电机驱动模块和显示模块。其主要组成构图如下:数据数据数据数据超声波单片机STC12C5A60S2单片机STC12C5A60S2控制数据舵机控制数据3.1.1障碍物测距系统:方案一:超声波视觉 优点:价格合理,夜间不受影响。易于多目标测量和分类,分辨率好。缺点:测量范围小,对天气变化敏感。不能直接测量距离,算法复杂,处理速度慢。方案二:红外测距 优点:便宜,易制,安全,速度快。 缺点:精度低,距离近,方向性差,容易受光干扰 探
11、测障碍的最简单的方法是使用超声波传感器,它是利用向目标发射超声波脉冲,计算其往返时间来判定距离的。算法简单,价格合理。所以我们选择超声波传感器。超声波测距原理:首先利用单片机输出一个40kHz的触发信号,把触发信号通过TRIG管脚输入到超声波测距模块,再由超声波测距模块的发射器向某一方向发射超声波,在发射时刻的同时单片机通过软件开始计时,超声波在空气中传播,途中碰到障碍物返回,超声波测距模块的接收器收到反射波后通过产生一个回应信号并通过ECHO脚反馈给单片机,此时单片机就立即停止计时。时序图如图1所示。由于超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍
12、物的距离,即:S=VT/2,通过单片机来算出距离。图3.1:超声波测距原理3.1.2驱动模块:方案一:采用ULN2003驱动,它是由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,一般用于高速大功率驱动电路。所以我们不采用这个方案。方案二:采用由双极性管组成的H桥电路(L298N)。用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速。这种电路由于工作在管子的饱和截止模式下,则效率非常高;H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高。而且它有更强的驱动能力。L298N有过电流保护功能,当出现电机卡死时,可以
13、保护电路和电机等。L298N有过电流保护功能,当出现电机卡死时,可以保护电路和电机等。所以我们选择L298N。下图为L298内部图:图3.3:L298内部原理图L298各引脚功能,如下表。引脚功能1、15SEN1、SEN2分别为两个H桥的电流反馈脚,不用时可以接地2、31Y1、1Y2输出端,与对应输入端(IN1、IN2)同逻辑4VS驱动电压,最小值需比输入的低电平电压高2.5V5、7IN1、IN2输入端,TTL电平兼容6、11EN1、EN2使能端,低电平禁止输出8GND地9VSS逻辑电源,4.57V10、12IN3、IN4输入端,TTL电平兼容13、142Y1、2Y2输出端,与对应输入端(IN
14、3、IN4)同逻辑表3-3-1 封装引脚及功能驱动电机的运行,I/O端口状态与电机制动对照表,如下。IN1IN2IN3IN4EN1EN2转速101011正转010111反转111111停止000011停止XXXX00停止表3-3-2 I/O端口状态与电机制动对照表3.1.3电源模块:我们选择采用8.4v的独立的稳压电源。优点:稳定可靠,且有各种成熟电路可供选用;缺点:电源需要经LM2940转换成5v的独立的稳压电源。综合电源模块的缺优点,和电路的实际需求,我们采用了两个变压电源模块,一块给小车的电机驱动供电,一块给小车的芯片供电,这样弥补了单个独立电源供电出现电力不足的情况。4.程序4.1 程
15、序流程图本设计系统软件采用模块化结构,由主程序定时子程序、电机驱动子程序中断子程序、显示子程序算法子程序构成。主程序流程图如图2所示。其中:避障中断服务子程序完成对超声波探测器产生的外部中断进行处理,如果超出预定的危险距离就左转进行避障。在定时中断服务子程序,完成定时与里程的计算。主程序流程图如图13所示。图13 程序流程图5系统软硬件调试5.1 硬件调试超声波距仪的制作为了使信号稳定,最好给输入电源加上一个滤波电路,会增加误差,但总体来说不影响结果。在本次设计中,主控模块是非常重要的部分,它不仅是本次设计的核心,在本次硬件调试中也遇到了问题,接上电源的时候,显示屏不亮,没有任何显示,于是我做
16、了如下的工作:(1)检查电源是否通电;(2)编程使P1为低电平,检查到P1输出为低;(3)检查P0口未接上拉电阻。5.2软件调试 硬件电路制作完成并调试好后,便可将程序编译好下载到单片机试运行。根据所设计的电路参数和程序,测距仪能测的范围为20cm150cm,测距仪最大误差不超过0.5cm。系统调试完后对各个距离进行多次测量,与预定值进行比较,对测量误差进行多次实验分析,不断调节器件和修改程序使其达到实际使用的测量要求。5.3 调试中遇到的问题在焊接过程中一些地方出现虚焊等接触不良的问题,导致显示不稳定有闪烁。接线过程中用插针接线容易导致接线松动,没接到或者接触不良。环境问题:超声波在空气介质
17、的传播过程中会有很大的衰减,其衰减遵循指数规律。一般情况下能测150cm,但是空气介质发生改变,如尘埃过多,导致红外线强度降低,测量发生误差,且测量距离变小。周围有其他辐射源,并且强度很大时会影响测量结果。结 论对所设计的电路进行测量、校准发现其测量范围在20cm150cm内的平面物体做了多次测量发现,其最大误差为0.5cm,且重复性好。该测距仪稳定性比较高、灵敏度比较高。但是在检测过程中会有一些不便的地方: 1.测量时在超声波测距仪和目标物体之间周没有其它可阻挡的物体,由于是根据反射能量法,且发射功率有限,反射回来的声波能量容易过低而无法采集,测距仪无法测量150cm外的物体。2.必须在干净
18、清新的空气环境下测量,空气中一旦尘埃过多,会最终影响计算距离的值。3.不能够实现不同温度下的测距功能。4.因为超声波是将空气作为媒介所以受电磁干扰比较大。由上述的分析知,如果能够干净清新的空气环境,稳定的温度下,无其它电磁干扰,阻挡的物体,能够获得较高的测量精度。参考文献1 毋茂盛,单片机原理与开发,高等教育出版社2 计时鸣,机电一体化控制技术与系统,西安电子科技大学出版社3 张曙光,c语言程序设计,人民邮电出版社4 彭伟,单片机C语言程序设计实训基于8051+Proteus仿真电子工业出版社附录 附录一 相关程序 #include #include #include #define ucha
19、r unsigned char#define uint unsigned int /*Declare SFR associated with the PCA */sfr CCON = 0xD8; /PCA control registersbit CCF0 = CCON0; /PCA module-0 interrupt flagsbit CCF1 = CCON1; /PCA module-1 interrupt flagsbit CR = CCON6; /PCA timer run control bitsbit CF = CCON7; /PCA timer overflow flagsfr
20、 CMOD = 0xD9; /PCA mode registersfr CL = 0xE9; /PCA base timer LOWsfr CH = 0xF9; /PCA base timer HIGHsfr CCAPM0 = 0xDA; /PCA module-0 mode registersfr CCAP0L = 0xEA; /PCA module-0 capture register LOWsfr CCAP0H = 0xFA; /PCA module-0 capture register HIGHsfr CCAPM1 = 0xDB; /PCA module-1 mode register
21、sfr CCAP1L = 0xEB; /PCA module-1 capture register LOWsfr CCAP1H = 0xFB; /PCA module-1 capture register HIGHsfr PCAPWM0 = 0xf2;sfr PCAPWM1 = 0xf3; sbit RX=P10; sbit TX=P11; sbit pwm =P27 ; sbit INPUT1=P20; /p13 sbit INPUT2=P21; sbit INPUT3=P22; /p14 sbit INPUT4=P23; sbit ENA=P24; sbit ENB=P25; unsign
22、ed char jd=0,count=0,joflag=0; /角度标识 unsigned int time=0; unsigned int timer=0; float S=0; bit flag =0;/*/ void Conut(void) time=TH0*256+TL0; TH0=0; TL0=0; S=(time*1.87)/100; /算出来是CM/ if(flag=1) /超出测量/ / flag=0;/ printf(-n); / / printf(S=%fn,S); /*/ void Delay1ms() /11.0592MHz unsigned char i, j; _n
23、op_(); i = 11; j = 190; do while (-j); while (-i);void delayms(unsigned int xms) int xnum=0; for(;xnum=255) left_speed=255; if(right_speed=255) right_speed=255; CCAP0H = CCAP0L = (255-left_speed); CCAP1H = CCAP1L = (255-right_speed);void dianji() INPUT1=1; INPUT2=0; INPUT3=1; INPUT4=0; ENA=1; ENB=1;
24、 void stop() INPUT1=1; INPUT2=0; INPUT3=1; INPUT4=0; ENA=0; ENB=0;/void duoji()/ TH0 = 0xff; /重新赋值/ TL0 = 0x19;/ if(countjd) /判断0.5ms次数是否小于角度标识/ pwm=1; /确实小于,PWM输出高电平/ else/ pwm=0; /大于则输出低电平/ count=(count+1); /0.5ms次数加1/ count=count%80; /次数始终保持为40 即保持周期为20ms/void jiaodu(unsigned char num) unsigned i
25、nt jdcount=0; for(;jdcount400;jdcount+) if(jdcount=num) pwm=1; else pwm=0; delayus5x(10); void check() if(S40) /检测到障碍物 if(joflag%2) /0 jiaodu(2); else jiaodu(35); joflag+; joflag%=200; delayms(1200); jiaodu(21); else jiaodu(21); delayms(100);/*/void main(void) unsigned char iii=0; TMOD=0x21; /设T0为方式
26、1,GATE=1; SCON=0x50; TH1=0xFD; TL1=0xFD; TH0=0; TL0=0; TR0=1; ET0=1; /允许T0中断 TR1=1; /开启定时器 TI=1; EA=1; /开启总中断 dianji(); PWM_INIT(); moto(130,130); for(;) StartModule(); /set csb while(!RX); /当RX为零时等待 TR0=1; /开启计数 while(RX); /当RX为1计数并等待 TR0=0; /关闭计数 Conut(); /计算 / duoji(); EA=0; check(); EA=1; delayms(500);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1