50分悬赏循迹小车完整程序,

作者&投稿:阚园 (若有异议请与网页底部的电邮联系)
求一个四驱智能小车四路循迹的完美程序,51或者avr的,50悬赏!~

#include
#define uint unigned int
#define uchar unsigned char

sbit SK=P3^7;/*声控*/

/*sbit bee=P3^6;蜂鸣器*/

sbit Z1=P0^0;
sbit Z2=P0^1;
sbit Y1=P0^2;
sbit Y2=P0^3;/*电机*/

sbit L1=P1^7;
sbit L2=P1^6;
sbit L3=P1^5;
sbit L4=P1^4;
sbit L5=P1^3;
sbit L6=P1^2;
sbit L7=P1^1;
sbit L8=P3^1;
sbit L9=P3^0;
sbit L10=P3^2; /*红外对管*/

/*void delay(int t)
{
int i;
while(t--)
for(i=0;i<121;i++);
} */

void qianjin()
{
Z1=0;Z2=1;
Y1=0;Y2=1;
}

void zuozhuan()
{
Z1=0;Z2=1;
Y1=1;Y2=0;
}

void youzhuan()
{
Z1=1;Z2=0;
Y1=0;Y2=1;
}

/*void houtui()
{
Z1=1;Z2=0;
Y1=1;Y2=0;
} */

void tingzhi()
{
Z1=1;Z2=1;
Y1=1;Y2=1;
}

/*void xunji1()
{
if(L3==0&&L4==0&&L5==0)
{qianjin();}
if((L7==1||L6==1)&&L2==0)
{zuozhuan();}
else if(L6==0&&L2==1)
{youzhuan();}
else if(L3==1||L4==1||L5==1)
{qianjin();}
} */

void xunji4()
{
while(1)
{if((L4==1||L5==1)&&L1==0)
{zuozhuan();}
else if(L5==0&&(L1==1||L2==1))
{youzhuan();}
else if(L3==1&&L4==1)
{qianjin();}
else if(L7==1||L6==1)
{tingzhi();while(SK==0);}
if(L1==1&&L2==1&&L3==1&&L4==1&&L5==1&&L6==1&&L7==1)
tingzhi();break;
}

}

/*void xunji2()
{
if((L1==1||L2==1)&&L7==0)
{zuozhuan();}
else if((L7==1||L6==1)&&L1==0)
{youzhuan();}
else if(L4==0&&L5==0)
{qianjin();}
}

void xunji3()
{
if(L8==0&&L9==1)
{zuozhuan();}
else if(L8==1&&L9==0)
{youzhuan();}
else if(L9==0&&L8==0)
{houtui();}
}



void huijia()
{
qianjin();delay(2500);tingzhi();delay(100);
zuozhuan();delay(500);tingzhi();delay(100) ;
houtui();delay(1700);tingzhi();delay(300) ;
youzhuan();delay(800);tingzhi();delay(100);
houtui();delay(1000);tingzhi();delay(100000) ;
} */
void main(void)
{
/*while(1)
{

xunji1();
if(L2==1&&L4==1&&L6==1) //一区循迹
break;
}
bee=0;
delay(50);
bee=1;

qianjin();
delay(1000);

while(1)
{
xunji2();//二区循迹
if(L7==1&&L6==1&&L5==1)
break;
}
bee=0;
delay(50);
bee=1;
qianjin();
delay(300);

youzhuan();
delay(200);
qianjin();//三区壁障
delay(400);
zuozhuan();
delay(200);
qianjin();
delay(400);
youzhuan();
delay(200);
qianjin();
delay(100);
bee=0;
delay(200);
bee=1;

*/


xunji4();






/* while(1)
{



houtui();
if((L8==1||L3==1)&&L9==0)
youzhuan();
if((L9==1||L5==1)&&L8==0)
zuozhuan();
if(L10==1&&L8==0)
zuozhuan();
if(L8==1&&L9==1)
tingzhi();

}
*/


}



这个是七路循迹 简单改改就是四路

http://wenku.baidu.com/view/3e944f175f0e7cd184253680.html
自己去看,是我的文库里面的一个东西,就是做寻迹车的,后面有3个程序参考

