循迹小车循迹原理

循迹小车循迹原理
循迹小车循迹原理

循迹小车原理

基于51单片机的小车寻迹系统。该系统采用两组高灵敏度的光电对管,对路 面黑色轨迹进行检测,并利用单片机产生PWM波,控制小车速度。测试结果表 明,该系统能够平稳跟踪给定的路径。

关键词:智能小车;光电对管;寻迹;脉冲宽度调制

在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简 易智能小车题目。笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电 路系统。整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮 电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。

总体方案

整个电路系统分为检测、控制、驱动三个模块。首先利用光电对管对路 面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出 相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框 图如图1所示。

图1 智能小车寻迹系统框图

传感检测单元

小车循迹原理

该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的 反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模 块中利用了简单、应用也比较普遍的检测方法——红外探测法。

红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质 的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时

如果遇到黑线则红外光被吸收, 发生漫发射, 反射光被装在小车上的接收管接收;

则小车上的接收管接收不到信号。

传感器的选择

市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电 路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。ST系列 集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统 中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和 外接电路均较为简单,如图2所示:

图2 ST168检测电路

ST168采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采 用非接触式检测方式。ST168的检测距离很小,一般为8~15毫米,因为8毫 米以下是它的检测盲区,而大于15毫米则很容易受干扰。笔者经过多次测试、 比较,发现 传感器 装在距离检测物表面10毫米时,检测 果最 。

R1制发射二极管的电 ,发射管的电 和发射功率成 比,受其极 输 向电 50mA的 ,用R1=150的电 作为 电 ,Vcc=5V作 为电 电 ,测试发现发射功率 全能 检测 ;可 电 R2可 制接收 电路的电 ,一方面 接收红外管;一方面可 检测电路的灵敏度。因为 传感器输出 到的是模 电 信号, 所以在输出 了比较器, 先 ST168 输出电 2.5V进行比较, 送给单片机处理和控制。

传感器的 装

选择检测方法和传感器件是 定循迹 果的 因 ,而 的 器件 装方法也是循迹电路 的一个 因 。从简单、方便、可靠 度出 发,同时在底盘装设4个红外探测头,进行两方向 控制, 大大 高其 循迹的可靠性,具体 置分 如图3所示。

图3 红外探头的分 图

图中循迹传感器全部在一 线上。其中X1Y1为 一 方向控制传 感器,X2Y2为 二 方向控制传感器,并黑线同一 的两个传感器之 的 度不 大于黑线的 度。小车前进时, 终 (如图3中所示的行 轨迹 黑线)在X1和Y1两个 一 传感器之 ,当小车 离黑线时,一 传感器 能检测到黑线,检测的信号送给小车的处理、控制系统,控制系统发出信号 对小车轨迹 以 。二 方向探测器实 是 一 的后 ,它的 在是 到小车由于 性过大 离轨道,次对小车的运动进行 ,从而

高了小车循迹的可靠性。

循迹小车的设计与制作毕业设计论文

毕业论文声明 本人郑重声明: 1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。本人完全意识到本声明的法律结果由本人承担。 2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。 3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。 4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。 学位论文作者(签名): 年月

关于毕业论文使用授权的声明 本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。本人完全了解大学有关保存,使用毕业论文的规定。同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容: 按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入学校有关数据库和收录到《中国学位论文全文数据库》进行信息服务。在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。 论文作者签名:日期: 指导教师签名:日期: 毕业设计(论文)

基于51单片机智能小车循迹程序

#include #define uchar unsigned char #define uint unsigned int ////电机驱动模块位定义//// sbit M11=P0^0; //左轮 sbit M12=P0^1; sbit M23=P0^2; //右轮 sbit M24=P0^3; sbit ENA=P0^4; //左轮使能PWM输入改变dj1数值控制转速sbit ENB=P0^5; //右轮使能PWM输入改变dj2数值控制转速////占空比变量定义//// unsigned char dj1=0; unsigned char dj2=0; uchar t=0; ////红外对管位定义//// sbit HW1=P1^0; //左前方 sbit HW2=P1^1; //右前方 sbit HW3=P1^2; //左后方 sbit HW4=P1^3; //右后方 ////小车前进//// void qianjin() { M11=1; //左轮 M12=0; // M23=1; //右轮 M24=0; // dj1=50; dj2=50; } ////向左微调//// void turnleft2() { M11=1; M12=0; M23=1; M24=0; dj1=7; //左轮 dj2=50; //右轮 } ////向右微调//// void turnright2() { M11=1; M12=0;

