《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于STM32與Android系統(tǒng)遠(yuǎn)程控制的兩輪自平衡車設(shè)計(jì)
基于STM32與Android系統(tǒng)遠(yuǎn)程控制的兩輪自平衡車設(shè)計(jì)
2017年微型機(jī)與應(yīng)用第2期
紀(jì)偉1,曾憲陽2,左翠翠2,李士垚3
1.南京工程學(xué)院 自動(dòng)化學(xué)院,江蘇 南京,211167;2.南京工程學(xué)院 工業(yè)中心,江蘇 南京,211167;3.南京工程學(xué)院 電力工程學(xué)院,江蘇 南京,211167
摘要: 當(dāng)前市場上已有的平衡車需要站在車上操作遙桿來進(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è)更加安全、可靠、使用壽命更長的可遠(yuǎn)程控制自主平衡車。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的兩輪自平衡車平衡穩(wěn)定性好,抗干擾能力強(qiáng),能實(shí)現(xiàn)Android系統(tǒng)的遠(yuǎn)程平衡控制。
Abstract:
Key words :

  紀(jì)偉1,曾憲陽2,左翠翠2,李士垚3

  (1.南京工程學(xué)院 自動(dòng)化學(xué)院,江蘇 南京,211167;2.南京工程學(xué)院 工業(yè)中心,江蘇 南京,211167;3.南京工程學(xué)院 電力工程學(xué)院,江蘇 南京,211167)

         摘要:當(dāng)前市場上已有的平衡車需要站在車上操作遙桿來進(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è)更加安全、可靠、使用壽命更長的可遠(yuǎn)程控制自主平衡車。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的兩輪自平衡車平衡穩(wěn)定性好,抗干擾能力強(qiáng),能實(shí)現(xiàn)Android系統(tǒng)的遠(yuǎn)程平衡控制。

  關(guān)鍵詞:STM32單片機(jī);Android系統(tǒng);遠(yuǎn)程控制;自平衡車;攝像頭

  中圖分類號(hào):U283.1文獻(xiàn)標(biāo)識(shí)碼:ADOI: 10.19358/j.issn.1674-7720.2017.02.027

  引用格式:紀(jì)偉,曾憲陽,左翠翠,等.基于STM32與Android系統(tǒng)遠(yuǎn)程控制的兩輪自平衡車設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(2):90-92,99.

0引言

  *基金項(xiàng)目:江蘇省高等學(xué)校大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目(201411276041Y)當(dāng)前,隨著傳感器技術(shù)的發(fā)展,平衡車越來越被廣泛地應(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系統(tǒng)設(shè)計(jì)思路

  1.1系統(tǒng)原理分析[3 4]

  平衡車的力學(xué)原理類似于倒立擺的力學(xué)原理,如圖1所示,根據(jù)分析得平衡車的回復(fù)力算式:

001.jpg

  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ù)處理后通過無線視頻傳輸模塊發(fā)送到上位機(jī),使用基于Android手機(jī)系統(tǒng)的APP進(jìn)行遠(yuǎn)程控制和遠(yuǎn)程處理數(shù)據(jù),以提高系統(tǒng)的自主性、安全性、可靠性。系統(tǒng)整體設(shè)計(jì)框圖如圖2所示。

002.jpg

2硬件電路設(shè)計(jì)

  2.1STM32單片機(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顯示電路和按鍵交互電路?!?/p>

003.jpg

  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í)際需求?!?/p>

004.jpg

  2.3WiFi視頻傳輸模塊的設(shè)計(jì)

  系統(tǒng)設(shè)計(jì)了RobotLink V5.0 WiFi模塊,300 Mb/s帶寬的OPENWRT路由器,該模塊相當(dāng)于一個(gè)服務(wù)端,開放了TCP連接,接入外網(wǎng)后可以通過網(wǎng)絡(luò)進(jìn)行視頻傳輸,工作穩(wěn)定,視頻清晰。使用者可以通過手機(jī)APP或者PC端的上位機(jī)程序通過TCP協(xié)議來獲取攝像頭所拍攝視頻。

  2.4傳感器模塊電路的設(shè)計(jì)

  為滿足平衡車傾角檢測需要,使用六軸傳感器MPU6050來檢測傾角[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)用端圖5MPU6050傳感器模塊電路

  輸出完整的9軸融合演算技術(shù)。也可以自行進(jìn)行數(shù)據(jù)解算,得到穩(wěn)定的角度值,設(shè)計(jì)的電路如圖5所示。

005.jpg

  2.5溫濕度傳感器模塊的設(shè)計(jì)

  為滿足設(shè)計(jì)需要,系統(tǒng)還配備了溫濕度傳感器DHT11[910],可以檢測周圍環(huán)境的濕度和溫度,濕度測量范圍:20~95 %RH(0~50℃范圍),濕度測量誤差:±5%,溫度測量范圍:0~50℃,溫度測量誤差:±2℃,以數(shù)字量形式輸出。DHT11不僅可以適應(yīng)正常的平衡車的工作環(huán)境,而且單總線的設(shè)計(jì)方式節(jié)約了IO口,有助于簡化電路設(shè)計(jì),設(shè)計(jì)的電路原理圖如圖6所示。

007.jpg

  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)電源模塊供電分配方式圖。

 

008.jpg

