有助于未来的无人驾驶汽车的安全保证。巡线小车是一种利用传感器来规避障碍物或者按照特定路线行驶的简单智能小车,它主要利用传感器搜集信号反馈给Arduino单片机进行处理,然后将信号按代码转变为相应电压输出给电机,同时小车将由于两后轮驱动电机电压不同形成差速从而转向来规避障碍物或按特定路线行驶。
d2-5型巡线小车安装顺序:
循迹小车沿着黑色跑道自动行驶,光线通过地面反射到光敏电阻上通过检测光敏电阻阻值变化能判断小车,如果检测到是黑色跑道,小车跑偏,电机就会减速甚至停转这一侧的绿色的LED熄灭,驱动小车向相反方向行驶,小车就能沿着跑道行驶了。
智能寻机器人之所以能够寻迹,主要是由前方的两对红外发射与接收探头来完成的。我们知道光有反射的特性。所以说当前方的红外发射出来的光线遇到物体时,就会形成反射的光线,而这个经反射的红外光线刚好被红外接收探头接收到。当红外接收探头接收到信号后,再将信号送到单片机由单片机内部的程序来控制机器人的运行情况。那么如何知道是黑线还是白线呢?原来是这样的。红外光线有一个反射特性。但对于不同的物体反射特性是不一样的,特别是对白色反光的物体,红外光线的反射量将会多一点。而对黑色不反光的物体,红外反射量将会大量的减少。那么我们就可利用这个特性来完成黑与白的判断。通过电路的合理安装,可以将这种接收到的红外光线变化量转换为电压值传送到主芯片(单片机)中。而单片机就可以进行各种智能化的控制了。例如,完成黑线的寻迹功能或白线的寻迹功能。
#include<reg52h>
#define uchar unsigned char
#define uint unsigned int
sbit moto1=P1^5;
sbit moto2=P1^6;
sbit moto3=P2^0;
sbit moto4=P2^1;
sbit en1=P1^7;
sbit en2=P2^2;
///////////////
sbit left1=P1^0;//
sbit left2=P1^1;
sbit left3=P1^2;
sbit mid=P1^3;//
sbit right1=P1^4;
sbit right2=P2^3;
sbit right3=P2^4;////////////////
sbit hled=P0^0;
sbit bled=P0^1;
sbit lled=P0^2;
sbit rled=P0^3;
sbit bizhang=P2^5;
uchar pro_head;
uchar pro_back;
uchar i;
uchar j; //前后占空比标志
void delay(uint z)
{
uchar i;
while(z--)
{
for(i=0;i<121;i++);
}
}
void init()
{
TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%6;
EA=1;
ET0=1;
TR0=1;
en1=1;
en2=1;
}
void time0(void) interrupt 1
{
i++;
j++;
if(i<=pro_back)
{
en1=1;
}
else
{
en1=0;
}
if(i==40)
{
en1=~en1;
i=0;
}
if(j<=pro_head)
{
en2=1;
}
else
{
en2=0;
}
if(j==40)
{
en2=~en2;
j=0;
}
TH0=(65536-100)/256;
TL0=(65536-100)%6;
}
void qianjin()/////////////////////
{
pro_back=15;
pro_head=5;
moto1=0;
moto2=0;
moto3=1;
moto4=0;
lled=1;
rled=1;
bled=1;
}
void turn_right1()//
{
pro_back=10;
pro_head=15;
moto1=0;
moto2=1;
moto3=1;
moto4=0;
}
。。。。。。。
void xunji() //
{
uchar flag;
if((left1==0)&&(left2==0)&&(left3==1)&&(mid==1)&&(right1==0)&&(right2==0)&&(right3==0))
{
flag=1;
}
else if((left1==0)&&(left2==0)&&(left3==1)&&(mid==0)&&(right1==0)&&(right2==0)&&(right3==0))
{
flag=2;
}
else if((left1==0)&&(left2==1)&&(left3==1)&&(mid==0)&&(right1==0)&&(right2==0)&&(right3==0))
{
flag=3;
}
、。。。。。。。。。。。。。
switch (flag)
{
case 0:qianjin();headled();
break;
case 1:turn_left1();leftled();
break;
case 2:turn_left2();leftled();
、。。。。。。。。。。。。。。。 break; default:backled();
break;
}
}
void main()
{
init();
delay(600);
jiance();
delay(300);
while(1)
{
if(bizhang==1)
{
xunji();
}
else
bz();
}
}、、、、、、、、、后面根据自己的实际情况填写吧!
以上就是关于智能巡线小车意义全部的内容,包括:智能巡线小车意义、d2-5型巡线小车安装顺序、巡线小车通过什么巡线等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)