李帥男
(吉林化工學院, 吉林 吉林 132000)
隨著嵌入式技術,微電子技術和控制算法的進步,智能化越來越成為當今社會發展的風向標,而兩輪自平衡車正是其中的一個熱點。在世界各個國家中,不論是高校、實驗室、商業公司,兩輪自平衡小車的研究越來越多,因為不管是在民用,科研還是軍用方面其有著巨大的應用前景,在民用方面,電動兩輪代步平衡車已經投放市場,走入用戶家庭中,它綠色環保,轉彎控制方便,無剎車系統,占用地方小,正是這些優勢改變著人們的出行方式;在科研方面,有些在很特殊復雜的空間下,比如狹小、危險、黑暗的環境,兩輪小車可以更加利用自己的優勢來代替人們執行特殊的任務[1]。
STM32f103是意法半導體公司新推出的新一代增強型32位芯片,它高度集成且容易開發,它采用的是高性能的RISC內核,運行頻率是72 MHz,內部放置了高性能的存儲圣杯,有128 kB閃存,2萬字節的靜態隨機存儲器,很多的輸入輸出引腳和2個外圍總線的外部設備。這個系列的所有型號都有2個12位的模數轉換器,還有三個16位的定時器,1個脈沖寬度調節定時器,還有很多快速和通用制度的接口用于傳輸信息,兩個串行工作總線和串行外設接口,3個全雙工通用同步/異步串行收發模塊,1個通用串行總線接口和1個控制器局域網絡接口。供電電壓在2.0~3.6 V之間,工作溫度在-40~85 ℃之間[2]。
MPU6050內含有三軸的Micro-Electro-Mechanical System微機電系統陀螺儀,三軸的微機電系統加速度計,還有可以不斷擴充的數字運動處理器件Digital Motion Processor,使用同步串行總線可以通信其它的數字型模塊,陀螺儀和加速度計都有3個數模轉換器,因為測量的是模擬量,通過數模轉換器,可以變為數字量,因為要捕捉速度不定的移動狀態,操控者需要選擇不同的范圍,陀螺儀和加速度計的選擇范圍非常豐富,每個有四個梯度[3]。MPU6050如圖1所示。

圖1 MPU6050示意圖
在本次設計中用TB6612FNG模塊作為直流電機的驅動模塊,它對電機有很好的控制和保護作用,可以隨意調節電流大小,避免了沖擊電流對電機繞組的影響,控制非常方便,調速很快捷,這款芯片的集成程度都非常的高,驅動能力也是非常強悍,運行速度快,能耗方面也非常優秀[4]。在眾多型號中,它有著出色的性價比優勢,也很適合本次平衡小車的設計,所以選用此款芯片。
如圖2所示,給主控板供電后,程序開始運行,運行內容分為兩個方面,一部分是應用到模塊的初始化還有一部分是應用程序的初始化。第一部分是系統所有部分的初始化運行,所有的程序由MCU燒錄工具MCU-ISP提供產生。另一部分是各個應用模塊的初始化,是對所有程序中要使用到的變量值進行初始賦值。

圖2 系統程序流程圖
初始化工作完成后,中斷程序運行,可以把定時中斷定為5 ms,中斷開始后,中斷子程序開始運行,這時可以調整優先級調用各個其它程序塊的函數,中斷的運用是系統程序運行的重點所在。在中斷子程序中,MCU通過IIC與MPU6050進行通訊,可以快速得到雙輪車的加速度值和角速度值,對從姿態模塊傳送來的角度信息使用PID算法進行分析與計算后,將程序運算結果通過PWM與I/O口的高低電平輸出電機驅動模塊再輸送到電機,可以實現對小車的閉環直立控制。
系統的硬件系統以意法半導體公司的STM32f103c8T6為控制核心,使用MPU6050檢測小車的車身姿態,通過TB6612FNG驅動兩個直流減速電機,使雙輪小車平衡直立。軟件系統設計中,根據單片機使用手冊設置各個寄存器;根據IIC總線協議編寫通信程序,并且根據芯片說明配置MPU6050芯片。使用互補濾波融合加速度計與陀螺儀數據并實現角度控制。使用PID算法計算角度控制與速度控制的最終輸出量。最終實現了對雙輪自平衡小車的平衡控制,使得小車在沒有外力干擾下能自主實現直立。