搜档网
当前位置:搜档网 › 智能循迹小车程序

智能循迹小车程序

智能循迹小车程序
智能循迹小车程序

智能循迹小车,小车按中字笔画行驶

/************“中”字笔画轨迹*************/

#include

#include //内部包含延时函数_nop_(); #define uchar unsigned char

#define uint unsigned int

unsigned char dj1=0;

unsigned char dj2=0;

uchar t=0;

uchar num1=0,num2=0,num3=0;

sbit HW1=P0^0; //红外对管位定义

sbit HW2=P0^1;

sbit HW3=P0^2;

sbit HW4=P0^3;

sbit ENA=P3^2; //PWM输入

sbit ENB=P3^3;

sbit IN5=P2^4; //电机

sbit IN6=P2^5;

sbit IN7=P2^6;

sbit IN8=P2^7;

void delay(uint x) //延时1ms

{

uint i,j;

for(i=0;i

for(j=0;j<120;j++);

}

void qianjin() //小车前进

{

IN5=0;

IN6=1;

IN7=0;

IN8=1;

dj1=15;

dj2=15;

}

void turnleft2() //小车前进向左微调

{

IN5=0;

IN6=1;

IN7=0;

IN8=1;

dj1=7;

dj2=20;

}

void turnright2() //小车前进向右微调{

IN5=0;

IN6=1;

IN7=0;

IN8=1;

dj1=20;

dj2=7;

}

void right()

{

IN5=0;

IN6=1;

IN7=1;

IN8=0;

dj1=20;

dj2=25;

}

void left()

{

IN5=1;

IN6=0;

IN7=0;

IN8=1;

dj1=25;

dj2=20;

}

void stop() //小车后退

{

dj1=0;

dj2=0;

}

void init() //初始化

{

TMOD=0x01;

TH0=(65536-500)/256;

TL0=(65536-500)%256;

EA=1;

ET0=1;

TR0=1;

}

void timer0() interrupt 1 using 1 //定时器0中断

