智能车设计.doc_第1页
智能车设计.doc_第2页
智能车设计.doc_第3页
智能车设计.doc_第4页
智能车设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能小车设计目录第一章 绪论11.1 引言11.2 本课题智能车简介1第二章 硬件设计22.1 系统硬件选择22.1.1 核心部件STC12C5A60S2单片机22.1.2红外线反射传感器22.1.3碰撞传感器32.1.4 火焰热源传感器3第三章 软件设计43.1 流程图43.1.1 主程序流程图的设计43.1.2AD中断子程序流程图53.2 程序设计6第四章 设计总结13参考文献:14第一章 绪论1.1 引言智能车是一种集环境感知、决策规划、自动行驶等功能于一体的综合智能系统 ,智能车集中地运用了自动控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等多个学科的知识。随着控制技术、计算机技术和信息技术的发展,智能车在工业生产和日常生活中已经扮演了非常重要的角色。近年来 ,智能车在野外、道路、现代物流及柔性制造系统中都有广泛运用,已成为人工智能领域研究和发展的热点。1.2 本课题智能车简介本课题智能车利用 STC12C5A60S2为控制核心,通过红外传感器和碰撞传感器判断路线上的障碍,利用火焰传感器探测火源。单片机控制直流舵机不同的转动状态,实现小车的前进、后退、左转、右转等功能,整个系统的电路结构简单, 可靠性高。第二章 硬件设计2.1 系统硬件选择2.1.1 核心部件STC12C5A60S2单片机STC12C5A60S2它是一种低功耗、高性能COMS8位微控制器3,具有8k字节在系统可编程可反复擦写1000次的FLASH存储器,具有256bytes的随机数据存储器(RAM),32个IO口,2个16位可编程定时计数器。使用 Atmel公司高密度非易失性存储器技术制造,与工业80c51指令和引脚完全兼容。片上FLASH允许程序存储器在系统可编程,亦使用常规编程器。且该系列的51单片机可以不用烧写器而直接用串口或并口就可以向单片机中下载程序。在单芯片上拥有8位CPU和在系统可编程存储器,使得STC12C5A60S2能为众多嵌入式控制应用系统提供灵活、有效的解决方案。STC12C5A60S2具备80c514单片机标准功能外,还可降至OHz 静态逻辑操作,支持两种软件,可选择节电模式。空闲状态下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM中内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止5。该单片机具有超强抗干扰能力,整机轻松过2万伏静电测试;速度快,1个时钟/机器周期,可用低级晶振,大幅降低EMT;超低功耗;输入/输出端口多,最多有44个I/O扣,A/D做按键扫描还可以节省很多I/O;在系统可编程,无需编辑器,无需仿真器,可远程升级;内部集成高可靠复位电路,外部复位电路可完全忽略,当然也可以继续用外部复位电路。因为这些特点,所以该单片机在小车测试中具有良好的测试效果。 2.1.2红外线反射传感器红外线反射传感器是利用红外线反射的原理,根据反射的强度来判定前方障碍的有无。它由红外二极管和红外光电管构成,红外二极管发射出红外线调制信号。红外线遇障碍物后被反射,反射回的红外线信号被红外光电管接收后转化为电信号。电信号的能量反映了反射距离信息。在距离适中的时候测量精度很高。由于使用的是红外线,所以抗干扰能力很强。这样做更加确保了小车的稳定性。该文中所选的红外线测距传感器采用单片机设计做为核心控制器,红外线传感器发送的控制信号使用单片机管脚可自行定义,传感器本身自行反馈接收信号。该产品特点为1、电路机构简单,易于操作;2、工作稳定,灵敏度高,性能可靠。此传感器可以用于智能小车的避障,该传感器可以手动调节测距的范围,当电源接通后,红外线传感器就开始工作了,机器人距离障碍物达到所设定的范围时,传感器接收到反射回来的红外线达到一定程度后,传感器内部通过三极管放大作用,输出低电平,当CPU判断后,执行相应的程序,达到绕开障碍物的目的。2.1.3碰撞传感器该文中所使用的碰撞传感器的原理是正常状态下输出高电平;当触碰触头时,输出低电平。当碰撞时,小车通过控制舵机来实现左转、右转、前进和后退来寻找正确的线路。在该方案中,碰撞传感器只作为一个辅助传感器,在红外光电传感器的探测死角起作用。2.1.4 火焰热源传感器火焰的热辐射具有离散光谱的气体辐射和连续光谱的固体辐射。不同燃烧物的火焰辐射强度、波长分布有所差异,但总体来说,其对应火焰温度的1-2微米近红外波长域具有最大的辐射强度。火焰传感器是机器人专门用来搜寻火源的传感器。火焰传感器利用对红外线特别敏感的特点,将火焰的亮度转化成高度变化的模拟信号,输入到处理器中。第三章 软件设计3.1 流程图3.1.1 主程序流程图的设计开始设置STC12C5A60S2初始化控制字延时等待程序 图 31 主程序流程图主程序开始,首先对STC12C5A60S2进行初始化,进入等待延时程序,等待AD转换完成,从而进入中断子程序。3.1.2AD中断子程序流程图将特殊功能寄存器中数值取出将数值换算为10进制数将数值转换为电压前进报警电压是否大于400小车旋转是中断返回小车前进否小车是否旋转360度否是是否有障碍小车旋转是否小车前进返回 图 32 计时开始中断服务程序流程图3.2 程序设计#include STC12C5A60S2.hsbit LED=P21;sbit L=P12;sbit R=P11;sbit red=P02;sbit touch_left=P00;sbit touch_right=P01;/ADC变量unsigned char ADCS_cnt=0x00;/ADC通道标志unsigned int disbuf3;int i;int k;void actf()R=1; /前进 L=1; _delay_ms(13); R=0; _delay_ms(4); L=0; R=0; _delay_ms(200); void actb() R=1; /后退 L=1; _delay_ms(13); L=0; _delay_ms(4); L=0; R=0; _delay_ms(200);void actl() L=1; /右转 R=1; _delay_ms(17);L=0; R=0; _delay_ms(200); void actr() L=1; /左转 R=1; _delay_ms(13);L=0; R=0; _delay_ms(200); /发送一个数据/void Senddata(unsigned char Data)SBUF=Data;while(TI=0);TI=0;/发送字符串/void Sendstring(unsigned char *a)while(*a)Senddata(*a);a+;/main()主程序/ void main(void)SP=0x70;LED=0;_delay_ms(1000);/LED=1;/串口设置/ TMOD=0x20;TH1=0xfd; /波特率9600TL1=0xfd; /波特率9600/TH1=0xe6; /波特率1200/TL1=0xe6; /波特率1200PCON=0x00;/SMOD=0SCON=0x50;/串口工作方式1TR1=1; EA=0;ES=0;/ADC设置/AUXR1=0x04; /ADRJ=1,高2位放在ADC_RES中,低8位放在ADC_RESL中,转换结果=1024*Vin/VccP1ASF=0x01; /0000,0001ADC_CONTR=0x88;/1:打开电源ADC,00:速度00,0:标志清零,1:开始转换,000:通道0for(i=0;i=3;i+)EADC=1;/开A/D中断ADCS_cnt=0x00;k=0;while(1)/Sendstring(s_0: );/Senddata(disbuf0+48);/Senddata(disbuf1+48);/Senddata(disbuf2+48);/Senddata(0x0d);/回车/Senddata(0x0a);/换行EA=1; _delay_ms(200);/EA=0;/ADC中断/ void ADC_Routine(void) interrupt 5/ADCfloat ADC_Result;ADC_Result=ADC_RESL+ADC_RES*256; /取值ADC_Result=(ADC_Result*500)/1024; /转换为电压if(ADC_Result400) /LED=1;for(i=0;i=80;i+) actf(); for(i=0;i=30;i+)actl();for(i=0;i=30;i+)actr();for(i=0;i=10;i+)actl(); LED=0;if(k35)for(i=0;i=2;i+)actr();k+; elsek=0; for(i=0;i80;i+) if (touch_left & touch_right & red) actf(); else if(touch_left=0) for(i=0;i50;i+)actb(); for(i=0;i30;i+) actr(); else if(touch_right=0) for(i=0;i50;i+) actb(); for(i=0;i30;i+) actr(); else if(red=0) for(i=0;i50;i+) actb(); for(i=0;i30;i+) actr(); /设置ADCP1ASF=0x01; /0000,0001ADC_CONTR=0x88;/1:打开电源ADC,00:速度00,0:标志清零,1:开始转换,000:通道0for(i=0;i=3;i+)ADCS_cnt=0x00; /下次读取P10口第四章 设计总结智能小车设计已经落下帷幕,回望这些天不紧不慢很有节奏感的生活,我感触颇多,受益匪浅,但更多的是感激之情。首先要诚挚地感谢孙老师这几天对我的谆谆教导和无私帮助。整个课程设计过程中,我遇到了很多由于专业知识理解不深和动手能力不强而不易察觉甚至解决的问题,每当这个时候询问老师,老师都耐心为我们答疑解惑,但并不是直接告诉我们答案而是间接引导我们一步一步向成功靠拢。可以说,没有老师的指引,我没有办法在几天以内就看到所期盼的效果,所以我要再次向老师表达我最诚挚的谢意。本次课程设计中使用到了功能强大的STC12C5A60S2芯片,拓宽了我在单片机领域的视野,充分考察了我的自学能力。本次课程设计对于以后的学习将有很重要的帮助,我将更加注重实际

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论