小车循迹壁障等流程图

合集下载

智能循迹避障小车设计分析解析

智能循迹避障小车设计分析解析

毕业设计(论文)课题名称智能循迹避障小车设计学生姓名XXX学号00000000000000系、年级专业XXXXXXXXXXXXXXXXXXX指导教师XXX职称讲师2016年5月18日摘要自从首个工业智能设施诞生以来,智能设施的发展已经扩展到了包括机器、刻板、电子、冶金、交通、宇航、国防等产业领域。

近年来智能设施水平迅速上升,大大的改变了大多数人类的生活方式。

在人类的智能化技术不断飞速进步的过程中,能够取代手动的机器人在更加人性化的同时也越来越智能化。

本文主要讨论了基于单片机的智能循迹避障小车的设计。

智能自动循迹制导系统在驱动电路的基础上,实现自动跟踪汽车导线,而智能避障是使用红外传感器测距系统来实现功能来规避障碍。

智能寻光避障小车是一种采用了多种传感器,以单片机为核心,电力马达驱动和自动控制为技术,根据程序预先确定的模式,而不是人工管理来实现避障导航的自动跟踪高新技术。

这项技术已广泛应用于智能无人驾驶、智能机器人、全自动工厂等许多领域。

这个设计使用STC89C52单片机[1]作为小车的智能核心,使用红外传感器对智能小车跟踪模块识别引导线跟踪,收集模拟信号并将信号转换成为数字信号,使用C 语言编写程序,设计的电路结构简单,易于实现,时效性高。

关键词:智能化;单片机最小系统;传感器;驱动电路ABSTRACTFrom the first level of industrial intelligent facilities since birth, the development of intelligent facilities has been broadened to include machinery, electronics, metallurgy, transportation, aerospace, defense and other fields. Intelligent facilities level rising in recent years, and rapidly, significantly changed the way people live. People in the process of thinking, improvement, learning and intelligence of replace the manual machine is more and more.This paper mainly discusses the intelligent tracking based on single chip microcomputer control process of the obstacle avoidance car. Intelligent automatic tracking is based on the driving circuit of the guidance system, to achieve automatic tracking car line; obstacle avoidance is the use of infrared sensor ranging system to realize the function to evade obstacles. Intelligent tracking obstacle avoidance car is a use different sensor , motor drive for power and automatic control technology to realize according to the procedures predetermined mode, not by artificial management can realize the automatic tracking of obstacle avoidance navigation of high and new technology. The technology has been widely used in unmanned intelligent unmanned line, intelligent robot and so on many fields.Using infrared sensors for car tracking module to identify the guide line tracking, collecting analog signal and converts the signal into digital signal; Using C language to write the program, the design of the circuit structure is simple, easy to implement,timeliness is high.Keywords: Intelligent; Single chip microcomputer minimum system; The Sensor; Driver circuit目录第1章绪论 (1)1.1智能小车的发展近况与趋势 (1)1.2课题研究的目的及意义 (1)1.3课题研究的主要内容 (2)第2章方案设计 (3)2.1系统概述 (3)2.2硬件模块方案 (3)2.3软件模块方案 (5)第3章硬件设计 (6)3.1电源模块 (6)3.2核心控制模块 (6)3.3循迹模块 (7)3.4避障模块 (8)3.5无线遥控模块 (9)3.6电机驱动模块 (10)3.7拓展模块 (13)第4章软件模块 (15)4.1循迹程序模块 (15)4.2避障程序模块 (16)4.3无线遥控程序模块 (17)4.4寻光拓展程序模块 (18)4.5驱动电机程序模块 (19)第5章系统测试与分析 (20)5.1硬件调试 (20)5.2软件调试 (21)总结 (22)参考文献: (23)附录 (24)致谢 (25)第1章绪论1.1智能小车的发展近况与趋势1.1.1智能小车的发展近况现阶段智能汽车的发展十分的迅速,从智能玩具到其他各行各业都有实质性的结果[1]。

循迹小车全资料

循迹小车全资料

寻迹小车在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简易智能小车题目。

笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电路系统。

整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。

总体方案整个电路系统分为检测、控制、驱动三个模块。

首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

系统方案方框图如图1所示。

图1 智能小车寻迹系统框图传感检测单元小车循迹原理该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。

笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。

红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。

在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。