3軟件程序設(shè)計(jì)

  3.1姿態(tài)解算與數(shù)據(jù)濾波[11 13]

  由于陀螺儀數(shù)據(jù)隨著時(shí)間的累積會(huì)產(chǎn)生誤差,姿態(tài)解算主要就圍繞著對(duì)陀螺儀的長期誤差進(jìn)行補(bǔ)償,首先將加速度計(jì)采集到的值轉(zhuǎn)化成單位向量,也就是向量除以模,傳入?yún)?shù)是陀螺儀X、Y、Z三軸的數(shù)值以及加速度的X、Y、Z三軸的數(shù)值,通過四元數(shù)計(jì)算出上一次重力的單位向量,由于向量的誤差就是向量的叉積,計(jì)算出加速度表示的重力的單位向量與四元素得到的重力單位向量進(jìn)行叉積得到重力的誤差,將誤差進(jìn)行積分并且補(bǔ)償?shù)酵勇輧x,使用一階龍格庫塔方法求解四元數(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)過卡爾曼濾波之后波形較為平滑,穩(wěn)定性得到很大提高,對(duì)后期PID控制提供了保障。

  

009.jpg

  3.2控制算法設(shè)計(jì)

  系統(tǒng)控制流程如圖9所示。

010.jpg

  本系統(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)解算輸出歐拉角,然后通過濾波算法進(jìn)行數(shù)據(jù)處理。緊接著讀取左右輪編碼器得到當(dāng)前小車的速度值,讀取溫濕度傳感器的值,判斷當(dāng)前環(huán)境溫濕度是否適合平衡車的放置,并將數(shù)據(jù)通過OLED顯示在界面上,將得到角度、角速度、期望角度、左右輪編碼器的值以及上位機(jī)的控制數(shù)據(jù)等值帶入PID控制器里,得到輸出PWM的占空比值。WiFi視頻傳輸模塊會(huì)不斷采集攝像頭的視頻數(shù)據(jù)通過TCP協(xié)議發(fā)送出去。使用者可以通過TCP協(xié)議來獲取小車的視頻并且實(shí)現(xiàn)遠(yuǎn)程控制小車。

  3.4PID參數(shù)整定

  對(duì)于平衡車來說最重要的是直立環(huán),所以必須先調(diào)節(jié)直立環(huán),直立環(huán)使用了PD控制器,先調(diào)試P參數(shù),從小到大,直到剛開始出現(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ù)直到小車可以保持水平,停在原地。

4結(jié)論

  本文實(shí)現(xiàn)了兩輪平衡車的穩(wěn)定站立,并且能夠通過Android客戶端程序進(jìn)行遠(yuǎn)程的視頻傳輸和遠(yuǎn)程控制,視頻質(zhì)量清晰,遠(yuǎn)程控制穩(wěn)定性高。平衡車無需使用者隨時(shí)攜帶,只要打開APP,可以操控平衡車到達(dá)任何你想要去的地方,可用于日常的交通、安保、巡查等多方面無人操作領(lǐng)域。

  參考文獻(xiàn)

 ?。?] 段其昌, 袁洪躍, 金旭東. 兩輪自平衡車無速度傳感器平衡控制仿真研究[J]. 控制工程, 2013, 20(4): 618 622.

  [2] 張曉華, 張志軍. 自平衡式兩輪電動(dòng)車耦合控制研究[J]. 控制工程, 2013, 20(1):26-29.

 ?。?] 李曉峰, 崔云飛, 高學(xué)山,等. 小擺角兩輪機(jī)器人動(dòng)力學(xué)建模及控制器設(shè)計(jì)[J]. 北京理工大學(xué)學(xué)報(bào), 2014,34(10):1049-1053.

 ?。?] 馬思遠(yuǎn), 魯庭勇, 張麗君. 兩輪自平衡車運(yùn)動(dòng)姿態(tài)的測量和控制[J]. 測控技術(shù), 2015, 34(4):71-73.

 ?。?] 陳致遠(yuǎn),朱葉承,周卓泉,等.一種基于STM32的智能家居控制系統(tǒng)[J].電子技術(shù)應(yīng)用,2012,38(9):138-140.

 ?。?] 雷紅淼, 程耀瑜. 基于L298N的直流電機(jī)驅(qū)動(dòng)電路優(yōu)化設(shè)計(jì)[J]. 數(shù)字技術(shù)與應(yīng)用, 2012(2):118-118.

 ?。?] 康華光.電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2003.

 ?。?] 賴義漢, 王凱. 基于MPU6050的雙輪平衡車控制系統(tǒng)設(shè)計(jì)[J]. 河南工程學(xué)院學(xué)報(bào)(自然科學(xué)版), 2014, 26(1):53-57.

 ?。?] 韓丹翱, 王菲. DHT11數(shù)字式溫濕度傳感器的應(yīng)用性研究[J]. 電子設(shè)計(jì)工程, 2013, 21(13):83-85.

 ?。?0] 李長有, 王文華. 基于DHT11溫濕度測控系統(tǒng)設(shè)計(jì)[J]. 機(jī)床與液壓, 2013, 41(13):107108.

 ?。?1] 周立青, 章研, 安舒,等. 基于硬件Kalman濾波器的航拍云臺(tái)姿態(tài)獲?。跩]. 電子技術(shù)應(yīng)用, 2014, 40(10):93-95.

 ?。?2] 鄭慧偉, 崔坤. 卡爾曼濾波在二輪自平衡車直立控制中的應(yīng)用[J]. 微型機(jī)與應(yīng)用, 2014, 33(17):95-97.

 ?。?3] 樊炳輝, 張凱麗, 王傳江,等. 基于四元數(shù)的前臂假肢手部自平衡的設(shè)計(jì)[J]. 電子技術(shù)應(yīng)用, 2016, 42(5):78-81.

 ?。?4] 李世光,王文文,申夢茜,等.基于變論域模糊PI四輪機(jī)器人的仿真與研究[J].科學(xué)技術(shù)與工程,2016,16(10):191-194.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。