李志豪 司永康 屈志揚 李建軍 李高展 曲藝晗(河南科技大學 機電工程學院,河南 洛陽471003)
近年來,兩輪式自平衡小車的研究在美國、日本、等國都得到了迅速發展。平衡車能夠通過自身的整體協調性操作平衡,而且體積小,容易上手,成為越來越多人的一種代步工具。平衡車的動力來源是鋰電池,沒有碳排放,是一種綠色出行方式,能很好的保護環境。目前,平衡車已經進入越來越多人的視野之中,我們研究的目的是使小車能在正常的環境下正常前進和后退,保證正常的直立運行。
該平衡小車系統采用Arduino 單片機為核心,GY-85 九軸IMU 傳感器模塊負責采集平衡小車的姿態,并將姿態信息傳輸回Arduino 控制器,控制器得到平衡小車的實時角速度和角度以及小車車輪當前的速度,綜合計算出需要輸出的控制信號進而準確控制平衡小車兩個車輪的直流電動機[1],使平衡小車保持平衡,同時將平衡小車系統所采集到的角度、角速度、車輪速度等通過藍牙控制模塊傳送至手機app上實時顯示,以及在小車硬件顯示屏上也能顯示。系統總體結構如圖1 所示。

圖1 平衡小車系統
該平衡小車系統分別由電源降壓模塊AMS1117、Arduinouno、GY-85 姿態傳感器、電機驅動模塊、電機及BT08b藍牙控制模塊四部分組成,小車的系統集成電路結構如圖2。12v的電源經過降壓模塊下降至5v,為Arduino 控制板提供電源,GY-85 讀取小車姿態數據再傳到Arduino 控制器;電機編碼器獲得一臺電機的轉速再通過傳感器反饋到Arduino 控制板,Arduino 控制板根據傳感器所采集的信息,通過PID 控制算法將PWM 信號輸出傳至電機驅動模塊[2]與此同時,控制器將傳感器采集到的小車姿態運動信息通過BT08B 藍牙模塊傳送到手機app 上,并且能在顯示屏上顯示出來。

圖2 平衡小車系統電路原理圖
ArduinoUNO 是基于ATmega328P 的一款微控制器板[3]。它分別設置了14 個用于數值式的進出輸入/控制輸出引腳(其中6個引腳設計可以被直接用于PWM 輸出),6 個模擬輸入,16MHz的晶振控制時鐘,USB 的總線連接,電源的插孔,ICSP 連接頭和復位控制按鈕。只需要通過兩根USB 數據線和電腦硬件連接就可以同時進行電源供電、數據傳輸通訊和程序下載。
GY-85 傳感器模塊系統是兩輪平衡小車的核心零件之一,其中包含有三個芯片:陀螺儀、加速度計和電子磁力測量器(各三個軸),通過閱讀這些參數,就可以判斷出一個物體在不同時刻的姿態、轉動速度、方向。
該系統采用L298N 雙橋直流電機驅動模塊,可以同時控制2 個電機正反轉,平衡小車只需要這一個電機模塊就能控制兩個輪子的運動。L298N 電機驅動模塊,電機驅動電壓5-35V,輸出最大電流范圍可達2.5-3A。主要特點:工作時電壓高,輸出電流較大。
在自平衡小車控制系統中,系統內部的工作原理與運行流程如圖3。平衡小車的轉速控制狀態可以大致分為三種,即平衡驅動控制、速度驅動控制和方向驅動控制,要正確實現這三種控制,控制的對象就是對兩個車輪電機的控制[4],我們采用了經典型PID 控制器進行自平衡驅動控制。而要達到準確的控制,我們就需要知道小車的姿態、速度數據,這些數據對下一步控制器怎樣去控制小車的運動非常重要。我們通過GY-85 姿態傳感器采集小車的實時數據,數據傳至控制器,用PID 控制算法對數據進行處理,再輸出PWM 波,小車電機做出調速運動,從而實現小車的平衡及運動。

圖3 程序流程圖
我們使用兩臺直流驅動電機,電機的引腳A、B 用來輸入PWM 脈寬調制器的信號來對電機進行調速控制。如果左電動機輸入信號端IN1 連接高電平,輸入信號端IN2 連接低電平,左電機正轉;如果信號端IN1 接到低電平,IN2 接高電平,左電機就會逆轉。控制右電機采用同樣的方式,輸入信號端IN3 接高電平,輸入端IN4 接低電平,右電機正轉;反之電機就會逆轉。PWM 信號端A 控制左電機調速,PWM 信號端B 控制右電機調速。電機工作如表1。
通過對兩輪自平衡小系統動力學分析和數學建模,引入PID 反饋后系統的傳遞函數為:

在simulink 中, 建立了平衡小車數學模型, 如圖4, 調用PID 控制器組合構成系統的主要組成部分。在以單位階躍信號為干擾物時,繪制出對應的階躍響應曲線圖,如圖5。通過這個波形我們可以清楚地看出, 系統能夠在受到外界干擾的條件下,能夠使其在一定的周期內重新回到穩定的狀態。這就說明我們所構造的兩輪均衡小汽車體系的數學模擬機構是有效實現的。

表1 電機工作邏輯表

圖4 平衡小車系統模型simulink 仿真

圖5 階躍響應曲線圖
本系統實現了小車能夠基本保持平衡,實驗過程中小車會出現略微的不穩定前后的晃動。通過藍牙在手機app 上可以顯示各個數據的變化。整個系統的設計成本低、項目完成周期為三個星期。基于Arduino 的兩輪自平衡小車基本能夠實現項目的要求,由于知識的匱乏,時間的緊迫,Arduino 程序存在很多不夠完美的地方,simulink 仿真也存在很多未考慮的實際影響因素。
兩輪自平衡小車是一個非線性的復雜系統,在項目的設計中運用開源硬件完成了兩輪自平衡小車的項目設計。采用藍牙模塊實現更方便的控制。整個系統中,用姿態傳感器對小車的姿態、速度、方向進行采集,再利用PID 控制算法對數據進行處理,控制小車的平衡性和穩定性。