智能小车可以追溯到移动机器人的研究,其始于60年代末期斯坦福研究院(SRI)的Nils Nilssen和Charles Roesn等人,在1966年至1972年中研制出了自主移动机器人Shakey。
我国的移动机器人或者说智能小车,起步随晚,但是也完成了课题,成果显著。
一般是用IF语句来判断各种情况,下边是一个小程序,你可以看看
#include"reg52h"
#define uint unsigned int
#define uchar unsigned char
//电机管脚
sbit MA1=P3^0;
sbit MA2=P3^1;
sbit MB1=P3^2;
sbit MB2=P3^3;
//循迹模块管脚
sbit led0=P1^0;
sbit led1=P1^1;
sbit led2=P1^2;
sbit led3=P1^3;
sbit led4=P1^4;
sbit led5=P1^5;
delay()
{
uint i;
for(i=0;i<100;i++);
}
void zhengzhuan()//正转
{
MA1=0;
MA2=1;
MB1=1;
MB2=0;
}
void fanzhuan()//反转
{
MA1=1;
MA2=0;
MB1=0;
MB2=1;
}
void zuozhuan()//左转弯
{
MA1=0;
MA2=1;
MB1=0;
MB2=0;
}
void youzhuan()//右转弯
{
MA1=0;
MA2=0;
MB1=1;
MB2=0;
}
stop()//停止
{
MA1=0;
MA2=0;
MB1=0;
MB2=0;
}
main()
{
while(1)
{
if(led1==0&&led2==0&&led3==1&&led4==0&&led5==0)
{
void zhengzhuan();//正转
}
if(led1==0&&led2==0&&led3==0&&led4==0&&led5==0)
{
void fanzhuan();//反转
}
if(led1==1&&led2==1&&led3==1&&led4==0&&led5==0)
{
delay();
void zuozhuan();//左转弯
}
if(led1==0&&led2==0&&led3==1&&led4==1&&led5==1)
{
delay();
void youzhuan();//右转弯
}
if(led1==0&&led2==1&&led3==1&&led4==1&&led5==0)
{
stop();//停止
}
if(led1==0&&led2==0&&led3==0&&led4==0&&led5==0)
{
void youzhuan();//原地打圈
}
if(led1==1&&led2==1&&led3==1&&led4==1&&led5==1)
{
delay();
void youzhuan(); //遇到T型区优先考虑向右转
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)