周寶昌 謝智陽 郭壯濤
摘要:采用Arduino2560單片機為控制核心,使用MUP6050傳感器模塊采集平衡小車的運動姿態(tài)信息,運用PID控制算法與卡爾曼濾波算法來控制小車的平衡性與穩(wěn)定性;通過藍牙無線傳輸方式,將平衡小車系統(tǒng)采集的角速度、角度、車輪轉(zhuǎn)速等數(shù)據(jù)傳送到上位機LabView顯示界面,并對多個數(shù)據(jù)進行實時顯示。實驗表明,通過上位機LabView軟件可直觀地反映出系統(tǒng)數(shù)據(jù)的動態(tài)可視化,極大方便了對該系統(tǒng)的實驗數(shù)據(jù)進行分析與研究,及縮短產(chǎn)品開發(fā)周期。
關(guān)鍵詞:平衡車;Arduino;PID控制算法;LabView
中圖分類號:TP23? ? 文獻標識碼:A? ? 文章編號:1007-9416(2020)10-0000-00
兩輪自平衡小車類似一個倒立擺系統(tǒng),是一個非線性不穩(wěn)定系統(tǒng),采用陀螺儀和加速度計傳感器模塊來采集角加速度和角度數(shù)據(jù),以此獲得車體當(dāng)前姿態(tài)。當(dāng)前,兩輪自平衡小車系統(tǒng)硬件多數(shù)以MPU6050模塊實時獲取小車姿態(tài),運用卡爾曼濾波算法濾除掉傳感器帶來的噪聲,通過電機的正反轉(zhuǎn)來實現(xiàn)小車自平衡[1-2]。兩輪自平衡小車具有小巧、運動靈活等特點,在眾多搬運機器人中占有一定的優(yōu)勢[3-4]。
以往,我們在調(diào)試小車控制系統(tǒng)時,通常根據(jù)經(jīng)驗和反復(fù)試驗得到較好的實驗效果,因傳感器采集到車輛的準確信息沒有實現(xiàn)可視化,此方法存在開發(fā)周期長、難度大等缺陷?;诖耍疚奶岢鐾ㄟ^藍牙通信的方式,將小車的運行信息傳送至采用LabView開發(fā)的上位機界面,對小車運行數(shù)據(jù)進行實時監(jiān)控,為控制算法的開發(fā)提供了科學(xué)的調(diào)試依據(jù),給算法的調(diào)試指明了方向,從而有效縮短算法的調(diào)試時間。
1系統(tǒng)總體結(jié)構(gòu)設(shè)計
本系統(tǒng)由Arduino兩輪自平衡小車和LabView上位機兩部分組成[5-6]。如圖1所示,平衡小車系統(tǒng)采用Arduino 2560單片機為控制核心,MUP6050傳感器負責(zé)采集小車的姿態(tài)信息,并將姿態(tài)信息傳輸給Arduino控制器,控制器得到平衡小車當(dāng)前的角速度和角度,并結(jié)合直流電機自帶的編碼器測得的輪速信息,最終計算輸出控制信號準確控制小車的兩個直流電機,以保持車體的平衡性,同時將平衡小車系統(tǒng)所采集到的角度、角速度和輪速等數(shù)據(jù)通過藍牙模塊傳送至LabView上位機實時顯示。
2 系統(tǒng)硬件電路設(shè)計
本系統(tǒng)由電源降壓模塊,Arduino2560、MPU6050、光電編碼器、電機驅(qū)動模塊、電機和藍牙模塊組成,見圖2、3。DC電源12V通過降壓模塊降至7V為控制板供電,MPU6050讀取車體姿態(tài)角數(shù)據(jù)通過IIC方式與Arduino2560進行通信;采用光電編碼器獲得直流電機的轉(zhuǎn)速,并通過普通數(shù)字IO口反饋至Arduino2560,Arduino2560根據(jù)傳感器采集到的信息,通過PID控制算法輸出準確的PWM信號至電機驅(qū)動模塊[7]。同時,控制器將傳感器采集到的小車運動和姿態(tài)信息通過HC-05藍牙模塊發(fā)送實時數(shù)據(jù)至上位機接收端。上位機接收端由HC-05藍牙模塊、Arduino UNO控制板組成,藍牙模塊通過串口方式與Arduino UNO進行通信,再連接至PC端的LabView上位機。
2.1 Arduino2560控制板
Arduino 2560是一款基于ATMega2560微控器的開源硬件,帶有54個數(shù)字IO,16路模擬輸入,15路可輸出PWM端口,4個UART串行通訊接口,16Mhz的晶體振蕩器;同時它也有一個專屬的開源軟件平臺Arduino IDE,軟件自帶多個開源庫,與傳統(tǒng)的51、STM32單片機相比,忽略底層開發(fā)信息,省略了許多對操縱寄存器的步驟,可縮短了項目開發(fā)時間,能快速完成產(chǎn)品原型的開發(fā)[8]。
2.2 MPU6050傳感器模塊
MPU6050傳感器模塊是兩輪自平衡小車系統(tǒng)的核心部件之一,它整合了三軸陀螺儀和三軸加速度計,自帶了數(shù)字運動處理(DMP),減少很多復(fù)雜的融合演算數(shù)據(jù)和姿態(tài)感應(yīng)計算等的負荷,也可以選擇通過讀取原始數(shù)據(jù)再做姿態(tài)解算,芯片內(nèi)置有16位AD轉(zhuǎn)換器與16位數(shù)據(jù)輸出。通過標準IIC通訊協(xié)議與Arduino2560傳輸數(shù)據(jù),MPU6050采集數(shù)據(jù)中存在噪聲數(shù)據(jù),使用Arduino自帶的卡爾曼濾波算法開源庫,實現(xiàn)姿態(tài)解算,消除數(shù)據(jù)中的噪聲,降低了本項目的代碼編程與開發(fā)的難度。
2.3 直流電機驅(qū)動模塊
系統(tǒng)采用帶雙H橋的直流電機驅(qū)動模塊,可以同時驅(qū)動兩臺直流電機,每一路輸出額定電流7A,峰值電流可達到50A,內(nèi)部帶有8片NCE6075.N溝道MOS管,具有很小的導(dǎo)通內(nèi)阻,消耗能量較低,在實驗前對所使用的直流電機進行測試,電機堵轉(zhuǎn)電流可達5A,正反轉(zhuǎn)瞬間電流達4A,因此此電機驅(qū)動模塊穩(wěn)定符合使用要求;該直流電機驅(qū)動模塊具有靜電泄放電路,可有效抑制瞬態(tài)干擾脈沖和靜電,帶光耦隔離輸入,單片機IO口可直接控制而不受信號干擾,可防止實驗瞬間大電流擊穿燒毀模塊的欠壓過流保護等特點。其驅(qū)動邏輯與L298相似,真值表見表1。
3 系統(tǒng)軟件設(shè)計
在兩輪自平衡小車控制系統(tǒng)中,系統(tǒng)內(nèi)部的工作原理與運行實時流程見圖4。對于MPU6050傳感器、編碼器的信號采集與處理、PWM控制信號,以及小車的直立環(huán)控制和速度環(huán)控制,它們都是對于軟件的實時性都有較高的要求,需要精準時鐘周期來執(zhí)行,因此可以設(shè)置在每隔一個固定周期的定時中斷中控制執(zhí)行;而小車的數(shù)據(jù)輸出打印顯示不需要精準的時鐘周期,所以可將其放置在loop( )主程序循環(huán)里。此程序主要分為中斷服務(wù)程序和主循環(huán)程序兩部分,只有少部分要求實時性較高的程序放在中斷中,保證了程序整體的實時性。
4 LabView上位機無線采集數(shù)據(jù)與監(jiān)測
LabView虛擬儀器是由美國儀器公司(簡稱“NI”)開發(fā)的軟件工具,在國防、航天、計算機測控等領(lǐng)域有了很好的發(fā)展,其最大的特點是后臺采用圖形化編程,也稱G語言。傳統(tǒng)的測量儀器可視界面固定、單調(diào),由廠家、開發(fā)商定義制造,而LabView軟件對可視化界面提供了創(chuàng)新性和可自由設(shè)計的空間,用戶可以根據(jù)自身實際需求來定義與制作,突破傳統(tǒng)儀器的限制,豐富了數(shù)據(jù)的可視化,極具方便性與靈活性[4]。
本系統(tǒng)將下位機接收的數(shù)據(jù)通過藍牙模塊1無線傳輸?shù)剿{牙模塊2,藍牙模塊2連接Arduino UNO再由串口發(fā)送到PC端的LabView上位機讀取并將數(shù)據(jù)可視化,整個信息的收發(fā)過程相當(dāng)于一種“無線串口”傳輸數(shù)據(jù)。
LabView程序其程序流程圖見圖5,主要調(diào)用了NI-VISA命令,VISA是一種串口通訊的編程接口。在LabView程序框圖中可分為三大部分:串口配置、數(shù)據(jù)讀取和數(shù)據(jù)處理。
通過選擇對應(yīng)的端口、波特率、數(shù)據(jù)位和奇偶校驗對串口完成初始化配置。數(shù)據(jù)讀取部分引用“VISA讀取”函數(shù)控件;VISA在指定的設(shè)備端口中讀取一定數(shù)量的字節(jié),并使數(shù)據(jù)返回至數(shù)據(jù)緩沖區(qū)。由于VIAS讀取函數(shù)采集到的是一連串的字符串類型數(shù)據(jù),所以先對字符串型的數(shù)據(jù)進行拆分。這里采用以空字符為界分割成多組字符串,然后再將分割后的字符串型數(shù)據(jù)進行類型轉(zhuǎn)換。
整個系統(tǒng)上電后,等待藍牙主從模塊相互連接后,數(shù)據(jù)正常發(fā)送接收并可以直觀的在LabView上位機上監(jiān)測實時動態(tài)數(shù)據(jù),其上位機顯示界面見圖6,將串口數(shù)據(jù)分別以圖表形式顯示。
5 實驗結(jié)果分析
本系統(tǒng)實現(xiàn)了小車能夠基本保持平衡,實驗過程中小車稍微出現(xiàn)一絲前后擺動。完成對LabView上位機的開發(fā),能夠?qū)崿F(xiàn)通過藍牙無線傳輸顯示各個數(shù)據(jù)的變化。整個系統(tǒng)模塊化設(shè)計成本低、開發(fā)周期短?;贏rduino的兩輪自平衡小車硬件方面基本能夠滿足本實驗要求,由于時間和工具的限制,以及程序算法參數(shù)的整定上,存在著更好參數(shù)改進。多次實驗發(fā)現(xiàn),LabView程序能穩(wěn)定讀取字符到緩沖區(qū),完成小車姿態(tài)信息實時顯示的功能,極大方便了調(diào)試過程。
6 結(jié)論
兩輪自平衡小車是一個非線性的復(fù)雜系統(tǒng),本文運用開源硬件完成了兩輪平衡小車的開發(fā)設(shè)計。采用NI的LabView,突破傳統(tǒng)儀器對數(shù)據(jù)的處理與傳送,能夠提供測量多個數(shù)據(jù)通道與添加更多控制功能。整個系統(tǒng)中,對算法的研究和LabView數(shù)據(jù)可視化相結(jié)合,可以應(yīng)用于教學(xué)平臺展示,能更好地對數(shù)據(jù)進行分析,具有一定的研究意義。
參考文獻
[1]路成強,曾潔,李千振.基于卡爾曼濾波的兩輪自平衡遙控小車設(shè)計[J].自動化儀表,2017(9):44-47+52.
[2]夏鵬輝.兩輪平衡車的強化學(xué)習(xí)控制算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2018.
[3]采長濤.兩輪小車自平衡控制系統(tǒng)的研究與設(shè)計[D].淮南:安徽理工大學(xué),2018.
[4]毛靈偉.兩輪自平衡電動車控制系統(tǒng)的設(shè)計[D].杭州:浙江大學(xué),2017.
[5]王素青,熊維堂.基于STM32的兩輪自平衡小車系統(tǒng)設(shè)計[J].實驗室研究與探索,2016,35(5):146-150.
[6]靳培峰.智能雙輪平衡車的設(shè)計[D].淮南:安徽理工大學(xué),2017.
[7]喬緯國.一種采用雙PID串級控制的雙輪自平衡車的研制[D].長春:吉林大學(xué),2017.
[8]符長友,李政,王銘亮,等.基于視覺的雙輪競速自平衡小車的設(shè)計[J].實驗技術(shù)與管理,2019,36(4):161-164+171.
收稿日期:2020-08-28
基金項目:河源市工業(yè)機器人技術(shù)應(yīng)用工程技術(shù)研究中心,編號:00007107,來源:河源市科技局。
作者簡介:周寶昌(1987—),男,廣東河源人,碩士,講師,研究方向:工業(yè)機器人仿真技術(shù),虛擬仿真、云計算。
通訊作者:謝智陽(1985—),男,廣東河源人,碩士,講師,研究方向:嵌入式產(chǎn)品設(shè)計、計算機視覺及生物特征識別。
Research on Two-wheeled Self-balancing Car System Based on Arduino and LabView
ZHOU Bao-chang1,XIE Zhi-yang1,2,GUO Zhuang-tao
(1.College of Mechanical and Electrical Engineering, Heyuan Polytechnic, Heyuan? Guangdong 517000;2.Heyuan Industrial Robot Technology Application Engineering Technology Research Center, Heyuan Guangdong? 517000)
Abstract:Adopt Arduino2560 for microcomputer as the control core, to collect the movement posture information of the balance car use MUP6050 sensor module, and use PID control algorithm and Kalman filter algorithm to control the balance and stability of the car.Through the Bluetooth wireless transmission method, the angular velocity, angle, wheel speed and other data collected by the balance car system are transmitted to the LabView display interface of the host computer, and multiple data are displayed in real time. Experiments show that the LabView software of the host computer can intuitively reflect the dynamic visualization of the system data, which greatly facilitates the analysis and research of the experimental data of the system and shortens the product development cycle.
Key words:Balance car; Arduino; PID control algorithm; LabView