智能循迹小车实验报告【【摘要】:^p 】:本设计主要有单片机模块、传感器模块、电机驱动模块以及电模块组成,小车具有自主寻迹得功能本次设计采用 STC 公司得 89C52 单片机作为控制芯片,传感器模块采用红外光电对管与比拟器实现,可以轻松识别黑白两色路面,同时具有抗环境干扰才能,电机模块由 L298N 芯片与两个直流电机构成,组成了智能车得动力系统,电采用 7、2V 得直流电池,经过系统组装,从而实现了小车得自动循迹得功能.【【关键词】:^p 】:智能小车STC89C52 单片机L298N红外光对管 1 1 绪论随着科学技术得开展,机器人得设计越来越精细,功能越来越复杂,智能小车作为其得一个分支,也在不断开展.在近几年得电子设计大赛中,关于小车得智能化功能得实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计得道路自行寻迹2 2 设计任务与要求采用 MCS-51单片机为控制芯片〔也可采用其她得芯片〕,红外对管为识别器件、步进电机为行进部件,设计出一个可以识别以白底为道路色,宽度 10mm左右得黑色胶带制作得不规那么得封闭曲线为引导轨迹并能沿该轨迹行进得智能寻迹机器小车。
3 3 方案设计与方案选择3.1 硬件局部可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电模块3.1.1 单片机模块为小车运行得核心部件,起控制小车得所有运行状态得作用由于以前自己开发板使用得就是ATMEL 公司得 STC89C52,所以让然选择这个芯片作为控制核心部件STC89C52 就是一种低损耗、高性能、CMOS 八位微处理器,片内有 4k字节得可重复编程、快速擦除快速写入程序得存储器,能重复写入/擦除 1000次,数据保存时间为十年.其程序与数据存储就是分开得.3.1.2 传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息阻值经过比拟器输出上下电平进展分析^p ,但就是光照影响很大,不能稳定工作方案二:使用光电传感器来采集路面信息使用红外光电对管,其构造简明,实现方便,本钱低廉,没有复杂得图像处理工作,因此反响灵敏,响应时间少但也存在缺乏,它能获获得信息就是不完全得,容易受很多扰动(如背景光,高度等)得影响,抗干扰才能较差方案三:使用 CCD 传感器来采集路面信息使用 CCD 可以获取大量得图像信息,掌握全面得途径信息,抗干扰才能强,为以后功能得扩展提供方便。
但使用CCD 需要大量得图像处理工作,进展大量数据得存储与计算,因此电路复杂,实现起来工作量大方案四:使用光电对管采集路面信息RPR220构造紧凑,体积小,调整电路简单工作性能稳定可见方案四最适宜,但仅从此工程考虑,方案二本钱低,也能完成设计,应选用方案二.3.1.3 电机控制模块3 3 、1 1 、3 3 、1 1 电机得选择 方案一:采用步进电机,其转过得角度可以准确定位,可实现小车行进过程得准确定位.但步进电机得输出力矩低,随转速得升高而降低,且转速越快下降得越快方案二:采用直流电机,其转动力矩大,体积小,重量轻,装配简单,操作方便速度得调节可以改变电压也可以调节 PWM基于以上,我们选择了方案二,使用直流电机作为驱动电机3 、1、3 3 、2电机得驱动 采用专用芯片 L298N 作为电机驱动芯片,其操作方便,稳定性好,性能优良.一片L298N 就可以分别控制两个直流电机3.1.4 电模块给整个系统稳定供电以保持其正常工作,包括7、2V得电以及转5V 局部,其中 7、2V 得就是给电机与其驱动供电,5V 得用来驱动单片机及其她芯片以上单元连接如下列图所示:3.2 软件局部3、2、1 1 程序流程图此系统采用 89C52 单片机,再根据硬件连接,通过相应得软件来完成对信号得采集与数据得分析^p ,再控制小车得运行状态,以下为主程序流程图:3 3 、2 2 、2 2 程序设计思 路3 3 、2 2 、2 2 、1 1 寻迹模块程序 通过传感器获得路面信息然后反响给单片机,再通过单片机来实现相应得功能。
3 3 、2、2 2 、2 电机驱动模块程序 控制两个直流电机,实现前进、后退、前左转、前右转、停车等功能.4 4 各局部电路得作用及电路工作原理分析^p 4.1 信号采集模块4.1.1 TC RT T 50 00 构造与工作原理TCRT5000〔L〕具有紧凑得构造发光灯与检测器安排在同一方向上,利用红外光谱反射对象存在另一个对象上,操作得波长大约就是 950 毫米探测器由光电晶体三极管组成得,它由高发射功率红外光电二极管与高度灵敏光电晶体管组成通过测试,其检测间隔 在 2mm—10mmTCRT5000 得发射管与接收管就是一起封装在矩形塑料壳中,为了使检测更加准确,我们用了 5 只 TCRT5000检测黑线,实物见图4—14.1.2 信号采集电路图及原理小车在白色地面行驶时,红外发射管发出得红外信号被反射,接收管收到信号后,输出端为低电平,经过比拟器比拟后输出为低电平而当红外信号遇到黑色导轨时,红外信号被吸收,接收管不能接收信号,输出端为高电平,经过比拟器比拟后输出高电平单片机通过采集每个比拟器得输出端电压,便可以检测出黑线得相对位置得位置,从而控制小车得行驶方向4.2 信息处理模块4.2.1 原理检测到白色路面得红外接收头处理后送出得就是低电平,而检测到黑色道路得检测头送出得就是高电平,由此可根据这 5 个红外接收头得上下电平判断道路情况而调整小车前进方向。
详细情况有如下几种:a检测到11111 或 00000 小车应该停顿.b检测到10000 或 01000 或 11000 说明道路向左偏,小车向左转.c检测到00001 或 00010 或 00011 说明道路向右偏,小车向左转d检测到__1_x(_ 不全为 1〕说明线路就是直得,小车直走4.3 电机驱动模块4、3 3 、1 1 直流电机给两个电刷 A 与 B 加上直流电,如上图(a〕所示,那么有直流电流从电刷 A 流入,经过线圈 abcd,从电刷 B 流出,根据电磁力定律,载流导体 ab与 cd收到电磁力得作用,其方向可由左手定那么断定,两段导体受到得力形成了一个转矩,使得转子逆时针转动.假如转子转到如上图〔b〕所示得位置,电刷 A 与换向片2接触,电刷 B 与换向片 1 接触,直流电流从电刷 A 流入,圈中得流动方向就是 dcba,从电刷 B 流出.此时载流导体 ab 与 cd受到电磁力得作用方向同样可由左手定那么断定,它们产生得转矩仍然使得转子逆时针转动这就就是直流电动机得工作原理外加得电就是直流得,但由于电刷与换向片得作用,圈中流过得电流就是交流得,其产生得转矩得方向却就是不变得。
实用中得直流电动机转子上得绕组也不就是由一个线圈构成,同样就是由多个线圈连接而成,以减少电动机电磁转矩得波动,绕组形式同发电机4、3 3 、2 2 电路图我们采用成品L298N 电机驱动模块,采用光电耦合器件隔离单片机与L298N得控制电路,工艺精度高,性能可靠L298N 模块内部通过 H 桥电路实现直流电机得正转,反转,其原理如下:如图 4-3 所示,全桥式驱动电路得 4 只开关管都工作在斩波状态,S1、S2为一组,S3、S4 为另一组,两组得状态互补,一组导通那么 另一组必须关断.当S1、S2 导通时,S3、S4 关断,电机两端加正向电压,可以实 现电机得正转或反转制动;当 S3、S4 导 通时,S1、S2 关断,电机两端为反向电 压,电机反转或正转制动桥驱动电路 4 4 、3 3 、3原理L298N就是 ST 公司消费得一种高电压、大电流电机驱动芯片该芯片采用 15 脚封装主要特点就是:工作电压高,最高工作电压可达 46V;输出电流大,瞬间峰值电流可达 3A,持续工作电流为2A;额定功率25W内含两个 H 桥得高电压大电流全桥式驱动器,可以用来驱动直流电动机与步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响得情况下允许或制止器件工作有一个逻辑电输入端,使内部逻辑电路局部在低电压下工作;可以外接检测电阻,将变化量反响给控制电路。
使用 L298N 芯片驱动电机,该芯片可以驱动两台直流电机5 5 系统调试5 5 、1 1 硬件局部焊接完成后,首先进展得调试就是用数字万用表测量各个电路就是否焊接正常,就是否有虚焊漏焊等现象得出现,以及各个电容就是否就是正常得未被击穿状态、电阻得阻值就是否与设计得原理图上得一致.接通电,用数字万用表测量当有+5V 得各引脚就是否有+5V 得电压,测量电路中就是否出现了不该有得短路现象接入光电传感器模块,使各个光电检测器得光电对管靠近白纸,观察对应得发光二极管就是否发光,不发光表示正常然后再使各个光电对管靠近黑线,观察对应得发光二级管就是否发光,发光表示正常.5、2 2 软件局部我们先测试了小车得前进,停顿,左转与右转组装信号采集模块后,实现小车得自动循迹功能.详细实现程序见附录一6 6 总结实验结果如符合实验要求,小车按照黑胶布轨迹前进,并可以及时正确显示小车得行进状态以及行进间隔 具表达象如下:左边传感器检测到黑线,小车左转; 右边传感器检测到黑线,小车右转; 中间传感器检测到黑线,小车直行从而就可以完成对黑胶布得循迹功能7 7 【【参考文献】:^p 】:[1]电子信息专业实验教程赵刚 李佐儒四川大学出版社 [2]单片机C语言教程郭天祥电子工业出版社 [3]模拟电子技术童诗白清华大学出版社 附录一程序:#include〈reg52、h> sbit DJ_left_s = P1^0; //直流电机控制 sbit DJ_left_n = P11; sbit DJ_right_s = P12; sbit DJ_right_n = P13; //左转函数 void Turn_right〔〕{DJ_left_s= 0;;1 =n_tfel_JDﻩ DJ_right_s= 1;;0 =n_thgir_JDﻩ} //右转函数 void Turn_left〔〕{DJ_left_s= 1;DJ_left_n= 0;;0 =s_thgir_JDﻩ ;1 =n_thgir_JDﻩ} //前进函数 void Go_ahead {;1 =s_tfel_JDﻩ DJ_left_n= 0;DJ_right_s= 1;DJ_right_n= 0; } //停顿函数 void S(〕{DJ_left_s= 0;DJ_left_n= 0;DJ_right_s= 0;;0 =n_thgir_JDﻩ} //循迹函数 void _unji〔unsigned int m) {ﻩ if〔m==0_7c〕{;)〔thgir_nruTﻩ;nruterﻩﻩ}ﻩ )01_0&m〔fiﻩﻩ{ﻩ Go_ahead〔);ﻩ;nruterﻩ ﻩ }ﻩﻩif〔m&0x0c)ﻩ {;〕〔thgir_nruTﻩﻩﻩ return;}ﻩ if〔m&0x60)ﻩ { ﻩ;〕(tfel_nruTﻩ ﻩreturn;ﻩ } } //主函数 void main〔〕{while〔1){ ﻩ _unji〔P2&0x7c);} ﻩ} 附录二实物图:文章语言生动,可读性强。
实在是一篇高水准的文章!【【摘要】:^p 】:本设计主要有单片机模块、传感器模块、电机驱动模块以及电模块组成,小车具有自主寻迹的功能本次设计采用STC公司的89C52单片机作为控制芯片,传感器模块采用红外光电对管和比拟器实现,可以轻松识别黑白两色路面,同时具有抗环境干扰才能,电机模块由L298N芯片和两个直流电机构成,组成了智能车的动力系统,电采用7.2V的直流电池,经过系统组装,从而实现了小车的自动循迹的功能 【【关键词】:^p 】: 智能小车单片机红外光对管1 STC89C52 L298N 1 绪论随着科学技术的开展,机器人的设计越来越精细,功能越来越复杂,智能小车作为其的一个分支,也在不断开展在近几年的电子设计大赛中,关于小车的智能化功能的实现也多种多样,因此本次我们也打算设计一智能小车,使其能自动识别预制道路,按照设计的道路自行寻迹 2 设计任务与要求采用MCS-51单片机为控制芯片〔也可采用其他的芯片〕,红外对管为识别器件、步进电机为行进部件,设计出一个可以识别以白底为道路色,宽度10mm左右的黑色胶带制作的不规那么的封闭曲线为引导轨迹并能沿该轨迹行进的智能寻迹机器小车。
3 方案设计与方案选择3.1 硬件局部可分为四个模块:单片机模块、传感器模块、电机驱动模块以及电模块 3.1.1 单片机模块为小车运行的核心部件,起控制小车的所有运行状态的作用由于以前自己开发板使用的是ATMEL公司的STC89C52,所以让然选择这个芯片作为控制核心部件STC89C52是一种低损耗、高性能、CMOS八位微处理器,片内有4k字节的可重复编程、快速擦除快速写入程序的存储器,能重复写入/擦除1000次,数据保存时间为十年其程序和数据存储是分开的3.1.2 传感器模块方案一:使用光敏电阻组成光敏探测器采集路面信息阻值经过比拟器输出上下电平进展分析^p ,但是光照影响很大,不能稳定工作方案二:使用光电传感器来采集路面信息使用红外光电对管,其构造简明,实现方便,本钱低廉,没有复杂的图像处理工作,因此反响灵敏,响应时间少但也存在缺乏,它能获取的信息是不完全的,容易受很多扰动〔如背景光,高度等〕的影响,抗干扰才能较差方案三:使用CCD传感器来采集路面信息使用CCD可以获取大量的图像信息,掌握全面的途径信息,抗干扰才能强,为以后功能的扩展提供方便但使用CCD需要大量的图像处理工作,进展大量数据的存储和计算,因此电路复杂,实现起来工作量大。
方案四:使用光电对管采集路面信息RPR220构造紧凑,体积小,调整电路简单工作性能稳定可见方案四最适宜,但仅从此工程考虑,方案二本钱低,也能完成设计,应选用方案二2 3.1.3 电机控制模块 3.1.3.1电机的选择方案一:采用步进电机,其转过的角度可以准确定位,可实现小车行进过程的准确定位但步进电机的输出力矩低,随转速的升高而降低,且转速越快下降得越快方案二:采用直流电机,其转动力矩大,体积小,重量轻,装配简单,操作方便速度的调节可以改变电压也可以调节PWM基于以上,我们选择了方案二,使用直流电机作为驱动电机 3.1.3.2电机的驱动采用专用芯片L298N作为电机驱动芯片,其操作方便,稳定性好,性能优良一片L298N就可以分别控制两个直流电机3.1.4 电模块给整个系统稳定供电以保持其正常工作,包括7.2V的电以及转5V局部,其中7.2V的是给电机和其驱动供电,5V的用来驱动单片机及其他芯片 以上单元连接如下列图所示:3 3.2 软件局部3.2.1程序流程图此系统采用89C52单片机,再根据硬件连接,通过相应的软件来完成对信号的采集和数据的分析^p ,再控制小车的运行状态,以下为主程序流程图:3.2.2程序设计思路 3.2.2.1寻迹模块程序通过传感器获得路面信息然后反响给单片机,再通过单片机来实现相应的功能。
3.2.2.2电机驱动模块程序控制两个直流电机,实现前进、后退、前左转、前右转、停车等功能 4 4 各局部电路的作用及电路工作原理分析^p 4.1 信号采集模块4.1.1 TCRT500构造与工作原理TCRT5000(L)具有紧凑的构造发光灯和检测器安排在同一方向上,利用红外光谱反射对象存在另一个对象上,操作的波长大约是950毫米探测器由光电晶体三极管组成的,它由高发射功率红外光电二极管和高度灵敏光电晶体管组成通过测试,其检测间隔 在2mm-10mmTCRT5000的发射管和接收管是一起封装在矩形塑料壳中,为了使检测更加准确,我们用了5只TCRT5000检测黑线,实物见图4-14.1.2 信号采集电路图及原理小车在白色地面行驶时,红外发射管发出的红外信号被反射,接收管收到信号后,输出端为低电平,经过比拟器比拟后输出为低电平而当红外信号遇到黑色导轨时,红外信号被吸收,接收管不能接收信号,输出端为高电平,经过比拟器比拟后输出高电平单片机通过采集每个比拟器的输出端电压,便可以检测出黑线的相对位置的位置,从而控制小车的行驶方向5 4.2 信息处理模块4.2.1 原理检测到白色路面的红外接收头处理后送出的是低电平,而检测到黑色道路的检测头送出的是高电平,由此可根据这5个红外接收头的上下电平判断道路情况而调整小车前进方向。
详细情况有如下几种: a 检测到1 1 1 1 1 或0 0 0 0 0小车应该停顿b 检测到1 0 0 0 0 或0 1 0 0 0 或1 1 0 0 0 说明道路向左偏,小车向左转c 检测到0 0 0 0 1 或0 0 0 1 0 或0 0 0 1 1说明道路向右偏,小车向左转d 检测到_ _ 1 _ _〔_不全为1〕 说明线路是直的,小车直走 6 4.3 电机驱动模块4.3.1直流电机给两个电刷A和B加上直流电,如上图〔a〕所示,那么有直流电流从电刷 A 流入,经过线圈abcd,从电刷 B 流出,根据电磁力定律,载流导体ab和cd收到电磁力的作用,其方向可由左手定那么断定,两段导体受到的力形成了一个转矩,使得转子逆时针转动假如转子转到如上图〔b〕所示的位置,电刷 A 和换向片2接触,电刷 B 和换向片1接触,直流电流从电刷 A 流入,圈中的流动方向是dcba,从电刷 B 流出此时载流导体ab和cd受到电磁力的作用方向同样可由左手定那么断定,它们产生的转矩仍然使得转子逆时针转动这就是直流电动机的工作原理。
外加的电是直流的,但由于电刷和换向片的作用,圈中流过的电流是交流的,其产生的转矩的方向却是不变的实用中的直流电动机转子上的绕组也不是由一个线圈构成,同样是由多个线圈连接而成,以减少电动机电磁转矩的波动,绕组形式同发电机4.3.2电路图我们采用成品L298N电机驱动模块,采用光电耦合器件隔离单片机与L298N的控制电路,工艺精度高,性能可靠L298N模块内部通过H桥电路实现直流电机的正转,反转,其原理如下:如图4-3所示,全桥式驱动电路的4只开关管都工作在斩波状态,S1、S2为一组,S3、S4 为另一组,两组的状态互补,一组导通那么 另一组必须关断当S1、S2导通时,S3、S4关断,电机两端加正向电压,可以实 现电机的正转或反转制动;当S3、S4导 通时,S1、S2关断,电机两端为反向电 压,电机反转或正转制动桥驱动电路7 4.3.3原理L298N是ST公司消费的一种高电压、大电流电机驱动芯片该芯片采用15脚封装主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或制止器件工作有一个逻辑电输入端,使内部逻辑电路局部在低电压下工作;可以外接检测电阻,将变化量反响给控制电路。
使用L298N芯片驱动电机,该芯片可以驱动两台直流电机8 5 系统调试5.1硬件局部焊接完成后,首先进展的调试是用数字万用表测量各个电路是否焊接正常,是否有虚焊漏焊等现象的出现,以及各个电容是否是正常的未被击穿状态、电阻的阻值是否与设计的原理图上的一致接通电,用数字万用表测量当有+5V的各引脚是否有+5V的电压,测量电路中是否出现了不该有的短路现象接入光电传感器模块,使各个光电检测器的光电对管靠近白纸,观察对应的发光二极管是否发光,不发光表示正常 然后再使各个光电对管靠近黑线,观察对应的发光二级管是否发光,发光表示正常 5.2软件局部我们先测试了小车的前进,停顿,左转和右转组装信号采集模块后,实现小车的自动循迹功能详细实现程序见附录一6 总结实验结果如符合实验要求,小车按照黑胶布轨迹前进,并可以及时正确显示小车的行进状态以及行进间隔 具表达象如下:左边传感器检测到黑线,小车左转; 右边传感器检测到黑线,小车右转; 中间传感器检测到黑线,小车直行 从而就可以完成对黑胶布的循迹功能 7 【【参考文献】:^p 】:[1]电子信息专业实验教程 赵刚 李佐儒 四川大学出版社 [2]单片机C语言教程 郭天祥 电子工业出版社 [3]模拟电子技术 童诗白 清华大学出版社9 附录一 程序:#include sbit DJ_left_s = P10; //直流电机控制 sbit DJ_left_n = P11; sbit DJ_right_s = P12; sbit DJ_right_n = P13; //左转函数void Turn_right { DJ_left_s = 0; DJ_left_n = 1; DJ_right_s = 1; DJ_right_n = 0; } //右转函数void Turn_left { DJ_left_s = 1; DJ_left_n = 0; DJ_right_s = 0; DJ_right_n = 1; } //前进函数void Go_ahead { DJ_left_s = 1; DJ_left_n = 0; DJ_right_s = 1; DJ_right_n = 0; } //停顿函数 void S { DJ_left_s = 0; DJ_left_n = 0; DJ_right_s = 0; 10 DJ_right_n = 0; } //循迹函数void _unji(unsigned int m) {if(m==0_7c){Turn_right;return;} if(m&0_10){Go_ahead;return;}if(m&0c){Turn_right;return;}if(m&0_60){Turn_left;return;} } //主函数 void main { while(1) { _unji(P2&0_7c);}} 11 附录二 实物图:12 第 17 页 共 17 页。