文档库 最新最全的文档下载
当前位置:文档库 › 智能小车循迹、避障、红外遥控C语言代码

智能小车循迹、避障、红外遥控C语言代码

智能小车循迹、避障、红外遥控C语言代码
智能小车循迹、避障、红外遥控C语言代码

//智能小车避障、循迹、红外遥控C语言代码

//实现功能有超声波避障,红外遥控智能小车,红外传感器实现小车自动循迹,1602显示小车的工作状态,另有三个独立按键分别控制三种状态的转换

//注:每个小车的引脚配置都不一样,要注意引脚的配置,但是我的代码注释比较多,看起来比较容易一点

#include

#include

#include"lcd.h"

#include

#define uchar unsigned char

#define uint unsigned int

uchar ENCHAR_PuZh1[8]=" run ";//1602显示数组

uchar ENCHAR_PuZh2[8]=" back ";

uchar ENCHAR_PuZh3[8]=" stop ";

uchar ENCHAR_PuZh4[8]=" left ";

uchar ENCHAR_PuZh5[8]=" right ";

uchar ENCHAR_PuZh6[8]=" xunji ";

uchar ENCHAR_PuZh7[8]=" bizhang";

uchar ENCHAR_PuZh8[8]=" yaokong";

#define HW P2 //红外传感器引脚配置P2k口

#define PWM P1 /* L298N管脚定义*/

/******************************

超声波引脚控制

******************************/

sbit ECHO=P3^2; //超声波接收引脚定义兼红外遥控按键state_total =2 sbit TRIG=P3^3; //超声波发送引脚定义

/////红外控制引脚配置

sbit KEY2=P3^7; //红外接收器数据线兼循迹按键state_total= 0

sbit KEY1=P3^4; //独立按键p3.4控制自动避障state_total=1

uchar state_total=3,state_2=0;//总状态控制全局变量0为自动循迹模块1为自动避障模块2为红外遥控

uchar state_1,DAT; //红外扫描标志位

uchar time_1=0,time_2=0;//定时器1中断全局变量time_ 2控制PWM脉冲计数time_1控制转弯延时计数也做延时一次0.005s

uchar time,timeH,timeL,state=0;//超声波测量缓冲变量state为超声波状态检测控制全局变量

uint count=0; //1602显示计数

/**************************/

unsigned char IRCOM[7]; //红外接收头接收数据缓存IRCOM[2]存放的为数据unsigned char Number,distance[4],date_data[8]={0,0,0,0,0,0,0,0}; //红外接收缓存变量

/***********/

void IRdelay(char x); //x*0.14MS 红外头专用delay

void run();

void back();

void stop();

void left_90();

void left_180();

void right_90();

void delay(uint dat); //

void init_test();

void delay_100ms(uint ms) ;

void display(uchar temp); //超声波显示驱动

void bizhang_test();

void xunji_test();

void hongwai_test();

void Delay10ms(void);

void init_test()//定时器0 1 外部中断0 1 延时初始化

{

TMOD=0x11; //设置定时器0 1 工作方式1 16位初值定时器TH1=0Xfe; //装入初值定时一次为0.0005s 2000hz

TL1=0x0c;

TF0=0; //定时器0方式1计数溢出标志

TF1=0; //定时器1方式1计数溢出标志

ET0=1; //允许定时器0中断溢出

ET1=1; //允许定时器1中断溢出

EA=1; //开总中断

if(state_total==1)//为超声波模块时初始化

{

TRIG=0; //发射引脚低电平

ECHO=0; // 接收引脚低电平

EX0=0; //关闭外部中断

IT0=1; //由高电平变低电平,触发外部中断0

}

if(state_total==2) //红外遥控初始化

{ IT1=1; //外部中断1为负跳变触发

EX1=1; //允许外部中断1

TRIG=1; // 3.3为高电平I/O口初始化

}

delay(60); //等待硬件操作

}

void main()