智能小车程序

#include "reg52.h"
#define det_Dist 2.55 //单个脉冲对应的小车行走距离,其值为车轮周长/4
#define RD 9 //小车对角轴长度
#define PI 3.1415926
#define ANG_90 90
#define ANG_90_T 102
#define ANG_180 189

/*============================全局变量定义区============================*/
sbit P10=P1^0; //控制继电器的开闭
sbit P11=P1^1; //控制金属接近开关
sbit P12=P1^2; //控制颜色传感器的开闭
sbit P07=P0^7; //控制声光信号的开启
sbit P26=P2^6; //接收颜色传感器的信号,白为0,黑为1
sbit P24=P2^4; //左
sbit P25=P2^5; //右 接收左右光传感器的信号,有光为0

unsigned char mType=0; //设置运动的方式,0 向前 1 向左 2 向后 3 向右
unsigned char Direction=0; //小车的即时朝向 0 朝上 1 朝左 2 朝下 3 朝右
unsigned sX=50; unsigned char sY=0; //小车的相对右下角的坐标 CM(sX,sY)

unsigned char StartTask=0; //获得铁片后开始执行返回卸货任务,StartTask置一
unsigned char Inter_EX0=0; // 完成一个完整的任务期间只能有一次外部中断
// Inter_EX0记录外部中断0的中断状态
// 0 动作最近的前一次未中断过,
// 1 动作最近的前一次中断过

unsigned char cntIorn=0; //铁片数
unsigned char bkAim=2; //回程目的地,0为A仓库,1为B仓库,2为停车场,
//(在MAIN中接受铁片颜色判断传感器的信号来赋值)
unsigned char Light_Flag=0;//进入光引导区的标志(1)

unsigned int cntTime_5Min=0;//时间周期数,用于 T0 精确定时
unsigned int cntTime_Plues=0; //霍尔开关产生的脉冲数
/*============================全局变量定义区============================*/

/*------------------------------------------------*/
/*-----------------通用延迟程序-------------------*/
/*------------------------------------------------*/

void delay(unsigned int time) // time*0.5ms延时
{
unsigned int i,j;

for(j=0;j<time;j++)
{
for(i=0;i<60;i++)
{;}
}
}

/*-----------------------------------------------*/
/*-------------------显示控制模块----------------*/
/*-----------------------------------------------*/

/*数码管显示,显示铁片的数目(设接在P0,共阴)*/
void Display(unsigned char n)
{
char Numb[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x37,0x77};

P0=Numb[n];

}

/*-----------------------------------------------*/
/*-------------------传感器模块------------------*/
/*-----------------------------------------------*/

/*光源检测程序: */
/*用于纠正小车运行路线的正确性*/
unsigned char LightSeek()
{ void Display(unsigned char);

bit l,r;
l=P24;
r=P25;

if(l==0&&r==1)
{
//Display(1);
return (3); //偏左,向右开
}
if(r==0&&l==1)
{
//Display(3);
return(1); //偏右,向左开

}
if((l==1&&r==1)||(l==0&&r==0))
{//Display(9);
return(0); //没有偏离,前进
}

}

/*铁片检测程序: */
/*判断铁片的颜色,设定bkAim,0为A仓库,1为B仓库,2为停车场*/
void IornColor()
{
delay(4000);
bkAim=(int)(P26);
Display((int)(P26)+2);
}

/*-----------------------------------------------*/
/*------------------运动控制模块-----------------*/
/*-----------------------------------------------*/

/*====基本动作层:完成基本运动动作的程序集====*/

/*运动调整程序: */
/*对小车的运动进行微调*/
void ctrMotor_Adjust(unsigned char t)
{
if(t==0)
{
P2=P2&240|11; //用来解决两电机不对称的问题
delay(6);
}
if(t==3)
{
P2=P2&250; //向左走
delay(1);
}
if(t==1)
{
P2=(P2&245);
delay(1); //向右走
}

P2=((P2&240)|15);
delay(10);
}