M23=1; M24=0; dj1=50; dj2=7; } ////向左大调//// void left() { M11=0; M12=1; M23=1; M24=0; dj1=7; dj2=80; } ////向右大调//// void right() { M11=1; M12=0; M23=0; M24=1; dj1=80; dj2=7; } ////循迹动作子函数//// void xj() { if(HW1==0&&HW2==0&&HW3==0&&HW4==0) //前进逻辑 { qianjin(); } if(HW1==1&&HW2==0&&HW3==0&&HW4==0) //左右微调 { turnleft2(); } if(HW1==0&&HW2==1&&HW3==0&&HW4==0) { turnright2(); } if(HW1==1&&HW2==0&&HW3==1&&HW4==0) //左右大调 { left(); }

循迹避障小车设计报告材料

项目名称:智能小车 系别:信息工程系 专业:11电气工程及其自动化:亮、占闯、康 指导老师:王蕾

目录 摘要: ............................................................................................ ...3关键词: ............................................................................................ .3 绪论: ............................................................................................ (3) 一、系统设 计 (4) 1.1、任务及要求 (4) 1.2车体方案认证与选择 (4) 二、硬件设计及说 明 (5) 2.1循迹+避障模块 (5) 2.2主控模块 (6) 2.3电机驱动模块 (6) 2.4机械模块 (7) 2.5 电源模块 (7)

三、自动循迹避障小车总体设计 (7) 四、软件设计及说 明 (8) 4.1系统软件流程图 (9) 4.2系统程序 (9) 五、系统测试过 程 (12) 六、总 结 (13) 七、附录:系统元器 件 (13) 摘要 本设计主要有三个模块包括信号检测模块、主控模块、电机驱动模块。信号检测模块采用红外光对管,用以对有无障碍与黑线进行检测。主控电路采用宏晶公司的8051核心的STC89C52单片机为控制芯片。电机驱动模块采用意法半导体的L298N专用电机驱动芯片,单片控制与传统分立元件电路相比,使整个系统有很好的稳定性。信号检测模块将采集到的路况信号传入STC89C52单片机,经单片机处理过后对L298N发出指令进行相应的调整。通过有无光线接收来控制电动小车的转向,从而实现自动循迹避障的功能。 关键词:智能循迹避障小车,STC89C52单片机,L298N驱动芯片,

智能循迹小车

目录 1.第一章绪论 1.1循迹小车的发展现状 1.2 选题意义 1.3本设计的工作 1.3.1设计要求 1.3.2设计思路 2.第二章硬件部分简介 2.1 具体方案论证与设计 2.2 主控芯片的简介 2.2.1 光电反射式传感器(ST178) 2.2.2低功率低失调双比较器LM393 3.第三章光电循迹小车的原理 3.1原理 3.2 传感器电路 3.2.1红外反射式光电传感器原理 3.2.2黑线检测电路

3.3核心控制电路 3.3.1模数转换电路(比较器电路) 3.3.2数字逻辑电路 3.4驱动电路 3.5 拓展功能“防撞” 3.6PCB制板 3.7作品展示 3.8原件清单 4.第四章结论 5.参考文献 6.课程设计心得

绪论 1.1循迹小车发展现状与趋势 智能汽车作为一种智能化的交通工具,体现了车辆工程、人工智能、自动控制、计算机等多个学科领域理论技术的交叉和综合,是未来汽车发展的趋势。寻迹小车可以看作是缩小化的智能汽车,它实现的基本功能是沿着指定轨道自动寻迹行驶。就目前智能小车发展趋势而言:相比价格昂贵、体积大、数据处理复杂

