基于单片机的智能循迹小车设计-课件_第1页
基于单片机的智能循迹小车设计-课件_第2页
基于单片机的智能循迹小车设计-课件_第3页
基于单片机的智能循迹小车设计-课件_第4页
基于单片机的智能循迹小车设计-课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的智能循迹小车的设计1PPT课件主要内容:

系统概述1循迹小车硬件设计2循迹小车软件设计3总结42PPT课件整个系统括单片机控制模块、电机驱动模块、循迹模块、电源和小车车体。1.系统概述小车实物图3PPT课件本系统采用简单明了的设计方案。通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块判断黑线路经然后由STC89C52单片机通过IO口控制L298N驱动模块改变两个直流电机的工作状态最后实现小车循迹循迹小车的工作原理4PPT课件控制系统结构框图5PPT课件2.循迹小车硬件设计电机驱动模块循迹模块6PPT课件电机驱动模块L298N驱动芯片和直流电机接线原理图7PPT课件L298N电机驱动板L298N是一个内部有两个H桥的驱动芯片,这样电机的运转只需要用三个信号控制:两个方向信号和一个使能信号。实物图注意:L298N芯片的工作电压需要两路:第一路:输出供给电机回路的工作电源

第二路:输入逻辑控制回路电源5V(电源出/入)

8PPT课件L298N接入直流电机的端口接法9PPT课件循迹模块循迹原理:

利用红外线对于不同颜色具有不同的反射性质的特点。在小车行驶过程中传感器的红外发射二极管不断发射红外光,当红外光遇到白色地面时发生漫反射,红外对管接收管接收反射光;如果遇到黑线则红外光被吸收,则红外管接收不到信号.

红外对管采集回来的信号通过3路循迹传感器模块里面的LM339比较器后输出高或低电平,从而实现信号的检测。

10PPT课件当模块检测到前方障碍物信号时电路板上红色指示灯点亮,同时OUT端口持续输出低电平信号,该模块检测距离2~60cm,检测角度35°

LM339比较器红外探头电路11PPT课件

IN1-为定位器调节的电压输入端(V固定)

IN1+为探头输出的电压(探头out与GND间电压)Vout

检测到白色时R1减

小Vout<V固定输出

低电平 LED亮

检测到黑线时R1增大 Vout>V固定输出

高电平 LED灭

以第一路为例简单分析V固定Vout12PPT课件三路红外探头检测状态及其小车控制方法13PPT课件所谓的差速,是指左右两车轮的速度差,假如左边车轮比右边的快,则小车会偏向右。同时,左边的车轮转速比右的慢,那么小车会向左边转动。目前主要有以下两种方式。(1)小车向左转,可是是左轮停止,左轮继续转动,这样可实现左转,这种方式实现小角度的转弯,在角度不大时可采用此种方式。(2)小车向左转,可以是左轮反转,右轮正转,这样可以实现大角度的左转,甚至可以进行原地打转。同理可推出小车如何向右转向。14PPT课件循迹小车软件设计:

1本设计采用C语言来编译程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。因此,软件的设计上,运用了模块化程序的结构对软件进行设计,使得程序变得更加直观易懂。程序的主要模块有:主程序、定时溢出中断服务程序、外部中断服务程序。

2KeilC51单片机软件开发系统可用于编辑C或汇编源文件。然后分别由C51编译器编译生成目标文件(.OBJ)。目标文件与库文件一起经LIB51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件。

