一. 硬件介紹
底板資源:
TB6612電機(jī)驅(qū)動(dòng)芯片 * 2
MPU6050陀螺儀
WS2812 RGB彩色燈 * 4
紅外接收頭
ESP-01S WIFI
核心板
微相 A7_Lite Artix-7 FPGA開(kāi)發(fā)板
電機(jī)采用的是平衡小車(chē)之家的MG310(GMR編碼器)電機(jī)。底板上有兩個(gè)TB6612芯片,可以驅(qū)動(dòng)四個(gè)電機(jī),除了做平衡小車(chē)之外,也可以用來(lái)作為四驅(qū)車(chē)的底板,非常nice,同時(shí)支持兩種控制方式,推薦通過(guò)紅外遙控進(jìn)行控制,實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單,紅外遙控器也非常便宜。
二. RTL 介紹
本次設(shè)計(jì)分為三大部分: MPU6050姿態(tài)解算 , 電機(jī)驅(qū)動(dòng)(PWM+編碼器) , 平衡控制,遙控器控制的模塊另外算。其中MPU6050姿態(tài)解算為設(shè)計(jì)的核心,解算出來(lái)的角度越穩(wěn),平衡控制就越容易,小車(chē)也就越穩(wěn)定。平衡控制其核心是調(diào)節(jié)PID的參數(shù),參數(shù)調(diào)的好,小車(chē)沒(méi)煩惱。
這里只對(duì)框架上做一個(gè)簡(jiǎn)單的介紹
整體架構(gòu)如下
? ? ? ?
1. MPU6050姿態(tài)解算
模塊數(shù)據(jù)流如下圖所示,將獲取到的角度進(jìn)行一個(gè)8階的FIR濾波,加速度進(jìn)行一個(gè)2階的IIR濾波,即可得到相對(duì)平滑一點(diǎn)的數(shù)據(jù),然后經(jīng)過(guò)Cordic算法進(jìn)行姿態(tài)解算,即可得到roll和pitch角度,為了得到更加平滑一點(diǎn)的roll和pitch數(shù)據(jù),這里將得到的角度再進(jìn)行了一個(gè)1階的均值濾波(本來(lái)使用的是3階的均值濾波,但是相位延時(shí)有點(diǎn)大,所以修改為1階的了)
? ? ? ?
2. 電機(jī)驅(qū)動(dòng)(PWM+編碼器)
框圖如下,在實(shí)際使用的時(shí)候,只使用了速度的檢測(cè),角度檢測(cè)這部分功能就去掉了,PWM生成模塊另算,這部分的代碼是比較簡(jiǎn)單的,就不作過(guò)多的說(shuō)明了。
? ? ? ?
3. 平衡控制
平衡車(chē)的控制采用三環(huán): 直立環(huán)、速度環(huán)、轉(zhuǎn)向環(huán),來(lái)進(jìn)行控制,直立環(huán)采用的是PID進(jìn)行控制,速度環(huán)采用的是PI進(jìn)行控制,而轉(zhuǎn)向環(huán)由于yaw在MPU6050解算的時(shí)候,誤差較大,所以沒(méi)有使用PID來(lái)進(jìn)行控制轉(zhuǎn)向的速度,而是直接輸出的兩輪的速度差進(jìn)行控制??驁D如下,三環(huán)通過(guò)PID進(jìn)行調(diào)節(jié)后,相加得到最終的PWM值進(jìn)行輸出。三5環(huán)的具體實(shí)現(xiàn)可以參考開(kāi)源的平衡小車(chē)C語(yǔ)言實(shí)現(xiàn),所以難點(diǎn)不在代碼實(shí)現(xiàn)上,而在于PID的調(diào)參上面,沒(méi)有經(jīng)驗(yàn)且沒(méi)有人指導(dǎo)的情況下,那簡(jiǎn)直是噩夢(mèng),如果長(zhǎng)時(shí)間沒(méi)有調(diào)好的話,容易懷疑是不是小車(chē)的結(jié)構(gòu)有問(wèn)題(但小車(chē)的結(jié)結(jié)構(gòu)一般是沒(méi)有問(wèn)題的,哈哈哈)。
? ? ? ?
4. 遙控控制
本來(lái)想使用低成本高效率的紅外遙控來(lái)對(duì)小車(chē)進(jìn)行控制的,但是出現(xiàn)了意外,接收到的紅外遙控值不穩(wěn)定,按同一個(gè)按鍵,接收到值居然不一樣。沒(méi)辦法,還好弄了個(gè)esp-01S,可以通過(guò)tcp進(jìn)行連接,之前弄四軸飛機(jī)的有程序,可以拿來(lái)直接使用,美滋滋。
三. 總結(jié)
FPGA平衡小車(chē)的基本架構(gòu)就已經(jīng)介紹完了,很多模塊在都已經(jīng)實(shí)現(xiàn)過(guò),拿來(lái)通過(guò)簡(jiǎn)單的修改就可以直接用了,代碼實(shí)現(xiàn)上還是比較輕松的,難點(diǎn)在于PID的調(diào)參上,也是花了非常多的時(shí)間。
速度環(huán),還是有點(diǎn)問(wèn)題,能力時(shí)間有限, 沒(méi)有調(diào)好(?﹏?),希望后面有時(shí)間了可以接著調(diào)。
來(lái)源:FPGA之旅
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602984 -
陀螺儀
+關(guān)注
關(guān)注
44文章
783瀏覽量
98664 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
驅(qū)動(dòng)芯片
+關(guān)注
關(guān)注
13文章
1277瀏覽量
54588 -
平衡小車(chē)
+關(guān)注
關(guān)注
1文章
39瀏覽量
12500
原文標(biāo)題:FPGA實(shí)現(xiàn)平衡小車(chē)
文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論