{ uint i;

delay(50);

init_test();

TR1=1; //开启定时器1

LCD1602_Init() ;

delay(50);

while(state_2==0)

{

if(KEY1==0) //检测按键s1是否按下

{

Delay10ms(); //消除抖动

if(KEY1==0)

{

state_total=0; //总状态定义0为自动循迹模块1为自动避障模块2为红外遥控

while((i<30)&&(KEY1==0)) //检测按键是否松开

{

Delay10ms();

i++;

}

i=0;

}

}

if(TRIG==0) //检测按键s2是否按下

{

Delay10ms(); //消除抖动

if(TRIG==0)

{

state_total=1; //总状态定义0为自动循迹模块1为自动避障模块2为红外遥控

while((i<30)&&(TRIG==0)) //检测按键是否松开

{

Delay10ms();

i++;

}

i=0;

}

}

if(KEY2==0) //检测按键s3是否按下

{

Delay10ms(); //消除抖动

if(KEY2==0)

{

state_total=2; //总状态定义0为自动循迹模块1为自动避障模块2为红外遥控

while((i<30)&&(KEY2==0)) //检测按键是否松开

{

Delay10ms();

i++;

}

i=0;

}

}

}

init_test();

delay(50); //等待硬件操作50us

TR1=0; //关闭定时器1

if(state_total==1)

{

//SPEED=90; //自动循迹速度控制高电平持续次数占空比为10的低电平bizhang_test();

}

if(state_total==0)

{

// SPEED=98; //自动循迹速度控制高电平持续次数占空比为40的低电平

xunji_test();

}

if(state_total==2)

{

//SPEED=98; //自动循迹速度控制高电平持续次数占空比为40的低电平

hongwai_test();

}

}

void init0_suspend(void) interrupt 0 //3 为定时器1的中断号 1 定时器0的中断号0 外部中断1 2 外部中断0 4 串口中断

{

timeH=TH0; //记录高电平次数

timeL=TL0; //

state=1; //标志状态为1,表示已接收到返回信号

EX0=0; //关闭外部中断0

}

void time0_suspend0(void) interrupt 1 //3 为定时器1的中断号 1 定时器0的中断号0 外部中断1 2 外部中断0 4 串口中断

{

if(state_total==1) // 自动避障初值装入

{ TH0=0X00; //装入初值

TL0=0x00;

}

if(state_total==0) //自动循迹初值装入

{ TH0=0Xec; //装入初值定时一次0.005s 200hz TL0=0x78;

time_1++; //控制转弯延时计数

}

}

void IR_IN(void) interrupt 2

{

unsigned char j,k,N=0;

EX1 = 0;

IRdelay(5);

if (TRIG==1)

{ EX1 =1;

return;

}

//确认IR信号出现

while (!TRIG) //等IR变为高电平,跳过9ms的前导低电平信号。{IRdelay(1);}

for (j=0;j<4;j++) //收集四组数据

{

for (k=0;k<8;k++) //每组数据有8位

{

while (TRIG) //等IR 变为低电平,跳过4.5ms的前导高电平信号。

{IRdelay(1);}

while (!TRIG) //等IR 变为高电平

{IRdelay(1);}

while (TRIG) //计算IR高电平时长

{

IRdelay(1);

N++;

if(N>=30)

{EX1=1;

return;} //0.14ms计数过长自动离开。

} //高电平计数完毕

IRCOM[j]=IRCOM[j] >> 1; //数据最高位补“0”

if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //数据最高位补“1”

N=0;

}//end for k

}//end for j

if(IRCOM[2]!=~IRCOM[3]) //判断数据码与数据反码是否正确真确返回

{ EX1=1;

return;

}

EX1 = 1;

}

void time1_suspend1(void) interrupt 3 //3 为定时器1的中断号 1 定时器0的中断号0 外部中断1 2 外部中断0 4 串口中断

{

TH1=0Xec; //装入初值定时一次为0.0005s 2000hz

TL1=0x78;

time_2++; //控制PWM 脉冲计数

if(state_total!=3) //判断进入按键是否按下进入状态1 避障或者0 循迹

{

state_2=1; //退出按键判断

}

/* if(time_2>100)

{

time_2=0;

}

else if(time_2<=SPEED)

{

PWM_g; //频率为2000hz的占空比为高电平的方波

}

else

{ PWM_l; //为低电平

} */

}

void IRdelay(unsigned char x) //x*0.14MS用于红外遥控

{

unsigned char i;

while(x--)

{

for (i = 0; i<13; i++) {}

}

}

void Delay10ms(void) //用于按键检测误差

{

unsigned char a,b,c;

for(c=1;c>0;c--)

for(b=38;b>0;b--)

for(a=130;a>0;a--);

}

void delay(uint dat) //延时函数用于初始化

{

uint i;

for(i=dat;i>0;i--)

{

_nop_();

}

}

void delay_100ms(uint ms) //延时函数用于超声波{

uint i,j;

for(i=ms;i>0;i--)

for(j=200;j>0;j--)

{

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

}

//小车前进

void run(void)

{

PWM=0X56;

}

//小车后退

void back(void)

{

PWM=0XA9;

TR1=1;

time_2=0;

while(time_2<=100); //延时0.2s

TR1=0;

}

//小车停止

void stop(void)

{

PWM=0X00;

}

//小车左转180

void left_180()

{

//PWM=0X59; //左两轮反转,右两轮正转

PWM=0X50; //右两轮正转

TR1=1;

time_2=0;

while(time_2<=150); //延时0.2s

time_2=0;

while(time_2<=150); //延时0.2s

}

//小车左转90

void left_90(void)

{

PWM=0X59; //左两轮反转,右两轮正转

//PWM=0X50; //右两轮正转

TR0=1;

time_1=0;

while(time_1<=20); //延时0.2s

TR0=0;

}

//小车左转120

void left_120(void)

{

PWM=0X59; //左两轮反转,右两轮正转

// PWM=0X50; //右两轮正转

TR0=1;

time_1=0;

while(time_1<=60); //延时0.4s

TR0=0;

}

//小车右转90

void right_90(void)

{

PWM=0XA6; //左两轮正转右两轮反转

//PWM=0X06; //左两轮正转

TR0=1;

time_1=0;

while(time_1<=20); //延时0.2s

TR0=0;

}

//小车右转120

void right_120(void)

{

PWM=0XA6; //左两轮正转右两轮反转// PWM=0X06; //左两轮正转

TR0=1;

time_1=0;

while(time_1<=60); //延时0.4s

TR0=0;

}

/************************************

自动避障模块

************************************/

void display(uchar temp) //判断障碍距离小车的距离,左转180,前进,峰呤器报警1602显示

{ uint ge,shi,bai,i;

if((temp<=20)&&(temp>2)) //小于15厘米小车后退再左转

{

back();

left_180();

}

if(count>=20)

{bai=temp/100; //1602显示数据

date_data[5]=bai;

shi=(temp%100)/10;

date_data [6]=shi;

ge=temp%100%10;

date_data[7]=ge;

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(date_data[i]+48);

}

count=0;

}

}

void bizhang_test()

{ int i,j=0;

uchar distance_dat;

delay(50);

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh7[i]);

}

while(1)

{

run();

EA=0; //关总中断

TRIG=1; // 发射20us脉冲信号

delay(30);

TRIG=0;

while(ECHO==0); //等待接收信号

state=0; //标志清零

EA=1; //开总中断

EX0=1; //打开外部中断0 P3.2外部中断0引脚此时为高电平

TH0=0x00; //定时器0 初值

TL0=0x00;

TF0=0; // 定时器0方式1计数溢出标志

TR0=1; // 定时器0方式1启动定时器1

while(state!=1);

EX0=0; // 关闭外部中断0

TR0=0; // 关闭定时器0中断

TF0=0; // 定时器1方式1计数溢出标志

if(state==1) //检测到障碍物计算离障碍物的距离

{

time=(timeH*4.352+timeL*0.017); //设定超声波的速度为340m/s 定时计数一次1us

distance_dat=time;

}

else //未检测到障碍物无返回信号

{

distance_dat=0;

}

distance[j]=distance_dat;

j++;

if(j==3)

{ if(distance[0]>distance[1])

{}

else

{

distance[0]=distance[1];

}

if(distance[0]>distance[2])

{}

else

{

distance[0]=distance[2];

}

if(distance[0]>distance[3])

{}

else

{

distance[0]=distance[3];

}

distance_dat=distance[0];

j=0;

display(distance_dat);

}

count++;

}

}

