智能车制作

标题: 新手代码求改 [打印本页]

作者: 极冰之焰    时间: 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 07:45
呵呵,自己动手,丰衣足食。
作者: 吢冇紷蒠    时间: 2013-12-18 09:12
呵呵,自己动手,丰衣足食。
作者: 音之夏萤    时间: 2013-12-18 09:16

呵呵,自己动手,丰衣足食。
作者: t148    时间: 2013-12-18 23:24
自己动手,丰衣足食。
作者: wei122    时间: 2013-12-19 14:43
自己动手 丰衣足食




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2