的传感器CCD反射式光电传感器以其价格适中、体积小、数据处理方便等更具有发展优势。 1.2 选题意义 汽车电子迅猛发展,智能车产生和不断探索并服务于人类的趋势将不可阻挡。智能车的研究将会给汽车这个产生了一百多年的交通工具带来巨大的科技变革。人们在行驶汽车时,不再只在乎它的速度和效率,更多是注重驾驶时的安全性,舒适性,环保节能性和智能性等。各国科学家和汽车工作人员以及汽车爱好者都在致力于智能车的研究,研究的成果有很多都已应用于人们的日常生活生产之中,例如在2005年1月美国发射的“勇气”号和“机遇”号火星探测器实质上都是装备先进的智能车辆。因此,研究智能车的实际意义和取得的价值都非常重大。本课题利用传感器识别路径,将赛道信息进行识别处理,利用主控芯片控制小车的行进进而完成循迹。 1.3本设计的工作 1.3.1设计要求 要求:设计并制作一个简易光电智能循迹电动车,其行驶路线示意图如图1-1:(其中粗黑些为光电寻迹线)要求智能循迹小车从起点出发,沿粗黑色引导线到达终点后立即停车但行驶全程行驶时间不能大于90s。

智能循迹小车总体设计方案

智能循迹小车总体设计方案 1.1 整体设计方案 本系统采用简单明了的设计方案。通过高发射功率红外光电二极管和高灵敏度光电晶体管组成的传感器循迹模块黑线路经,然后由AT89S52通过IO口控制L298N驱动模块改变两个直流电机的工作状态,最后实现小车循迹。 1.2系统设计步骤 (1)根据设计要求,确定控制方案; (2)将各个模块进行组装并进行简单调试; (3)画出程序流程图,使用C语言进行编程; (4)将程序烧录到单片机内; (5)进行调试以实现控制功能。 1.2.1系统基本组成 智能循迹小车主要由AT89S52单片机电路、循迹模块、L298N驱动模块、直流电机、小车底板、电源模块等组成。 (1)单片机电路:采用AT89S52芯片作为控制单元。AT89S52单片机具有低成本、高性能、抗干扰能力强、超低功耗、低电磁干扰,并且与传统的8051单片机程序兼容,无需改变硬件,支持在系统编程技术。使用ISP可不用编程器直接在PCB板上烧录程序,修改、调速都方便。 (2)循迹模块:采用脉冲调制反射红外发射接收器作为循迹传感器,调制信号带有交流分量,可减少外界的大量干扰。信号采集部分就相

当于智能循迹小车的眼睛,有它完成黑线识别并产生高、低平信号传送到控制单元,然后单片机生成指令来控制驱动模块来控制两个直流电机的工作状态,来完成自动循迹。 (3)L298N驱动模块:采用L298N作为点击驱动芯片。L298N具有高电压、大电流、响应频率高的全桥驱动芯片,一片L298N可以分别控制两个直流电机,并且带有控制使能端。该电机驱动芯片驱动能力强、操作方便、稳定性好,性能优良。L298N的使能端可以外接电平控制,也可以利用单片机进行软件控制,满足各种复杂电路的需要。另外,L298N的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

循迹小车原理知识讲解

寻迹小车 在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简易智能小车题目。笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电路系统。整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。 总体方案 整个电路系统分为检测、控制、驱动三个模块。首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框图如图1所示。 图1 智能小车寻迹系统框图 传感检测单元 小车循迹原理 该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。 红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。 传感器的选择 市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和外接电路均较为简单,如图2所示: 图2 ST168检测电路 ST168采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式检测方式。ST168的检测距离很小,一般为8~15毫米,因为8毫米以下是它的检测盲区,而大于15毫米则很容易受干扰。笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。 R1限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150的电阻作为限流电阻,Vcc=5V作为电源电压,测试发现发射功率完全能满足检测需要;可变电

小车循迹原理

