蔣永超
摘 要:隨著物聯網時代的到來,科技的發(fā)展,使得雙輪平衡小車控制器無論在日常生活中還是在機械生產都得到了廣泛使用。本文提出了一種基于PID的雙輪小車控制器,包括MCU為STM32F103C8T6、NFR24L01無線收發(fā)、HC-SR04超聲波、LM2596s DC-DC、MPU6050中的三軸加速度計和內置陀螺儀。本文對設計具有無線控制的雙輪平衡小車控制器的各個模塊做了詳細的硬件原理分析,以及規(guī)范的軟件編程調試,實現了當有外力作用于小車讓小車失衡時,小車通過控制器實現自平衡靜止,當小車運行時遇到障礙物,小車通過控制器反向運動一段距離,并且可以通過無線控制小車。
關鍵詞:PID;NFR24L01;MPU6050
引 ?言
隨著電子信息技術的發(fā)展,短距離無線通訊也有了很大的提升。兩輪自平衡車運動靈活、智能控制、操作簡便,適合單人使用且適用范圍廣。本文就是圍繞對兩輪平衡小車控制器進行研究,在自平衡控制中利用MPU6050內置陀螺儀和三軸加速度計都可以通過算法得到傾斜角利用互補濾波得到穩(wěn)定的傾斜角度。再引入PID對小車運動狀態(tài)精準控制使小車穩(wěn)定系數增加。通過將雙輪平衡車控制系統與短程無線技術的結合,設計出了一種自平衡穩(wěn)定,功耗較低,可以進行無線控制的平衡控制器。
1. 雙輪小車平衡控制系統總體設計方案
總控制系統分為主機和從機兩部分,分機對平衡車進行控制,主機對分機進行無線控制。此無線傳輸屬于雙工通信,主機發(fā)送信息,從機應答,主機接收到應答。從機系統通過MCU讀取MPU6050產生的信息通過編程實現小車的自平衡和轉向。利用單片機產生PWM輸入電機驅動芯TB6612對電機進行速度控制不同的占空比速度不同,占空比與速度成正比。通過編碼器獲得脈沖,利用IO口讀取脈沖程序單位時間內對其上升沿和下降沿進行計數,這里用了四倍頻技術,從而得到精確的車輪的轉速。利用HC-SRO4超聲波模塊和單片機端口讀取軟件編程對小車前方進行障礙物距離測量設定一定的距離,當距離很近進行反向慢速運動。
2. 雙輪平衡車控制系統硬件電路設計
硬件電路由以下幾個部分組成電源模塊,MPU6050陀螺儀6DOF模塊,HC-SRO4超聲波測距模塊,NFR24L01模塊,電機驅動模塊。
MPU6050是全球首例9軸運動處理傳感器內置3軸陀螺儀和3軸加速度計。其工作電壓2.5±5%,3.0±5%,3.3±5% ,我們采用3.3V供電,用SPI傳輸數據。無線收發(fā)模塊是全球開放ISM頻段免認證可用,最高頻率2M,內置硬件RCR檢錯和對點通訊地址控制低功耗,內置2.4Ghz天線體積小巧可以直接與所選MCUIO口相連。
無線收發(fā)模塊采用NFR24L01,它一款新型單片射頻收發(fā)器件,工作于2.4 GHz~2.5 GHz ISM頻段。內置頻率合成器、功率放大器、晶體振蕩器、調制器等功能模塊。發(fā)射數據時,首先將NFR24L01配置為發(fā)射模式:接著把地址TX_ADDR和數據TX_PLD按照時序由SPI口寫入NFR24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數據;若自動應答開啟,那么NFR24L01在發(fā)射數據后立即進入接收模式,接收應答信號。如果收到應答,則認為此次通信成功,TX_DS置高,同時TX_PLD從發(fā)送堆棧中清除;若未收到應答,則自動重新發(fā)射該數據(自動重發(fā)已開啟),若重發(fā)次數(ARC_CNT)達到上限,MAX_RT置高,TX_PLD不會被清除;MAX_RT或TX_DS置高時,使IRQ變低,以便通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進入空閑模式1;若發(fā)送堆棧中有數據且CE為高,則進入下一次發(fā)射;若發(fā)送堆棧中無數據且CE為高,則進入空閑模式2。
超聲波距離測試模塊,使用RS232轉串口與MCU通信,利用壓電效應可以監(jiān)測對障礙物的距離。
電機驅動模塊采用驅動芯片增加負載能力使用TB6612FNG直流電機驅動,其負載較強,這個芯片由東芝半導體公司生產可驅動2個電機,其熱耗低,對于PWM的頻率限制可以達到100KHZ,其內置過熱保護和低壓檢測。
3. 雙輪平衡車控制系統(分機)軟件設計
PID由3個單元組成,分別是比例(P)單元、積分(I)單元、微分(D)單位。在微處理器中,因為控制器要實現其控制算法必須通過軟件實現,因此要對模擬調節(jié)器進行離散化處理,如此它只需根據采樣時刻的偏差值來計算控制量。于是,我們需要使用離散的差分方程代替連續(xù)的微分方程。 常用一階差分代替一階微分;常用累加代替積分。根據位置式離散 PID 公式:e(k)為本次偏差,e(k-1)上一次的偏差,Σe(k)為e(k)以及之前的偏差的累積和;其中 k 為 常數;Pwm代表輸出。關于 P、I、D 三個參數的主要作用,P 用于提高響應速度、I 用于減小靜差、D 用于抑制震蕩。對角速度進行測量可以采用陀螺儀,我使用的MPU6050里面根據其英文手冊其內部集成了三軸陀螺儀,所以我將繼續(xù)使用MPU6050測量角速度。我從陀螺儀得到的是角速度,角速度的測量不受小車運動的影響。角度得到之后可以通過積分得到2格努同時按內的角度變化,用陀螺儀可以間接測量某段時間角度變化。通過在10ms的定時中斷服務函數里面執(zhí)行語句就可以得到10ms后的角度的變化有多大。
陀螺儀測量傾斜角度理論是可以的,但在聯系實際情況進行分析角速度信號存在微小的偏差和漂移。傳感器靜止的情況下,輸出不為零時會產生誤差,經過積分放大誤差,誤差的不斷疊加最終無法測得正確的角度。所以可以將角加速度計和線加速度計聯合使用,通過互補濾波實現的自平衡控制系統更加穩(wěn)定。
4. 結論
本文介紹了雙輪平衡小車控制器系統的硬件電路和無線接收發(fā)模塊,按鍵控制模塊,超聲波探測距離模塊,MCU控制模塊等。實現了主機對從機的運動控制,而且對其控制是極其靈活,可以進行速度控制,運行方向控制,實現設定距離位移和設定角度旋轉。實現小車在操作不當情況下,遇到障礙物后退的功能,可以反向行走。在KEIL開發(fā)環(huán)境中使用JLINK在線仿真調試,使各個模塊協調運行。事實表明調試很成功。雙輪平衡車的控制器實現了基本功能,其使用價值較高。
參考文獻:
[1]戴偉,岳明,肖鵬程,張躍杰. 單軸雙輪自平衡小車的設計研究[J]物理實驗,2014(12):19 —23.
[2] 葛文盡, PID 控制技術平衡動態(tài)倒立擺的探索[J]信息通信,2017(5)136-137.
[3]馬傳翔,楊名利雙輪自平衡機器人的滑模變結構控制研究[J].微計算機信息,2011(1):70 —71 .
[4]符秀輝,趙茂鑫.基于互補濾波算法的移動機器人姿態(tài)檢測[J].測控技術,2015,36(6 ):31 —33.
[5]阮曉鋼,劉江狄海江,等.兩輪自平衡機器人系統沒汁、建模及LQ控制[J].現代電子技術,2008,281(18):52—56.
[6]盧海曦,王壽榮,周百令.微機械陀螺儀反饋控制器魯棒分析已經閉環(huán)接檢測電路分析[J].東南大學學報,2011,41(3):526-532.
(成都理工大學 ?四川 ?成都 ?610059)