于璦雯
摘 要:本文設計了一種基于PID的智能小車,該小車包括電源模塊、電機控制、紅外循跡等子模塊。以kl26核心板為硬件控制中心,采用直流電機驅動。給出了硬件結構組成,搭建了小車控制系統。實驗顯示,系統能夠實現小車速度的精確控制,并在此基礎上可以根據需要添加各種功能應用。
關鍵詞:智能小車 PID 車速控制
中圖分類號:TP18文獻標識碼:A文章編號:1003-9082(2020)06-0-01
在智能小車中,基于直流電機的控制模塊、識別模塊及轉向模塊是整個小車的硬件部分,它們需要能夠相互配合,才能平穩地行駛[1]。相比其他算法而言,PID具有很多明顯的優點,例如其算法簡潔,處理速度快[2]。控制中PID的誤差對整體控制模塊的影響很小,控制性能與相關參數有聯系,一般條件下,它是能夠滿足電機調速的要求的。通過光電編碼器獲得脈沖數,并計算車速,然后通過比較與給定速度之間的差異完成車速控制。由PID算法調節獲得PWM波輸出數據,實現智能小車電機調速控制,以相對更短的時間實現速控,從而提高控制效果,其具有可靠性高、實現性強的特點。
一、系統設計
本智能車系統主要包括kl26核心板、電源管理模塊、測速模塊、電機控制模塊、舵機模塊和無線收發模塊。所有模塊含硬、軟件兩部分。完成了智能車硬件結構設計。搭建了電源控制模塊和驅動電路,采用AltiumDesigner完成了相關設計。其系統結構如圖1所示。
圖1 智能小車原理結構圖
硬件設計如下:
1.供電設計
電源部分采用電池供電,第一部分通過lm2596-adj芯片給舵機提供6V的電壓,根據公式Vout=1.23*(1+RH/RL),可得輸出電壓約為6V。另一部分通lm2596lm2596-5.0得到5V電壓,通過電壓,通過1117-3.3芯片將5V降成3.3V。此處單片機單獨用一個1117-3.3供電。
2.電機控制
智能車是利用直流電機操控后輪來驅動的,通過直流電機的驅動力為智能小車提供前進和后退的動力。采用4個IRF340,組成一個H橋電路,構成單片控制的小功率直流電機伺服系統,實現對直流電機的加減速和正反轉的控制。
3.紅外循跡
本系統采用四個紅外光電對管實現循跡功能,每個紅外對管的發射管不斷地發射紅外線,當發射出的紅外線沒有被反射回來或者被反射回來但是強度不夠大時,紅外接收一直處于關斷狀態,此時模塊的TTL輸出為高電平,相應的指示二極管一直處于熄滅狀態;當黑線出現在檢測范圍內時,紅外線被吸收且強度足夠大,紅外接收管關斷,此時模塊的TTL輸出為高電平,指示二極管熄滅。
二、軟件開發
按鍵進行模式選擇,進入不同模式后對目標值進行修改,通過PID算法對霍爾返回的測量值和目標值進行計算,返回增量,輸出PWM,實現電機速度的閉環控制。同時通過LCD、串口進行速度等參數的顯示。
對應控制程序中的主要命令如下:
if(gpio_get(PTC8)==0)//電機1測速
count=-tpm_pulse_get(TPM2)*10;
elsecount=tpm_pulse_get(TPM2)*10;
tpm_pulse_clean(TPM2);
if(gpio_get(PTC10)!=0)//電機2測速
count1=-lptmr_pulse_get()*10;
elsecount1=lptmr_pulse_get()*10;
lptmr_pulse_clean();
ab=IncPIDCalc(count);//電機1PID
ba=IncPIDCalc1(count1);//電機2PID
motor_turn(ab,ba);//返回給電機
三、系統調試
軟件方面我們采用了IAR7.3版本的編譯器進行代碼的編寫及調試,上位機程序采用了凌立印象上位機V3.0進行串口收發數據。硬件上,使用的是自己繪制的KL26最小系統板連上一個雙電機的板配合軟件進行
調試。
結語
本文針對智能小車車速控制需要簡單易行的要求,設計了一種基于PID的智能控制系統,完成了小車硬件搭建和軟件編程等工作。實驗結果顯示,該智能小車可以精確控制車速,并可根據需要添加各種功能應用。
參考文獻
[1]韓毅,楊天.基于HCS12單片機的智能尋跡模型車的設計與實現[J].計算機工程與設計,2008,(18):4736-4739.
[2]李晨,宓超.基于飛思卡爾單片機MC9S12XS128的智能車設計[J].上海海事大學學報,2012,⑴:82-84.
作者簡介:于璦雯(1999.08—)女,漢,河北滄州人,大連理工大學,本科在讀,研究方向:計算機技術。