小车循迹原理 2009-07-11 12:40 1.小车控制及驱动单元的选择 此部分是整个小车的大脑,是整个小车运行的核心部件,起着控制小车所有运行状态的作用。通常选用单片机作为小车的核心控制单元,本文以台湾凌阳公司的SPCE061A单片机为例予以介绍。SPCE061是一款拥有2K RAM、32KFlash、32 个I/O 口,并集成了AD/DA功能强大的16位微处理器,它还拥有丰富的语音处理功能,为小车的功能扩展提供了相当大的空间。只要按照该单片机的要求对其编制程序就可以实现很多不同的功能。 小车驱动电机一般利用现成的玩具小车上的配套直流电机。考虑到小车必须能够前进、倒退、停止,并能灵活转向,在左右两轮各装一个电机分别进行驱动。当左轮电机转速高于右轮电机转速时小车向右转,反之则向左转。为了能控制车轮的转速,可以采取PWM调速法,即由单片机的IOB8、IOB9输出一系列频率固定的方波,再通过功率放大来驱动电机,在单片机中编程改变输出方波的占空比就可以改变加到电机上的平均电压,从而可以改变电机的转速。左右轮两个电机转速的配合就可以实现小车的前进、倒退、转弯等功能。 2.小车循迹的原理 这里的循迹是指小车在白色地板上循黑线行走,通常采取的方法是红外探测法。 红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过15cm。对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。 (1)自制红外探头电路如图1所示,红外光的发送接收选用型号为ST168的对管。当小车在白色地面行驶时,装在车下的红外发射管发射红外线信号,经白色反射后,被接收管接收,一旦接收管接收到信号,那么图中光敏三极管将导通,比较器输出为低电平;当小车行驶到黑色引导线时,红外线信号被黑色吸收后,光敏三极管截止,比较器输出高电平,从而实现了通过红外线检测信号的功能。将检测到的信号送到单片机I/O口,当I/O口检测到的信号为高电平时,表明红外光被地上的黑色引导线吸收了,表明小车处在黑色的引导线上;同理,当I/O口检测到的信号为低电平时,表明小车行驶在白色地面上。此种方法简单,价格便宜,灵敏度可调,但是容易受到周围环境的影响,特别是在图1较强的日光灯下,对检测到的信号有一定的影响。 (2)集成式红外探头可以采用型号为E3F-DS10C4集成断续式光电开关探测器,它具有简单、可靠的工作性能,只要调节探头上的一个旋钮就可以控制探头的灵敏度。该探头输出端只有三根线(电源线、地线、信号线),只要将信号线接在单片机的I/O 口,然后不停地对该I/O口进行扫描检测,当其为高电平时则检测到白纸,当为低电平时则检测到黑线。此种探头还能有效地防止普通光源(如日光灯等)的干扰。其缺点则是体积比较大,占用了小车有限的空间。 3.红外探头的安装 在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设4个红外探测头,进行两级方向纠正控制,提高其循迹的可靠性。这4个红外探头的具体位置如图2所示。图中循迹传感器共安装4个,全部在一条直线上。其中InfraredMR与InfraredML 为第一级方向控制传感器,InfraredSR 与InfraredSL 为第二级方向控制传感器。小车行走时,始终保持黑线(如图2 中所示的行走轨迹黑线)在InfraredMR和InfraredML这两个第一级传感器之间,当小车偏离黑线时,第一级探测器一旦探测到有黑线,单片机就会按照预先编定的程序发送指令给小车的控制系统,控制系统再对小车路径予以纠正。若小车回到了轨道上,即4个探测器都只检测到白纸,则小车会继续行走;若小车由于惯性过大依旧偏离轨道,越出了第一级两个探测器的探测范围,这时第二级动作,再次对小车的运动进行纠正,使之回到正确轨道上去。可以看出,第二级方向探测器实际是第一级的后备保护,从而提高了小车循迹的可靠性。 4.软件控制 其程序控制框图如图3。小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口

小车循迹壁障等流程图