void xunji_test()

{ int i;

delay(50);

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh6[i]);

}

while(1)

{

// delay(10);

state_1=HW;

DAT=state_1&(0x0f); //判断低4位的状态每隔5ms检测一次switch(DAT)

{

case 0x00:

run();

break;

case 0x01:

right_120();

break;

case 0x02:

right_90();

break;

case 0x04:

left_90();

break;

case 0x06:

run();

break;

case 0x03:

right_120();

break;

case 0x08:

left_120();

break;

case 0x0c:

left_120();

break;

default:

run();

break;

}

}

}

void hongwai_test()

{ int i;

delay(60);

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh8[i]);

}

// TR1=1;

while(1)

{

Number=IRCOM[2];

switch(Number)

{

case 0x18:

PWM=0X56; //前进

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh1[i]);

}

break;

case 0x08:

PWM=0X50; //右两轮正转左转

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh4[i]);

}

break;

case 0x1c:

PWM=0X00;

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh3[i]);

}

break;

case 0x5a:

PWM=0X06; //左两轮正转右转

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh5[i]);

}

break;

case 0x52:

PWM=0XA9; //后退

for(i=0;i<8;i++)

{

LCD1602_WriteCom(0x80+i);

LCD1602_WriteData(ENCHAR_PuZh2[i]);

}

break;

default:break;

}//display(IRCOM[2]);

}

}

基于51单片机设计智能避障小车

单片机设计智能避障小车 摘要 利用红外对管检测黑线与障碍物,并以STC89C51单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由L298N 驱动电路完成,速度由单片机输出的PWM波控制。本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望并附带各个模块的电路原理图,和本设计实物图,及完整的C语言程序。 关键词:智能小车;51单片机;L298N;红外避障;寻迹行驶 abstract Using infrared detection black and obstacles to the line and STC89C51 microcontroller as the control chip to control the speed of the electric car and steering, so as to realize the function of automatic tracking and obstacle avoidance. Which the car driven by the L298N driver circuit is completed, the speed of the microcontroller output PWM wave control. This article first introduces the development of the intelligent car prospect, then introduces the design idea, the subject selection of each module circuit and working principle of the circuit, the design process of the subject is summarized and prospect with each module circuit principle diagram, and the real figure design, and complete C language program. Key words: smart car; 51 MCU; L298N; infrared obstacle avoidance; track driving

智能循迹避障小车设计

毕业设计(论文) 课题名称智能循迹避障小车设计 学生姓名 XXX 学号00000000000000 系、年级专业 XXXXXXXXXXXXXXXXXXX 指导教师 XXX 职称讲师 2016年5月18日

摘要 自从首个工业智能设施诞生以来,智能设施的发展已经扩展到了包括机器、刻板、电子、冶金、交通、宇航、国防等产业领域。近年来智能设施水平迅速上升,大大的改变了大多数人类的生活方式。在人类的智能化技术不断飞速进步的过程中,能够取代手动的机器人在更加人性化的同时也越来越智能化。 本文主要讨论了基于单片机的智能循迹避障小车的设计。智能自动循迹制导系统在驱动电路的基础上,实现自动跟踪汽车导线,而智能避障是使用红外传感器测距系统来实现功能来规避障碍。智能寻光避障小车是一种采用了多种传感器,以单片机为核心,电力马达驱动和自动控制为技术,根据程序预先确定的模式,而不是人工管理来实现避障导航的自动跟踪高新技术。这项技术已广泛应用于智能无人驾驶、智能机器人、全自动工厂等许多领域。 这个设计使用STC89C52单片机[1]作为小车的智能核心,使用红外传感器对智能小车跟踪模块识别引导线跟踪,收集模拟信号并将信号转换成为数字信号,使用C 语言编写程序,设计的电路结构简单,易于实现,时效性高。 关键词:智能化;单片机最小系统;传感器;驱动电路

ABSTRACT From 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

智能循迹小车设计与实现

智能循迹小车设计与实现 摘要本文介绍的是基于单片机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; }

智能避障小车设计