传感器的选择市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。

ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和外接电路均较为简单,如图2所示:图2 ST168检测电路ST168采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式检测方式。

ST168的检测距离很小,一般为8~15毫米,因为8毫米以下是它的检测盲区,而大于15毫米则很容易受干扰。

笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。

R1限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150的电阻作为限流电阻,Vcc=5V作为电源电压,测试发现发射功率完全能满足检测需要;可变电阻R2可限制接收电路的电流,一方面保护接收红外管;另一方面可调节检测电路的灵敏度。

智能循迹避障小车设计

智能循迹避障小车设计

目录摘要 (2)绪论 (2)2方案设计与论证 (3)2.1 主控系统 (3)2.2 电机驱动模块 (4)2.3 循迹模块 (5)2.4 避障模块 (6)2.5 机械系统 (7)2.6电源模块 (7)3硬件设计 (7)3.1总体设计 (7)3.2驱动电路 (8)3.3信号检测模块 (9)3.4主控电路 (10)4 软件设计 (12)4.1主程序模块 (12)4.2电机驱动程序 (12)4.3循迹模块 (13)4.4避障模块 (15)结束语 (19)致谢 (19)参考文献 (19)智能循迹避障小车李庆滨(德州学院物理系,山东德州253023)摘要利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。

其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM 波控制。

关键词智能小车;STC89C52单片机;L298N;红外对管1 绪论自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。

近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。

人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。

随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。

视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。

视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。

但CCD传感器的价格、体积和使用方式上并不占优势,因此在不要求清晰图像只需要粗略感觉的系统中考虑使用接近觉传感器是一种实用有效的方法。

机器人要实现自动导引功能和避障功能就必须要感知导引线和障碍物,感知导引线相当给机器人一个视觉功能。

避障控制系统是基于自动导引小车(AVG—auto-guide vehicle)系统,基于它的智能小车实现自动识别路线,判断并自动避开障碍,选择正确的行进路线。

循迹小车基本原理

循迹小车基本原理

寻迹小车在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简易智能小车题目。

笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电路系统。

整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。

总体方案整个电路系统分为检测、控制、驱动三个模块。

首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。

系统方案方框图如图1所示。

图1 智能小车寻迹系统框图传感检测单元小车循迹原理该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。

笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。

红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。

在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。

传感器的选择市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。

ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和外接电路均较为简单,如图2所示:图2 ST168检测电路ST168采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式检测方式。

ST168的检测距离很小,一般为8~15毫米,因为8毫米以下是它的检测盲区,而大于15毫米则很容易受干扰。

笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。

R1限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150的电阻作为限流电阻,Vcc=5V作为电源电压,测试发现发射功率完全能满足检测需要;可变电阻R2可限制接收电路的电流,一方面保护接收红外管;另一方面可调节检测电路的灵敏度。

循迹小车基本原理

循迹小车基本原理
传感器的安装
正确选择检测方法和传感器件是决定循迹效果的重要因素,而且正确的器件安装方法也是循迹电路好 坏的一个重要因素。从简单、方便、可靠等角度岀发,同时在底盘装设4个红外探测头,进行两级方向纠
正控制,将大大提高其循迹的可靠性,具体位Fra bibliotek分布如图3所示。
图3红外探头的分布图
图中循迹传感器全部在一条直线上。其中X1与Y1为第一级方向控制传感器,X2与Y2为第二级方向控制
压的大小输岀不同的电压和功率,解决了负载能力不够这个问题。
结语
此方案选择的器件比较简单,实际中也很容易实现。经过多次测试,结果表明在一定的弧度范围内,小车 能够沿着黑线轨迹行进,达到了预期目标。不足之处,由于小车采用直流电机,其速度控制不够精确和稳 定,不能实现急转和大弧度的拐弯。
程序
#include<reg51.h>
软件控制单元
单片机选型及程序流程
此部分是整个小车运行的核心部件,起着控制小车所有运行状态的作用。控制方法有很多,大部分都
采用单片机控制。由于51单片机具有价格低廉是使用简单的特点,这里选择了ATMEL公司的AT89S51
作为控制核心部件,其程序控制方框图如图4所示。
图4系统的程序流程图
小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O口,一旦检测到某个I/O口有信
传感器的选择
市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构
简单、工作性能可靠的集成式红外探头。ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、
用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和外接
图2ST168检测电路

