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