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