嚴(yán)冬
【摘 要】隨著電子科學(xué)技術(shù)的進(jìn)步,兩輪平衡小車(chē)的研究和應(yīng)用越來(lái)越廣泛。本文提出了一種兩輪平衡小車(chē),采用STM32F103C8T6單片機(jī)作為整個(gè)硬件電路的控制核心,利用NRF24L01無(wú)線模塊來(lái)調(diào)整小車(chē)的PID參數(shù)設(shè)計(jì)。小車(chē)能夠自主的保持平衡狀態(tài),并在保持直立的基礎(chǔ)上完成前進(jìn)、轉(zhuǎn)彎、后退動(dòng)作。
【關(guān)鍵字】角度數(shù)據(jù);PID算法;四元數(shù)濾波算法;單片機(jī)
中圖分類號(hào): TP13-4;G642 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 2095-2457(2018)33-0014-002
DOI:10.19694/j.cnki.issn2095-2457.2018.33.006
1 研究背景
自主平衡小車(chē)具備運(yùn)動(dòng)靈活、智能控制、操作簡(jiǎn)單、節(jié)省能源、綠色環(huán)保、轉(zhuǎn)彎半徑小等可以代替?zhèn)鹘y(tǒng)的電動(dòng)車(chē)成為新的代步工具,尤其適合于在狹小空間內(nèi)運(yùn)行,如大型購(gòu)物中心、國(guó)際性會(huì)議或展覽場(chǎng)所、辦公大樓、生態(tài)旅游風(fēng)景區(qū)、生活住宅小區(qū)等。本文主要是研究車(chē)身運(yùn)動(dòng)過(guò)程當(dāng)中陀螺儀加速度計(jì)數(shù)據(jù)變化,針對(duì)小車(chē)車(chē)身在運(yùn)動(dòng)過(guò)程產(chǎn)生的白噪聲對(duì)數(shù)據(jù)產(chǎn)生的影響采用了四元數(shù)濾波算法輸出正確的數(shù)據(jù),采用PID控制算法實(shí)現(xiàn)對(duì)小車(chē)基本控制。
2 系統(tǒng)組成
本系統(tǒng)整合了多種傳感器電路設(shè)計(jì),為了保證各傳感器會(huì)傳數(shù)據(jù)的準(zhǔn)確性,所以要做好電路信號(hào)的隔離,做好各部分的接地、濾波等工作,提高電路的穩(wěn)定性。整個(gè)系統(tǒng)分為控制上位機(jī)和受控下位機(jī),控制上位機(jī)主要模塊有:STM32F103C8T6單片機(jī)最小系統(tǒng)、鍵盤(pán)電路、MIC5207鋰電池充電電源、OLED液晶顯示電路、NRF24L01無(wú)線通信模塊、CH340串口通信模塊,受控下位機(jī):STM32F103C8T6單片機(jī)最小系統(tǒng)、陀螺儀加速度計(jì)模塊、無(wú)線通信模塊等。硬件框圖如圖1、2所示。
3 軟件設(shè)計(jì)
3.1 NRF24L01無(wú)線通信函數(shù)設(shè)計(jì)
本設(shè)計(jì)采用了NRF24L01無(wú)線模塊設(shè)計(jì),其主要的功能是可以利用上位機(jī)調(diào)節(jié)PID數(shù)據(jù),使得在調(diào)試平衡車(chē)的過(guò)程中更加的便利高效。當(dāng)系統(tǒng)開(kāi)始時(shí)會(huì)對(duì)NRF24L01無(wú)線模塊進(jìn)行初始化,然后對(duì)NRF24L01模塊進(jìn)行檢測(cè),如果不能進(jìn)行通信則在OLED液晶顯示屏上保錯(cuò),反之則在OLED液晶顯示屏上顯示正常。本設(shè)計(jì)軟件流程圖3:
3.2 陀螺儀與加速度計(jì)輸出值轉(zhuǎn)換
本系統(tǒng)采用MPU6050陀螺儀加速度模塊,將MPU6050模塊讀取的數(shù)據(jù),最終送入四元數(shù)濾波器轉(zhuǎn)化為更加準(zhǔn)確的角度數(shù)據(jù)和角加速度數(shù)據(jù)。軟件流程圖4.6:
3.3 PID控制軟件實(shí)現(xiàn)
為了實(shí)現(xiàn)自主平衡小車(chē)的基本動(dòng)作,本系統(tǒng)采用PID控制算法,當(dāng)傳感器讀取到小車(chē)傾斜的角度時(shí),將數(shù)據(jù)傳給主控電路。主控電路通過(guò)PID算法計(jì)算出相應(yīng)的PWM值。在保持車(chē)身平衡的基礎(chǔ)上,改變車(chē)身的機(jī)械中值,使車(chē)身向一邊傾斜,這時(shí)傳感器將車(chē)身傾斜角度讀取出來(lái),主控為了保持車(chē)身平衡會(huì)輸出相應(yīng)的PWM值,使小車(chē)加速向傾斜方向運(yùn)動(dòng),保持動(dòng)態(tài)平衡。這樣就完成了前進(jìn)的動(dòng)作。后退亦是如此。
4 系統(tǒng)調(diào)試
4.1
(1)開(kāi)機(jī)時(shí)界面中NRF24L01 OK 表示無(wú)線通信芯片能正常工作。Oled液晶顯示屏左邊可以調(diào)節(jié)PID參數(shù),右邊的按鍵可以進(jìn)入不同的UI界面。
(2)控制上位機(jī)調(diào)試界面,在界面中有期望調(diào)節(jié)和PID調(diào)節(jié),可以通過(guò)這2個(gè)功能來(lái)調(diào)節(jié)小車(chē)的機(jī)械中值以及PID的數(shù)值參數(shù)??刂粕衔粰C(jī)的調(diào)試界面如圖6
4.2 受控下位機(jī)
(1)受控下位機(jī)的主要硬件電路包括:主控電路、驅(qū)動(dòng)電路、OLED顯示
屏、無(wú)線通信電路、角度檢測(cè)電路等。
(2)受控下位機(jī)正常工作,使小車(chē)實(shí)現(xiàn)直立效果,如圖7。
5 結(jié)論
本系統(tǒng)主要設(shè)計(jì)包括各個(gè)模塊的驅(qū)動(dòng)程序設(shè)計(jì)、以及四元數(shù)濾波算法和PID控制算法設(shè)計(jì)。驅(qū)動(dòng)程序設(shè)計(jì)包括OLED屏、TB6612FNG驅(qū)動(dòng)芯片等。四元數(shù)濾波算法設(shè)計(jì)是為了使角度傳感器能夠讀取正確的角度數(shù)據(jù)。PID算法控制是為了使主控板輸出相應(yīng)的PWM值,使小車(chē)完成直立、前進(jìn)、后退等基本動(dòng)作。