智能小车的循迹避障行驶说明书

智能小车的循迹避障行驶说明书

智能小车的循迹避障行驶目录摘要 (III)Abstract (IV)第一章绪论 (1)1.1 课题背景 (1)1.2 研究目的及意义 (1)1.3 本设计完成的工作 (2)第二章总体设计方案 (3)2.1 方案选择及论证 (4)4446662.2 最终方案 (7)第三章硬件设计 (8)3.1 主控器STC89C52 (8)3.2 单片机复位电路设计 (10)3.3 单片机时钟电路设计 (10)3.4 避障模块 (10)3.5 电源设计 (11)3.6 电机驱动模块 (12)3.7 红外循迹模块 (13)3.8 小车车体总体设计 (15)第四章软件设计 (16)4.1 主程序流程图 (16)第五章系统的安装与调试 (18)5.1 系统的安装 (18)5.2 电路的调试 (19) (20)205.3 测试结果与分析 (20)结论 (21)参考文献 (22)致谢........................................................ 错误!未定义书签。

附录1 整机电路原理图.. (22)附录2 部分源程序 (23)智能小车的循迹避障行驶摘要在现代化的生产生活中,智能机器人已经渐渐普及到国防、工业、交通、生活等各个领域。

为了使生产更加有效率更加安全,使生活更加方便、轻松,智能机器人起到了越来越重要的作用。

智能小车属于智能机器人的一种,同样能给生产生活带来极大的便利。

它能够自己判断路面情况,并将各种信息反馈给单片机。

所用到的学科有自动控制原理、传感器技术、计算机和信息技术等多门学科。

智能车能够在一定程度上解放人的双手、减小工作强度从而改善人们的生活,提高生产的质量和效率。

能够自动循迹和避绕障碍物行驶则是智能小车需要的最基本的功能。

小车之所以能够自动避开障碍物并进行循迹是因为它可以感测引导线和行进路上的障碍物,因此这里采用超声波测距模块和红外传感器来实现这些功能。

本文先介绍了选题的背景及发展前景,描述了智能车在生产和生活中发展和应用的情况;接着对硬件部分所用器件的原理和特点进行了介绍;然后对软件设计和机械部分进行说明;在文章的最后就整个过程的体会及智能机器人的发展进行了总结和展望。

智能寻迹避障小车寻线、避障控制程序设计

智能寻迹避障小车寻线、避障控制程序设计

