毕业设计(论文)-智能小车的设计.doc_第1页
毕业设计(论文)-智能小车的设计.doc_第2页
毕业设计(论文)-智能小车的设计.doc_第3页
毕业设计(论文)-智能小车的设计.doc_第4页
毕业设计(论文)-智能小车的设计.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

湖南第一师范学院 毕业论文(设计) 题目智能小车 学生姓名 学号 指导教师111 系(部)信息科学与工程系 专业班级电子信息工程技术 1 班 完成时间2011 年 4 月 18 日 目 录 第 1 章 绪论1 第 2 章 系统概况2 2.1 智能小车结构图.2 2.2 模块方案比较与论证.2 2.3 最终方案.5 第 3 章 硬件实现及单元电路设计6 3.1 主控制器电路的设计.6 3.2 寻迹模块的设计.7 3.3 避障模块的设 计8 3.4 电机驱动模块的设 计.8 3.5 无线遥控模块的设 计9 3.6 车载数码管模块的设 计12 3.7 lcd12864 模块的设计12 第 4 章 软件实现13 4.1 主程序设计.13 4.2 各模块程序流程图.13 第 5 章 结束语16 参考文献17 附 录 1.17 附录 2.27 共 31 页第 1 页 智能小车的设计智能小车的设计 摘摘 要:要:该设计是一款具有智能判断功能的小车,功能强大。小车具有以下几 个功能:寻迹功能(小车沿着路面的黑色轨道行驶) ;自动避障功能;无线遥控 功能;计算并显示小车的行驶速度;该设计可以作为高级智能玩具,也可作为 大型智能交通工具的参照。 关键字:关键字:at89s52 ;直流电机;光电传感器;df 无线收发;红外模块 第 1 章 绪论 “智能小车”属于机器人技术范畴,它涵盖了机器人技术的相关知识,包 括机械系统结构、控制系统硬件配置、传感技术、控制算法的程序编程等。因 为简易智能小车的规模较小、制作成本相对够低,但对电动车的研发具有极其 重要的意义,使人们能更好地了解机器人的真正含义,更便利地对机器人进行 更深入的研究和改进,即可变成探月车,其次,通过这个项目的制作,可以提 高自己的实际动手能力和设计经验。 “智能小车”运用单片机和光电对管等一系列传感器控制电动小车运动, 通过设计传感器检测程序和运动控制程序,使电动小车具有智能化的运动功能, 达到模拟汽车按一定的轨迹运动的能力。该设计属于机器人应用范畴,具有较 好的应用前景。 第第 2 2 章章 系统概况系统概况 2.1 智能小车结构图 智能小车由主控制器、外部模块和电源模块组成,结构框图如图 2.1 所示。 共 31 页第 2 页 at89s52(1) at89s52(2) 光电对管黑线检测 转向灯控制 光电对管壁障模块 l298n 驱动直流电机 三节 1.5v 可充电电池三节 1.5v 可充电电池 光电对管测速 车载数码管 无线发射模块 无线接收模块 at89s52(3) 液晶显 示 图 2.1: 智能小车的结构框图 2.2 模块方案比较与论证 为了较好地实现各模块的功能,分别设计了几种方案并进行了论证。 2. .1 控制器模块 (1)方案一:采用可编程逻辑器件作为控制器,可以实 现各种复杂的功能、规模大、密度高、体积小、稳定性高、资源丰富、易 于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作 为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处 理速度的要求也不是非常高。且从使用及经济的角度考虑,最终放弃了此方案。 共 31 页第 3 页 (2)方案二:采用凌阳的 16 位单片机,它是 16 位控制器,且有体积小, 驱动能力高,集成度高,易扩展,可靠性高,功耗低,结构简单,中断处理能 力强等特点。处理速度高,尤其适用于语音处理和识别等领域。但是当凌阳单 片机应用语音处理和识别时,由于占用 cpu 资源较多而使得凌阳单片机同时处 理其它任务的速度和能力降低,因此放弃了使用凌阳单片机而考虑其它方案。 (3)方案三:采用 atmel 公司的 at89s52 单片机作为主控制器,at89s52 是一个低功耗、高性能的 51 内核的 cmos 8 位单片机,片内含 8k 空间的可反复 擦写 1000 次地 flash 只读存储器,具有 256b 的随机存储器(ram) ,32 个 io 口,2 个 16 位可编程定时计数器。且该系列 51 单片机可以不用烧写器直接用 串口或并行口就可以向单片机下载程序。我们在单片机上设置 isp 接口,下载 程序方便,快捷。 从方便使用的角度考虑,最终选择了方案三。 2.2.2 电机模块 (1)方案一:采用步进电机,步进电机的一个显著特点就是具有快速启停 能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电 机启动或反转。另一个显著特点是转换精度高,正转反转控制灵活。 (2)方案二:采用普通直流电机。直流电动机具有优良的调速特性,调速 平滑、方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁 的无级快速启动、制动和反转;能满足各种不同的特殊运行要求。 由于普通直流电机更易于购买,并且电路相对简单,因此建议采用直流电 机作为动力源。 2.2.3 电机驱动模块 (1)方案一:采用专用芯片 l298n 作为电机驱动芯片,l298n 是一个具有 高电压大电流的全桥驱动芯片,它相应平率高,一片 l298n 可以分别控制两个 直流电机,而且还带有控制使能段。用该芯片作为电机驱动,操作方便,稳定 性好,性能优良。 (2)方案二:对于直流电机用分离元件构成驱动电路。由分立元件构成电 机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。但在这种电路中 性能不够稳定。 因此选择了方案一。 2.2.4 电源模块 (1)方案一:采用蓄电池供电,由于本系统需要电池为系统供电。蓄电池 具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池体积过于庞大, 在小型电动车上使用极为不方便。因此放弃了此方案。 (2)方案二:采用 3 节 4.2v 可充电锂电池串联共 12.6v 给直流电机供电, 经过 7805 的电压变换后为单片机,传感器和电机供电。经过试验验证,当电池 为直流电机供电时,单片机,传感器的工作电压不够,性能不稳定。因此也放 弃了此方案。 (3)方案三:采用一节八 v 可充电锂电池经 7805 的电压变换为单片机和 共 31 页第 4 页 创奇供电。再用 12 个 1.2v 的可充电式电池串联为直流电机供电,采用此方法 供电后,单片机和传感器工作稳定,直流电机工作不受影响,且电池体积小, 能够满足系统的要求。 综上考虑,最终决定选用方案三。 2.2.5 寻迹模块 (1)方案一:用光敏电阻组成光敏探测器。光敏电阻的阻值可以随周围环 境光线的变化而变化。当光线照射到白线上面时,光线反射强烈,光线照射到 黑线上面时,光线反射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生 明显的变化。将阻值经过比较器就可以输出高低电平。 (2)方案二:用红外发射管和接收管自己制作光电对管寻迹传感器。红外 发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管 能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出 的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能 够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此放弃了这个 方案。 (3)方案三:用 st178 型光电对管,st178 是一种一体化反射型光电探测 器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平 面光电三极管。st178 采用 dip4 封装,其具有如下特点:塑料透镜可以提高灵 敏度;内置可见光过滤器能减小离散光的影响;体积小,结构紧凑;当发光二 极管发出的光反射回来时,三极管导通输出低电平;此光电对管调理电路简单, 工作性能稳定;因此最后选择了方案三。 2.2.6 避障模块 (1)方案一:用超声波传感器进行避障,超声波传感器的原理是:超声波 由压电陶瓷超声波传感器发出后,遇到障碍物便反射回来,再被超声波传感器 接收,然后将这信号放大后送入单片机。超声波传感器在避障的设计中被广泛 应用。但是超声波传感器需要 40hz 的方波信号来工作,因为超声波传感器对工 作频率要求较高,偏差在 1%以内,所以用模拟电路来做方波发射器比较难以实 现。而且单片机来做方波发射器未免有些浪费资源。因此只能考虑其它方案。 (2)方案二:采用红外避障方法,利用一管发射另一管接收,接收管对外界 红外线的接收强弱来判断障碍物的远近,由于红外线受外界可见光的影响较大, 因此用 250hz 的信号对 38khz 的载波进行调制,这样减少外界的一些干扰。接 收管输出 ttl 电平,有利于单片机对信号的处理。 为了使用方便,便于操作和调试,最终选择了方案二。 2.2.7 无线遥控模块 无线数据传输被广泛应用在车辆监控、遥控、要测、小型无线网络、无线 数据通信、机器人控制、数字音频、数字图像的传输等领域中 (1)方案一:用 df 无线数据收发模块。df 无线发射模块通讯方式为调频 am,工作频率为 315mhz,为 ism 频段,发射频率 sbit hh1=p00; /红外 1 sbit hh2=p07; /红外 2 sbit led1=p03; /拐弯灯 1 sbit led2=p23; /拐弯灯 2 sbit m11=p21; /电机 1 接口 1 sbit m12=p22; /电机 1 接口 2 sbit m21=p02; /电机 2 接口 1 sbit m22=p01; /电机 2 接口 2 sbit pwm1=p25; sbit pwm2=p26; void main() /主函数 hh1=hh2=led1=led2=pwm1=pwm2=1; while(1) if(hh2=0) led2=0; m21=m12=m11=0; m22=1; else if(hh1=0) led2=1; m11=m22=m21=0; m12=1; else if(hh1=0) led2=0; m11=m21=0; m12=m22=0; else if(hh1=1) led2=1; m11=m21=0; m12=m22=1; 3、遥控和测速模块程序 #include /* /变量的定义 /* unsigned int k=4000, /定时变量 定时:250us*k time10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,/时间显示字 符 distance_point10=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x00; /路程显示字 符 unsigned int count_time=0,caculate_distance=0;/时间与距离的变量 /遥控中断变量 unsigned char datapacket,count=0; sbit remotein=p32; unsigned char decode_counter=0x00; bit flag_follow=0; /遥控标志 bit flag_display=0;/时间路程切换标志 char n_1=0,n_2=0,n_3=0,n_4=0;/用于显示字符的选择 sbit p1_4=p14; /enable 1 sbit p1_5=p15; /=1,forward 共 31 页第 21 页 sbit p1_6=p16; /enable 2 sbit p1_7=p17; /=1,forward /寻迹使能引脚 遇黑色为 1 sbit p2_0=p20; sbit p2_1=p21; sbit p2_2=p22; sbit p2_3=p23; sbit spk=p24; /spk 为蜂鸣器使能 /数码管使能 sbit p1_0=p10; sbit p1_1=p11; sbit p1_2=p12; sbit p1_3=p13; void run_key(); void delay_small(unsigned int n) while(n) n-; void ahead(unsigned int n) /(min)n=300 p1_4=0; p1_6=0; p1_5=1; p1_7=1; p1_4=1; p1_6=1; delay_small(n); /*void back(int n) p1_4=0; p1_6=0; p1_5=0; p1_7=0; p1_4=1; 共 31 页第 22 页 p1_6=1; delay_small(n); */ void left(unsigned int n) /(90)n=54200 p1_4=0; p1_6=0; p1_5=0; p1_7=1; p1_4=0; p1_6=1; delay_small(n); void right(unsigned int n) p1_4=0; p1_6=0; p1_5=1; p1_7=0; p1_4=1; p1_6=0; delay_small(n); void stop(unsigned int n) /n=50000 stop immidiatly; p1_4=0; p1_6=0; delay_small(n); void initial_t1(void) ie=0x8d; it1=1; it0=1; tmod=0x21; th1=5; tl1=5; tr1=1; 共 31 页第 23 页 void inte_infrared(void) interrupt 0 unsigned int i; unsigned int datapackettemp=0; unsigned int datapacketend=0; unsigned int datapacketstart=0; decode_counter+;ex0=0;datapacketend=0; if(decode_counter=1) tr0=1; while(remotein=1th0=0;tl0=0;/确认时间 datapacket=i=0;/初始化 for(i=0;i23) if(datapacketend0x0630) else datapacketend=0;/无效操作 tr0=0;th0=0;tl0=0;ex0=0; /end for run_key(); tcon=tconex0=1;tr0=0;th0=0;tl0=0;decode_counter=0; /*/ /键扫描盘 /*/ void run_key() switch(datapacket) case 0xfe: ahead(0); break; case 0xde: right(0); break; case 0xee: left(0); break; 共 31 页第 25 页 case 0xce: stop(0); break; case 0x7e: flag_follow=1;/循迹开 break; case 0x5e: flag_follow=0;/循迹关 default: break; datapacket=0x00; void time_1s() interrupt 3 k-; if(!k) count_time+; k=4000; count+; if(count=5)flag_display=1; if(count=10) flag_display=0; count=0; void distance() interrupt 2 caculate_distance=caculate_distance+1; void display_t() n_1=count_time%60%10; n_2=count_time%60/10; n_3=count_time/60%10; n_4=count_time/60/10; p1_3=0; p0=timen_1; 共 31 页第 26 页 if(flag_followahead(0); delay_small(20); p1_3=1; p0=0xff; p1_2=0; p0=timen_2; if(flag_followahead(0); delay_small(20); p1_2=1; p0=0xff; p1_1=0; p0=distance_pointn_3; if(flag_followahead(0); delay_small(20); p1_1=1; p0=0xff; p1_0=0; p0=timen_4; if(flag_followahead(0); delay_small(20); p1_0=1; p0=0xff; void display_d() n_1=caculate_distance%10; n_2=caculate_distance/10%10; n_3=caculate_distance/100%10; n_4=caculate_distance/1000%10; p1

温馨提示

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

评论

0/150

提交评论