智能车制作
标题:
新手代码求助
[打印本页]
作者:
极冰之焰
时间:
2013-12-18 06:30
标题:
新手代码求助
PWM9_SetRatio16(duty1);
PWM10_SetRatio16(duty2);
AD1_Measure(TRUE);
AD1_GetValue(ad);
ad[0]=ad[0]>>4;
ad[1]=ad[1]>>4;
ad[2]=ad[2]>>4;
ad[3]=ad[3]>>4;
if ((ad[2]>20) && (ad[3]>20) && ((ad[2]-ad[3]>5) || (ad[3]-ad[2]>5)))
{
if (ad[3]>ad[2]+5) {pre_pwm=18350;flag_wan=18350;}
else if (ad[2]>ad[3]+5) {pre_pwm=18650;flag_wan=18650;}
}
else
{
if ((ad[0]<=11) && (ad[1]<=11)) pre_pwm=flag_wan;
else if ((ad[0]>11) && (ad[1]>11))
pre_pwm=18490+kp*(ad[1]-ad[0])+kd*(ad[1]-ad[0]-last_err);
else if (ad[0]<=11) {pre_pwm=18650;flag_wan=18650;}
else if (ad[1]<=11) {pre_pwm=18350;flag_wan=18350;}
}
PWM8_SetDutyUS(pre_pwm);
last_err=ad[1]-ad[0];
弄了一段时间总算让电磁车跑起来了,但是都不能跑完全程。ad0,ad1是左右两端的电感,ad2,ad3是中间竖起来的电感,处理直角弯使用。
现在碰到的问题是,1.直道上不断左右晃动,原理我懂是要区分直道和弯道,但是代码不奏效。
2.直角弯经常是根据之前左右晃动的结果过,运气50%好能过。
3.360度环型弯有的时候会进去跑两轮。
4.十字交叉处本来应该入弯直接拐走了。
5.各种冲出赛道。
求指导
作者:
Jyoun
时间:
2013-12-18 09:49
自己多想多动手吧,你写的代码问题太多了。别说你是新手,哪个不是新手成长起来的?你这样求别人改,那你永远都是只能是新手。自己动手,丰衣足食。
作者:
yyyzrxh
时间:
2013-12-18 11:04
直道PID参数过大,或者不协调。直角弯减速减速,丢线的问题都存在,加丢线处理程序
作者:
极冰之焰
时间:
2013-12-18 21:48
Jyoun 发表于 2013-12-18 09:49
自己多想多动手吧,你写的代码问题太多了。别说你是新手,哪个不是新手成长起来的?你这样求别人改,那你永 ...
我又没求什么“完整源代码”,只是想问问问题大概出在哪自己改,这也要嘲讽?下面还一堆跟风狗,笑)
作者:
叶鸣
时间:
2014-3-7 17:52
作者:
an~
时间:
2014-3-7 18:01
加油!相信自己能做的更好~
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2