江阴职业技术学院项目设计报告 项目:超声波避障小车的设计与制作 专业应用电子技术专业 学生姓名 班级10应用电子()班 学号 指导教师 完成日期

智能小车是一种能够通过编程手段完成特定任务的小型化机器人,它具有制作成本低廉,电路结构简单,程序调试方便等优点。由于具有很强的趣味性,智能小车深受广大机器人爱好者以及高校学生的喜爱。 本论文介绍的是具有自动避障功能的智能小车的设计与制作(以下简称智能小车),论文对智能小车的方案选择,设计思路,以及软硬件的功能和工作原理进行了详细的分析和论述。经实践验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案正确、可行,各项指标稳定、可靠。

Smart cars can be programmed to perform a specific task means the miniaturization of robot, it has to make cost is low, circuit simple structure, convenient program test. Because of it has strong interest, intelligent robot car favored by the majority of the university students' enthusiasts and love. This paper introduces the is a automatic obstacle avoidance function of intelligent car design and production (hereinafter referred to as the smart car), the thesis to the intelligence of the car scheme selection, design idea, and the implementation of hardware and software function and working principle of a detailed analysis and discusses. After practice acceptance test, this intelligent car circuit structure is simple, convenient debug, fast, flexible system reflect, correct and feasible design scheme, each index is steady and reliable.

智能避障小车设计--毕业设计完整版-附程序编程

毕业设计设计题目:智能避障小车设计 系别:机电工程系 班级:测控技术与仪器 姓名:XXX 指导教师: XXX

智能小车设计 摘要 随着近年来机器人的智能水平不断提高,其中机器人的感觉传感器种类越来越多,而视觉传感器成为自动行走和驾驶的重要部件。智能小车可应用于无人工厂,仓库,服务机器人等领域解决一些高危环境下的难题。同时单片机技术的迅速发展使得机器人的智能控制更加智能化,人性化。 该设计是利用光电传感器以一定的频率发射红外线来检测障碍物,然后将检测信号发送到STC89C52单片机,并以STC89C52单片机为控制芯片进而电动小汽车的速度及转向,以此实现自动避障的功能。其中小车驱动由L298N驱动电路完成,速度由单片机输出的PWM波调速控制。本设计结构简单,较容易实现,与实际相结合,现实意义很强,但具有高度的智能化、人性化,一定程度体现了智能。 关键词:智能小车; STC89C52单片机; L298N; PWM波

Design Of Smart Car Abstract Along with the robot's intelligent level rises ceaselessly, the types of robot sensory sensor are more and more, and the vision sensor have become the important part in the automatic walking and driving .Smart car can be applied to unmanned factory, warehouse, service robot and etc. to solve some high risk environment problems,At the same time,The rapid development of MCS technology makes the intelligent control of robot more intelligent ang humane. This design uses a photoelectric sensor sending a certain frequency transmitting infrared to detect obstacles, and then sends a detection signal to a STC89C52 MCS. While the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52 MCS.This design is practical ,easy realization and simple in the structure, but highly intelligent, humane, Intelligent in some degree. Key words:Smart Car; STC89C52 MCS; L298N; PWM Signa

毕业设计智能循迹避障小车设计

毕业设计智能循迹避障 小车设计 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#

单片机系统课程设计 轮式移动机器人的设计 学院:通信与电子工程学院 班级:电子131 姓名:初清晨 学号: 13 同组成员:孟庆阳张轩 指导老师:王艳春 日期:2015年12月24日

组员分工 1、组长:张轩,实物焊接,报告整理,程序设计 2、组员:孟庆阳,实物焊接,仿真测试,报告整理 3、组员:初清晨,实物焊接,报告整理,仿真测试

目录

摘要 随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。智能电动小车就是其中的一个体现。设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。因此,智能电动小车具有再编程的特性,是机器人的一种。 本设计采用AT89S52单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。 关键词:智能小车;STC89C52单片机;L9110;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and the road obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car; STC89C52 MCU; L298N; Infrared Emitting Diode 第一章绪论 智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD已能做到自动聚焦。但CCD传

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

避障小车制作讲解

智能避障小车实验报告与总结 学院:机电工程学院 专业年级:09级电气工程及其自动化 队员姓名:

智能避障小车实验报告与总结 摘要:本设计制作的是单片机控制的自动避障小汽车,以单片机为小汽车的“大脑”,红外线探头为小汽车的“眼睛”,电机为小汽车的“双足”。“大脑”控制“眼睛”去看前方是否有障碍物,当“眼睛”看到障碍后,由大脑来控制“双足”的行动方向。从而实现小汽车的自动避障。 关键词: 单片机红外线传感器避障小车 一、设计任务与要求 小车从无障碍地区启动前进,感应前进路线上的障碍物后,根据障碍物的位置选择下一步行进方向。 二、方案设计与论证 本设计制作的是单片机控制的自动避障小汽车,以单片机为小汽车的“大脑”,红外线探头为小汽车的“眼睛”,电机为小汽车的“双足”。“大脑”控制“眼睛”去看前方是否有障碍物,当“眼睛”看到障碍后,由大脑来控制“双足”的行动方向。从而实现小汽车的自动避障。电路原理简单,结构明了。如图为整个系统的框图。 根据设计要求,我们的自动避障小车主要由六个模块构成:车体框架、主控模块、探测模块、电机驱动模块组成。各模块分述如下: 1、小车车体 在设计车体框架时,我们有两套起始方案,自己制作和直接购买车身。 方案二:自己设计制作车架自己制作小车底盘,用两个直流减速电机作为主动轮,利用两电机的转速差完成直行、左转、右转、左后转、右后转、倒车等动作。减速电机扭矩大,转速较慢,易于控制和调速,符合避障小车的要求。而且自己制作小车框架,可以根据电路板及传感器安装需求设计空间,使得车体美观紧凑。但这种方法费时费力且成本较高。 方案二:购买半成品小车底盘改装,此种方案方便简洁而且价格低廉,小车各个机械部分安装完整,只需稍加改装就可以使用。而且我们主要是目的是小车控制系统的设计,因此我们采取该方案。 2、主控板 小车的主控系统,即小车的大脑,我们采用了STC89C52单片机制作的最小系统。 3、避障模块 避障方案选择,方案一:采用超声波避障。超声波受环境影响较大,电路复杂,而且地面对超声波的反射,会影响系统对障碍物的判断。

毕业设计+智能循迹避障小车设计之令狐文艳创作

单片机系统课程设计 令狐文艳 轮式移动机器人的设计 学院:通信与电子工程学院 班级:电子131 姓名:初清晨 学号:2013131013 同组成员:孟庆阳张轩 指导老师:王艳春 日期:2015年12月24日

组员分工 1、组长:张轩,实物焊接,报告整理,程序设计 2、组员:孟庆阳,实物焊接,仿真测试,报告整理 3、组员:初清晨,实物焊接,报告整理,仿真测试

目录 摘要1 第一章绪论2 1.1智能小车的意义和作用2 1.2智能小车的现状3 第二章方案设计与论证3 2.1 主控系统3 2.2 电机驱动模块4 2.3 循迹模块5 2.4 避障模块6 2.5 机械系统7 2.6电源模块7 第三章硬件设计7 3.1 AT89S52单片机的简介8 3.2总体设计11 3.3驱动电路12 3.4信号检测模块13 3.5主控电路14 第四章软件设计15 4.1主程序框图15 4.2电机驱动程序15 4.3循迹模块16 4.4避障模块20 结束语25 致谢26 附录一循迹加红外避障综合程序28 附录二实物图32

摘要 随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。智能电动小车就是其中的一个体现。设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。因此,智能电动小车具有再编程的特性,是机器人的一种。 本设计采用AT89S52单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。 关键词:智能小车;STC89C52单片机;L9110;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and theroad obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car; STC89C52 MCU; L298N;Infrared Emitting Diode 第一章绪论 1.1智能小车的意义和作用 自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人劳动的机器一直是人类的梦想。 随着科学技术的发展,机器人的感觉传感器种类越来越多,其中视觉传感器成为自动行走和驾驶的重要部件。视觉的典型应用领域为自主式智能导航系统,对于视觉的各种技术而言图像处理技术已相当发达,而基于图像的理解技术还很落后,机器视觉需要通过大量的运算也只能识别一些结构化环境简单的