#include #include #define uchar unsigned char #define uint unsigned int sbit en1=P1^0; /* L298的Enable A */ sbit en2=P1^1; /* L298的Enable B */ sbit s1=P1^2; /* L298的Input 1 */ sbit s2=P1^3; /* L298的Input 2 */ sbit s3=P1^4; /* L298的Input 3 */ sbit s4=P1^5; /* L298的Input 4 */ uchar t=0; /* 中断计数器*/ uchar m1=0; /* 电机1速度值*/ uchar m2=0; /* 电机2速度值*/ uchar tmp1,tmp2; /* 电机当前速度值*/ /* 电机控制函数index-电机号(1,2); speed-电机速度(-100—100) */ void motor(uchar index, char speed) { if(speed>=-100 && speed<=100) { if(index==1) /* 电机1的处理*/ { m1=abs(speed); /* 取速度的绝对值*/ if(speed<0) /* 速度值为负则反转*/ { s1=0; s2=1; } else /* 不为负数则正转*/ { s1=1; s2=0; } } if(index==2) /* 电机2的处理*/ { m2=abs(speed); /* 电机2的速度控制*/ if(speed<0) /* 电机2的方向控制*/ { s3=0; s4=1; } else { s3=1; s4=0; } } } } void delay(uint j) /* 简易延时函数*/ { for(j;j>0;j--); } void main() { uchar i; TMOD=0x02; /* 设定T0的工作模式为2 */ TH0=0x9B; /* 装入定时器的初值*/ TL0=0x9B; EA=1; /* 开中断*/ ET0=1; /* 定时器0允许中断*/ TR0=1; /* 启动定时器0 */ while(1) /* 电机实际控制演示*/ { for(i=0;i<=100;i++) /* 正转加速*/ { motor(1,i); motor(2,i); delay(5000); } for(i=100;i>0;i--) /* 正转减速*/ { motor(1,i); motor(2,i); delay(5000); } for(i=0;i<=100;i++) /* 反转加速*/ { motor(1,-i); motor(2,-i); delay(5000); } for(i=100;i>0;i--) /* 反转减速*/ { motor(1,-i); motor(2,-i); delay(5000); } } } void timer0() interrupt 1 /* T0中断服务程序*/ { if(t==0) /* 1个PWM周期完成后才会接受新数值*/ { tmp1=m1; tmp2=m2; } if(t=100) t=0; /* 1个PWM信号由100次中断产生*/ 有两路PWM,希望对你有帮助! #include "reg52.H"#include "MyType.h"//=============L298端口定义===============sbit ENA = P3^6; //左轮驱动使能sbit IN1 = P0^3; //左轮黑线(-)sbit IN2 = P0^4; //左轮红线(+)sbit IN3 = P0^5; //右轮红线(-)sbit IN4 = P0^6; //右轮黑线(+)sbit ENB = P3^7; //右轮驱动使能//=============PWM================#define PWM_COUST 100 //PWM细分等份100uchar MOTO_speed1; //左边电机转速uchar MOTO_speed2; //右边电机转速uchar PWM_abs1; //左边电机取绝对值后占空比uchar PWM_abs2; //左边电机取绝对值后占空比uchar PWM_var1=20; //左边电机直走速度(不同的电机,此参数不同)uchar PWM_var2=20; //右边电机直走速度uchar PWMAnd = 0; //PWM自增变量/******************************************************************名称:motor(char speed1,char speed2);功能:同时调节电机的转速参数:speed1:电机1的PWM 值;speed2:电机2的PWM值speed>0.正转;speed<0.反转(-100~100)调用:extern int abs(int val); 取绝对值返回:/******************************************************************/ void motor(char speed1,char speed2){ //==============左边电机============= if (speed1>0) { IN1 =0;IN2 =1;//正转} else if (speed1<0) { IN1 =1;IN2 =0;//反转} //==============右边电机============= if (speed2>0) { IN3 =1;IN4 =0;//正转} else if (speed2<0) { IN3 =0;IN4 =1;//反转}} /******************************************************************名称:motor_PWM();功能:PWM占空比输出参数:无调用:无返回:无/******************************************************************/void motor_PWM (){ uchar PWM_abs1; uchar PWM_abs2; PWM_abs1=MOTO_speed1; PWM_abs2=MOTO_speed2; if (PWM_abs1>PWMAnd) ENA=1; //左边电机占空比输出

PWM调速+循迹__智能小车程序

//T0产生双路PWM信号,L298N为直流电机调速,接L298N时相应的管脚上最好接上10K 的上拉电阻。 /* 晶振采用12M,产生的PWM的频率约为100Hz */ #include #include #define uchar unsigned char #define uint unsigned int sbit en1=P3^4; /* L298的Enable A */ sbit en2=P3^5; /* L298的Enable B */ sbit s1=P1^0; /* L298的Input 1 */ sbit s2=P1^1; /* L298的Input 2 */ sbit s3=P1^3; /* L298的Input 3 */ sbit s4=P1^2; /* L298的Input 4 */ sbit R=P2^0; sbit C=P2^1; sbit L=P2^2; sbit key=P1^4; uchar t=0; /* 中断计数器*/ uchar m1=0; /* 电机1速度值*/ uchar m2=0; /* 电机2速度值*/ uchar tmp1,tmp2; /* 电机当前速度值*/ /* 电机控制函数index-电机号(1,2); speed-电机速度(0-100) */ void motor(uchar index, char speed) { if(speed<=100) { if(index==1) /* 电机1的处理*/ { m1=abs(speed); /* 取速度的绝对值*/ s1=1; s2=0; } if(index==2) /* 电机2的处理*/ { m2=abs(speed); /* 电机2的速度控制*/ s3=1; s4=0; } } } void Back(void) {

