全國大學生智能汽車競賽是以智能汽車爲研究對象的創意性科技競賽,是面向全國大學生的一種具有探索性工程實踐活動,是教育部倡導的大學生科技競賽之一。
恩智浦杯智能車演示視頻
恩智浦杯智能車節能組
這個比賽一年舉辦一次,由於我們學校的原因,在我所在校區只有兩個組別,節能組和信標組,我們協會指導老師是個有長遠眼光的人,他讓我們參加的比賽和組別都是直接鍛鍊能力的,他不喜歡那種靠祖傳的,也不是希望我們拿一大堆獎回去鋪墊他的仕途,而是希望我們能學到真的知識(不過我們也都很爭氣),做比賽都很拼。他,真的是個好老師,龍老師。
而我們在一起做車的幾個也是在這一年期間互相幫助,互相鼓勵,一起努力前進。我是做節能組的,在13屆我是小學弟,當時那屆沒做出來,第14屆我來做,在這一年很感謝段大哥(會長)和哲哥,他們是我學長,不僅僅教會我寫代碼做PCB,還有教我做人的道理。真的很感謝。
使我獲得第十四屆西部賽區節能組二等獎,另一組是信標組三等獎,他叫尹博,這個組別他是開荒的,什麼可以借鑑的資料都沒有,全憑羣裏交流和用自己的想法來做車。
以下照片就是我們當時的留念,有幸在學校頒獎典禮得以展示。
下面是我自己的車
下面是製作電路板部分AD原理圖:
運放:
驅動:
穩壓電源:
void Speed_Control(void)//速度控制量計算
{
static float PreError[20]={0};
float SpeedError;
uint8 i;
SpeedError=Set_Speed-CarSpeed;
//求出最近20個偏差的總和作爲積分項
SpeedControlIntegral=0;
for(i=0;i<19;i++)
{
PreError[i]=PreError[i+1];
SpeedControlIntegral+=PreError[i];
}
PreError[19]=SpeedError;
SpeedControlIntegral+=PreError[19];
//速度更新
SpeedControlOutOld=SpeedControlOutNew;
SpeedControlOutNew = PID_SPEED.P*SpeedError + PID_SPEED.I*SpeedControlIntegral;//PI控制
}
void Angle_Control() //角度控制函數
{
PID_ANGLE.pout=PID_ANGLE.P*Car_Angle; //最優角度*角度PID_P
PID_ANGLE.dout=PID_ANGLE.D*Angle_Speed; //角速度*角度PID_d
if(ABS(Angle_Speed)>30&&ABS(Angle_Speed)<80)//control.h定義的算法
{
PID_ANGLE.dout*=(1+(ABS(Angle_Speed)-30.0)/30.0);
}
PID_ANGLE.OUT= PID_ANGLE.pout+ PID_ANGLE.dout;
}
void roadturncal(void) //道路轉彎
{
adc1_result = adc_once(ADC0_SE13,ADC_16bit); //右
adc2_result = adc_once(ADC0_SE8,ADC_16bit); //中
adc3_result = adc_once(ADC0_SE9,ADC_16bit); //左
dis_adc1_result=adc1_result;
dis_adc2_result=adc2_result;
dis_adc3_result=adc3_result;
//上限幅
if(adc1_result>adc1_result_max) adc1_result=adc1_result_max;
if(adc2_result>adc2_result_max) adc2_result=adc2_result_max;
if(adc3_result>adc3_result_max) adc3_result=adc3_result_max;
//下限幅
if(adc1_result<adc1_result_min) adc1_result=adc1_result_min;
if(adc2_result<adc2_result_min) adc2_result=adc2_result_min;
if(adc3_result<adc3_result_min) adc3_result=adc3_result_min;
//歸一化
adc1_result=100*(adc1_result - adc1_result_min)/(adc1_result_max-adc1_result_min);
adc2_result=100*(adc2_result - adc2_result_min)/(adc2_result_max-adc2_result_min);
adc3_result=100*(adc3_result - adc3_result_min)/(adc3_result_max-adc3_result_min);
disgy_adc1_result = adc1_result;
disgy_adc2_result = adc2_result;
disgy_adc3_result = adc3_result;
}
這一年,自己只做了這一個比賽,總結就一句話,自己 獲益匪淺。
QQ:3177227373