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

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

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

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

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