/*直走程序: */
/*控制小车运动距离,dist为运动距离(cm),type为运动方式(0 2)*/
/*只改变小车sX 和 sY的值而不改变Direction的值. */
void ctrMotor_Dist(float dist,unsigned char type)
{unsigned char t=0;
mType=type;
P2=((P2&240)|15);
cntTime_Plues=(int)(dist/det_Dist);

while(cntTime_Plues)
{
if(Inter_EX0==1&&StartTask==0)
{
cntTime_Plues=0;
break;
}
if(Light_Flag==1) t=LightSeek();

if(type==0) //向前走
{
P2=P2&249;
delay(40);
ctrMotor_Adjust(t);
}
if(type==2) //向后退
{
P2=P2&246;
delay(50);
ctrMotor_Adjust(t);
}

P2=((P2&240)|15);
if(mType==2) delay(60);//刹车制动 0.5ms
else delay(75);
}

}

/*拐弯程序: */
/*控制小车运动角度,type为运动方式(1 3) */
/*只改变小车Direction的值而不改变sX 和 sY的值*/
void ctrMotor_Ang(unsigned char ang,unsigned char type,unsigned char dir)
{
unsigned char i=0;
mType=type;
P2=((P2&240)|15);
cntTime_Plues=(int)((PI*RD*90/(180*det_Dist)*1.2)*ang/90);

while(cntTime_Plues)
{
if(Inter_EX0==1&&StartTask==0)
{
cntTime_Plues=0;
break;
}
if(type==1) //向左走
{
P2=P2&250;
delay(100);
ctrMotor_Adjust(0);
}
if(type==3) //向右走
{
P2=P2&245;
delay(100);
ctrMotor_Adjust(0);
}

P2=((P2&240)|15);
delay(50);//刹车制动 0.5ms
}
if(!(Inter_EX0==1&&StartTask==0))
{
Direction=dir;
}

}

/*====基本路线层:描述小车基本运动路线的程序集====*/

/*当小车到达仓库或停车场时,放下铁片或停车(0,1为仓库,2为停车场)*/
void rchPlace()
{unsigned int time,b,s,g;

time=(int)(cntTime_5Min*0.065535);//只有一个数码管时,轮流显示全过程秒数 个 十 百
b=time%100;
s=(time-b*100)%100;
g=(time-b*100-s*10)%10;

if(bkAim==2)
{
//到达停车场了,停车
EA=0;
P2=((P2&240)|15);
while(1)
{
Display(10); //N
delay(2000);
Display(cntIorn);
delay(2000);
Display(11);//A
delay(2000);
Display(b);
delay(2000);
Display(s);
delay(2000);
Display(g);
delay(2000);
}
}
else
{
if(Inter_EX0==1&&StartTask==1)P10=0; //到达仓库,卸下铁片
}

}

/*无任务模式: */
/*设置小车的固定运动路线,未发现铁片时的运动路线*/
void BasicRoute()
{ //Light_Flag=1;
ctrMotor_Dist(153,0);
//Light_Flag=0;
ctrMotor_Ang(ANG_90,1,1);
ctrMotor_Dist(100-sX,0);
ctrMotor_Dist(125,2);
ctrMotor_Dist(73,0);
ctrMotor_Ang(ANG_90,1,2);
//Light_Flag=1;
ctrMotor_Dist(153,0);
//Light_Flag=0;
ctrMotor_Ang(ANG_180,1,0);
rchPlace();

}

/*任务模式: */
/*设置小车的发现铁片后的运动路线*/
void TaskRoute()
{
//基本运行路线表,记载拐弯 0 向前 1 左拐 2 向后 3 右拐,正读去A区;反读去B区
StartTask=1;

ctrMotor_Ang(ANG_90_T,1,2);

if(bkAim==1) //仓库A
{
ctrMotor_Dist(10,0);
P2=((P2&240)|15);
delay(60);
ctrMotor_Ang(ANG_90_T,1,3);
ctrMotor_Dist(100-sX,2);

ctrMotor_Ang(ANG_90_T,1,2);
Light_Flag=1;
ctrMotor_Dist(153,2);
Light_Flag=0;
// ctrMotor_Ang(208,1,0);
}
else if(bkAim==0) //仓库B
{
ctrMotor_Dist(10,0);
P2=((P2&240)|15);
delay(60);
ctrMotor_Ang(ANG_90_T,1,3);
ctrMotor_Dist(100-sX,0);
ctrMotor_Ang(ANG_90_T,1,0);
Light_Flag=1;
ctrMotor_Dist(153,2);
Light_Flag=0;
//ctrMotor_Ang(208,1,0);
}

delay(5000);

rchPlace();

}

