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