



摘 要: 介紹一種以STM32為控制核心的兩輪智能平衡車的控制系統設計。利用陀螺儀和加速度計獲得車體的傾角和角速度,通過光電編碼器獲得平衡車的速度。將轉速控制信號與平衡控制信號疊加加載到兩后輪電機,實現平衡車的靜止和直立行走。同時,采用TSL1401線性CCD獲得賽道圖像信息,經過對圖像的識別處理,準確快速地提取出賽道的中心線,獲得平衡車的方向偏差控制量。實際運行結果表明,該平衡車能保持直立行走運動并快速實現不同路徑上的轉向和自主尋跡,具有較強的適應性和穩定性。
關鍵詞: STM32F405; 平衡車; 控制系統; 自主尋跡
中圖分類號: TN911?34; TP273 文獻標識碼: A 文章編號: 1004?373X(2016)14?0046?03
Design of STM32?based control system for intelligent balanced vehicle
GAO Zhengzhong, GONG Qunying, SONG Sensen
(School of Electrical and Automation Engineering, Shandong University of Science and Technology, Qingdao 266590, China)
Abstract:Design of a STM32?based control system for intelligent balanced vehicle is introduced, which uses the gyroscope and accelerometer to get the dip angle and angular velocity of the balanced vehicle, and adopts photoelectric encoder to acquire the speed of the balanced vehicle. The speed control signal and balance control signal are superimposed and then are loaded to the two motors in rear wheels for realizing the stillness and upright walk of the vehicle. Meanwhile, TSL1401 linear CCD is used to obtain the image information of the track, and the center line of the track is got accurately and the controlled quantity of direction bias of the vehicle is obtained after the recognition processing of the image. The actual operation results show that intelligent balanced vehicle can keep upright walk, implement steering and autonomous tracing on different paths quickly, and has good adaptability and stability.
Keywords: STM32F405; balanced vehicle; control system; autonomous tracing
0 引 言
在科學技術不斷取得新突破的今天,機器人走進家庭進入工廠已經成為現實,機器人與人們的聯系越來越密切。而兩輪移動式機器人因為結構簡便、反應靈活、適應性強和操作簡單等特點,受到了越來越多的關注[1?3]。本文結合自動控制原理、通信技術和傳感器應用等相關知識,完成了一個具有自主識別道路的兩輪平衡車的設計。該設計以STM32系列單片機為控制核心,運用陀螺儀、加速度計和光電編碼器等傳感器采集相關的數據信息,在硬件電路設計基礎上輔以軟件編程實現了平衡車的直立快速運動和不同路徑上的轉向和自主尋跡。
1 系統硬件結構設計
系統硬件部分主要由微控制器、穩壓電源、角度傳感器、電機驅動、測速模塊、賽道信息采集、人機交互等模塊組成。通過單片機內某些控制算法的處理后輸出PWM控制信號控制兩后輪電機,以完成系統的加減速、轉向和自主尋跡等[4?5],系統硬件整體框圖如圖1所示。
1.1 微控制器模塊
該系統選用STM32F405單片機為控制器,該控制器是以CortexTM?M4為內核的高性能MCU[6],工作頻率能夠達到168 MHz;同時STM32F405微控制器集成了單周期的DSP指令和FPU并行計算功能,運算能力被大大提高,能夠完成部分更復雜的系統控制。
1.2 穩壓電源模塊
穩定的電源對于一個控制系統的正常工作是必不可少且及其重要的。因此在設計平衡車系統時為各個模塊配置了合適、穩定的電源,并且在電路設計上避免不同電源和相同電源不同模塊之間的干擾,從而保證整個系統的穩定運行。該平衡車系統的大部分電路器件為5 V電壓供電,單片機核心控制器則為3.3 V低壓供電。圖2為系統穩壓電源模塊原理圖。
1.3 角度測量模塊
1.3.1 加速度傳感器
本設計采用MMA7260加速度傳感器,其是一款基于重力分量換算原理的低功耗高靈敏度的加速度傳感器,能夠同時輸出x,y,z三個方向的加速度值,用于測量平衡車的運動姿態和方向。
1.3.2 角速度傳感器?陀螺儀
采用ENC?03陀螺儀測量平衡車相對于靈敏軸的傾角。陀螺儀輸出的模擬電壓信號與角速度成正比;通過將該角速度對時間積分便得到靈敏軸旋轉過的角度值,即平衡車的傾角。其具有體積小、重量輕、響應快和功耗低等特征。
1.4 賽道信息采集模塊
系統利用TSL1401線性CCD模塊[7]對比賽賽道信息進行采集并反饋給中央處理單元,由中央處理單元對采集數據進行處理。
1.5 電機驅動模塊
為了實現電機的運行和正反轉控制,如圖3所示。本設計采用兩片IR2101芯片和4個MOS管IRF3205組成了一個H橋型電機驅動電路。IR2101是一款高壓、高速并帶有獨立的高低側參考輸出通道的電力MOS管和IGBT驅動芯片,1片IR2101芯片能夠驅動2個MOS管并控制其通斷狀態。
圖3 電機驅動電路
圖3中4個MOS管作為開關元件,當1號IRF3205和3號IRF3205處于導通狀態,2號IRF3205和4號IRF3205處于關斷狀態時,電機正轉;反之則電機反轉,控制上橋臂MOS管采用PWM方式,下橋臂MOS管只工作在開關狀態。為了防止異常情況的發生,保護驅動電路和電機,設計中加入了電流檢測電路,電機電流全部流經0.02 Ω的采樣電阻,轉換成電壓信號,經過一階低通濾波和同相比例運算放大器之后送給單片機的模擬量輸入口,單片機實時采樣該電壓即可檢測流經電機的實時電流,異常情況即可控制PWM占空比封鎖驅動輸出電壓,已達到保護驅動電路和電機的目的。
2 系統軟件結構設計
在該系統中,圖像的采集由外部中斷來單獨處理,且圖像采集的優先級高于其他內部中斷。傳感器信號的采集、電機轉速的讀取、小車直立控制、小車速度控制、小車方向控制等則放在一個1 ms的定時器中斷服務程序中完成,用一個全局變量進行計數,則可實現系統各個子模塊有序地執行。圖像獲取、圖像處理和黑線提取、方向偏移量和方差的求取及無線串口數據的接收與發送則放在主程序中。圖4為系統主程序流程圖。
軟件系統首先完成各功能模塊的初始化。包括PWM通道、ADC通道及I/O口的設置等。初始化完成后,讀取人機交互模塊的參數,包括撥碼開關的狀態和上位機傳回的數據。然后開始進入無限循環。三級中斷按照優先級先后進入各任務交替完成,首先進入中斷優先級最高的圖像采集程序,再進入DMA中斷服務程序判斷圖像是否采集完畢,若采集完畢設置圖像處理標志位置位,最后進入1 ms的定時器中斷,在定時器中斷服務程序,基于全局計數變量的值使各子模塊的運行任務有序地完成。無中斷信號請求時,則在主循環中執行圖像去噪處理、黑線提取和賽道形式判斷程序[8?9]。若檢測到平衡車傾角超過了某一事先設定好的閾值則可認為平衡車跌倒,則應該令平衡車停止運行。
3 結 語
本文研究并設計實現了以STM32為控制核心的智能平衡車控制系統。以智能平衡車為研究對象,對硬件電路設計和軟件編程進行相關研究,主要有:傳感器采集信號的濾波、自平衡控制的PID參數的整定、賽道圖像提取、道路形式的識別及小車轉向的控制、角度閉環和速度閉環的相互協調等。在實驗室環境下的跑道上,該兩輪平衡車能很好地沿著模擬路徑進行快速運行。
參考文獻
[1] 張學會,蘇洋,徐佳,等.紅外遙控兩輪自平衡小車設計[J].信息技術,2015(9):91?94.
[2] 張偉民,段曉明,趙艷花.兩輪自平衡小車控制研究[J].自動化技術與應用,2011,30(4):11?13.
[3] 阮曉鋼,任紅格.兩輪自平衡機器人動力學建模及其平衡控制[J].計算機應用研究,2009,26(1):99?101.
[4] 姜香菊,劉二林.兩輪自平衡機器人角度檢測數據融合算法[J].計算機工程與應用,2013,49(8):203?205.
[5] 王良成,楊志民,胡聰聰,等.兩輪自平衡小車的設計與實現[J].實驗室科學,2012,15(6):52?55.
[6] 陳啟軍,余有靈,張偉,等.嵌入式系統及其應用[M].上海:同濟大學出版社,2011.
[7] 吳苗苗,沈世斌,王亮,等.基于 CMOS 攝像頭的直立循跡智能車系統設計[J].自動化技術與應用,2014,33(7):21?25.
[8] 盤書焱,楊明,何啟迪,等.基于K60的改進式PID在平衡車中的應用[J].硅谷,2014(24):112.
[9] 吳全玉,張曉東,晁曉琪,等.基于經典PID算法的智能車系統研究[J].自動化與儀器儀表,2011(1):25?26.