/*---------------------------------------------*/
/*-------------------主程序段------------------*/
/*---------------------------------------------*/
void main()
{
delay(4000);

P2=0xff; //初始化端口
P07=0;
P1=0;

TMOD=0x01; //初始化定时器0/1 及其中断
TL0=0;
TH0=0;
TR0=1;
ET0=1;
ET1=1;

IT0=1; //初始化外部中断
EX0=1;

IT1=1;
EX1=1;

EA=1;
P11=1;

while(1)
{
Display(cntIorn);
bkAim=2;

BasicRoute();

if(Inter_EX0==1)
{
TaskRoute();//按获得铁片后的路线运动
IE0=0;
EX0=1;
}
Inter_EX0=0;

}
}

/*----------------------------------------------------*/
/*----------------------中断程序段--------------------*/
/*----------------------------------------------------*/

/*定时器0中断程序: */
/*当时间过了5分钟,则就地停车并进入休眠状态*/
void tmOver(void) interrupt 1
{
cntTime_5Min++;
TL0=0;
TH0=0;

if(cntTime_5Min>=4520)
{
Display(5);
P2=((P2&240)|15);
EA=0; //停车程序
P07=1;
delay(4000);
PCON=0X00;
while(1);
}

}

/*外部中断0中断程序: */
/*发现铁片,发出声光信号并将铁片吸起,发光二极管和蜂鸣器*/
/*并联在一起(设接在P07). 0为A仓库,1为B仓库,2为停车场*/
void fndIorn(void) interrupt 0
{
unsigned char i;

P10=1;
P2=((P2&240)|15); //停车
P07=1;
delay(1000);//刹车制动 0.5ms
P07=0;

Inter_EX0=1;

cntIorn++;
Display(cntIorn);

for(i=0;i<40;i++)
{
P2=P2&249;
delay(2);
P2=((P2&240)|15);
delay(2);
}

P2=P2&249;
delay(100);
P2=((P2&240)|15); //停车

IornColor(); //判断铁片黑白,设置bkAim

for(i=0;i<95;i++)
{
P2=P2&249;
delay(3);
P2=((P2&240)|15);
delay(2);
}
P2=((P2&240)|15); //停车
delay(4000); //把铁片吸起来
EX0=0;

}

/*外部中断1中断程序: */
/*对霍尔开关的脉冲记数,对小车的位置进行记录,以便对小车进行定位*/
void stpMove(void) interrupt 2
{
cntTime_Plues--;

if(Direction==0) //向上
{
if(mType==0) sY+=det_Dist;
else if(mType==2)
sY-=det_Dist;
}
else if(Direction==1) //向左
{
if(mType==0) sX+=det_Dist;
else if(mType==2)
sX-=det_Dist;
}
else if(Direction==2) //向下
{
if(mType==0) sY-=det_Dist;
else if(mType==2)
sY+=det_Dist;
}
else if(Direction==3) //向右
{
if(mType==0) sX-=det_Dist;
else if(mType==2)
sX+=det_Dist;
}

#include<reg52.h>
#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)%256;
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)%256;
}
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()//*右转1函数*//
{
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();
}

}、、、、、、、、、中间省略了,自己根据需要写吧
不知道合不合适!!


50分悬赏循迹小车完整程序,
unsigned char mType=0; \/\/设置运动的方式,0 向前 1 向左 2 向后 3 向右unsigned char Direction=0; \/\/小车的即时朝向 0 朝上 1 朝左 2 朝下 3 朝右unsigned sX=50; unsigned char sY=0; \/\/小车的相对右下角的坐标 CM(sX,sY)unsigned char StartTask=0; \/\/获得铁片后开始执行返回卸货任务,Start...

