欢迎来到天天文库
浏览记录
ID:51441578
大小:2.45 MB
页数:26页
时间:2020-03-22
《基于单片机的智能循迹小车---答辩PPT(1.0版).ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于单片机的智能循迹小车的设计设计成员:车京运002号董莲010号付蓉012号胥志强047号主要内容:系统概述1循迹小车硬件设计2循迹小车软件设计3总结4整个系统括单片机控制模块、电机驱动模块、循迹模块、电源和小车车体。1.系统概述小车实物图本系统采用简单明了的设计方案。通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块判断黑线路经然后由STC89C52单片机通过IO口控制L298N驱动模块改变两个直流电机的工作状态最后实现小车循迹循迹小车的工作原理4控制系统结构框图2.循迹小车硬件设计电机驱动模块循迹模块电机驱动模块L298N驱动
2、芯片和直流电机接线原理图L298N电机驱动板L298N是一个内部有两个H桥的驱动芯片,这样电机的运转只需要用三个信号控制:两个方向信号和一个使能信号。实物图注意:L298N芯片的工作电压需要两路:第一路:输出供给电机回路的工作电源第二路:输入逻辑控制回路电源5V(电源出/入)L298N接入直流电机的端口接法循迹模块循迹原理:利用红外线对于不同颜色具有不同的反射性质的特点。在小车行驶过程中传感器的红外发射二极管不断发射红外光,当红外光遇到白色地面时发生漫反射,红外对管接收管接收反射光;如果遇到黑线则红外光被吸收,则红外管接收不到信号.红外对管采集回来
3、的信号通过3路循迹传感器模块里面的LM339比较器后输出高或低电平,从而实现信号的检测。当模块检测到前方障碍物信号时电路板上红色指示灯点亮,同时OUT端口持续输出低电平信号,该模块检测距离2~60cm,检测角度35°LM339比较器红外探头电路IN1-为定位器调节的电压输入端(V固定)IN1+为探头输出的电压(探头out与GND间电压)Vout检测到白色时R1减小VoutV固定输出高电平LED灭以第一路为例简单分析V固定Vout三路红外探头检测状态及其小车控制方法所谓的差速,是指左右两车轮的速度
4、差,假如左边车轮比右边的快,则小车会偏向右。同时,左边的车轮转速比右的慢,那么小车会向左边转动。目前主要有以下两种方式。(1)小车向左转,可是是左轮停止,左轮继续转动,这样可实现左转,这种方式实现小角度的转弯,在角度不大时可采用此种方式。(2)小车向左转,可以是左轮反转,右轮正转,这样可以实现大角度的左转,甚至可以进行原地打转。同理可推出小车如何向右转向。14循迹小车软件设计:1本设计采用C语言来编译程序。模块化结构程序的设计,可以使系统软件便于调试与优化,也使其他人更好地理解和阅读系统的程序设计。因此,软件的设计上,运用了模块化程序的结构对软件进行
5、设计,使得程序变得更加直观易懂。程序的主要模块有:主程序、定时溢出中断服务程序、外部中断服务程序。2KeilC51单片机软件开发系统可用于编辑C或汇编源文件。然后分别由C51编译器编译生成目标文件(.OBJ)。目标文件与库文件一起经LIB51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件。3在软件调试中,使用功能强大且的WAVE6000软件进行软件编译与调试,使用MicrocontrollerISPSoftware及其配套的单片机对程序进行烧录。主要程序功能/*********************第一部分管脚声明
6、*********************/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{
7、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;时右电机后退voidpwm_out_left(void)//左电机调速,调节push_val_left的值改变电机转速,占空比{if(Left_stop){if(
8、pwm_val_left<=push_val_left)Left_pwm=1;elseLeft_pwm=0;
此文档下载收益归作者所有