已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自动循迹小车电子与信息工程系电子实训课题: 基于stc89c52rc和tcrt5000光电 传感器的自动循迹小车设计 专 业: 班 级: 学 号: 姓 名: 指导老师: 完成日期: 16目 录目 录1摘 要:11.任务及要求21.1任务22.系统设计方案22.1小车循迹原理22.2控制系统总体设计23.系统方案33.1 寻迹传感器模块33.1.1光电传感器tcrt5000简介33.1.2比较器lm324简介33.1.3具体电路43.1.4传感器安装43.2控制器模块53.3电源模块63.4电机及驱动模块63.4.1电机63.4.2驱动74.软件设计84.1 pwm控制84.2 总体软件流程图84.3小车循迹流程图94.4中断程序流程图104.5单片机测序115参考资料16摘要 本设计是基于stc89c52单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以 stc89s52 单片机为系统控制处理器;采用tcrt5000光电传感器获取赛道的信息,并通过驱动控制电路来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。1.任务及要求1.1任务 设计一个基于直流电机的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图1-1所示。检测(黑线)驱动电机软件控制控制小车图1-1 系统方案方框图2.系统设计方案2.1小车循迹原理这里的循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道路”。通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。 2.2控制系统总体设计自动循迹小车控制系统由主控制电路模块、稳压电源模块、红外检测模块、电机及驱动模块等部分组成,控制系统的结构框图如图2-1 所示。稳压电源模块主控芯片at89c51l298减速电机光电传感器电压比较器图2-1控制系统的结构框图 3.系统方案3.1 寻迹传感器模块我们采用tcrt5000作为红外检测传感器。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平,指示二极管被点亮。判断有无黑线我们用的一块比较器lm324, 比较基准电压由30k的变阻器调节,各个接收管的参数都不一致,每个传感器的比较基准电压也不尽相同,我们为每个传感器配备了一个变阻器。3.1.1红外传感器tcrt5000简介tcrt5000传感器的工作原理与一般的红外传感器一样,一传一感.tcrt5000具有一个红外发射管和一个红外接收管。通过发射红外信号,看接收信号变化判断检测物体状态的变化。a、k之间接发光二极管,c、e之间接光敏三极管(二者在电路中均正接,但要串联一定阻值的电阻) 3.1.2比较器lm324简介lm324为四运放集成电路,采用14脚双列直插塑料封装。内部有四个运算放大器,有相位补偿电路。电路功耗很小,工作电压范围宽,可用正电源330v,或正负双电源15v15v工作。在黑线检测电路中用来确定红外接收信号电平的高低,以电平高低判定黑线有无。在电路中,lm324的一个输入端需接滑动变阻器,通过改变滑动变阻器的阻值来提供合适的比较电压。 图 3-3 lm324内部电路 图 3-4 集成运放的管脚图3.1.3具体电路通过tcrt5000检测黑线,输出接收到的信号给lm324 ,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。图3-5 传感器模块电路图3.1.4传感器安装 在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设4个红外探测头,进行两级方向纠正控制,提高其循迹的可靠性。这4个红外探头的具体位置如图3-6所示。 图3-6 传感器安装图图中循迹传感器全部在一条直线上。其中x1与y1为第一级方向控制传感器,x2与y2为第二级方向控制传感器,并且黑线同一边的两个传感器之间的宽度不得大于黑线的宽度。小车前进时,始终保持(如图3-6中所示的行走轨迹黑线)在x1和y1这两个第一级传感器之间,当小车偏离黑线时,第一级传感器就能检测到黑线,把检测的信号送给小车的处理、控制系统,控制系统发出信号对小车轨迹予以纠正。若小车回到了轨道上,即4个探测器都只检测到白纸,则小车会继续行走;若小车由于惯性过大依旧偏离轨道,越出了第一级两个探测器的探测范围,这时第二级探测器动作,再次对小车的运动进行纠正,使之回到正确轨道上去。可以看出,第二级方向探测器实际是第一级的后备保护,从而提高了小车循迹的可靠性。 3.2控制器模块stc89c52是stc公司生产的一种低功耗、高性能cmos8位微控制器,具有 8k 在系统可编程flash存储器。具有以下标准功能: 8k字节flash,512字节ram, 32 位i/o 口线,看门狗定时器,内置4kb eeprom,max810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。图3-7 时钟电路和复位电路3.3电源模块采用7805和7812作为电路的驱动电源,电路图如下: 3.4电机及驱动模块3.4.1电机 电机采用直流减速电机,直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。可选用减速比为1:74 的直流电机,减速后电机的转速为100r/min。若车轮直径为6cm,则小车的最大速度可以达到v=2rv=2*3.14*0.03*100/60=0.314m/s能够较好的满足系统的要求。3.4.2驱动驱动模块采用专用芯片l298n 作为电机驱动芯片,l298n 是一个具有高电压大电流的全桥驱动芯片,其响应频率高,一片l298n可以分别控制两个直流电机。以下为l298n的引脚图和输入输出关系表。 图3-9 l298n外部引脚 表2 l298n输入输出关系驱动电路的设计如图3-10 所示:图3-10 l298n电机驱动电路4.软件设计4.1 pwm控制本系统采用pwm来调节直流电机的速度。pwm是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。pwm可以应用在许多方面,如电机调速、温度控制、压力控制等。在pwm驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,pwm又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。4.2 总体软件流程图小车进入寻迹模式后,即开始不停地扫描与探测器连接的单片i/o 口,一旦检测到某个i/o 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机从而纠正小车的状态。软件的主程序流程图如图4-1所示:系统初始化任务计数器归零是否完成全部任务?循迹子函数是否完成本次任务?结束开始nyny图4-1主程序流程图4.3小车循迹流程图小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机i/o口,一旦检测到某个i/o口有信号,即进入判断处理程序,先确定4个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。循迹流程图如图4-2所示图4-2循迹流程图启动循迹模式探测黑线是否检测到黑线判断处理程序向左转turn_left2向左转turn_left1向右转turn_right1向右转turn_lright2继续前进ny由于第二级方向控制为第一级的后备,则两个等级间的转向力度必须相互配合。第二级通常是在超出第一级的控制范围的情况下发生作用,它也是最后一层保护,所以它必须要保证小车回到正确轨迹上来,则通常使第二级转向力度大于第一级,即turn_left2 turn_left1,turn_right2 turn_right1 (其中turn_left2,turn_left1, turn_right2 , turn_right1为小车转向力度,其大小通过改变单片机输出的占空比的大小来改变),具体数值在实地实验中得到。4.4中断程序流程图这里利用的是51单片机的t0定时计数器,从而让单片机p0口的p0.4和p0.5引脚输出占空比不同的方波, 然后经驱动芯片放大后控制直流电机。定时计数器若干时间(比如0.1ms)比如中断一次, 就使p0.4或p0.5产生一个高电平或低电平。中断程序流程图如图4-3所示定时器赋初值技术变量赋值t=0计数值t占空比?p0.4和p0.5输出高电平p0.4和p0.5输出低电平计数变量t加1开始结束yn图4-3中断程序流程图4.5单片机测序/*硬件连接p1_6 接驱动模块ena使能端,输入pwm信号调节速度p1_7 接驱动模块enb使能端,输入pwm信号调节速度p3_4 p3_5 接in1 in2 当 p3_4=1,p3_5=0; 时左电机正转 驱动蓝色输出端out1 out2接左电机 p3_4 p3_5 接in1 in2 当 p3_4=0,p3_5=1; 时左电机反转 p3_6 p3_7 接in3 in4 当 p3_6=1,p3_7=0; 时右电机正转 驱动蓝色输出端out3 out4接右电机p3_6 p3_7 接in3 in4 当 p3_6=0,p3_7=1; 时右电机反转p1_0接四路寻迹模块接口第一路输出信号即中控板上面标记为out1p1_1接四路寻迹模块接口第二路输出信号即中控板上面标记为out2p1_2接四路寻迹模块接口第三路输出信号即中控板上面标记为out3p1_3接四路寻迹模块接口第四路输出信号即中控板上面标记为out4 四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1 四路寻迹传感器电源+5v gnd 取自于单片机板靠近液晶调节对比度的电源输出接口 关于单片机电源:本店驱动模块内带ldo稳压芯片,当电池输入最低的电压6v时候可以输出稳定的5v 分别在针脚标+5 与gnd 。这个电源可以作为单片机系统的供电电源。*/#include#define left_moto_pwm p1_6 /接驱动模块ena使能端,输入pwm信号调节速度#define right_moto_pwm p1_7 /接驱动模块enb #define left_1_led p1_0 /四路寻迹模块接口第一路#define left_2_led p1_1 /四路寻迹模块接口第二路 #define right_1_led p1_2 /四路寻迹模块接口第三路#define right_2_led p1_3 /四路寻迹模块接口第四路#define left_moto_go p3_4=0,p3_5=1; /p3_4 p3_5 接in1 in2 当 p3_4=0,p3_5=1; 时左电机前进#define left_moto_back p3_4=1,p3_5=0; /p3_4 p3_5 接in1 in2 当 p3_4=1,p3_5=0; 时左电机后退 #define left_moto_stp p3_4=1,p3_5=1; /p3_4 p3_5 接in1 in2 当 p3_4=1,p3_5=1; 时左电机停转 #define right_moto_go p3_6=0,p3_7=1; /p3_6 p3_7 接in1 in2 当 p3_6=0,p3_7=1; 时右电机前转#define right_moto_back p3_6=1,p3_7=0; /p3_6 p3_7 接in1 in2 当 p3_6=1,p3_7=0; 时右电机后退 #define right_moto_stp p3_6=1,p3_7=1; /p3_6 p3_7 接in1 in2 当 p3_6=1,p3_7=0; 时右电机停转 unsigned char pwm_val_left =0;/变量定义unsigned char push_val_left =0;/ 左电机占空比n/10unsigned char pwm_val_right =0;unsigned char push_val_right=0;/ 右电机占空比n/10bit right_moto_stop=1;bit left_moto_stop =1;unsigned int time=0;/*/void delay(unsigned int k) /延时函数 unsigned int x,y; for(x=0;xk;x+) for(y=0;y2000;y+);/*/ void run(void)/前进函数 push_val_left =4; /pwm 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度 push_val_right =4; /pwm 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度 left_moto_go ; /左电机前进 right_moto_go ; /右电机前进/*/ void left(void)/左转函数 push_val_left =3; /pwm 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度 push_val_right =3; /pwm 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度 right_moto_go;/右电机继续 left_moto_stp; /左电机停走 /*/ void right(void)/右转函数 push_val_left =3; /pwm 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度 push_val_right =3; /pwm 调节参数1-10 1为最慢,10是最快 改这个值可以改变其速度 right_moto_stp;/右电机停走 left_moto_go;/左电机继续 /*/* pwm调制电机转速 */*/* 左电机调速 */*调节push_val_left的值改变电机转速,占空比 */void pwm_out_left_moto(void) if(left_moto_stop) if(pwm_val_left=10)pwm_val_left=0; else left_moto_pwm=0;/*/* 右电机调速 */ void pwm_out_right_moto(void) if(right_moto_stop) if(pwm_val_right=10)pwm_val_right=0; else right_moto_pwm=0;/*/*timer0中断服务子函数产生pwm信号*/ void timer0()interr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江省海宁市高二生物下册期末考试测试卷及参考答案(培优B卷)
- 2026年辽宁省新民市高二生物下册期末考试模拟卷附答案(研优卷)
- 2026年湖南省湘乡市高二生物下册期末考试考试卷带答案(突破训练)
- 2025年浙江省东阳市高二生物下册期末考试模拟卷附完整答案【全优】
- 2026年辽宁省调兵山市高二生物下册期末考试模拟卷【典型题】附答案
- 2025年江西省高安市高二生物下册期末考试模拟卷及完整答案(夺冠)
- 2026年福建省长乐市高二生物下册期末考试测试卷附参考答案(突破训练)
- 2025年浙江省临海市高二生物下册期末考试测试卷含完整答案【有一套】
- 2026年湖南省湘乡市高二生物下册期末考试模拟卷附参考答案【综合题】
- 2026年湖南省武冈市高二生物下册期末考试模拟卷及完整答案【必刷】
- 园区水电节能管理办法
- 职业危害因素培训课件
- 仓库物品报废情况说明-模板
- 金融机构合规管理办法解读
- 大提琴培训教学课程设计
- 【MOOC】电工电子学-浙江大学 中国大学慕课MOOC答案
- 保险基础知识简读本(2024版)
- 食品小作坊食品安全管理制度
- 2022年江苏省常州市强基计划选拔数学试卷
- 2024年重庆市初中学业水平考试生物试卷试题真题(含答案详解)
- 电力安全工作规程题库-信息部分
评论
0/150
提交评论