把51程序改为MSP430的程序(红外线遥控车程序)
电子表,闹钟,红外遥控车,红外测距,自动循迹小车,无线通信,液晶显示,波形显示,AD转换,黑白动画(BAD APPLE)等等。。。都做完以后综合,做出自己想做的东西。

电动车警报器相关求助
2007年电子竞赛小车 悬赏分:0 - 离问题结束还有 14 天 13 小时2030CM乘30CM,最好4轮独立驱动http:\/\/zhidao.baidu.com\/question\/34455235.html什么是角度传感器?原理是什么?http:\/\/zhidao.baidu.com\/question\/34457269.html?si=1WAVE6000实验 请教,再线等!!!,.角度传感器UZZ9000和KMZ41的,我实在找不到,http:\/...

WAVE6000实验 请教,再线等!!!,.
悬赏分:0 - 离问题结束还有 14 天 17 小时2007年全国大学生电子设计竞赛 基本仪器和主要元器件清单 精密温度测量, 精密电源给定, 用数字电路产生指定的精密电压; 用精密电阻产生指定的精密电压,由考官鉴定产生的电压是否准确,根据准确程度评分; 精密稳压电源, 动态测量坡度; 产生与倾斜度对应的电压信号、数字信号、...

电动车控制器原理
悬赏分:0 - 离问题结束还有 14 天 17 小时 2007年全国大学生电子设计竞赛 基本仪器和主要元器件清单 精密温度测量, 精密电源给定, 用数字电路产生指定的精密电压; 用精密电阻产生指定的精密电压,由考官鉴定产生的电压是否准确,根据准确程度评分; 精密稳压电源, 动态测量坡度; 产生与倾斜度对应的电压信号、数字信号...

