隨著科教興國戰(zhàn)略決策的提出、素質(zhì)教育的開展和壯心精神的提倡,教育部及社會各相關(guān)部門紛紛聯(lián)手舉辦了面向廣大中小學(xué)生,培養(yǎng)和激發(fā)他們創(chuàng)新意識和實踐能力的各種比賽活動,“全國中小學(xué)信息技術(shù)創(chuàng)新與實踐大賽”(簡稱NOC)就是其一,迄今已成功舉辦了十六屆。由于平衡移動機器人應(yīng)用領(lǐng)域的不斷擴大,其已成為機器人研究領(lǐng)域中不可或缺的一部分,為了適應(yīng)社會的發(fā)展、技術(shù)的更新,NOC于2018年新增了智能機器人平衡車(以下簡稱平衡車)技巧挑戰(zhàn)賽。此項目主要是模擬未來社區(qū)的場景,由機器人駕駛平衡車,完成一系列社區(qū)任務(wù),重點在培養(yǎng)學(xué)生的動手動腦能力,提高學(xué)生的信息技術(shù)素養(yǎng)。
項目一出現(xiàn)就受到了廣大師生的高度關(guān)注,在專業(yè)人員的操作下,機器人能非常順利地完成各項任務(wù),但對廣大師生來說,要在保證速度的前提下完成所有任務(wù)并非易事,從區(qū)賽、市賽以及全國決賽的實際比賽情況來看,平衡車的調(diào)試具有較大難度。2018年的比賽中,有50%的選手無法順利完成所有任務(wù),能順利完成任務(wù)到達(dá)終點的選手在速度上卻并不理想。因此,在比賽中如何做到穩(wěn)定性和速度并存是廣大師生迫切需要攻克的調(diào)試難關(guān)。為解決這一難題,筆者對平衡車的構(gòu)成、工作原理,結(jié)構(gòu)、軟件及行駛過程中速度的調(diào)整等進(jìn)行了深入研究,并將研究結(jié)果與學(xué)校相關(guān)教師一起進(jìn)行了探討、實驗。
1.平衡車構(gòu)成
平衡車官方物理樣機的機械結(jié)構(gòu)如圖1所示,該機械系統(tǒng)主要部件包括車輪、馬達(dá)、控制器、灰度傳感器、陀螺儀、電池、木質(zhì)人偶、基礎(chǔ)板以及各類支架輔助材料。

2.平衡車工作原理
平衡車的控制思想是基于一級倒立擺的思想。車身固定在兩輪之上,當(dāng)車身產(chǎn)生擺動時,陀螺儀角速度傳感器會實時檢測并采集到車身角度變化,反饋到控制器,控制器接受信號及時做出反應(yīng),驅(qū)動電機向相反的方向施加力矩,形成一個動態(tài)的穩(wěn)定系統(tǒng);當(dāng)平衡車前行時與重心形成一個角度差,角速度計實時檢測到角度差,傳輸給控制系統(tǒng);控制系統(tǒng)輸出信號驅(qū)動電機,車身重心前移,使平衡車在前進(jìn)中保持穩(wěn)定。傾斜產(chǎn)生的角度差跟平衡車行駛的加速度成正比,實現(xiàn)了不需要剎車離合等裝置完成一系列動作。
為了解平衡車比賽實際狀況,筆者對2018年重慶市NOC平衡車市賽和區(qū)賽進(jìn)行了調(diào)研,調(diào)研結(jié)果詳見表1、表2。
從表1和表2的調(diào)研結(jié)果來看,比賽中平衡車主要存在以下問題:①由于平衡車屬兩輪車,平衡車要在各個項目穩(wěn)定保持平衡存在較大難度。②傳感器安裝不合理導(dǎo)致平衡車通過障礙物或轉(zhuǎn)向時脫軌。③傳感器在不同的環(huán)境中需要大面積地調(diào)整程序參數(shù)。④平衡車結(jié)構(gòu)上不完善,重心、重力線不合理使平衡車保持自平衡的能力先天不足,無法做到速度與穩(wěn)定性并存。⑤左右電機速度存在差異,導(dǎo)致平衡車執(zhí)行指令不一致。⑥程序參數(shù)設(shè)置不合理,導(dǎo)致平衡車在行駛過程中出現(xiàn)擺幅過大脫離軌道、過障礙物任務(wù)失敗、結(jié)束區(qū)無法停止3秒以上等情況。
1.結(jié)構(gòu)優(yōu)化
平衡車的機械結(jié)構(gòu)部分優(yōu)化是整個硬件優(yōu)化的基礎(chǔ),好的機械結(jié)構(gòu)能夠提升系統(tǒng)運行的穩(wěn)定性,同時還能夠?qū)τ布娐菲鸬揭粋€很好的保護(hù)作用。我們知道,物體的重心高度與穩(wěn)定性成反比,重心越低,勢能越小,勢能的能量也就越小,所以重心降低則物體更穩(wěn)?;谶@個原理,筆者認(rèn)為應(yīng)盡量降低車身高度。平衡車的機械部分原設(shè)計采用兩層結(jié)構(gòu),優(yōu)化后將平衡車的主要部件放置于底盤附近,使車體重心低于車體幾何中心,這樣既能夠使平衡車運行時重心更穩(wěn),同時也能降低電機的輸出功率,有利于平衡車提高續(xù)航能力。平衡車優(yōu)化后的機械結(jié)構(gòu)如圖2所示。主要從以下兩個方面進(jìn)行平衡車的結(jié)構(gòu)優(yōu)化。

