你的位置:首頁(yè) > 測(cè)試測(cè)量 > 正文
新手入門(mén):超聲自平衡小車(chē)最佳方案
發(fā)布時(shí)間:2015-11-17 責(zé)任編輯:sherry
【導(dǎo)讀】閑得沒(méi)事干,就想做一款成本低,易上手,最小配置和最基本功能的自平衡小車(chē),其目的就是給那些沒(méi)有什么經(jīng)驗(yàn)的剛?cè)胄械男率謧兲峁┮粋€(gè)入門(mén)的解決方案。
1、項(xiàng)目概述
在網(wǎng)上看到各種制作自平衡小車(chē)的帖子,也跟著做了起來(lái)。因?yàn)榈谝淮巫?,心里沒(méi)底,也就沒(méi)有投入過(guò)多的資金,一切按照最小配置進(jìn)行,所以選擇“TT馬達(dá)”,俗稱“香蕉電機(jī)”的小車(chē)底盤(pán)。
在等快遞送貨期間,才看到各種說(shuō)用“香蕉電機(jī)”做自平衡小車(chē)的問(wèn)題,最大的問(wèn)題就是電機(jī)啟動(dòng)對(duì)傳感器和單片機(jī)的干擾問(wèn)題,還有就是平衡的穩(wěn)定性不好等問(wèn)題。在我以Arduino + MPU6050 + L298N為核心做完后,閑得沒(méi)事干,就想做一款成本低,易上手,最小配置和最基本功能的自平衡小車(chē),其目的就是給那些沒(méi)有什么經(jīng)驗(yàn)的剛?cè)胄械男率謧兲峁┮粋€(gè)入門(mén)的解決方案。所以這個(gè)項(xiàng)目的目標(biāo)有以下幾點(diǎn):
a、成本低;
b、目標(biāo)功能明確,就是實(shí)現(xiàn)小車(chē)的自平衡;
c、系統(tǒng)穩(wěn)定可靠;
d、調(diào)試、操作方便簡(jiǎn)單。
2、項(xiàng)目方案
基于上述目標(biāo),本方案采用超聲波測(cè)距模塊作為小車(chē)平衡狀態(tài)的檢測(cè),免去了對(duì)加速度、陀螺儀傳感器的理解和復(fù)雜處理算法。小車(chē)的平衡控制仍然采用網(wǎng)絡(luò)上流行的Arduino開(kāi)源硬件,再加上電機(jī)驅(qū)動(dòng)模塊 L298N,電機(jī)仍然采用TT馬達(dá)(香蕉電機(jī))。
該方案為了降低成本,采用電位器調(diào)整設(shè)定小車(chē)的平衡參數(shù),不使用藍(lán)牙無(wú)線模塊或有線串口在線調(diào)整參數(shù)。
用超聲波測(cè)距的方式實(shí)現(xiàn)的自平衡小車(chē),網(wǎng)絡(luò)上有人提出這種方案無(wú)法在坡度變化的斜坡上保持平衡,這種說(shuō)法經(jīng)過(guò)我的實(shí)踐,是有解決方案的,這個(gè)問(wèn)題我將在后面進(jìn)行闡述。
平衡控制的算法還是采用平衡車(chē)中經(jīng)典的PD算法。
3、硬件設(shè)計(jì)
硬件設(shè)計(jì)比較簡(jiǎn)單,以Arduino Nano為核心控制模塊,采用HC-SR04超聲波測(cè)距模塊,L298N電機(jī)驅(qū)動(dòng)模塊,供電采用7.4V/2200mAh鋰電池。圖中三個(gè)10K電位器分別用于平衡點(diǎn)設(shè)置、PD算法中Kp和Kd系數(shù)設(shè)置的調(diào)整。
電路原理圖如下所示:
圖中J1為HC-SR04超聲波測(cè)距模塊,J2、J3為L(zhǎng)298N模塊,Arduino Nano為核心控制模塊,MG1、MG2分別為左右電機(jī)。
與之前用香蕉電機(jī)+MPU6050做的自平衡小車(chē)相比較要簡(jiǎn)單很多,在MPU6050方案中,用了兩塊電池,其中一塊單獨(dú)用于電機(jī)供電,而且L298N必須用光耦隔離的。
而用超聲波做的自平衡小車(chē),雖然用的是TT馬達(dá)(俗稱香蕉電機(jī)),但僅一塊電池供電,L298N電機(jī)驅(qū)動(dòng)模塊也沒(méi)有光耦隔離,從最終調(diào)試后的效果上看,還比前者更穩(wěn)定。
成品照:
材料清單
這個(gè)材料清單比較完整,是帶遙控器的。在電商平臺(tái)可以收集齊全,大家可以i自行搜索。
4、程序設(shè)計(jì)
程序源代碼:http://www.52solution.com/auto-dl/7374
5、調(diào)試流程
最新版超聲平衡小車(chē)裝配完畢后如下圖所示。
串口調(diào)試助手程序:http://www.52solution.com/auto-dl/7375
a、準(zhǔn)備工作
將Kp與Kd調(diào)為0,調(diào)整方法是,旋轉(zhuǎn)電位器后,按下Arduino模塊上的復(fù)位鍵調(diào)整方可有效。調(diào)整后用串口調(diào)試助手(sscom42.exe)發(fā)送 “F”命令,讀取超聲自平衡小車(chē)參數(shù)的設(shè)定值。在使用串口調(diào)試助手前,首先選擇串口調(diào)試助手對(duì)應(yīng)的串口號(hào),設(shè)置好波特率,方可發(fā)送上述命令讀取超聲自平衡小車(chē)參數(shù)的設(shè)定值,操作界面如下圖所示。
第一個(gè)數(shù)據(jù)為平衡點(diǎn)設(shè)定值,第二個(gè)數(shù)據(jù)為Kp,第三個(gè)數(shù)據(jù)為Kd。
b、超聲波測(cè)距測(cè)試
發(fā)送相應(yīng)“L”命令,讀取超聲波的測(cè)距值,注意,這里不是實(shí)際的mm或cm值,而是對(duì)應(yīng)距離來(lái)回的傳播時(shí)間值,是單片機(jī)內(nèi)部計(jì)時(shí)的輸出值。
操作界面如下圖所示。
第一個(gè)數(shù)為超聲波測(cè)距模塊的直接輸出值,第二個(gè)數(shù)為一階濾波后的值。改變超聲波測(cè)距模塊與被測(cè)界面的距離,這兩個(gè)值會(huì)發(fā)生相應(yīng)的改變,距離近,測(cè)得的值變小,距離遠(yuǎn)測(cè)得的值就增大。
c、尋找物理平衡點(diǎn)
在Kp、Kd為0時(shí),用手尋找自平衡小車(chē)的物理平衡點(diǎn),同時(shí)用“L”命令(500ms定時(shí)發(fā)送)讀取超聲波測(cè)量的返回值,確定平衡點(diǎn)的返回值,并記錄下來(lái)。
d、平衡點(diǎn)PB的設(shè)定
調(diào)整PB電位器,并在Arduino復(fù)位后,用“F”命令讀取超聲自平衡小車(chē)參數(shù)的設(shè)定值,使得第一個(gè)返回的數(shù)據(jù)與上述確定的物理平衡點(diǎn)相一致。
e、判斷電機(jī)運(yùn)轉(zhuǎn)方向是否正確
在完成上述調(diào)整后,逐漸增大Kp(請(qǐng)記住,每次調(diào)整后,都必須復(fù)位Arduino模塊,調(diào)整才能生效),看到電機(jī)能夠動(dòng)作時(shí),停止調(diào)整Kp。這時(shí)將超聲波模塊一端稍稍下壓(也就是使超聲波探頭與地面距離縮短),觀察兩個(gè)電機(jī)的轉(zhuǎn)動(dòng)方向,往前(超聲波測(cè)距模塊一端為前)轉(zhuǎn)測(cè)試正確的,往后轉(zhuǎn)則說(shuō)明相應(yīng)的電機(jī)兩根線接反了,將接反的線調(diào)換過(guò)來(lái)即可。
f、Kp參數(shù)整定
在電機(jī)接線正確后,再逐漸增大Kp,使得小車(chē)能夠來(lái)回有點(diǎn)擺動(dòng)即可進(jìn)入調(diào)整Kd參數(shù)階段。
g、Kd參數(shù)整定
在調(diào)整完Kp后,逐漸增大Kd,使得擺動(dòng)消失,如果繼續(xù)增大Kd,小車(chē)會(huì)出現(xiàn)明顯的抖動(dòng),此時(shí)將Kd往回調(diào)整,使得抖動(dòng)消失即可。
h、平衡點(diǎn)PB的進(jìn)一步調(diào)整
在上述參數(shù)調(diào)整完畢后,小車(chē)一般就能保持平衡了,如果出現(xiàn)小車(chē)往一邊跑的現(xiàn)象,可通過(guò)調(diào)整PB電位器加以修正。如果小車(chē)往前跑(超聲波模塊一端為前),調(diào)整PB使得平衡點(diǎn)設(shè)定值增大;如果小車(chē)往后跑,調(diào)整PB使得平衡點(diǎn)設(shè)定值減小,直到小車(chē)能夠長(zhǎng)時(shí)間穩(wěn)定為止。
6、總結(jié)與展望
超聲自平衡小車(chē)的基本版已經(jīng)完成,在制作過(guò)程中與我之前用MPU6050制作的小平衡車(chē)相比有以下幾點(diǎn)體會(huì):
a、在用TT馬達(dá)的情況下,如果系統(tǒng)使用同一組電池供電,電機(jī)一啟動(dòng)Arduino與MPU6050立即死機(jī),或者M(jìn)PU6050的數(shù)據(jù)受干擾極為嚴(yán)重,不可使用。解決辦法是用另一組電池單獨(dú)給L298N供電,并且L298N要選擇帶光耦隔離的。但同樣的使用TT馬達(dá)的情況下,用超聲波測(cè)距方案,系統(tǒng)僅用一組電池即可,而且L298N也無(wú)需光耦隔離,系統(tǒng)很穩(wěn)定。
b、超聲波傳感器的選擇要選擇最小測(cè)量周期短的模塊,第一次我使用的是US-015 超聲波測(cè)距模塊,US-015是目前市場(chǎng)上分辨率最高,重復(fù)測(cè)量一致性最好的超聲波測(cè)距模塊,US-015的分辨率高于1mm,可達(dá)0.5mm,測(cè)距精度高,重復(fù)測(cè)量一致性好,測(cè)距穩(wěn)定可靠。但他的最小測(cè)量周期大于10ms,而且對(duì)輸出數(shù)據(jù)經(jīng)常有跳動(dòng)(這是由于它的靈敏度很高,在近距離時(shí)超聲波在模塊與地面之間的來(lái)回反射的二次信號(hào)都能被檢測(cè)到),為此在地面墊上一個(gè)地毯吸收了部分能量的超聲波,才能穩(wěn)定工作。在第二版中更換了HC-SR04超聲波模塊,這個(gè)模塊的測(cè)距精度雖然只有3mm,但它的最小測(cè)量周期僅略大于3ms。但這種模塊市場(chǎng)上有兩種,一種沒(méi)有晶體,一種是帶晶體的,帶晶體的很不穩(wěn)定,建議大家不要選擇。
c、小車(chē)的平衡穩(wěn)定性與多種因素有關(guān),建議在結(jié)構(gòu)上,重心越低越好。
d、另外,我還做了一個(gè)對(duì)比測(cè)試,數(shù)據(jù)見(jiàn)下表:
誤差絕對(duì)值是指小車(chē)在一段時(shí)間內(nèi),實(shí)測(cè)距離與設(shè)定平衡點(diǎn)距離誤差絕對(duì)值的平均值;濾波是指程序中對(duì)超聲波測(cè)量的距離濾波或不濾波直接使用;循環(huán)周期是程序中的延時(shí)時(shí)間,超聲波測(cè)量需要大約704us,一個(gè)周期大約為3.84ms,程序處理時(shí)間大約為136us.
特別推薦
- 授權(quán)代理商貿(mào)澤電子供應(yīng)Same Sky多樣化電子元器件
- 使用合適的窗口電壓監(jiān)控器優(yōu)化系統(tǒng)設(shè)計(jì)
- ADI電機(jī)運(yùn)動(dòng)控制解決方案 驅(qū)動(dòng)智能運(yùn)動(dòng)新時(shí)代
- 倍福推出采用 TwinSAFE SC 技術(shù)的 EtherCAT 端子模塊 EL3453-0090
- TDK推出新的X系列環(huán)保型SMD壓敏電阻
- Vishay 推出新款采用0102、0204和 0207封裝的精密薄膜MELF電阻
- Microchip推出新款交鑰匙電容式觸摸控制器產(chǎn)品 MTCH2120
技術(shù)文章更多>>
- 更高精度、更低噪音 GMCC美芝電子膨脹閥以創(chuàng)新?lián)屨夹袠I(yè)“制高點(diǎn)”
- 本立租完成近億元估值Pre-A輪融資,打造AI賦能的租賃服務(wù)平臺(tái)
- 中微公司成功從美國(guó)國(guó)防部中國(guó)軍事企業(yè)清單中移除
- 華邦電子白皮書(shū):滿足歐盟無(wú)線電設(shè)備指令(RED)信息安全標(biāo)準(zhǔn)
- 功率器件熱設(shè)計(jì)基礎(chǔ)(九)——功率半導(dǎo)體模塊的熱擴(kuò)散
技術(shù)白皮書(shū)下載更多>>
- 車(chē)規(guī)與基于V2X的車(chē)輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車(chē)安全隔離的新挑戰(zhàn)
- 汽車(chē)模塊拋負(fù)載的解決方案
- 車(chē)用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
共模電感
固態(tài)盤(pán)
固體繼電器
光傳感器
光電池
光電傳感器
光電二極管
光電開(kāi)關(guān)
光電模塊
光電耦合器
光電器件
光電顯示
光繼電器
光控可控硅
光敏電阻
光敏器件
光敏三極管
光收發(fā)器
光通訊器件
光纖連接器
軌道交通
國(guó)防航空
過(guò)流保護(hù)器
過(guò)熱保護(hù)
過(guò)壓保護(hù)
焊接設(shè)備
焊錫焊膏
恒溫振蕩器
恒壓變壓器
恒壓穩(wěn)壓器