智能循迹小车分析方案

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

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

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

智能循迹避障小车方案设计书

封面

作者:PanHongliang 仅供个人学习 目录 摘要………………………………………………………………………………………2 ABSTRACT………………………………………………………………………………

…2 第一章绪论 (3) 1.1智能小车的意义和作用 (3) 1.2智能小车的现状 (3) 第二章方案设计与论证 (4) 2.1 主控系统 (4) 2.2 电机驱动模块 (4) 2.3 循迹模块 (6) 2.4 避障模块 (7) 2.5 机械系统 (7) 2.6电源模块 (8) 第三章硬件设计 (8) 3.1总体设计 (8) 3.2驱动电路 (9) 3.3信号检测模块 (10) 3.4主控电路 (11) 第四章软件设计 (12) 4.1主程序模块 (12) 4.2电机驱动程序 (12) 4.3循迹模

块 (13) 4.4避障模块 (15) 第五章制作安装与调试 (18) 结束语 (18) 致谢……………………………………………………………………………………… 19 参考文献 (19) 智能循迹避障小车 摘要:利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的速度及转向,从而实现自动循迹避障的功能。其中小车驱动由 L298N驱动电路完成,速度由单片机输出的PWM波控制。 关键词:智能小车;STC89C52单片机; L298N;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and theroad obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car。STC89C52 MCU。L298N。Infrared Emitting Diode 第一章绪论 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;} //右电机前转

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

毕业设计+智能循迹避障小车设计

单片机系统课程设计轮式移动机器人的设计 学院:通信与电子工程学院 班级:电子131 姓名:初清晨 学号: 2013131013 同组成员:孟庆阳张轩 指导老师:王艳春 日期: 2015年12月24日

组员分工 1、组长:张轩,实物焊接,报告整理,程序设计 2、组员:孟庆阳,实物焊接,仿真测试,报告整理 3、组员:初清晨,实物焊接,报告整理,仿真测试

目录 摘要 (1) 第一章绪论 (2) 1.1智能小车的意义和作用 (2) 1.2智能小车的现状 (3) 第二章方案设计与论证 (3) 2.1 主控系统 (3) 2.2 电机驱动模块 (4) 2.3 循迹模块 (5) 2.4 避障模块 (6) 2.5 机械系统 (7) 2.6电源模块 (7) 第三章硬件设计 (7) 3.1 AT89S52单片机的简介 (8) 3.2总体设计 (11) 3.3驱动电路 (12) 3.4信号检测模块 (13) 3.5主控电路 (14) 第四章软件设计 (15) 4.1主程序框图 (15) 4.2电机驱动程序 (15) 4.3循迹模块 (16) 4.4避障模块 (20) 结束语 (25) 致谢 (26) 附录一循迹加红外避障综合程序 (28) 附录二实物图 (32)

摘要 随着计算机、微电子、信息技术的快速进步,智能化技术的开发速度越来越快,智能度越来越高,应用范围也得到了极大的扩展。智能作为现代的新发明,是以后的发展方向,它可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等用途。智能电动小车就是其中的一个体现。设计者可以通过软件编程实现它的行进、循迹、停止的精确控制以及检测数据的存储、显示,无需人工干预。因此,智能电动小车具有再编程的特性,是机器人的一种。 本设计采用AT89S52单片机加电机驱动电路和红外遥控及循迹模块还有红外接收一体化传感器设计而成,采用模块化的设计方案,运用红外遥控器控制小车的前进、后退、左转、右转、启动和停止。 关键词:智能小车;STC89C52单片机;L9110;红外对管 Intelligent tracking and obstacle-avoid car Abstract:Based infrared detection of black lines and the road obstacles, and use a STC89C52 MCU as the controlling core for the speed and direction, A electronic drived, which can automatic track and avoid the obstacle, was designed and fabricated. In which, the car is drived by the L298N circuit, its speed is controlled by the output PWM signal from the STC89C52. Keywords: Smart Car; STC89C52 MCU; L298N; Infrared Emitting Diode

相关文档
相关文档 最新文档