(1)載體構(gòu)件優(yōu)化
傳統(tǒng)車的結(jié)構(gòu)由基礎(chǔ)板承載電池、控制器、木質(zhì)人偶,在車輪的支撐下,通過傳感器來控制行駛的路線,此結(jié)構(gòu)由于車身面積較大,重心很難控制在兩個車輪的中心位置,故而在比賽中出現(xiàn)平衡車在開始區(qū)域啟動后無法保持車身處于靜止?fàn)顟B(tài),在行駛過程中車身前后搖晃的情況。車身的前后搖晃會改變離地距離,導(dǎo)致傳感器捕捉的數(shù)據(jù)出現(xiàn)較大的偏差,當(dāng)速度提升以后轉(zhuǎn)彎脫軌幾率加大,因此很難做到在彎道處平穩(wěn)尋線,特別是在U型回路位置脫軌幾率達(dá)到60%以上。為了避免車身在行駛過程中前后搖晃幅度過大,筆者建議用如圖3所示的兩類排板代替基礎(chǔ)板作為載體組裝。
(2)傳感器安裝優(yōu)化
傳感器是平衡車最關(guān)鍵的部件之一,平衡車的行駛方向依靠傳感器捕捉的數(shù)據(jù)進(jìn)行指引,故傳感器的安裝至關(guān)重要。優(yōu)化可從以下幾個方面進(jìn)行:
①傳感器一共有四個,筆者將其分為兩組,第一組編號為0和3,第二組編號為1和2,需要對四個傳感器逐一進(jìn)行測試,將數(shù)據(jù)接近的分別放入這兩組中,其中第二組比第一組的作用更為顯著,故要將最為接近的兩個傳感器放在第二組里。
②盡量拉近傳感器與車軸的距離,保證發(fā)出轉(zhuǎn)彎命令時車身在彎道位置。筆者設(shè)計了采取傳感器反裝的方式,將數(shù)據(jù)連接線一端安裝在車身前方的位置,如圖4所示。

③傳感器離地間隙的大小對數(shù)據(jù)也有一定的影響,通過實驗,最理想的距離是2厘米,距離過高檢測的數(shù)據(jù)變化不明顯,過低則在平衡車通過障礙物時容易觸地導(dǎo)致平衡車失控,比賽中出現(xiàn)過障礙物失控大部分是由于這個問題導(dǎo)致的。
④傳感器對光非常敏感,在不同的環(huán)境中傳感器在同一位置檢測到的數(shù)據(jù)有明顯的差異,為了減少光對檢測數(shù)據(jù)的影響,可用黑色膠帶將傳感器的探頭從根部位置向上包裹三分之一的高度,減弱探頭吸收光源的能力,這樣能有效避免在不同的環(huán)境中大面積調(diào)整程序參數(shù)。
⑤中間兩個傳感器安裝太近會導(dǎo)致轉(zhuǎn)彎幅度過大,太遠(yuǎn)會導(dǎo)致轉(zhuǎn)彎延遲,最合理的距離是2厘米。
2.調(diào)試優(yōu)化
(1)重心調(diào)試優(yōu)化
重力線是否在車軸的中心位置上是平衡車能否平衡的重要因素之一,當(dāng)平衡車開關(guān)打開后,如果平衡車能在原地極小幅度擺動表示重力線位置處于車軸的中心點上,反之平衡車前進(jìn)或后退,則需要調(diào)整重力線位置了。如果平衡車前進(jìn),說明車身前方偏重,將電池和控制器往車身后方挪動,反之則往車身前方挪動,因為電池和控制器能挪動的空間有限,當(dāng)這種方法無法達(dá)到所需目的時,可通過在車身前、后增加配重來達(dá)到調(diào)整重力線的目的。

