紀(jì) 偉,曾憲陽(yáng),左翠翠,李士垚
(1.南京工程學(xué)院 自動(dòng)化學(xué)院,江蘇 南京,211167;2.南京工程學(xué)院 工業(yè)中心,江蘇 南京,211167;3.南京工程學(xué)院 電力工程學(xué)院,江蘇 南京,211167)
基于STM32與Android系統(tǒng)遠(yuǎn)程控制的兩輪自平衡車設(shè)計(jì)*
紀(jì) 偉1,曾憲陽(yáng)2,左翠翠2,李士垚3
(1.南京工程學(xué)院 自動(dòng)化學(xué)院,江蘇 南京,211167;2.南京工程學(xué)院 工業(yè)中心,江蘇 南京,211167;3.南京工程學(xué)院 電力工程學(xué)院,江蘇 南京,211167)
當(dāng)前市場(chǎng)上已有的平衡車需要站在車上操作遙桿來(lái)進(jìn)行控制,應(yīng)用范圍小,因此設(shè)計(jì)了以STM32單片機(jī)作為主控芯片,配合Android上位機(jī)進(jìn)行遠(yuǎn)程控制的系統(tǒng)。車載攝像頭傳感器和溫濕度傳感器可以實(shí)時(shí)記錄周邊環(huán)境情況,促使相應(yīng)處理機(jī)制對(duì)環(huán)境做出應(yīng)答,保證使用者擁有一個(gè)更加安全、可靠、使用壽命更長(zhǎng)的可遠(yuǎn)程控制自主平衡車。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的兩輪自平衡車平衡穩(wěn)定性好,抗干擾能力強(qiáng),能實(shí)現(xiàn)Android系統(tǒng)的遠(yuǎn)程平衡控制。
STM32單片機(jī);Android系統(tǒng);遠(yuǎn)程控制;自平衡車;攝像頭
當(dāng)前,隨著傳感器技術(shù)的發(fā)展,平衡車越來(lái)越被廣泛地應(yīng)用于交通、安保、巡查等方面[1-2]。作為一種新的交通、安保等行業(yè)方面的工具,平衡車不僅在穩(wěn)定性上有著較高的要求,還在遠(yuǎn)程遙控、實(shí)時(shí)監(jiān)控方面有著迫切的需要。本文設(shè)計(jì)一種基于遠(yuǎn)程Android上位機(jī)客戶端進(jìn)行操控的平衡車,使其能在遠(yuǎn)程駕駛、安保、巡查等方面有著更廣泛的應(yīng)用。
1.1 系統(tǒng)原理分析[3-4]
平衡車的力學(xué)原理類似于倒立擺的力學(xué)原理,如圖1所示,根據(jù)分析得平衡車的回復(fù)力算式:
圖1 平衡車簡(jiǎn)化模型
mgsinθ-macosθ≈mgθ-mk1θ
其中k1為負(fù)反饋控制下車輪加速度a與偏角θ的比例因子。忽略空氣阻力及摩擦力,得出下式:
F=mgθ-mk1θ-mk2θ′
其加速度a為:
a=k1θ+k2θ′
θ為車模傾角,θ′是角速度,所以只要得到傾角和角速度就可以推算出車模的加速度,從而得到對(duì)應(yīng)的占空比的PWM波,對(duì)平衡車進(jìn)行準(zhǔn)確的控制。
1.2 系統(tǒng)整體的設(shè)計(jì)思路
系統(tǒng)選用STM32單片機(jī)作為主控芯片,采集并處理攝像頭傳感器、編碼器、溫濕度傳感器以及上位機(jī)發(fā)送的指令,將數(shù)據(jù)處理后通過(guò)無(wú)線視頻傳輸模塊發(fā)送到上位機(jī),使用基于Android手機(jī)系統(tǒng)的APP進(jìn)行遠(yuǎn)程控制和遠(yuǎn)程處理數(shù)據(jù),以提高系統(tǒng)的自主性、安全性、可靠性。系統(tǒng)整體設(shè)計(jì)框圖如圖2所示。
圖2 系統(tǒng)整體設(shè)計(jì)框圖
2.1 STM32單片機(jī)最小系統(tǒng)電路設(shè)計(jì)
本系統(tǒng)選用ST公司生產(chǎn)的STM32F103C8T6單片機(jī)作為主控單元[5],主頻高達(dá)72 MHz,可以輸出多路PWM信號(hào),片內(nèi)集成外設(shè)資源豐富。其最小系統(tǒng)電路如圖3所示,包含了外部時(shí)鐘電路、復(fù)位電路、OLED顯示電路和按鍵交互電路。
圖3 STM32F103C8T6單片機(jī)最小系統(tǒng)電路圖
2.2 電機(jī)驅(qū)動(dòng)模塊的電路設(shè)計(jì)
本文設(shè)計(jì)的L298N電機(jī)驅(qū)動(dòng)模塊電路如圖4所示[6-7],該模塊由12 V供電,輸出5 V。可以輸入4路PWM信號(hào),2路使能信號(hào),完全滿足控制平衡車兩個(gè)輪子正反轉(zhuǎn)的實(shí)際需求。
圖4 電機(jī)驅(qū)動(dòng)模塊電路原理圖
2.3 WiFi視頻傳輸模塊的設(shè)計(jì)
系統(tǒng)設(shè)計(jì)了Robot-Link V5.0 WiFi模塊,300 Mb/s帶寬的OPENWRT路由器,該模塊相當(dāng)于一個(gè)服務(wù)端,開(kāi)放了TCP連接,接入外網(wǎng)后可以通過(guò)網(wǎng)絡(luò)進(jìn)行視頻傳輸,工作穩(wěn)定,視頻清晰。使用者可以通過(guò)手機(jī)APP或者PC端的上位機(jī)程序通過(guò)TCP協(xié)議來(lái)獲取攝像頭所拍攝視頻。
2.4 傳感器模塊電路的設(shè)計(jì)
圖5 MPU6050傳感器模塊電路
為滿足平衡車傾角檢測(cè)需要,使用六軸傳感器MPU6050來(lái)檢測(cè)傾角[8],該芯片內(nèi)部有16位的AD轉(zhuǎn)換器,16位數(shù)據(jù)的輸出,供電3~5 V,標(biāo)準(zhǔn)的I2C通信協(xié)議。MPU-6000系列整合了3軸陀螺儀、3軸加速器運(yùn)動(dòng)處理(DMP)硬件加速引擎,由主要I2C端口以單一數(shù)據(jù)流的形式向應(yīng)用端輸出完整的9軸融合演算技術(shù)。也可以自行進(jìn)行數(shù)據(jù)解算,得到穩(wěn)定的角度值,設(shè)計(jì)的電路如圖5所示。
2.5 溫濕度傳感器模塊的設(shè)計(jì)
為滿足設(shè)計(jì)需要,系統(tǒng)還配備了溫濕度傳感器DHT11[9-10],可以檢測(cè)周圍環(huán)境的濕度和溫度,濕度測(cè)量范圍:20~95 %RH(0~50℃范圍),濕度測(cè)量誤差:±5%,溫度測(cè)量范圍:0~50℃,溫度測(cè)量誤差:±2℃,以數(shù)字量形式輸出。DHT11不僅可以適應(yīng)正常的平衡車的工作環(huán)境,而且單總線的設(shè)計(jì)方式節(jié)約了IO口,有助于簡(jiǎn)化電路設(shè)計(jì),設(shè)計(jì)的電路原理圖如圖6所示。
圖6 溫濕度傳感器模塊電路
2.6 電源模塊的設(shè)計(jì)
由于電機(jī)的驅(qū)動(dòng)會(huì)對(duì)電路穩(wěn)定性產(chǎn)生較大的干擾,以及WiFi視頻傳輸模塊需要穩(wěn)定的1 A電流,綜上考慮本系統(tǒng)的電源電路采用多電源設(shè)計(jì)方式,既有效地隔離了電機(jī)對(duì)電路的影響,又能提供給WiFi模塊穩(wěn)定的輸入電流,增強(qiáng)了系統(tǒng)運(yùn)行的穩(wěn)定性。圖7為系統(tǒng)電源模塊供電分配方式圖。
圖7 電源模塊供電分配方式圖
3.1 姿態(tài)解算與數(shù)據(jù)濾波[11-13]
由于陀螺儀數(shù)據(jù)隨著時(shí)間的累積會(huì)產(chǎn)生誤差,姿態(tài)解算主要就圍繞著對(duì)陀螺儀的長(zhǎng)期誤差進(jìn)行補(bǔ)償,首先將加速度計(jì)采集到的值轉(zhuǎn)化成單位向量,也就是向量除以模,傳入?yún)?shù)是陀螺儀X、Y、Z三軸的數(shù)值以及加速度的X、Y、Z三軸的數(shù)值,通過(guò)四元數(shù)計(jì)算出上一次重力的單位向量,由于向量的誤差就是向量的叉積,計(jì)算出加速度表示的重力的單位向量與四元素得到的重力單位向量進(jìn)行叉積得到重力的誤差,將誤差進(jìn)行積分并且補(bǔ)償?shù)酵勇輧x,使用一階龍格庫(kù)塔方法求解四元數(shù),最后根據(jù)四元數(shù)與歐拉角的關(guān)系求解出歐拉角。得到歐拉角之后將數(shù)據(jù)進(jìn)行濾波處理,嘗試使用互補(bǔ)濾波、卡爾曼濾波和DMP,最后發(fā)現(xiàn)卡爾曼數(shù)據(jù)跟隨性滿足要求,穩(wěn)定性很好。
卡爾曼濾波前后波形如圖8所示,從圖中可以看出濾波前數(shù)據(jù)干擾較大,存在諸多不穩(wěn)定信號(hào),經(jīng)過(guò)卡爾曼濾波之后波形較為平滑,穩(wěn)定性得到很大提高,對(duì)后期PID控制提供了保障。
圖8 卡爾曼濾波前后波形對(duì)比圖
3.2 控制算法設(shè)計(jì)
系統(tǒng)控制流程如圖9所示。
圖9 系統(tǒng)控制流程圖
本系統(tǒng)使用了應(yīng)用非常廣泛的PID調(diào)節(jié)控制算法[14-15],系統(tǒng)分為三環(huán)控制,分別是:直立環(huán)、速度環(huán)和轉(zhuǎn)動(dòng)環(huán)。顧名思義:直立環(huán)就是保持車體的狀態(tài),采用PD調(diào)節(jié)控制算法,但是單一的直立環(huán)很難維持車體在外界干擾的情況下依舊保持直立,所以引入了速度環(huán),速度環(huán)使用PI控制器,是對(duì)編碼器讀出的數(shù)據(jù)信號(hào)進(jìn)行控制,其積分量可以保持小車停在原地不動(dòng)。轉(zhuǎn)向環(huán)由于對(duì)精度要求并不是很高,使用了單獨(dú)的P控制。在三個(gè)環(huán)的配合下最終實(shí)現(xiàn)了小車的平穩(wěn)站立行走。
3.3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)使用MPU6050的中斷引腳10 ms作為系統(tǒng)的采樣周期,一周期內(nèi)采集一次傳感器的數(shù)據(jù)并進(jìn)行姿態(tài)解算輸出歐拉角,然后通過(guò)濾波算法進(jìn)行數(shù)據(jù)處理。緊接著讀取左右輪編碼器得到當(dāng)前小車的速度值,讀取溫濕度傳感器的值,判斷當(dāng)前環(huán)境溫濕度是否適合平衡車的放置,并將數(shù)據(jù)通過(guò)OLED顯示在界面上,將得到角度、角速度、期望角度、左右輪編碼器的值以及上位機(jī)的控制數(shù)據(jù)等值帶入PID控制器里,得到輸出PWM的占空比值。WiFi視頻傳輸模塊會(huì)不斷采集攝像頭的視頻數(shù)據(jù)通過(guò)TCP協(xié)議發(fā)送出去。使用者可以通過(guò)TCP協(xié)議來(lái)獲取小車的視頻并且實(shí)現(xiàn)遠(yuǎn)程控制小車。
3.4 PID參數(shù)整定
對(duì)于平衡車來(lái)說(shuō)最重要的是直立環(huán),所以必須先調(diào)節(jié)直立環(huán),直立環(huán)使用了PD控制器,先調(diào)試P參數(shù),從小到大,直到剛開(kāi)始出現(xiàn)了震蕩,增大參數(shù)D以消除震蕩。速度環(huán)使用了PI控制器,參數(shù)P可以增強(qiáng)平衡車回中的能力,參數(shù)I可以對(duì)其進(jìn)行細(xì)調(diào)。轉(zhuǎn)向環(huán)是保證小車能夠水行駛,使用P控制器,逐漸修改參數(shù)直到小車可以保持水平,停在原地。
本文實(shí)現(xiàn)了兩輪平衡車的穩(wěn)定站立,并且能夠通過(guò)Android客戶端程序進(jìn)行遠(yuǎn)程的視頻傳輸和遠(yuǎn)程控制,視頻質(zhì)量清晰,遠(yuǎn)程控制穩(wěn)定性高。平衡車無(wú)需使用者隨時(shí)攜帶,只要打開(kāi)APP,可以操控平衡車到達(dá)任何你想要去的地方,可用于日常的交通、安保、巡查等多方面無(wú)人操作領(lǐng)域。
[1] 段其昌, 袁洪躍, 金旭東. 兩輪自平衡車無(wú)速度傳感器平衡控制仿真研究[J]. 控制工程, 2013, 20(4): 618-622.
[2] 張曉華, 張志軍. 自平衡式兩輪電動(dòng)車耦合控制研究[J]. 控制工程, 2013, 20(1):26-29.
[3] 李曉峰, 崔云飛, 高學(xué)山,等. 小擺角兩輪機(jī)器人動(dòng)力學(xué)建模及控制器設(shè)計(jì)[J]. 北京理工大學(xué)學(xué)報(bào), 2014,34(10):1049-1053.
[4] 馬思遠(yuǎn), 魯庭勇, 張麗君. 兩輪自平衡車運(yùn)動(dòng)姿態(tài)的測(cè)量和控制[J]. 測(cè)控技術(shù), 2015, 34(4):71-73.
[5] 陳致遠(yuǎn),朱葉承,周卓泉,等.一種基于STM32的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(9):138-140.
[6] 雷紅淼, 程耀瑜. 基于L298N的直流電機(jī)驅(qū)動(dòng)電路優(yōu)化設(shè)計(jì)[J]. 數(shù)字技術(shù)與應(yīng)用, 2012(2):118-118.
[7] 康華光.電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2003.
[8] 賴義漢, 王凱. 基于MPU6050的雙輪平衡車控制系統(tǒng)設(shè)計(jì)[J]. 河南工程學(xué)院學(xué)報(bào)(自然科學(xué)版), 2014, 26(1):53-57.
[9] 韓丹翱, 王菲. DHT11數(shù)字式溫濕度傳感器的應(yīng)用性研究[J]. 電子設(shè)計(jì)工程, 2013, 21(13):83-85.
[10] 李長(zhǎng)有, 王文華. 基于DHT11溫濕度測(cè)控系統(tǒng)設(shè)計(jì)[J]. 機(jī)床與液壓, 2013, 41(13):107-108.
[11] 周立青, 章研, 安舒,等. 基于硬件Kalman濾波器的航拍云臺(tái)姿態(tài)獲取[J]. 電子技術(shù)應(yīng)用, 2014, 40(10):93-95.
[12] 鄭慧偉, 崔坤. 卡爾曼濾波在二輪自平衡車直立控制中的應(yīng)用[J]. 微型機(jī)與應(yīng)用, 2014, 33(17):95-97.
[13] 樊炳輝, 張凱麗, 王傳江,等. 基于四元數(shù)的前臂假肢手部自平衡的設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2016, 42(5):78-81.
[14] 李世光,王文文,申夢(mèng)茜,等.基于變論域模糊PI四輪機(jī)器人的仿真與研究[J].科學(xué)技術(shù)與工程,2016,16(10):191-194.
[15] ANG K H, CHONG G, Li Yun. PID control system analysis, design, and technology[J]. IEEE Transactions on Control Systems Technology, 2005, 13(4):559-576.
Design of remote control two wheels balance car based on STM32 and Android
Ji Wei1, Zeng Xianyang2, Zuo Cuicui2, Li Shiyao3
(1. School of Automation, Nanjing Institute of Technology, Nanjing 211167,China; 2. Industry Center, Nanjing Institute of Technology, Nanjing 211167,China; 3. School of Electric Power Engineering, Nanjing Institute of Technology, Nanjing 211167,China)
The existing balance car on the market needs to stand on the car to operate rod to control to the car, so application scope is narrow. Thus this paper takes STM32 as the main control chip, working in with the Android PC to design a romote control system. Car camera sensor and temperature and humidity sensor can record real-time surrounding environment information, to make a response to the environment, so as to ensure that users have a more secure, reliable, long life self-balance car use. The experiment results show that the self-balancing car has a good ability to keep balance and vesist interference, and can realize the remote control by Android system.
STM32 MCU; Android system; remote control; self-balancing car; camera
U283.1
A
10.19358/j.issn.1674- 7720.2017.02.027
紀(jì)偉,曾憲陽(yáng),左翠翠,等.基于STM32與Android系統(tǒng)遠(yuǎn)程控制的兩輪自平衡車設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(2):90-92,99.
江蘇省高等學(xué)校大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目(201411276041Y)
2016-08-30)
紀(jì)偉(1996-),男,本科生,主要研究方向:自動(dòng)控制理論。
曾憲陽(yáng)(1979-),通信作者,男,博士研究生,主要研究方向:電子與通信、控制理論與控制工程。E-mail:zxy@njit.edu.cn。
左翠翠(1996-),女,本科生,主要研究方向:自動(dòng)控制與系統(tǒng)集成。