1.1.2 寻迹电路原理
小车处于白色区域,这时小车就会沿直线行走 ,当红外发射管左边对准黑线(黑胶带),右 边对准白线(白色地面)时,左边的红外线被 黑线吸收,红外线无法反射回,则左边呈现高 电平,即单片机检测到P3.5=1(左边)、 P3.6=0,这时,小车便向左边修正(左转弯 ),使左边传感器重新回到白色区域。右转弯 过程与左转弯相类似,请学员自行分析。
//左边往前
//右边往前
湖南创博龙智信息 科技有限公司
2.1.4 参考程序代码
void hou() { zuo1=1; zuo2=0; you1=1; you2=0; } void zuo() { zuo1=1; zuo2=0; you1=0; you2=1; } void you() { zuo1=0; zuo2=1; you1=1; you2=0; } //左边往后 //右边往后
智能寻迹小车设计与制作 (寻线、避障控制程序设计)
主讲:雷道仲
湖南创博龙智信息 科技有限公司
任务及要求
任务一:智能寻迹避障小车寻线程序设计 固定路线寻线:学员编写程序使智能
寻线、避障控制模块共设置了两个任务,分别如下:
寻迹避障小车沿黑色圆圈行走,行走过程
中小车一直压着黑线走,不得冲出黑线圆
圈之外或之内。
湖南创博龙智信息 科技有限公司
1.1.4 程序代码
void you() { zuo1=0; zuo2=1; you1=1; you2=0; } void main() { while(1) { if(zuod==0&youd==0) { qian(); out=ZM[1]; } if(zuod==1&youd==0) { while(1) { zuo(); out=ZM[3]; D1=0; if(zuod==0)

小车循迹壁障等流程图

小车循迹壁障等流程图

#include<reg51.h> #include<math.h> #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<tmp1) en1=1; else en1=0; /* 产生电机1的PWM信号*/ if(t<tmp2) en2=1; else en2=0; /* 产生电机2的PWM信号*/ t++; 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占空比输出参数:无调用:无返回:无/******************************************************************/voidmotor_PWM (){ uchar PWM_abs1; uchar PWM_abs2; PWM_abs1=MOTO_speed1; PWM_abs2=MOTO_speed2; if (PWM_abs1>PWMAnd) ENA=1; //左边电机占空比输出else ENA=0; if (PWM_abs2>PWMAnd) ENB=1; //右边电机占空比输出else ENB=0; if (PWMAnd>=PWM_COUST) PWMAnd=0; //PWM计数清零else PWMAnd+=1;} /******************************************************************名称:void TIME_Init ();功能:定时器初始化指令:调用:无返回:无/******************************************************************/ void TIME_Init () {//=========定时器T2初始化PWM================== TCON = 0x00; TMOD = 0x00; RCAPH = 0xff; //定时0.1ms RCAPL = 0x47; TH0 = 0xff; TL0 = 0x47; ET0 = 1; //定时器2中断开TR0 = 1; //PWM定时器关,PWM周期为10ms }/******************************************************************名称:void PWM_Time2 () interrupt 5功能:T2中断,PWM控制参数:调用:motor_PWM();//PWM 占空比输出返回:/******************************************************************/ void PWM_Time2 () interrupt 5{ TR2 = 0; TF2 = 0; ET2 = 0; //定时器0中断禁止motor_PWM();//PWM占空比输出ET2 = 1; //定时中断0开启TR2 = 1;}main(){ TIME_Init () ;motor(50,50);//左右电机的转速都是50}图 3-1 ST188实物图图 3-2 ST188管脚图及内部电路通过ST188检测黑线,输出接收到的信号给LM324 ,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。

循迹小车(程序)

循迹小车(程序)

附录程序目录一、前言------------------------------------------------------------二、小车功能------------------------------------------------------三、元器件选择--------------------------------------------------四、 I/O分配及硬件连接简图---------------------------------五、相关模块、算法---------------------------------------------六、系统框图------------------------------------------------------七、调试过程------------------------------------------------------八、小车图片资料---------------------------------------------------九、讲座所感------------------------------------------------------十、实习总结------------------------------------------------------一、前言感生产实习能给我们这次实现自己想法的机会,虽然实验条件异常简陋、资金投入非常有限,总体感觉我的队友们灰常灰常给力啊,我感觉我是抱到大腿了--王威,夏青、峰哥,团队气氛非常好,大家一起讨论,一起分工研究模块,最后一起解决问题调试程序,而且是不同的组合在不同阶段解决了不同的问题,大家合作,各显身手,在奋战中给大三学年画上了圆满的句号。

之前我们本来商量是不是可以拿往年电子设计大赛的题目过来做,如果难度太大就算只实现一部分功能也算是成功完成了,结果研究一天后发现电子设计大赛的题目需要很长时间的知识积累啊,基本上都是准备一个月以上然后开工的,后来王威提议要不我们做个小车吧,超声波测距实现自动物体追踪,控制核心采用单片机,传感器采用广泛用于避障和测距的超声波传感器,前进和后退用普通伺服电机和电机驱动模块实现。

多功能循迹避障小车原理图及PCB绘制过程

多功能循迹避障小车原理图及PCB绘制过程

设计报告课题名称多功能智能小车设计专业班级电子信息工程2班学号学生姓名指导教师2014 年 3 月 30 日1绘制电路原理图1、在桌面上新建一个文件夹,命名文件夹名称为【tfdi】并保存。

如图1-1。

图1新建文件夹2、打开DXP 2004 ,在文件目录下创建一个项目PCB项目文件,【File】→【New】→【Project】→【PCB Project】,并保存在桌面上新建的【dfd】文件夹内,保存的文件名为dfg,在Projects项目面板上出现一个项目dfd.PrjPCB。

3、在DXP2004面板中添加一个原理图文件并追加新文件到项目中:【File】→【New】→【Schatematic】,命名为都放到,保存原理图文件在【地方】文件夹内,则在项目dfd.PrjPCB中出现一个原理图文件dfd.SchDoc。

1.1在原理图右下脚绘制标题栏(1)在打开的电路原理图文件Sheet1.SchDoc的工作区右击→【Options】→【Document Options…】→打开【Document Options】对话框→【Sheet Options】,在【Sheet Options】中选【Title Block】,去掉选项中它前面方框内的【√】号,单击确定。

如图1-2所示:图1-2(2)使用Utility Tools工具栏中的画线和放置文本框工具绘制如图3的表格。

图1-3(3)放置文本框时按【Tab】键,可对字体进行修改如图1-4图1-4(4)为了使其美观,可以调节把它的电器栅长由10改为1,这样就可以把文本字符串挪到表格的正中央位置。

调整后的结果如图5图1-51.2、绘制电路图电容、电阻、电源、二极管、开关、三极管和地线,可以在基本元件库Miscellaneous Devices中找到后直接放置在原理图中。

如图1-6图1-6放置元件对于电机使用搜索功能如图1-7所示图1-7 搜索修改参数,已放置C1为例。

循迹避障智能小车

循迹避障智能小车

智能车可行性方案实现功能:小车自动测距,避障,寻迹。

技术关键:小车的测距需要用到传感器来测量距离障碍物超声波的距离;小车避障则需要注意当小车与障碍物之间距离小于某一数值时,车通过电动机转向;寻迹则需要通过车底部的光电传感器检测行驶方向是否偏离黑线,在通过电动机调整运行方向。

一.结构框图二.具体电路分析,1寻迹电路技术关键:在小车底部前部并排安置3各个光电传感器。

当小车沿直线形式是,三个接收器中两边为高电平,中间低电平,小车直行(如图1);黑线转弯时,中间和一边为高电平,另一边为低电平,则小车向低电平一端旋转,直到回到1状态(如图2,3)。

方案1:用红外发射管和接收管作为寻迹传感器。

红外发射管发出红外线,当发出的红外线射到白纸的平面后反射,若红外接收管能接受到反射回的光线则能检测出白纸继而输出低电平;若接受不到发射管发出的光线则输出高电平。

但是红外对管工作不稳定,且容易受外界光线的影响。

方案2:用RPR220型光电对管,它是一种反射性光电探测器。

使用光电传感器,当接收管收到二极管发出光的反射,三级管导通。

电压送入比较器的一端,比较起的另一端输入基准电压。

当光敏二极管产生电压时,比较器输出高电平,反之输出低电平给I/O端口。

所以,为了避免外界干扰,选择第二种方案。

电路图如下2,振荡电路的设计技术关键:超声波发射器发射波时须输入40KHz的正弦信号或方波。

所以在在发射器之前应有一个信号触发电路,确保发射器正常工作。

方案1:用软件产生。

使用Atmega16中的PWM产生40KHz的方波,输出给超声波发射器,但程序较为复杂。

方案2:用硬件产生。

使用555多谐振荡器,构成单稳态触发电路,产生40KHZ方波信号由于555内部比较器灵敏度高,而且采用差分电路形式其振荡频率受电源电压何温度变化影响很小。

有频率公式f=1.43/(R1+2R2)C确定R1= R2=119 C= 0.1uF方案3:硬件产生,由自激振荡电路产生40KHz的正弦信号,选用RC自激振荡电路。

循迹、避障、寻光小车实验报告

循迹、避障、寻光小车实验报告

简易智能小车摘要:本系统基于自动控制原理,以MSP430为控制核心,用红外传感器、光敏三极管、霍尔传感器、接近开关之间相互配合,实现了小车的智能化,小车完成了自动寻迹、避障、寻光入库、计时、铁片检测、行程测量的功能。

本系统采用液晶LCD12864显示数据,良好的人机交流界面,显示小车行程的时间、铁片中心线离起始线的距离和铁片的个数。

整个系统控制灵活,反应灵敏。

关键词:MSP430 传感器 LCD12864目录一、方案论证与比较 (3)1、题目任务要求及相关指标的分析 (3)2、方案的比较与选择 (3)(1)控制单元的选择 (3)(2)直流电机驱动电路的选择 (3)(3)轨迹探测模块选择 (3)(4)金属片的探测 (3)(5)路程测量方案的选择 (4)(6)避障方案的选择 (4)(7)小车寻光方案的选择 (4)(8)电源的选择 (4)(9)刹车机构功能方案比较 (5)二、系统总体设计方案及实现方框图 (5)1、系统总体设计方案 (5)2、系统实现框图 (5)三、理论分析与计算 (5)1、铁片中心线距离的测量 (5)2、小车行程时间的测量 (5)四、主要功能电路设计 (6)1、小车循迹模块 (6)2、小车检测铁片模块 (6)3、小车测距模块 (6)4、小车避障模块 (6)5、小车寻光模块 (6)6、直流电机驱动模块 (7)五、系统软件的设计 (8)六、测试量数据与分析 (8)1、测量数据 (8)2、数据分析 (8)参考文献 (8)一、方案论证与比较1.题目任务要求及相关指标的分析题目要求小车按照规定的跑道行驶,同时检测在跑道下的铁片,在检测到最后一块铁片时小车会有连续的声光显示;后又可以准确的避开障碍,而且不与障碍物接触;最后,在光源的引导下,进入车库。

智能小车有显示功能,可以显示检测到铁片的数量,金属片距起点的距离,行驶的总时间。

整个行驶过程中的总时间不大于90秒,小车在行驶90秒后会自动停车。

2. 方案的比较与选择(1)控制单元的选择方案一:利用单片机与FPGA配合使用。

壁障循迹智能小车

壁障循迹智能小车

湖北理工学院电赛预选赛论文题目;智能壁障循迹小车参赛人员:许金利陈雄班级:10电气本一智能壁障循迹小车摘要:本系统是以msp430单片机为控制核心,利用TRCT5000红外对管检测黑线,控制小车实现自动循迹功能,利用E18—D80NK—N 红外壁障传感器实现壁障功能。

小车驱动采用L293D驱动电路,速度由单片机控制,通过L293D芯片驱动直流电机,结合光电开关,可有效控制小车在特定位置转弯角度;另利用红外解码原理,通过遥控器实现小车的功能转换。

由以上各种功能的结合,使小车更加智能化,自动化,该系统在结构和技术上都显得更加科学化。

关键字:msp430单片机;TRCT5000红外对管;E18—D80NK—N 红外壁障传感器;L293D芯片。

二.方案设计2.1 主控系统采用msp430F149单片机加8MHZ的晶振为整个系统的核心,TI公司的msp430系列16位单片机具有超低功耗性能,用其控制智能小车,实现既定的功能。

2.2 电机驱动模块(L293D)采用功率三极管作为功率放大器的输出控制直流电机,线性型驱动的电路结构和原理简单,这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。

因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。

2.3 循迹模块采用4只红外对管并排至于小车后,中央黑线的两侧分别有两只,红外对管的红外发射管不断发射红外线,光敏三极管会不断接受反射的红外线,通过对黑线的检测,光电对管会向单片机发送脉冲信号,单片机则会控制电机的转速来实现转弯,继而实现循迹功能。

红外对管的电路实物图如下:图2 TRCT5000传感器模块布局图2.4 壁障模块E18-D80NK-N 这是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。

有效的避免了可见光的干扰。

透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题。

基于51单片机的循迹避障小车的设计ppt课件

基于51单片机的循迹避障小车的设计ppt课件
复位模式基本包括上电自动复位和开关 复位。如图所示,在上电瞬间,电容两端电 压不能突变,且电容负极和reset相连,此 时电压全部加在电阻上,rest引脚电压为高 电平,芯片复位。随后,5V电源开始给电容 充电,电阻上的电压逐渐降低至接近0V,芯 片正常工作。
复位电路
时钟电路
时钟电路是用来产生AT89C51单片机工 作时所必须的时钟信号,AT89C51本身就是 一个复杂的同步时序电路,为保证工作方式 的实现,AT89C51在唯一的时钟信号的控制 下严格的按时序执行指令进行工作,时钟的 频率影响单片机的速度和稳定性。
系统程序流程设计
本智能小车通过实时检测各个模 块传感器的输入信号,利用红外对 管检测黑线实现寻迹,通过光电传 感器实现避障,把所有采集到的信 息送到主处理器,让小车做出正确 的行驶路线。小车的启动与停止, 均采用了声控模块,实现对小车的 声音控制,其程序流程图如图所示。
请多指教
我们系统采用内部时钟方式来为系统提 供时钟信号,如图所示。AT89C51内部有一 个用于构成振荡器的高增益反向放大器,该 放大器的输入输出引脚为XTAL1和XTAL2它们 跨接在晶体振荡器和用于微调的电容,便构 成了一个自激励振荡器。
时钟电路
循迹模块
小车循迹,采用红外检测的方法,红外 检测法是通过黑线和白色对红外线的吸收效 果不同,当红外光线射到白色底板时,会发 生漫反射反射到智能车的接受管上,而射到 黑线则会被吸收不会产生发射,智能车红外 接收管就接收不到。故,整个智能车通过红 外接收管是否接收到红外线来判断黑线和白 线的,从而实现循迹。但需要主要的是,红 外传感器的检测距离有限,一般在3cm之内。 红外光电传感器由1个红外发射管(发射器) 和1个光电二极管(接收器)所构成,循迹 示意图如图所示。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<reg51.h> #include<math.h> #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<tmp1) en1=1; else en1=0; /* 产生电机1的PWM信号*/ if(t<tmp2) en2=1; else en2=0; /* 产生电机2的PWM信号*/ t++; 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占空比输出参数:无调用:无返回:无/******************************************************************/voidmotor_PWM (){ uchar PWM_abs1; uchar PWM_abs2; PWM_abs1=MOTO_speed1; PWM_abs2=MOTO_speed2; if (PWM_abs1>PWMAnd) ENA=1; //左边电机占空比输出else ENA=0; if (PWM_abs2>PWMAnd) ENB=1; //右边电机占空比输出else ENB=0; if (PWMAnd>=PWM_COUST) PWMAnd=0; //PWM计数清零else PWMAnd+=1;} /******************************************************************名称:void TIME_Init ();功能:定时器初始化指令:调用:无返回:无/******************************************************************/ void TIME_Init () {//=========定时器T2初始化PWM================== TCON = 0x00; TMOD = 0x00; RCAPH = 0xff; //定时0.1ms RCAPL = 0x47; TH0 = 0xff; TL0 = 0x47; ET0 = 1; //定时器2中断开TR0 = 1; //PWM定时器关,PWM周期为10ms }/******************************************************************名称:void PWM_Time2 () interrupt 5功能:T2中断,PWM控制参数:调用:motor_PWM();//PWM 占空比输出返回:/******************************************************************/ void PWM_Time2 () interrupt 5{ TR2 = 0; TF2 = 0; ET2 = 0; //定时器0中断禁止motor_PWM();//PWM占空比输出ET2 = 1; //定时中断0开启TR2 = 1;}main(){ TIME_Init () ;motor(50,50);//左右电机的转速都是50}图 3-1 ST188实物图图 3-2 ST188管脚图及内部电路通过ST188检测黑线,输出接收到的信号给LM324 ,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。

图3-5 传感器模块电路图PWM1为1,PWM2为1时,Q1和Q2导通,节点1和节点2都是低电平,Q15和Q16导通,电机不工作。

PWM1为0,PWM2为0时,Q1和Q2导通,节点1和节点2都是高电平,Q13和Q14导通,电机不工作。

PWM1为1,PWM2为0时,Q1导通但Q2不导通,节点1是低电平而节点2是高电平,Q14和Q15导通,电机逆时针转动。

PWM1为0,PWM2为1时,Q1不导通但Q2导通,节点1是高电平而节点2是低电平,Q13和Q16导通,电机顺时针转动。

传感器循迹检测通信协同小车运行交替超车信息采集产生控制信号无线通信控制行进STC89C52主控系统 图2-1 系统实现原理结构图开始甲乙两车在起始点行驶检测第1条转弯标志线检测第2条转弯标志线检测超车标志区左转直行200cm右转驶于起始点甲乙两车在起始点行驶检测第1条转弯标志线检测第2条转弯标志线检测超车标志区甲车左转直行120cm停止乙车左转进入超车区直行120cm无线通信甲车开始直行80cm右转驶于起始点乙车右转驶于起始点甲乙两车在起始点行驶检测第1条转弯标志线检测第2条转弯标志线检测超车标志区甲车左转进入超车区直行120cm 无线通信乙车开始直行80cm右转驶于起始点甲车右转驶于起始点乙车左转直行120cm停止甲乙小车各跑一圈甲乙各跑一圈第一圈乙超甲第二圈甲超乙小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机I/O 口,一旦检测到某个I/O 口有信号,即进入判断处理程序,先确定4个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。

相关文档
最新文档