前言:
開始之前先要說為什么要采用PID的算法來控制小車。玩過小車的DIY愛好者們都會(huì)碰到這樣一種情況:為什么本該直線行駛的小車走著走著軌跡就會(huì)發(fā)生偏移,即所謂的“走不直”。
小車走不直的原因有:兩個(gè)電機(jī)本身的驅(qū)動(dòng)特性不可能完全相同,兩個(gè)電機(jī)外形大小不可能是完全一致,組裝時(shí)精度也會(huì)出現(xiàn)差異,另外輪胎在滾動(dòng)時(shí)打滑、遇到細(xì)小的障礙物等因素都會(huì)造成左右輪的速度出現(xiàn)差異,從而走不直。開環(huán)控制是無法消除左右輪的速度誤差的,因?yàn)樯鲜龅臄_動(dòng)是隨機(jī)的。
要想小車走一條直線,唯有實(shí)現(xiàn)閉環(huán)控制,當(dāng)小車受到擾動(dòng)時(shí)能對(duì)左右輪及時(shí)給予反饋,修正兩輪的速度偏差,從而可以走出一條直線。PID算法就是一種閉環(huán)控制算法,實(shí)現(xiàn)PID算法需得從硬件上實(shí)現(xiàn)閉環(huán)控制,即存在反饋,所以我采用的是帶測(cè)速裝置的電機(jī)。
項(xiàng)目簡(jiǎn)介:
本項(xiàng)目采用的是PID控制算法來修正小車行走時(shí)兩輪的速度偏差,實(shí)現(xiàn)小車可以走直線。小車是使用一個(gè)安卓App來控制小車的行走路徑,App通過App Inventor2來進(jìn)行編寫。
完成作品圖:
需要用到的材料:
- 1. Arduino Uno
- 2. Arduino Uno的擴(kuò)展板
- 3. DFRobot L298 雙路2A直流電機(jī)驅(qū)動(dòng)板
- 4. HC-05或HC-06的藍(lán)牙模塊
- 5. 坦克小車底盤
- 6. 兩個(gè)帶霍爾傳感器的電機(jī)
- 7. 鋰電池
- 8. 杜邦線若干
軟件部分:
1. Arduino IDE
2. App Invent
附件內(nèi)容截圖: