金牌会员
- 积分
- 2021
- 威望
- 1003
- 贡献
- 540
- 兑换币
- 472
- 注册时间
- 2012-9-22
- 在线时间
- 239 小时
|
5#
楼主 |
发表于 2013-1-9 10:03:29
|
只看该作者
378110705 发表于 2013-1-8 22:14
根据你的控制思想来定
控制思想,好吧,貌似不是太理解,
void bianjie(void)
{
char i,j,flag_zuo=0,flag_you=0;
for(i=10;i<40;i++)//拥谑?轿逍信卸?
{
flag_zuo=0;
flag_you=0;
for(j=0;j<42;j++) //从中间往两边采集
{
/////////////////////左///////////////////////
if((Buffer1[41-j]==0)&&(flag_zuo==0)&&(Buffer1[40-j]==0))
{
Buffer2=(41-j); //图像边界提取dengyu 列号
flag_zuo=1;
}
///////////////////////右/////////////////////
if((Buffer1[42+j]==0)&&(flag_you==0)&&(Buffer1[43+j]==0))
{
Buffer2[42+i]=(42+j);//等于列号
flag_you=1;
}
}
if(flag_zuo==0) Buffer2=0; //没有找到黑点有效边界
if(flag_you==0) Buffer2[42+i]=83;
}
//========= 转向提取 10 16=========//弯道提取函数
turn=0;
/****************** 提取中心引导线 ***************************/
for(i=5;i<16;i++)
{
Image_Center=Buffer2+ Buffer2[42+i];
Image_Center>>=1;
}
//= Image_Center[15]-Image_Center[10];
turn = Image_Center[10]-41;
}
void server_driver() //中间1500 往左转1500-(100/9*θ) 往右转1500+(100/9*θ)
{
//========= 直道 ===========//
if((Image_Center[10]>38)&&(Image_Center[10]<45)) //29//49
{angle=1500WMDTY23=angle; PWMDTY45 = 250; }
//XXXXXXXXX 二 档 XXXXXXXXXXXX//
//===== 普通弯道 打弯向右 ======//
if(turn>0)
{
angle=1500+turn*10;
PWMDTY23=angle;
}
//====== 普通弯道 打弯向左 ======//
if(turn<0)
{
angle=1500-turn*10;
PWMDTY23=angle;
}
//========== 靠近外侧 =========//丢线时
if(Buffer2[12]>30&&Buffer2[13]>30)//左边界丢线
{
angle=1290; PWMDTY23=angle; PWMDTY45 = 300;
}
if(Buffer2[54]<60&&Buffer2[55]==60)//右边界边界丢线
{
angle=1710; PWMDTY23=angle; PWMDTY45 = 300;
}
}
我目前按着之前做的51轨迹小车思想来写的程序,有时候还行,但大多数还是会冲出赛道,
麻烦你一下,像我们的数字摄像头如何实现动态阀值?--------飞思卡尔路上的小白。
|
|