求一个四驱智能小车四路循迹的完美程序,51或者avr的,50悬赏!
include<reg52.h> define uint unigned int define uchar unsigned char sbit SK=P3^7;\/*声控*\/ \/*sbit bee=P3^6;蜂鸣器*\/ sbit Z1=P0^0;sbit Z2=P0^1;sbit Y1=P0^2;sbit Y2=P0^3;\/*电机*\/ sbit L1=P1^7;sbit L2=P1^6;sbit L3=P1^5;sbit L4=P1^4;sbit L5=P1^3;sbit...

五羊电动车网址
2007年电子竞赛小车 悬赏分:0 - 离问题结束还有 14 天 13 小时2030CM乘30CM,最好4轮独立驱动http:\/\/zhidao.baidu.com\/question\/34455235.html什么是角度传感器?原理是什么?http:\/\/zhidao.baidu.com\/question\/34457269.html?si=1WAVE6000实验 请教,再线等!!!,.角度传感器UZZ9000和KMZ41的,我实在找不到,http:...

东风标志206好吗?
206还可以,但你也可以参考一下雪铁龙C2 和206相比,C2更强调运动风格,车型相对硬朗,都市味道很足,是为城市白领等年轻群体设计的一款车。而206的风格则更倾向于时尚、精致,是一种纯粹的“跑味”十足的设计。C2的车身尺寸以及整体轮廓都与标致206极为相似,C2只是比206长了5毫米,宽度以及高度分别多...

请问怎么解决角度传感器在控制中的抖动引起的误差.
要抓紧时间,对总装完毕的小车进行里程标定,倾斜角度标定;在里程标定和时间标定的基础上进行速度标定,加速度标定;然后要能在指定的里程,在指定的速度掉头、转向,暂时停车,再重新运动。从力学分类来看,角度传感器分两种,一种是在静态下工作的,例如吊车和塔吊的吊臂上就用重锤方式角度传感器,只能用于没有加速度运动的...

电动车控制器的问题
2007年电子竞赛小车 悬赏分:0 - 离问题结束还有 14 天 13 小时2030CM乘30CM,最好4轮独立驱动http:\/\/zhidao.baidu.com\/question\/34455235.html什么是角度传感器?原理是什么?http:\/\/zhidao.baidu.com\/question\/34457269.html?si=1WAVE6000实验 请教,再线等!!!,.角度传感器UZZ9000和KMZ41的,我实在找不到,http:...

银州区15762851688: 急求一份刚学过C语言学生能看懂有关的循迹小车源程序代码 -
贠审抗痨: #define P_IOA_Data (volatile unsigned int *)0x7000#define P_IOA_Dir (volatile unsigned int *)0x7002#define P_IOA_Attrib (volatile unsigned int *)0x...

银州区15762851688: 怎么设计循迹小车? -
贠审抗痨: 1、循迹小车是一种能够自己寻找轨迹并按轨迹运动的“智能”车.本文简要记录这一电子制作过程,希望大家喜欢.有什么建议和意见,欢迎大家留言. 2、根据元器件清单清点器件,看是否缺件少件.下图是元器件全家福: 3、依次焊接...

银州区15762851688: 跪求寻迹小车c程序, 用89s51单片机控制的 用3个043W封装的反射红外传感器寻迹 通过左右轮速度差转向 -
贠审抗痨: 展开全部//=====================================================================//// 寻迹与直流电机驱动演示程序 //// 本程序通过前方的红外探头来检测地面的信号,根据道路的要求,当道路为白 //// 色时,红外接收到信号,与...

银州区15762851688: 寻迹小车的c程序 -
贠审抗痨: #include<reg52.h> #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;//*左边传感器*...

银州区15762851688: at89s52单片机循迹小车程序 -
贠审抗痨: 完整的程序没有了,主要是方法,能巡迹,说明硬件没有问题,现在主要是软件算法的问题,建议可以分步实现,找出各个段时检测到数据与巡迹时有什么不同,可以用示波器来看波形什么.随后软件根据不同点来编写程序,就可以实现全部功能.如果波形等没有差异,就要从检测方法入手了.程序是解决不了的.

银州区15762851688: 循迹小车源程序 -
贠审抗痨: #define P_IOA_Data (volatile unsigned int *)0x7000 #define P_IOA_Dir (volatile unsigned int *)0x7002 #define P_IOA_Attrib (volatile unsigned int *)0x7003 unsigned int scan();//检测黑线函数定声明 unsigned int num=0; void delay(); ...

银州区15762851688: 谁有基于MSP430的智能循迹小车程序???急需!!! -
贠审抗痨: 你这连硬件都没有,就谈程序的.有的车就车底有个两个光电对管,但是咱的坦克前前后后装了八个光电对管,精确循迹.简单点说,硬件就是光电对管在地面上会反光,接收管会导通,在导航的路径上(一般贴些黑胶布之类的)光电对管结构管截止,通过车前车后四个就知道车的状态了嘛.就跟走路一样,车偏左,往右开点.程序这些东西,找人要来的终究是别人的.

银州区15762851688: 智能循迹小车的的程序有木有?能配上解释么? -
贠审抗痨: 循迹,也就是红外对管的问题了.左侧检测到黑线左拐,右侧检测到就右拐,都检测不到就直走,很简单的.

银州区15762851688: 用labview编程智能循迹小车的程序思路 -
贠审抗痨: 胶带的宽度一定的话:四个传感器一字排列的情况最简单: 按1234号传感器命名,照在胶带上状态位为A,否则为a. 直线正常行走时,23号持续为A,14号持续为a. 分析开始右转的逻辑: 1. 2号变a,继续直线行走,直到4号变A,根据24号间的...

银州区15762851688: 写一个三个传感器双驱动的循迹小车程序(arduino) -
贠审抗痨: 楼主这活我也玩过.1、对于传感器不听话,很大可能是你的检测阈值设置得不是很好.2、一般来说你的传感器个数应该比较多,可能6~10个吧,如此多的信号不应该都进入中断,再说单片机也没那么多外部中断可给你用,建议所有信号加或门进入外部中断(可分为左边一组,右边一组,两个中断).否则在主函数(更好的是,定时器)判断,这个信号最好连接到同一个端口上,如P0端口,通过位判断当前信号值.3、L298N功率芯片,如果要调速且是直流电机,一般是对其控制使能脚施加占空比变化的信号,以达到不同的驱动效果.如果是步进电机,则控制方式有所不同,请查阅相应文献.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网