3在软件调试中,使用功能强大且的WAVE6000软件进行软件编译与调试,使用MicrocontrollerISPSoftware及其配套的单片机对程序进行烧录。15PPT课件主要程序功能/*********************第一部分管脚声明*********************/sbitLeft_pwm=P1^6; //接驱动模块ENA使能端,输入PWM信号调节速度SbitRight_pwm=P1^7; //接驱动模块ENB使能端,输入PWM信号调节速度sbitP3_4=P3^4; //IN1sbitP3_5=P3^5; //IN2sbitP3_6=P3^6; //IN3sbitP3_7=P3^7; //IN4sbitHW1=P2^0; //三路寻迹模块接口第一路sbitHW2=P2^1; //三路寻迹模块接口第二路sbitHW3=P2^2; //三路寻迹模块接口第三路#defineLeft_go{P3_4=0,P3_5=1;}//当P3_4=0,P3_5=1;时左电机前进 #defineLeft_back{P3_4=1,P3_5=0;}//当P3_4=1,P3_5=0;时左电机后退#defineRight_go{P3_6=0,P3_7=1;}//当P3_6=0,P3_7=1;时右电机前转#defineRight_back{P3_6=1,P3_7=0;}//当P3_6=1,P3_7=0;时右电机后退16PPT课件voidpwm_out_left(void)//左电机调速,调节push_val_left的值改变电机转速,占空比{ if(Left_stop) {if(pwm_val_left<=push_val_left) Left_pwm=1; else Left_pwm=0; if(pwm_val_left>=40) pwm_val_left=0; } else Left_pwm=0;}voidpwm_out_right(void)//右电机调速{ if(Right_stop) {if(pwm_val_right<=push_val_right) Right_pwm=1; else Right_pwm=0; if(pwm_val_right>=40) pwm_val_right=0;} else Right_pwm=0;}/******************第二部分PWM调速控制函数******************/

17PPT课件/*********************第三部分电机驱动函数*********************/voidforward(void) //前进{push_val_left=4;//PWM调节参数改这个值可以改变其速度

push_val_right=4; Left_go; Right_go;}voidrotate_left(void)//旋转左转{ push_val_left=3; push_val_right=4; Left_back; Right_go; }18PPT课件voidlittle_left(void)//小车前进向左微调{ Left_go; Right_go; push_val_left=2; push_val_right=5; }voidrotate_right(void)//旋转右转{ push_val_left=4; push_val_right=3; Left_go; Right_back; }voidlittle_right(void)//小车前进向右微调{ Left_go; Right_go; push_val_left=4; push_val_right=2; }19PPT课件voidstop(void)//停止{ push_val_left=0; push_val_right=0;}/*********************第四部分主函数*********************/voidmain(){ init(); while(1) { if(HW3==0&&HW2==1&&HW1==0) //直行 { { forward(); } if(HW3==0&&HW2==0&&HW1==1) //微右

{ little_right(); i=1; }

20PPT课件

if(HW3==0&&HW2==0&&HW1==0&&i==1)//右转出线时(特别)

{ little_right(); j=0;q=0;w=0; } if(HW3==1&&HW2==0&&HW1==0)//微左

{ little_left(); j=1; } if(HW3==0&&HW2==0&&HW1==0&&j==1)//左转出线时(特别)

{ little_left(); i=0;q=0;w=0; } if(HW3==0&&HW2==1&&HW1==1)//两个传感器测右拐 { rotate_right(); q=1; }21PPT课件 if(HW3==0&&HW2==0&&HW1==0&&q==1)//调整

{ rotate_right(); w=0;i=0;j=0; } if(HW3==1&&HW2==1&&HW1==0)//两个传感器测到左拐

{ rotate_left(); w=1; } if(HW3==0&&HW2==0&&HW1==0&&w==1) { rotate_left(); q=0;i=0;j=0; } if(HW3==1&&HW2==1&&HW1==1)//检测到全为黑线时停止

{ stop(); } }}22PPT课件/*************第五部分中断服务函数*************/voidinit() //初始化{ TMOD=0X01; TH0=(65536-1000)/256;//1ms定时

TL0=(65536-1000)%256; EA=1; ET0=1; TR0=1;}voidtimer0()interrupt1 //TIMER0中断服务子函数产生PWM信号{ TH0=(65536-1000)/256;//1ms定时

TL0=(65536-1000)%256; //time++; pwm_val_left++; pwm_val_right++; pwm_out_left(); pwm_out_right();}23PPT课件结论:本课题研究的内容主要是智能小车的循迹系统。以实验组装小车为基础,使用了3个光电传感器来探测周围环境,同时对采集到的数据信息进行融合。取得了以下成果:

2经过多次的测试证明,循迹传感器呈M型布局时更适合检测多弯道的轨迹。由于传感器不在同一直线上,故小车转弯时,左右两边后部的传感器有较大的采样空间,两边前端的传感器则对采集的信号有更好的前瞻性。整个布局有利于在弯道处提高小车速度。但相对一字型布局,M型布局容易产生不稳定信号,从而产生信号震荡,影响小车行驶的稳定性。

3小车保留了扩展功能。循迹小车在完成设计预想的前提下,考虑到车体结构设计的简单化,降低了制

温馨提示

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

评论

0/150

提交评论