基于Arduino的自平衡機(jī)器人設(shè)計(jì)
這是一個(gè)相對(duì)簡(jiǎn)單,視覺上有效的平衡機(jī)器人項(xiàng)目,只需要四個(gè)組件來制作。
自平衡機(jī)器人是一種能使自身保持平衡而不致墜落到地面的裝置。它的功能是利用車輪和車身的電機(jī)軸線運(yùn)動(dòng)來保持平衡。有幾種類型的自平衡機(jī)器人,在這個(gè)特殊的情況下,我將向你展示一種制造兩輪平衡機(jī)器人的方法。實(shí)際上,這個(gè)機(jī)器人是我和我的一個(gè)學(xué)生一起做的,這是一個(gè)高中畢業(yè)設(shè)計(jì)。這是一種最簡(jiǎn)單的平衡機(jī)器人,只需要幾個(gè)部件就可以制造出來。
首先,讓我們解釋所使用的組件及其功能。
本項(xiàng)目由PCBWay贊助。他們有你需要的所有服務(wù),以最優(yōu)惠的價(jià)格創(chuàng)建你的項(xiàng)目,無論是一個(gè)學(xué)校項(xiàng)目,還是復(fù)雜的專業(yè)項(xiàng)目。在PCBWay上,你可以分享你的經(jīng)驗(yàn),或者為你的下一個(gè)項(xiàng)目獲得靈感。他們還以最優(yōu)惠的價(jià)格提供完整的表面貼裝SMT PCB組裝服務(wù),并進(jìn)行ISO9001質(zhì)量控制。
現(xiàn)在,讓我們簡(jiǎn)單地解釋一下它的工作原理:加速度計(jì)測(cè)量機(jī)器人相對(duì)于重力的方向,陀螺儀檢測(cè)傾斜速率。Arduino使用PID(比例,積分,導(dǎo)數(shù))控制器來處理來自傳感器的數(shù)據(jù)。
PID控制器計(jì)算出維持機(jī)器人平衡所需的速度和方向調(diào)整。如果機(jī)器人向前傾斜,馬達(dá)旋轉(zhuǎn)得更快,使機(jī)器人向前移動(dòng),防止摔倒。如果它向后傾斜,馬達(dá)就會(huì)使機(jī)器人向后移動(dòng)以恢復(fù)平衡。當(dāng)機(jī)器人檢測(cè)到不平衡時(shí),它會(huì)通過調(diào)整車輪速度、移動(dòng)質(zhì)心或向前或向后移動(dòng)以保持其位置來進(jìn)行補(bǔ)償。
簡(jiǎn)單介紹一下Arduino代碼。之前已經(jīng)多次描述了安裝代碼的方法,所以現(xiàn)在我只關(guān)注由于所使用組件的不同特性而需要針對(duì)每種情況單獨(dú)進(jìn)行的修改,以及它們的放置方法。
現(xiàn)在是有趣的部分,即為我們構(gòu)建的設(shè)備定制代碼。根據(jù)組件的布局,機(jī)器人的重心會(huì)發(fā)生變化,而且每個(gè)MPU6050板都有最小的差異,需要在部分代碼中進(jìn)行補(bǔ)償。如果我們更詳細(xì)地看一下代碼,我們會(huì)看到有一個(gè)地方是設(shè)置陀螺儀偏移量的。
在這部分代碼中,錯(cuò)誤被糾正在MPU6050芯片的制造過程中。對(duì)于每個(gè)單獨(dú)的芯片,這些值是不同的。它們的值是使用專門為此目的制作的Arduino代碼確定的,您可以在本文末尾下載它。
接下來,我們需要繼續(xù)設(shè)置加速度計(jì)。在“雙設(shè)定值”行中,我們需要設(shè)置一個(gè)與我們的設(shè)備相對(duì)應(yīng)的值。
為了獲得這個(gè)值,我們需要將機(jī)器人保持在一個(gè)理想的垂直位置,垂直于表面,并在串行監(jiān)視器上讀取所需的值。對(duì)我來說,大概是182。
最后,我們需要通過實(shí)驗(yàn)確定PID控制所需的Kp, Kd和Ki的值。
為此,我們將這三個(gè)值都設(shè)置為零?,F(xiàn)在我們給Kp賦值并進(jìn)行測(cè)試。Kp過小會(huì)使機(jī)器人摔倒。太大的Kp會(huì)使機(jī)器人瘋狂地來回移動(dòng)。一個(gè)好的Kp會(huì)使機(jī)器人稍微前后移動(dòng)。接下來我們需要確定Kd。一個(gè)良好的Kd值將減少振蕩,直到機(jī)器人幾乎穩(wěn)定,并將保持機(jī)器人站立。最后設(shè)置Ki。正確的Ki值將縮短機(jī)器人穩(wěn)定所需的時(shí)間。我想強(qiáng)調(diào)的是,表面需要足夠粗糙,以增加它和車輪之間的摩擦。
最后是一個(gè)簡(jiǎn)短的結(jié)論。這是一個(gè)相對(duì)簡(jiǎn)單,視覺上有效的平衡機(jī)器人項(xiàng)目,只需要3個(gè)組件來制作。然而,它的設(shè)置,雖然可能很耗時(shí),但仍然是很多樂趣,試圖讓機(jī)器人穩(wěn)定地站在它的“自己的腳”上。
本文編譯自hackster.io