智能小车系统设计(循迹超声波遥控)

<<计算机控制技术综合训练>>任务书

附录: 电信学院课程设计报告要求 1、设计题目; 2、目录; 3、本设计的基本原理; 4、简要说明本设计内容、用途及特点; 5、本设计达到的性能指标; 6、设计方案的选择; 7、写出各部分设计过程、工作原理、元器件选择; 8、绘制图纸(手绘2号图纸); 9、设计参考文献; 10、附录; 11、设计总结体会; 12、设计说明书不得少于10000字。

智能小车运行图 显示速度,距离,超声波探测距离

经过调试,小车完美实现了如下功能 1.小车具有无线遥控功能,小车可完成前进、后退、左转、右转等动作,并且可以正确显示当前的速度及行进位移。 2.小车具有循迹及避障功能,实现了舵机转动下的超声波壁障功能,并且可以正确有序显示小车位移、速度及与前方障碍物距离。 3.与其它组的小车模型配合可以完成交替领跑任务。 4.小车所有模式切换均由遥控器控制。 流程图

硬件原理图

附件一:智能小车系统程序 #include #include sbit AA=P3^0; sbit DD=P3^1; sbit BB=P3^2; sbit CC=P2^2; sbit LCM_RW=P2^4; //定义LCD引脚 sbit LCM_RS=P2^3; #define RX P2_0 #define TX P2_1 #define LCM_E P2_5 #define Sevro_moto_pwm P2_7 //接舵机信号端输入PWM信号调节速度#define LCM_Data P0 #define Busy 0x80 //用于检测LCM状态字中的Busy标识 #define Left_1_led P3_7 //P3_7接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1 #define XUNJI_left_led P3_6 //P3_6接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2 #define XUNJI_right_led P3_5 //P3_5接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3 #define Right_2_led P3_4 //P3_4接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4 #define Left_moto_go {P1_4=1,P1_5=0,P1_6=1,P1_7=0;} //左边两个电机向前走 #define Left_moto_back {P1_4=0,P1_5=1,P1_6=0,P1_7=1;} //左边两个电机向后转 #define Left_moto_Stop {P1_4=0,P1_5=0,P1_6=0,P1_7=0;} //左边两个电机停转 #define Right_moto_go {P1_0=1,P1_1=0,P1_2=1,P1_3=0;} //右边两个电机向前走 #define Right_moto_back {P1_0=0,P1_1=1,P1_2=0,P1_3=1;} //右边两个电机向后走 #define Right_moto_Stop {P1_0=0,P1_1=0,P1_2=0,P1_3=0;} //右边两个电机停转 void LCMInit(void); //LCD初始化函数 void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); //LCD显示一个字符函数 void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);//LCD显示一个字符串函数 void Delay5Ms(void); //延时5毫秒函数

智能循迹小车实训报告

实训报告课程名称:单片机实训 完成日期:2014 年 7 月 10 日

任务书 实训(习)题目: 智能小车的功能设计与实现 实训(习)目的: (1)、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课程需要。锻炼学生查阅有关手册、图标及文献资料的自学能力,提高组成系统、编程、调试的动手能力; (3)对课程的方案分析、选择、比较、熟悉单片机系统开发、研制的过程,软硬件设计的方法、内容及步骤。 实训(习)内容: 安装智能小车及相关功能设计、调试 实训(习)要求: 1. 本实训要求由一个团队完成,团队人员不超过8个人。 2. 通过所学知识并利用智能小车、计算机、 keil软件、烧写软件等完成实训项目,并拟定实训报告。 3. 能正确组装和调试智能小车。 4. 实训完成后,根据实训内容撰写实训报告书一份。 实训报告应包括的主要内容(参考) 1 系统硬件组成与工作原理 1.1 控制器与最小系统 1.2 显示模块与按键模块 1.3 报警模块 1.4 电机与驱动模块的工作原理与接口 1.5循迹模块的工作原理与接口 1.6 避障模块的工作原理与接口 2 功能方案及软件设计 2.1 功能设计 2.2 软件设计 (结合某一赛道、障碍设置说明程序设计思路,给出流程图、程序代码) 3功能调试与总结 3.1 功能调试 排版要求:正文小4宋体;段首缩进2字,行间距固定值18磅。内容展开可以

按3级标题形式,如:按1 ……、1.1 ……、1.1.1 形式(如果需要)。每个1级标题另起一页,1级标题三号黑体居中,题序和标题之间空两个空格,不加标点,段前、段后均为1行,固定值22磅。2级标题:四号黑体左起,四号黑体,段前、段后均为12磅。三级标题:小四号黑体左起,段前、段后均为6磅。 图名、表名五号黑体,英文、数字字体为Times New Roman 页边距:上、下、左3厘米,右2厘米,A4纸打印。 1系统硬件组成与工作原理 1.1.1控制器与最小系统 最小系统:要使一块单片机芯片工作起来最简陋的接线方式就是单片机的

智能循迹小车程序代码

/**************************************************************** ************ 硬件连接 P1_4接驱动模块ENA使能端,输入PWM信号调节速度 P1_5接驱动模块ENB使能端,输入PWM信号调节速度 P1_0 P1_1接IN1 IN2 当P1_0=1,P1_1=0; 时左电机正转驱动蓝色输出 端OUT1 OUT2接左电机 P1_0 P1_1接IN1 IN2 当P1_0=0,P1_1=1; 时左电机反转 P1_2 P1_3接IN3 IN4 当P1_2=1,P1_3=0; 时右电机正转驱动蓝色输出 端OUT3 OUT4接右电机 P1_2 P1_3接IN3 IN4 当P1_2=0,P1_3=1; 时右电机反转 P1_0接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1 P1_1接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2 P1_2接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3 P1_3接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4 八路寻迹传感器有信号(白线)为0 没有信号(黑线)为1 ***************************************************************** ***********/ #include #define Right_moto_pwm P1_4 //接驱动模块ENA使能端,输入PWM 信号调节速度 #define Left_moto_pwm P1_5 //接驱动模块ENB使能端,输入PWM 信号调节速度 #define Left_1_led P2_0 //四路寻迹模块接口第一路 #define Left_2_led P2_1 //四路寻迹模块接口第二路 #define Right_1_led P2_2 //四路寻迹模块接口第三路 #define Right_2_led P2_3 //四路寻迹模块接口第四路 #define Left_moto_go {P1_0=0,P1_1=1;} //左电机前进 #define Left_moto_back {P1_0=1,P1_1=0;} //左电机后退 #define Left_moto_stop {P1_0=1,P1_1=1;} //左电机停转 #define Right_moto_go {P1_2=0,P1_3=1;} //右电机前转

智能循迹避障小车设计

摘要 本系统以设计题目的要求为目的,采用80C51单片机为控制核心,利用红外线传感器进行寻线,控制电动小汽车的自动循迹,并再通过光电开关探测障碍,从而控制电机转向,实现进行壁障功能。整个系统的电路结构简单,可靠性能高,实验测试结果满足要求。本文着重叙述了该系统的硬件设计方法、软件设计方法及测试结果分析。小车运行方案,在现有玩具电动车的基础上,加装红外线光电开关模块和红外寻线模块,实现对电动车位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 关键词:80C51单片机、红外线传感器、光电开关、电动小车

Abstract The system requirements of the design project for the purpose of the 80C51 microcontroller for the control of the core,the use of the hunt and infrared sensors,automatic obstacle acoidance control of electric cars,and the photoelectric switch to the barrier function.The electric circuit construction of whole system is simple, the function is dependable. Experiment test result satisfy the request, this text emphasizes introduced the hardware system designs and the result analyse. Car is running the program, under the existing toy electric car, based on the installation of super sonic sensor and infrared sensors, to achieve the location of electric vehicles,operational status of the real-time measurement, and measurement data sent to the microcontroller for processing, then SCM detected according to a variety of data to achieve intelligent control of electric vehicles. Key words: 80C51 single chip computer, infrared sensors, photoelectric switch, the electric car

51单片机循迹小车项目方案报告(完整)

宜宾职业技术学院 《单片机系统设计》 项目设计报告 项目设计题目:智能寻迹小车 系部:电子信息与控制工程系班级:电子XXXX 班组号:第四组 小组成员:XXX 指导教师:XXX 2017年10月10日

