智能车制作
标题:
求一份摄像头入门级巡线程序
[打印本页]
作者:
青进营
时间:
2014-10-18 18:24
标题:
求一份摄像头入门级巡线程序
初学摄像头,自己写的舵机控制程序,比较简单,就是求每行黑点下标的平均值为黑线的中心位置。
慢速跑直线还行,一拐弯就出去了。
我弄到几个参赛程序,忒复杂了,看的我脑袋都大了。
我现在调的是循迹,用的7620,希望能得到一份比较简单的舵机控制算法。
先谢谢了!
/*************************************************************/
/*黑线中心定位函数*/
/**********************************************************/
unsigned int black(void)
{
unsigned int i,j; //数组下标变量
unsigned int sum_lie=0,sum_hang=0,num_lie=0,num_hang=0; //行列变量
unsigned int heart=0;
for(i=29;i<38;i++) //只采集29到38行
{
for(j=20;j<100;j++)
{
if(Buffer[i][j]<0x70)
{
sum_lie+=j;
num_lie++;
}
}
sum_hang+=sum_lie/num_lie ;
num_hang++;
}
heart=sum_hang/num_hang; //黑线中心
display1(0,1,heart);
return heart;
}
/*舵机控制函数*/
void construct(void)
{
unsigned int pos=0;
pos=black();
if((pos>50)&&(pos<100))
angle=150+(pos-50); //右偏
if(pos<50)
angle=150-(50-pos); //左偏
if(angle>200) //最大转角保护
angle=200;
if(angle<100)
angle=100;
display1(0,2,angle); //5110
PWMDTY01=angle; //舵机pwm
}
作者:
青进营
时间:
2014-10-18 19:17
还有就是我写的代码,当采集到的数值<0x70时为黑点,这个值就是阈值么,你们是这样判断黑白的么
刚才我把宽度扩大到40行,高度扩大到120,以3%的速度能在180度的弯道上跑下来,加到5%就跪了。
作者:
青进营
时间:
2014-10-18 19:22
怎么根据采到的数据计算出弧度,弧度与舵机拐角之间又满足哪一种函数关系,以前只听说过PID算法这个名词。总感觉应该有一种公式能计算出弧度,有一个函数调用能根据弧度控制舵机转角,问题是我不知道。
作者:
纷纷扰扰
时间:
2014-10-18 23:20
非硬件方面多看技术报告,很有用,里面都有你要的答案
作者:
青进营
时间:
2014-10-19 08:40
纷纷扰扰 发表于 2014-10-18 23:20
非硬件方面多看技术报告,很有用,里面都有你要的答案
哦哦
作者:
Au海岛
时间:
2014-11-12 17:21
顶楼主,同求大神解答
作者:
小明同学
时间:
2018-2-27 20:32
遇到同样的问题,楼主解决了吗?
作者:
七年丶
时间:
2019-2-18 10:40
谢谢了正在研究
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2