{

TH0=(65536-500)/256;

TL0=(65536-500)%256;

t++;

if(t

else ENA=0;

if(t

else ENB=0;

if(t>=50)

{

t=0;

}

}

void main()

{

init();

while(1)

{

if(num1==0)

{

if(HW1==0&&HW2==1&&HW3==1&&HW4==0)

{

qianjin();

}

if(HW1==0&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==1&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

if(HW1==1&&HW2==0&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==0&&HW2==0&&HW3==1&&HW4==0)

{

turnright2();

}

if(HW1==0&&HW2==0&&HW3==1&&HW4==1)

{

turnright2();

}

if(HW1==0&&HW2==0&&HW3==0&&HW4==1)

{

turnright2();

}

if(HW1==0&&HW2==1&&HW3==1&&HW4==1)

{

turnleft2();

}

if(HW1==1&&HW2==1&&HW3==1&&HW4==0)

{

turnright2();

}

if(num2==0&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

delay(500);

if(num2==0&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

stop();

delay(50);

num1=1;

delay(50);

}

}

}

if(num1==1)

{

if(num2==0&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

right();

}

if(HW1==0&&HW2==1&&HW3==1&&HW4==0)

num2=1;

delay(50);

qianjin();

}

if(HW1==0&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==1&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==1&&HW2==0&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==0&&HW2==0&&HW3==1&&HW4==0)

{

turnright2();

}

if(HW1==0&&HW2==0&&HW3==1&&HW4==1)

{

turnright2();

}

if(HW1==0&&HW2==0&&HW3==0&&HW4==1)

{

turnright2();

}

if(HW1==0&&HW2==1&&HW3==1&&HW4==1)

{

turnleft2();

}

if(HW1==1&&HW2==1&&HW3==1&&HW4==0)

{

turnright2();

}

if(num2==1&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

delay(500);

if(num2==1&&HW1==0&&HW2==0&&HW3==0&&HW4==0) {

stop();

delay(50);

num1=2;

delay(50);

}

}

}

if(num1==2)

{

if(num2==1&&HW1==0&&HW2==0&&HW3==0&&HW4==0) {

right();

}

if(HW1==0&&HW2==1&&HW3==1&&HW4==0)

{

num2=2;

delay(50);

qianjin();

}

if(HW1==1&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==0&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==1&&HW2==0&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==0&&HW2==0&&HW3==1&&HW4==1)

{

turnright2();

}

if(HW1==0&&HW2==0&&HW3==1&&HW4==0)

{

turnright2();

}

if(HW1==0&&HW2==0&&HW3==0&&HW4==1)

{

turnright2();

}

if(num3==0&&HW1==1&&HW2==1&&HW3==1&&HW4==1) {

num3=1;

delay(10);

stop();

delay(100);

qianjin();

}

if(HW1==0&&HW2==1&&HW3==1&&HW4==1)

{

turnleft2();

}

if(HW1==1&&HW2==1&&HW3==1&&HW4==0)

{

turnright2();

}

if(num2==2&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

delay(500);

if(num2==2&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

stop();

delay(50);

num1=3;

delay(50);

}

}

}

if(num1==3)

{

if(num2==2&&HW1==0&&HW2==0&&HW3==0&&HW4==0)

{

right();

}

if(HW1==0&&HW2==1&&HW3==1&&HW4==0)

{

num2=3;

delay(50);

qianjin();

}

if(HW1==1&&HW2==1&&HW3==0&&HW4==0)

{

turnleft2();

}

if(HW1==0&&HW2==1&&HW3==0&&HW4==0)

{

智能循迹小车设计与实现

智能循迹小车设计与实现 摘要本文介绍的是基于单片机STC89C52控制智能循迹小车的设计。利用红外对光管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的运动,从而实现自动循迹避障的功能。其中小车的电机由LG9110驱动,整个系统的电路结构简单,可靠性高。 关键词STC89C52 LG9110 红外对光管循迹小车

The manufacture of intelligent tracking car Abstract This articale introduces the design of intelligent tracking car based on the STC89C52 single chip computer.Based infrared detection of black lines and the road obstacles,and use a STC89C52 MCU as the controlling core for the movement.A electronic drived,which can automatic track and avoid obstacle,was designed and fabricated.In which,the electric machinery of car is drived by the LG9110.The electric circuit stuction of whole system is simple,and the function is dependable. Keywords STC89C52 LG9110 Infrared emitting diode Tracking car

智能循迹小车程序

#include #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示 uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器P3^2 sbit L=P3^3; //左边传感器P3^3 //电机驱动口定义 sbit E NB=P1^0; //前轮电机停止控制使能 sbit E NA=P1^1; //后轮控制调速控制端口 sbit I N1=P1^2; //前轮 sbit I N2=P1^3; //前轮 sbit I N3=P1^4; //后轮 sbit I N4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例 { ENA = 1; } else if(speed < 100) { ENA = 0; }

基于STC89C52单片机-红外智能循迹小车 (1)

基于STC89C52单片机红外智能循迹小车 实验报告册 学院:电气工程学院 协会:电子科技协会 班级:电气1206 班 姓名:蔡申申 学号:201223910625 联系方式:151 **** ****

摘要 本报告论述了自己参加第八届河南工业大学科技创新大赛——基于STC89C52RC单片机红外智能循迹小车的方案论证、制作过程、调试过程。设计采用STC89C52RC单片机为核心控制器件,采用TCRT5000红外反射式开关传感器作为小车的循迹模块来识别白色路面中央的黑色引导线,采集信号并将信号转换为能被单片机识别的数字信号,单片机获取路面信息后,进行分析、处理,最后控制减速电机转动实现转向。实验表明:该系统抗干扰能力强、电路结构简单、制作成本低,运行平稳、可靠性好。 关键词:STC89C52单片机、反射式光电对管、PWM调速 减速电机

目录 摘要 (2) 1 绪论 (4) 1.1 智能循迹小车概述 (4) 1.1.1 循迹小车的发展历程回顾 (4) 1.1.2 智能循迹分类 (4) 1.1.3 智能循迹小车的应用 (5) 2 智能循迹小车总体设计方案 (5) 2.1 整体设计方案 (5) 2.1.1 系统设计步骤 (5) 2.1.2 系统基本组成 (5) 2.2 整体控制方案确定 (6) 3 系统的硬件设计 (6) 3.1 单片机电路的设计 (6) 3.1.1 单片机的功能特性描述 (6) 3.1.2 晶振电路 (7) 3.1.3 复位电路 (7) 3.2 光电传感器模块 (8) 3.2.1 传感器分布 (8) 3.3 电机驱动电路 (9) 3.3.1 L298N引脚结构 (9) 3.3.2 电机驱动原理 (9) 4 系统的软件设计 (10) 4.1 软件设计的流程 (10) 4.2 本系统的编译器 (10) 5 系统的总体调试 (11) 5.1 硬件的测试 (11) 5.2 系统的软件调试 (11) 结论 (11) 致谢 (11) 参考文献 (12) 附录A 原理图与模块电路图 (12) 附录B 程序代码 (13) 附录C 硬件实物图 (15)

51红外循迹小车报告(舵机版)最终版

简易教程

前言 往届全国大学生电子设计竞赛曾多次出现了集光、机、电于一体的简易智能小车题目,此次,笔者在通过多次论证、比较与实验之后,制作出了简易小车的寻迹电路系统。 整个系统基于普通玩具小车的机械结构,利用小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。系统分为检测、控制、驱动三个模块。首先利用光电对接收管和路面信号进行检测,然后经过比较器处理,对软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。 智能小车能在画有黑线的白纸“路面”上行驶,这是由于黑线和白纸对光线的反射系数不同,小车可根据接收到的反射光的强弱来判断“道路”---黑线,最终实现简单的循迹运动。 个人水平有限,有错误不足之处,还望各位前辈同学多多包含,指出修正,完善。谢谢! 李学云王维 2016年7月27号

目录 前言 (1) 第一部分硬件设计 (1) 1.1 车模选择 (1) 1.2传感器选择 (1) 1.3 控制模块选择 (2) 第二部分软件设计及调试 (3) 2.1 开发环境 (3) 2.2总体框架 (3) 2.3 舵机程序设计与调试 (3) 2.3.1 程序设计 (3) 2.3.2 调试 (3) 2.3.3 程序代码 (4) 2.4 传感器调试 (5) 2.4.1 传感器好坏的检测 (5) 2.4.2 单片机能否识别信号并输出信号 (5) 2.5 综合调试 (7) 附录1 (9) 第一篇舵机(舵机及转向控制原理) (9) 1.1概述 (9) 1.2舵机的组成 (10) 1.3舵机工作原理 (11) 1.4舵机使用中应注意的事项 (12) 1.5如何利用程序实现转向 (12) 1.6舵机测试程序 (13) 附录2 (14) 第二篇光电红外传感器 (14) 2.1传感器的原理 (14) 2.2红外光电传感器ST188 结构图 (15) 2.3传感器的选择 (15) 2.4传感器的安装 (16) 2.5使用方法 (16) 2.7红外传感器输入输出调试程序 (17)

智能循迹小车C程序(完美-详尽)

-----------------------小车运行主程序------------------- -------------------------------------------------------- 简介:@模块组成:红外对管检测模块----五组对管,五个信号采集端口 直流电机驱动模块----驱动两个直流电机,另一个轮子用万向轮 单片机最小系统------用于烧写程序,控制智能小车运动 @功能简介:在白色地面或皮质上用黑色胶带粘贴出路线路径宽度微大于相邻检测管间距。 这样小车便可在其上循迹运行。 @补充说明:该程序采取“右优先”的原则: 即右边有黑线向右转, 若无,前方有黑线,向前走, 若无,左边有黑线,向左转, 若全无,从右方向后转。 程序开头定义的变量的取值是根据我的小车所调试选择好的, 如果采用本程序,请自行调试适合自己小车的合适参数值。 编者:陈尧,黄永刚(江苏大学电气学院二年级,三年级) 1.假定:IN1=1,IN3=1时电机正向转动,必须保证本条件 2.假定:遇到白线输出0,遇到黑线输出1; 如果实际电路是:遇到白线输出1,遇到黑线输出0, 这种情况下只需要将第四,第五句改成: #define m0 1 #define m1 0 即可。 3.说明1:直行---------------速度full_speed_left,full_speed_right. 转弯,调头速度------correct_speed_left,correct_speed_right. 微小校正时---------高速轮full_speed_left,full_speed_right; 低速轮correct_speed. 可以通过调节第六,七,八,九,十条程序,改变各个状态 下的占空比(Duty cycle ),以求达到合适的转弯,直行速度 4.lenth----------length检测到黑线到启动转动的时间间隔 5.width----------mid3在黑线上到脱离黑线的时间差 6.mid3-----------作为判断中心位置是否进入黑线的标志,由于运行的粗糙性和惯性, 常取其他对管的输出信号作为判断条件 7.check_right----若先检测到左边黑线,并且左边已出黑线,判断右端是否压黑线时间拖延

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

智能循迹小车总体设计方案 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的驱动功率较大,能够根据输入电压的大小输出不同的电压和功率,解决了负载能力不够的问题。

循迹小车课程设计报告

智能循迹小车设计与制作 课程设计报告 系别: 专业: 班级: 成员: 指导老师: 时间:二〇一一年6月30日

一、设计目的: 1、学会智能电子产品的功能设计与任务分析,能进行小型电子产品方案设计; 2、掌握基于51单片机、FPGA模数混合硬件系统设计和程序设计; 3、熟悉电子信息类企业项目完整的运作过程及管理规范,培养团队协作能力、沟通能力、创新能力和组织能力。 二、智能循迹小车任务分析 这是一种基于STC89C51单片机的小车寻迹系统。该系统采用两组高灵敏度的光电对管,对路面黑色(白色)轨迹进行检测,并利用单片机产生PWM波,控制小车速度。测试结果表明,该系统能够平稳跟踪给定的路径。 整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行 三、智能循迹小车循迹原理 该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。利用了简单、应用比较普遍的检测方法—发光二极管+光敏电阻。 发光二极管+光敏电阻,即利用光线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射白光,当白光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。

四、智能循迹小车总体方案 整个电路系统分为检测、控制、显示、驱动四个模块。首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,然后显示小车的运行状态,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框图如图1所示。 图1 智能小车寻迹系统框图 五、智能循迹小车各模块方案 1、循迹模块设计 方案1: 用红外发射管:接收管自己制作光电对管循迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射出的光线则测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。 方案2: 发光二极管+光敏电阻组成光敏探测器,光敏电阻的阻值可以根跟随周围 环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射

智能循迹小车分析方案

智能循迹小车设计 专业:自动化 班级:0804班 姓名: 指导老师: 2018年8月——2018年10月 摘要:

本课题是基于AT89C52单片机的智能小车的设计与实现,小车完成的主要功能是能够自主识别黑色引导线并根据黑线走向实现快速稳定的寻线行驶。小车系统以 AT89S52 单片机为系统控制处理器;采用红外传感获取赛道的信息,来对小车的方向和速度进行控制。此外,对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成软件和硬件的融合,实现小车的预期功能。 引言

当今世界,传感器技术和自动控制技术正在飞速发展,机械、电气和电子信息已经不再明显分家,自动控制在工业领域中的地位已经越来越重要,“智能”这个词也已经成为了热门词汇。现在国外的自动控制和传感器技术已经达到了很高的水平,特别是日本,比如日本本田制作的机器人,其仿人双足行走已经做得十分逼真,而且具有一定的学习能力,还据说其智商已达到6岁儿童的水平。 作为机械行业的代表产品—汽车,其与电子信息产业的融合速度也显著提高,呈现出两个明显的特点:一是电子装置占汽车整车<特别是轿车)的价值量比例逐步提高,汽车将由以机械产品为主向高级的机电一体化方向发展,汽车电子产业也很有可能成为依托整车制造业和用车提升配置而快速成为新的增长点;二是汽车开始向电子化、多媒体化和智能化方向发展,使其不仅作为一种代步工具、同时能具有交通、娱乐、办公和通讯等多种功能。 无容置疑,机电一体化人才的培养不论是在国外还是国内,都开始重视起来,主要表现在大学生的各种大型的创新比赛,比如:亚洲广播电视联盟亚太地区机器人大赛

智能循迹小车C程序完美详尽

/*------------------------------------------------------ -----------------------小车运行主程序------------------- -------------------------------------------------------- 简介:@模块组成:红外对管检测模块----五组对管,五个信号采集端口 直流电机驱动模块----驱动两个直流电机,另一个轮子用万向轮 单片机最小系统------用于烧写程序,控制智能小车运动 @功能简介:在白色地面或皮质上用黑色胶带粘贴出路线路径宽度微大于相邻检测管间距。 这样小车便可在其上循迹运行。 @补充说明:该程序采取“右优先”的原则: 即右边有黑线向右转, 若无,前方有黑线,向前走, 若无,左边有黑线,向左转, 若全无,从右方向后转。 程序开头定义的变量的取值是根据我的小车所调试选择好的, 如果采用本程序,请自行调试适合自己小车的合适参数值。 编者:陈尧,黄永刚(江苏大学电气学院二年级,三年级) 1.假定:IN1=1,IN3=1时电机正向转动,必须保证本条件 2.假定:遇到白线输出0,遇到黑线输出1; 如果实际电路是:遇到白线输出1,遇到黑线输出0, 这种情况下只需要将第四,第五句改成: #define m0 1 #define m1 0 即可。 3.说明1:直行---------------速度full_speed_left,full_speed_right. 转弯,调头速度------correct_speed_left,correct_speed_right. 微小校正时---------高速轮full_speed_left,full_speed_right; 低速轮correct_speed. 可以通过调节第六,七,八,九,十条程序,改变各个状态 下的占空比(Duty cycle ),以求达到合适的转弯,直行速度 4.lenth----------length检测到黑线到启动转动的时间间隔 5.width----------mid3在黑线上到脱离黑线的时间差 6.mid3-----------作为判断中心位置是否进入黑线的标志,由于运行的粗糙性和惯性, 常取其他对管的输出信号作为判断条件 7.check_right----若先检测到左边黑线,并且左边已出黑线,判断右端是否压黑线时间拖延

智能循迹小车程序代码

/**************************************************************** ************ 硬件连接 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;} //右电机前转

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) {

循迹小车课程设计

H a r b i n I n s t i t u t e o f T e c h n o l o g y 课程设计说明书(论文) 课程名称:单片机课程设计 设计题目:智能循迹小车 院系:测控技术与仪器系 班级:1001104 设计者:陈哲 学号:1100100534 指导教师:周庆东 设计时间:2013/9/2—2013/9/13 哈尔滨工业大学

哈尔滨工业大学课程设计任务书

开题报告 (一)立项背景 本次的课程设计的主要任务是设计一个能够通过红外对管识别黑线、通过PWM电路模块进行调速跟踪黑色条纹带以及通过LCD液晶模块进行脉冲、速度、PWM的占空比三个参数的显示的智能小车。控制板的设计以16位的MC9S128单片机为控制核心,MC9S12XS128是一款功能强大的16位微控制器,具有非常丰富的片上资源,如:10位精度的ADC,节省了片外AD;强大的定时器,方便对电机进行控制,可以进行浮点型运算。另外还有精密的比较器,大容量的RAM和ROM,可存储大容量的程序。驱动板则以L289N 驱动芯片为核心,应用红外对管和LCD液晶模块,成功的实现小车的循迹、测速、调速和显示功能这四大功能。课题完成了红外对管、单片机、控制板、驱动板选择,采购接口电路的设计和连接以传感器和电路的安装位置和方式的安排,并完成了整个硬件的安装工作。除此之外,还对整个控制软件进行设计和程序的编制以及程序的调试,并最终完成了软件和硬件的融合,基本实现了智能小车要求实现的预期的功能。 为了适应机电一体化的发展在汽车智能化方向的发展要求,提出简易智能小车的构想,目的在于:通过独立设计一辆具有简单智能化的简易小车,获得项目整体设计的能力,并掌握多通道多样化传感器综合控制的方法。所以选择“基于单片机的智能小车循迹设计”一题作为尝试。 本次设计主要解决问题是如何实现所要求的四大功能,最后完成硬件实物的组装,并编制相关程序,使其实现功能的融合,做出具有预先要求功能的实物。 (二)课题目的 在我们基本掌握了51单片机的基本使用方法的基础之上,本学期开学初,单片机课程设计给了我们更大的挑战,课题的目的有以下几点。 (1)进一步熟练其他更加高级的单片机的使用方法、提高程序的编写能力 (2)掌握单片机系统外扩器件的连接与使用 (3)学会选择合适的传感器来完成任务 (4)掌握软件和硬件调试的基本技巧与方法 (三)设计思路

智能循迹小车设计

智能循迹/避障小车研究 工作报告 一、智能循迹小车程序结构框图 二、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。

红外自动循迹小车

目录 目录 0 摘要: (1) 1.任务及要求 (2) 1.1任务 (2) 2.系统设计方案 (2) 2.1小车循迹原理 (2) 2.2控制系统总体设计 (2) 3.系统方案 (3) 3.1 寻迹传感器模块 (3) 3.1.1红外传感器ST188简介 (4) 3.1.2比较器LM324简介 (4) 3.1.3具体电路 (4) 3.1.4传感器安装 (5) 3.2控制器模块 (6) 3.3电源模块 (7) 3.4电机及驱动模块 (7) 3.4.1电机 (7) 3.4.2驱动 (8) 3.5自动循迹小车总体设计 (9) 3.5.1总体电路图 (9) 3.5.2系统总体说明 (12) 4.软件设计 (12) 4.1 PWM控制 (12) 4.2 总体软件流程图 (13) 4.3小车循迹流程图 (14) 4.4中断程序流程图 (16) 4.5单片机测序 (18) 5.参考资料 (21)

自动循迹小车 摘要: 本设计是一种基于单片机控制的简易自动寻迹小车系统,包括小车系统构成软硬件设计方法。小车以AT89C51 为控制核心, 用单片机产生PWM波,控制小车速度。利用红外光电传感器对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。 关键词:单片机AT89C51 光电传感器直流电机自动循迹小车 Abstract : This design is a Simple Design of a smart auto-tracking vehicle which based on MSC control.The construction of the car ,and methods of hardware and software design are included. The car use AT89C51 as heart of centrol in this system. Then using PWM waves Produced by MCU to control car speed. By using infraraed sensor to detect the information of black track. The smart vehicle acquires the information and sends t hem to the MSC.Then the MSC analyzes the signals and controls the movements of t he motors. Which make the smart vehicle move along the given black line antomaticly. Keywords :infrared sensor ;MSC ;auto-tracking

智能循迹小车程序

智能循迹小车程序 Document number:BGCG-0857-BTDO-0089-2022

#include<> #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器 P3^2 sbit L=P3^3; //左边传感器 P3^3 //电机驱动口定义 sbit ENB=P1^0; //前轮电机停止控制使能 sbit ENA=P1^1; //后轮控制调速控制端口 sbit IN1=P1^2; //前轮 sbit IN2=P1^3; //前轮 sbit IN3=P1^4; //后轮

sbit IN4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例{ ENA = 1; }

小车循迹程序设计

武汉理工大学华夏学院课外自主实验分析报告 实验名称小车循迹控制程序设计 专业软件工程 班级 学号 姓名

第1章实验分析 (3) 1.1 实验设计题目 (3) 1.2 实验设计任务 (3) 1.2.1 总体任务 (3) 1.2.2 详细任务 (3) 1.2.3 设计要求 (3) 1.3软硬件运行环境及开发工具 (3) 第2章概要设计 (4) 2.1 小车软硬件设计原理 (4) 2.1.1 小车硬件设计原理 (4) 2.1.2小车软件设计原理 (4) 2.2 功能设计原理及实现方法 (4) 2.2.1小车前进功能实现 (4) 2.2.2 小车旋转功能实现 (4) 2.2.3 小车偏移修正功能设计 (4) 第3章详细设计 (9) 3.1 硬件设计与实现 (9) 3.2 系统主程序流程 (10) 3.3功能模块详细设计 (10) 3.3.1 起始点到中心点路线模块设计 (10) 3.3.2 中心点到D点路线模块设计 (10) 3.3.3 D点到黑色点路线模块设计 (11) 3.3.4 白色点到中心点模块设计 (12) 3.3.5 中心点到起始点路线模块设计 (13) 第4章系统调试与操作说明 (15) 4.1 系统调试 (15) 4.1.1 直线调试 (15) 4.1.2 达到黑色终点点调试 (15) 4.3 操作说明 (15) 第5章总结和体会 (16) 第6章参考文献 (16) 附录: (1)

课外实验设计计划 学生姓名:万志雄专业班级:软件1111 实验题目:小车循迹控制系统设计(路线3) 实验器材:1、硬件设备:MCS-51单片机最小系统板、四个QTI传感器、两个舵机、两个车轮、锂电池、ISP下载线、面包板; 2、软件环境:Keil C51、progisp下载器。 实验任务:(在规定的时间内完成下列任务) 1.完成硬件设计并连线,以MCS-51单片机为控制核心,根据4个QTI传感器采集到的数据控制舵机的运转,进而控制车轮的速度和方向,并画出硬件原理图和实验连线图;2.用C语言编程实现以下小车行驶线路(地图见下页): 起始点→中心点→D点,旋转360度→黑色点,旋转180度→原路返回。 时间安排:各时间段的任务可以交替进行 指导教师签名:2014 年 6 月30 日 教研室主任(或责任教师)签名:2014年 6 月30 日

智能循迹小车详细源代码程序MSPID

巡线车程序(完整版) 1 #ifndef _Macro.h_ 2 #define _Macro.h_ 3 #include 4 #include 5 #define uchar unsigned char 6 #define uint unsigned int 7 #define one 11.11 8 #define LMAX 1999 9 #define RMAX 3999 10 #define CPU_F ((double)8000000) 11 #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) 12 13 #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 14 #define PC 20 // 比例放大系数 15 #define IC 0 //积分放大系数 16 #define DC 85 //大系数 17 #define LEFTOUT TACCR1 18 #define RIGHTOUT TACCR2 19 #define SensorIn P5IN 20 #define F 5000//5000hz 21 #define Period (8000000/F) 22 #define EnableLeftPos P3OUT|=BIT1 23 #define UnenableLeftPos P3OUT&=~BIT1 24 25 #define EnableLeftNeg P3OUT|=BIT0 26 #define UnenableLeftNeg P3OUT&=~BIT0 27 28 #define EnableRightPos P3OUT|=BIT2 29 #define UnenableRightPos P3OUT&=~BIT2 30 31 #define EnableRightNeg P3OUT|=BIT3 32 #define UnenableRightNeg P3OUT&=~BIT3 33 34 #define Basic_Left 100//百分之八十 35 #define Basic_Right 100//Basic_Left 36 #define MAX (100) 37 #define MIN (-100) 38 #define foreward 1 39 #define backward 0

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

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

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

智能循迹小车详细制作过程

(穿山乙工作室) 三天三十元做出智能车 0.准备所需基本元器件 1).基本二驱车体一台。(本课以穿山乙推出的基本车体为例讲解) 2).5x7cm 洞洞板、单片机卡槽、51单片机、石英晶体、红色LED 、1K 电阻、10K 排阻各一个;2个瓷片电容、排针40个。 3).5x7cm 洞洞板、7805稳压芯片、红色LED 、1K 电阻各一个;双孔接线柱三个、10u 电解电容2个、排针12个、9110驱动芯片2个。 4).5x7cm 洞洞板、LM324比较器芯片各一个;红外对管三对、4.7K 电阻3个、330电阻三个、红色3mmLED 三个。 一、组装车体 基本设计思路: 1.基本车架(两个电机一体轮子+一个万向轮) 2.单片机主控模块 3.电机驱动模块(内置5V 电源输出) 4.黑白线循迹模块

(图中显示的很清晰吧,照着上螺丝就行了) 二、制作单片机控制模块 材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。 电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。我们也有焊接好的实物图供你参考。(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。我实物图中就没焊复位)

三、制作电机驱动模块 材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。 电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。 这里用了一个7805稳压芯片将+9V电压稳出+5V电压。 +9V

循迹小车(程序)

附录程序 目录 一、前言------------------------------------------------------------ 二、小车功能------------------------------------------------------ 三、元器件选择-------------------------------------------------- 四、I/O分配及硬件连接简图--------------------------------- 五、相关模块、算法--------------------------------------------- 六、系统框图------------------------------------------------------ 七、调试过程------------------------------------------------------ 八、小车图片资料--------------------------------------------------- 九、讲座所感------------------------------------------------------ 十、实习总结------------------------------------------------------

一、前言 感谢生产实习能给我们这次实现自己想法的机会,虽然实验条件异常简陋、资金投入非常有限,总体感觉我的队友们灰常灰常给力啊,我感觉我是抱到大腿了--王威,夏青、峰哥,团队气氛非常好,大家一起讨论,一起分工研究模块,最后一起解决问题调试程序,而且是不同的组合在不同阶段解决了不同的问题,大家精诚合作,各显身手,在奋战中给大三学年画上了圆满的句号。 之前我们本来商量是不是可以拿往年电子设计大赛的题目过来做,如果难度太大就算只实现一部分功能也算是成功完成了,结果研究一天后发现电子设计大赛的题目需要很长时间的知识积累啊,基本上都是准备一个月以上然后开工的,后来王威提议要不我们做个小车吧,超声波测距实现自动物体追踪,控制核心采用单片机,传感器采用广泛用于避障和测距的超声波传感器,前进和后退用普通伺服电机和电机驱动模块实现。在网上选购单片机最小系统的时候,发现有一家商铺的最小系统上集成了红外模块,就想着不要浪费了,就萌生了做遥控车的想法,这样系统可以实现两个功能一个是类似于“光影魔术手”一样的物体追踪功能,一个是遥控运行功能。 组队之后,我们一起讨论,从原理上进行可行性分析,最后一致讨论通过,然后就分组从网上搜集相关的资料,最后周一在淘宝上确定并购买了相关的器件,周三上午收到元器件,下午我们从零开始熟悉开发环境keil uvision3、翻看器件的技术文档、搞懂模块原理及使用方法、模块的编程调试、系统功能编程调试、系统程序整合、装车、系统功能优化。这是一个发现问题和解决问题的过程,乐趣也正在于此,我们相信一切问题皆有解决的方法,我们队员四个克服种种困难最终实现了既定的系统的功能,并且在找到带有舵机新车后添加了转弯功能,实在是意外之喜。 二、小车具体功能 1、小车系统功能简述 接通电源后,按下开机键,小车进入模式选择状态,按左三角键进入(超声波)物体追踪模式,小车可以与物体始终保持设定的距离,实现与手(或其它物体)同步运动,即小车随物体一起前进后退、加速减速,同时显示当下距离值。按右三角键进入红外遥控模式,可以遥控小车前进、后退、左转、右转、剎停。在两个模式下按关机键,可以终止当前模式,重新选择功能,终止当前模式后按关机键,彻底关机,必须按开机键系统才能重新工作。 控制系统方框图: 超声波测距追踪:

相关主题