目录 一、引言 (3) 二、方案论证 (4) 三、小车车体设计 (7) 四、硬件系统设计 (8) 1、单片机最小系统 (8) 2、循迹电路 (9) 3、电机驱动电路 (9) 五、软件系统设计 (12) 六、系统的制作、仿真与调试 (14) 七、总结 (15)

一、引言 当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车(特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛(ABU ROBCON)、全国大学生“飞思卡尔”杯智能汽车竞赛等众多重要竞赛都能很好的培养大学生对于机电一体化的兴趣与强化机电一体化的相关知识。但很现实的状况是,国内不论是在机械还是电气领域,与国外的差距还是很明显的,所以作为电子专业学生,必须加倍努力,为逐步赶上国外先进水平并超过之而努力。为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计并制作一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以立“智能循迹小车”一题作为尝试。此项设计是在以小为基础,采用AT89C52单片机作为控制核心,实现能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。

循迹小车基本思路

循迹小车基本思路 1)基本车架:两个直流减速电动机;万向轮一个;模板一块; 2)基本模块:7.2V电源一块;输出为5V的稳压模块一个;单片机最小系统主控模块;L298电机驱动;光电传感器4个。 3)黑线循迹。 4)组装车型: 5)L298驱动内部电路: 6)调试程序:另附~。 #include 7)#define uchar unsigned char

8)#define uint unsigned int 9)sbit PWM1=P1^0; //电机使能10)sbit PWM2=P1^1; 11)sbit IN1=P1^2; //电机输入控制12)sbit IN2=P1^3; 13)sbit IN3=P1^4; 14)sbit IN4=P1^5; 15)sbit RP1=P2^0; //传感器管脚声明16)sbit RP2=P2^1; 17)sbit RP3=P2^2; 18)sbit RP4=P2^3; 19)int num1,num2,s1,s2; 20) 21)void init() 22){ 23)TMOD=0x01; 24)TH0=(65536-1000)/256; 25)TL0=(65536-1000)%256; 26)ET0=1; 27)EA=1; 28)TR0=1; 29)}

30)void delay(uint z) 31){ 32)uint x,y; 33)for(x=z;x>0;x--) 34){for(y=110;y>0;y--);} 35)} 36)void forward1()//电机前进37){ 38)IN1=0; 39)IN2=1; 40)} 41)void forward2() 42){ 43)IN3=0; 44)IN4=1; 45)} 46)void back1() //电机后退47){ 48)IN1=1; 49)IN2=0; 50)} 51)void back2()

智能循迹小车设计

智能循迹/避障小车研究 工作报告 一、智能循迹小车程序结构框图 二、Proteus仿真图 三、软件程序设计

一、智能循迹小车程序结构框图 经过几天在网上的查找,对智能循迹/避障小车有了大致的了 解, 一般有三个模块: 1、最基本的小车驱动模块,使用两个二相四线步进电机对小车的两个后轮分别进行驱动,前轮最好用万向轮,能使小车更好地转弯; 2、小车循迹模块,在小车底部有三个并排安装的红外对管,对黑色与白色的反射信号不同,经单片机处理后对小车进行相应处理; 3、避障模块,我写的程序中对于避障模块是用中断来处理的(即安装在小车车头的红外对管检测到有障碍物后,就会向单片机的P3_2口输出一个高电平或是低电平,这时中断程序将对小车进行预先设定好的避障处理),但是在程序结构框图中,我不太会表示中断处理方式,所以就用查询的方式画了。

N Y N Y 二、Proteus 仿真图 我用Proteus 大概地仿真了小车的运行状态。图中的两个二相四线步进电机就代表小车的左右轮(假定步进电机顺时针转动方向为小车前进方向),网上有很多种驱动芯片,在仿真时我只使用L298N 芯

片来驱动步进电机。用三个单刀双制开关模拟用于小车循迹的三个红外对管的输出信号,经一个与门与三极管开关连接到P3_3口,中断程序对P1_0, P1_1, P1_2三个口进行检测,并做出相应处理。同时因为避障模块的优先级高于循迹模块,所以将外部中断0用于避障,外部中断1用于循迹。P1_3口则用于检测小车是否到达终点。 1、小车驱动模块: 使用一片298芯片驱动一个二相四线步进电机,电机的电压为12V。

相关文档
最新文档