ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:512.36KB ,
资源ID:3834614      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3834614.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(智能寻迹小车的研究与开发.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

智能寻迹小车的研究与开发.docx

1、智能寻迹小车的研究与开发材料清单一、研究报告1. 项目成果简介2. 项目研究背景和意义3. 研究计划4. 研究内容5. 成果创新点6项目研究展望二、附件材料附件一:实物电路图附件二:实物照片附件三:源程序清单三、实物作品衡阳市第三届大学生创新大赛相关项目的研究报告项目名称:智能寻迹小车的研究与开发项目类型:实用型成果形式:1、研究报告;2、实用作品参赛学生:陈绪雄、周锋、蒋晶指导教师:李祖林、雷军、李旭华一、项目成果简介本项目使用光电传感器检测小车的运动轨迹,金属传感器和超声波传感器检测小车周围的障碍,对小车的相关信息进行采集,采用AVR单片机Atmega128L作为电动小车的寻迹控制,AVR

2、单片机Atmega128L完成算法分析、信息处理和小车的控制。构建了以微处理器为核心、多传感器的小车信息检测与融合、声光报警与LCD数码显示、双向PWM控制驱动电机的智能小车寻迹系统。电动小车能沿着任意设定的轨迹行走,遇到障碍自动停止5秒并发出声光报警,之后能自动倒回按设定的轨迹行走,小车能自动纠偏。经过测试,小车能够按任意设定的轨迹行走流畅。二、项目研究背景和意义随着计算机技术、控制技术、信息技术的快速发展,工业的生产和管理进入了自动化、信息化和智能化时代,智能化已经成为时代发展的需要。在柔性自动化生产线、智能仓储管理及物流配送等领域,当生产现场环境恶劣时,人工不能完成的任务如物料运输和装卸

3、等,可采用智能寻迹小车完成相应的任务。基于生产现场和日常生活的实际需要,研究和开发智能小车寻迹系统具有十分重要的意义。该项目的研究可以应用于机车头灯自动寻迹、工厂自动化、仓库管理、智能玩具和民用服务等领域,可提高劳动生产效率,改善劳动环境。三、研究计划2007年6月1日-2007年6月20日,收集资料,确定研究内容、技术方案、研究路线。(由组内3人共同研究)。2007年6月21日-2007年7月30日,完成小车硬件的电路制作(陈绪雄负责小车整体方案确定、制作电路板,周锋负责购买元器件和电路焊接,蒋晶负责电路图绘制)。2007年8月1日-2007年9月8日,完成小车软件的编写和小车整机调试。(三

4、人共同协作完成)。2007年9月10日-2008年3月6日,完成成果总结。四、研究内容1 方案与论证1.1控制芯片的选择方案一:选用AVR单片机Atmega128L,Atmega128L是高性能、低功耗的 AVR 8 位微处理器,64引脚。采用先进的 RISC 结构,具有133 条指令,大多数可以在一个时钟周期内完成。它具有两个独立的预分频器和比较器功能的8 位定时器/计数器和两个具有预分频器、比较功能和捕捉功能的16 位定时器/计数器及具有独立预分频器的实时时钟计数器。片内带有模拟比较器。具有上电复位以及可编程的掉电检测功能。其片内资源丰富,具有: 8个外部中断, 4个定时计数器,53个I/

5、O口,可解除I/O口资源不足的困难。其引脚大多数都有具有第二功能,功能强大。.方案二:采用AT89S52单片机,AT89S52 单片机是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。AT89S52有5个中断源,和3个定时计数器。方案三:采用FPGA(现场可编辑门列阵)作为系统控制器。FPGA可以实现各种复杂的逻辑功能,规模大,集成度高,体积小,稳定性好,并且可利用EDA软件进行仿真和调试。FPGA采用并行工作方式,提高

6、了系统的处理速度,常用于大规模实时性要求较高的系统。方案比较:由三种方案可以看出,以Atmega 128L核心可以方便地实现对各个部分的控制和外接,而AT89S52而需要外扩大量的I/O口才能满足需要,而FPGA的高速处理能力得不到充分发挥且价格较贵,所以我们选择方案一。(2)轨道行程控制方案的选择为了使电动车能够识别黑线不跑离轨道,我们在系统中加装了光电传感器和金属传感器。1.2 路面检测 我们采用检测黑线的方法来控制智能小车的行走轨迹,使用了两个红外对管来检测黑线,同时用超声波传感器检测小车周围的障碍物。方案一:采用热探测器。热探测器是利用所接收到的红外辐射后,会引起温度的变化,温度的变化

7、引起电信号输出,且输出的电信号与温度的变化成比例,温度变化是因为吸收热辐射能量引起的,与吸收红外辐射的波长没有关系,即对红外辐射吸收没有波长的选择。但热探测器对其吸收的红外辐射波长没有选择性,受外界环境的影响比较大。 方案二;采用光电探测器。光电探测器接收红外辐射后,由于红外光子直接把材料的束缚态电子激发成传导电子,由此引起电信号输出,信号大小与所吸收的光子数成比例。且这些红外光子的能量的大小(即红外光还必须满足一定的波长范围),必须满足一定的要求,才能激发束缚电子,起激发作用。光电探测器吸收的光子必须满足一定的波长,否则不能被吸收,所以受外界影响比较小,抗干扰比较强。基于上面分析,我们采用方

8、案二1.3 小车运行终点检测方案一:采用计算路程的方法来控制。只要将计算出来的路程不断的与预置的初值进行比较,只要相等说明已经到了终点,倒回起点也如此。这种方法不仅计算路程麻烦而且占用了CPU的开销。方案二:采用检测金属片的方法。只要在运行轨迹的终点放置一块铁片,再用金属传感器检测金属片就可以了,电路简单、程序采用中断的方式不会占用很多CPU资源。综合上述我们采用方案二1.4 显示装置的选择方案一:采用美信公司的MAX7219是一款串行共阴极数码管动态扫描显示的驱动芯片,其峰值段电流可达到40mA最高串行扫描频率10MHz,典型扫描频率为1.3MHz,仅用3线串行接口传送数据,可直接与单片机接

9、口,用户可以方便地修改其内部参数以实现多位LED显示。它内含硬件动态扫描显示控制电路,每片芯片可同时驱动8位共阴LED。点是控制比较简单,而且串行显示只占用很少的I/O口。方案二:采用点阵型LCD显示,点阵型LCD虽然占用的I/O口资源多,控制比较复杂,但其功能强大的,显示信息量大,可以保证良好的用户模式。它具有显示质量高、体积小、重量轻、功耗低、轻薄短小、无辐射危险、平面直角显示以及影像稳定不闪烁等优势,可视面积大,图面积效果好,分辨率高,抗干扰能力强等特点等优点。考虑到Atmega128 I/O口资源丰富和LCD的众多优点,我们选择使用LCD显示。2 主要电路设计与分析2.1系统结构框图单

10、片机将传感器送来的数据进行处理、算法分析,其输出信号控制电机并送LCD显示。光电传感器负责黑线的检测,引导智能小车的行使轨迹。金属传感器负责前起点和终点的检测,当金属传感器检测到金属条时,说明电动小车已经到起点或终点,采用超声波传感器检测智能小车的周围障碍物及其距离,若检测的距离达到超过给定值,发出声光报警,声音报警信号为“请注意倒车”。系统框图如图2.1。图2.1 系统框图2.2系统模块理论分析与设计(1)探测路面黑线的基本原理当光线照射到路面会反射,由于黑线和地面对光的反射系数不同,可根据接收到的反射光强弱,用光电传感器判断黑线。光电管基本原理图如图2.2。图2.2光电管基本原理图当光电管

11、检测不到黑线时,红外光管接收到反射回来的红外光,使其输出由高电平立即跳至低电平。我们在小车上并排加上两个红外光电管,黑线置于两红外光电管之间,并且将两个光电管产生的电信号脉冲分别送单片机的PE2和PE3。这样通过PWM来调节两个电机的速度来校正行使路线,电动车行驶状态和红外对管产生的电信号关系如表2-1。表2-1 电动车行驶状态和红外对管产生的电信号关系(2)金属探测模块金属探测模块主要用于行驶轨迹中金属片的探测。考虑到金属一般都是导体,根据电磁场理论可知,在受到变化的电磁场作用的任何导体,都会产生电涡流。因此,在本系统中采用电感式接近开关实现对金属片的检测。电感式接近开关由LC高频振荡器和放

12、大处理电路组成,金属物体接近传感器的振荡感应头时,物体内部产生电涡流,当电涡流作用于接近开关时,接近开关振荡能力衰减,内部电路的参数发生变化,由此识别出有无金属物体接近,进而控制开关的通和断,并以电信号脉冲的形式送入单片机的PD7。电感式接开关内部工作原理图如图2.3。图2.3电感式接开关内部工作原理图 (3)电机驱动模块L298是一个4通道逻辑驱动电路,既将逻辑控制电平进行功率放大,可以用于功率驱动的电压。电机驱动模块电路如图2.4所示。图2.4 电机驱动模块电路PWM(脉冲宽度调制)控制,配用L298驱动电路实现直流电机的调速,非常简单且调速范围大,它利用的是直流斩波原理,假设高电平导通,

13、在一个周期T内导通时间为t,那么一个周期T内的平均电压,其中=称为占空比。各周期内不同的占空比示例如图2.5。图2.5 各周期内不同的占空比示例电机的转速与电机两端的电压成正比,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成正比,占空比越大,电机转得越快,当占空比时,电机转速达到最大。3 程序设计主程序流程图主要包括传感器输出中断的查询、电平的检测和电机的响应等。主程序流程图如图3.1所示。图3.1主程序流程图4 功能测试通过测试,智能小车能按任意设定路线行驶,能实现以下功能:(1)沿着直线轨迹行使。(2)沿着S型设定轨迹行使。(3)沿着任何设置的轨迹行使。(4)小车行使到

14、达轨迹终点时,自动停留5秒并发出声光报警之后自动寻迹倒回行使到起点。(5)沿轨迹行使过程中,检测到障碍物时,自动停止5s,并发出声光报警“请注意倒车”。4 小结项目设计中采用具有丰富资源的Atmega128单片机和光电传感器、金属传感器、超声波传感器等,实现相应信号的检测与小车的控制,系统结构简单、稳定、具有较高的控制精度、抗干扰能力强,实现了智能小车能按任意轨迹行驶。五、成果创新点智能小车能检测障碍物及其距离,并发出声光报警 “请注意倒车” 信号,智能小车能沿任意设定轨迹行驶,具有实际应用价值和推广价值。六、项目研究展望对智能寻迹小车的研究,加装GPS(全球卫星定位系统)或加装基于Inter

15、net的接口电路,智能寻迹小车将具有更广泛的应用前景和使用价值,这也是我们以后的研究方向。附录一:实物电路图附件二:实物照片附录三:程序清单/*This program was produced by theCodeWizardAVR V1.24.1d StandardAutomatic Program GeneratorCopyright 1998-2004 Pavel Haiduc, HP InfoTech s.r.l.http:/www.hpinfotech.roe-mail:*Project : LTPC-3500Version : 1.0Date : 2007-6-1Author :

16、 HNHYLEI Company : HNGXY Comments: Chip type : ATmega128LProgram type : ApplicationClock frequency : 8.000000 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 128*/#include #include #include #include #include /-#define buzzer_led PORTB.0#define LED1 PORTD.0 #define LED2 PORTD.1 #define

17、 LED3 PORTD.2 #define LED4 PORTD.3 #define lpwm_ff PORTB.4 #define lpwm_re PORTA.4 #define rpwm_ff PORTB.7 #define rpwm_re PORTA.5 #define black_l PINE.2#define black_r PINE.3#define metal_detect PINF.0#define model PINF.2/- 液晶#define uchar unsigned char #define rs PORTA.7#define rw PORTB.5#define e

18、n PORTB.6#define ret PORTA.6/LCD数据数据口初始化 #define data PORTCuchar command,data1,data2,com0;uchar lcd_bufl,lcd_bufg;/定义显示缓冲区/-/ Declare your global variables here/ This flag is set on USART0 Receiver buffer overflowbit left_run=0; /左走bit right_run=0; /右走bit left_ff=1; /左前进bit right_ff=1; /右前进 bit left

19、_pwm; /用于左PWMbit right_pwm; /用于右PWM/-/-bit filter_start=0; /数字滤波bit filter_over=0; /数字滤波 bit black_l1=0; /左黑线1bit black_l2=0; /左黑线2bit black_r1=0; /右黑线1bit black_r2=0; /右黑线2 bit left_turn=0; /左转 bit right_turn=0; /右转bit metal1=0; /金属1bit metal2=0; /金属2bit mode=0; /测试模式bit stop_point; /停车点bit buzzer=

20、0; /蜂鸣bit lcd_dsp=0; /LCD刷新 bit read_over; /bit gradient_set=0; /bit stop_status=0; /unsigned char speed_l; /left速度控制量unsigned char speed_r; /right速度控制量unsigned char filter_count; /数字滤波 unsigned char excute_step1; /unsigned char excute_step2; /unsigned int bcd_temp0=0; /BCD 入口 /-unsigned char count1

21、=0; /秒计时 unsigned char count2=0; /转弯计时unsigned int count3=0; /停止时间计时 unsigned int count4=0; /unsigned int count5=0; / unsigned int stop_time=0; /停止时间 unsigned int gradient=0; / unsigned int gradient2=0; / unsigned int gradient_old; /unsigned int gradient2_temp18; / unsigned int filter_temp150; /数字滤波

22、 unsigned long int filter_sum; unsigned int filter_temp3;/-unsigned char j1,k1; /公共循环变量unsigned char bcd_temp5=0; /BCD分解值/-unsigned int ahead_time=0; /前进时间 unsigned int back_time=0; /倒退时间 /EEPROM- /-void bcd_con(unsigned char numb);void clear_lcd();void lcd_int();void lcd_set();void display();void d

23、is_code1(); void dis_code2(); void write_command(uchar command);void write_data(uchar data0); /- /-/ External Interrupt 0 service routine interrupt EXT_INT0 void ext_int0_isr(void)/ Place your code here / External Interrupt 4 service routine interrupt EXT_INT4 void ext_int4_isr(void) TCNT3H=0x00; TC

24、NT3L=0x00;/ External Interrupt 5 service routine interrupt EXT_INT5 void ext_int5_isr(void) if(filter_start=0) filter_temp1filter_count=(unsigned int)TCNT3H*0xff+(unsigned int)TCNT3L; filter_count+; if(filter_count=50) /60 filter_count=0; filter_start=1; if(filter_over=1) filter_over=0; gradient=fil

25、ter_temp3; read_over=1; /-/ Timer 0 overflow interrupt service routineinterrupt TIM0_OVF void timer0_ovf_isr(void)/TCNT0=0x06;left_pwm=left_pwm;if(left_pwm=1) if(left_turn=1) TCNT0=255-(speed_l/2); else TCNT0=255-speed_l; else if(left_turn=1) TCNT0=speed_l/2; else TCNT0=speed_l; if(left_run=1) if(le

26、ft_pwm=1) if(left_ff=1) lpwm_ff=1; lpwm_re=0; else lpwm_ff=0; lpwm_re=1; else lpwm_ff=0; lpwm_re=0; else lpwm_ff=0; lpwm_re=0; /-/ Timer 1 overflow interrupt service routine interrupt TIM1_OVF void timer1_ovf_isr(void)/ Place your code hereTCNT1H=0xff; TCNT1L=0x06; /-前进时间 if(+count1=128) count1=0; i

27、f(excute_step1=0&excute_step2!=2) ahead_time+; if(excute_step1=2) back_time+; lcd_dsp=1; /- if(mode=1&ahead_time=128) count3=0; stop_time+; lcd_dsp=1; if( buzzer=1) buzzer_led=buzzer_led; LED1=LED1; LED2=LED2; LED3=LED3; LED4=LED4; else buzzer_led=1; LED1=1; LED2=1; LED3=1; LED4=1; if(stop_time=5) stop_point=0; buzzer_led=1;

copyright@ 2008-2022 冰豆网网站版权所有

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