(2)平衡干擾測試
在小車運行穩(wěn)定時,外界給平衡車一個力的作用,小車在外力作用下前后搖擺。前后搖擺速度和傾角都能逐漸收斂變小,在極短時間內(nèi)平衡車能夠回到平衡位置上則表示平衡性能得到有效的保障。
(3)電機測試
平衡車左右電機速度的差異會導(dǎo)致平衡車行駛偏向,確認(rèn)電機速度是否一致有很多方法,筆者采用檢查轉(zhuǎn)彎時電機是否一致的方法來確認(rèn):在程序中將左轉(zhuǎn)和右轉(zhuǎn)、左旋轉(zhuǎn)和右旋轉(zhuǎn)的值設(shè)置成同樣的值,將平衡車放置在第一個彎道前,按巡線開關(guān),然后再將平衡車放置在第一個彎道后方往回行駛,按巡線開關(guān),如果兩個相反的方向都能順利地通過彎道則表示電機的速度基本一致。
有的電機的編碼盤偶爾與電機接口或PCB底板存在輕微摩擦,如果在電池電量充足的情況下出現(xiàn)電機輸出無力,可用鑷子等尖細(xì)物品挑起或按下編碼電機的編碼盤剝離一定距離后摩擦即消除。
3.程序優(yōu)化
(1)P值的調(diào)整
P是調(diào)節(jié)小車克服外力而直立的參數(shù),如果過大,小車會產(chǎn)生震蕩,這個值一般設(shè)置為5,如果平衡車在轉(zhuǎn)彎總巡線失敗,通過調(diào)整drift1和drift2以及速度值無效的情況下可以把P值調(diào)整至4.8或4.7。
(2)速度設(shè)置優(yōu)化
速度是比賽中很關(guān)鍵的一個指標(biāo),要想在比賽中脫穎而出,必須在速度上下功夫。筆者通過實驗發(fā)現(xiàn),左轉(zhuǎn)和右轉(zhuǎn)的轉(zhuǎn)速不能過快,否則會導(dǎo)致平衡車在行駛過程中擺動幅度過大而脫離黑線,最佳的速度值是6或7;左旋轉(zhuǎn)和右旋轉(zhuǎn)的轉(zhuǎn)速一般設(shè)置為10左右;直線行駛轉(zhuǎn)速要盡量加大,這樣可以保證在最短的時間內(nèi)到達(dá)終點,波浪路和勇攀高峰也需要平衡車快速沖上障礙物,如速度過低,平衡車會一直在障礙物前試探最后導(dǎo)致任務(wù)失敗,直線轉(zhuǎn)速最高可以設(shè)置到75,在75的轉(zhuǎn)速下行駛平衡車的穩(wěn)定性大幅度降低,在回路的地方很容易出現(xiàn)脫軌,要解決這個問題,需要在平衡車行駛到回路前的直線路段采取降速處理,等回路完成后再次提速。具體程序編寫如上頁圖5所示。第一個系統(tǒng)運行時間需要根據(jù)測試平衡車實際行駛到回路前直線位置所需要的時間來設(shè)定,設(shè)置的時候盡量預(yù)留提前量,第二個系統(tǒng)運行時間是平衡車通過U型回路以后的時間,這個時間的設(shè)定稍微延后一到兩秒。
比賽中有的選手前面所有任務(wù)都完成得很好,速度也非???,但是在平衡車到達(dá)結(jié)束區(qū)兩輪過終點線時沒能在結(jié)束區(qū)停止3秒以上,這樣丟分很是可惜。正確的停止程序的寫法如上頁圖6所示,這里最重要的一點是前進(jìn)轉(zhuǎn)速一定要降到50以下,否則到達(dá)結(jié)束區(qū)時會因速度過快一沖而過停在結(jié)束區(qū)外。
(3)drift1和drift2的調(diào)試
筆者使用drift1來控制平衡車的前進(jìn)和左、右轉(zhuǎn),使用drift2來控制平衡車的左、右旋轉(zhuǎn)。根據(jù)實驗得出的經(jīng)驗,只要平衡車的平衡性沒有問題,結(jié)構(gòu)足夠合理,那么drift1的值一般在-200至210之間直行,drift2小于或等于-190左旋轉(zhuǎn),drift2大于或等于180右旋轉(zhuǎn)。但實際中,傳感器會存在輕微差異,在不同光線和環(huán)境的影響下每個傳感器的讀數(shù)也會有少許差異,且差異與離地距離的大小也有關(guān)系,故drift1和drift2的值沒有一個絕對固定的數(shù)據(jù)可言,要根據(jù)每個平衡車實際測試出來的數(shù)據(jù)進(jìn)行調(diào)整。
筆者通過對平衡車比賽實際狀況的調(diào)研和深入分析,采用降低平衡車重心、更換載體構(gòu)件、調(diào)整傳感器安裝等方法,較好地實現(xiàn)了平衡車在比賽中順利完成各個項目的目標(biāo),據(jù)此優(yōu)化后的平衡車在比賽中取得了較好的成績,優(yōu)化前后成績差異明顯。
參考文獻(xiàn):
[1]于乃功,李勇,阮曉鋼.基于數(shù)據(jù)融合的小型兩輪自平衡機器人姿態(tài)檢測方法[J].內(nèi)蒙古大學(xué)學(xué)報:自然科學(xué)版,2014(02).
[2]潘二偉.基于STM32的兩輪自平衡車設(shè)計與實現(xiàn)[D].哈爾濱:黑龍江大學(xué),2018.
[3]張建.雙輪自平衡移動機器人的設(shè)計與研究[D].合肥:安徽大學(xué),2016.
作者簡介:丁熠(1975—),女,漢族,四川資陽人,中學(xué)一級教師,大學(xué)本科,主要從事中小學(xué)信息技術(shù)競賽活動組織培訓(xùn)工作。