鄧良益 易佳 王浩 顏雁軍 單飛橋



摘? 要:文章基于PID算法設計了一種智能小車,該小車包括控制模塊、探測模塊、驅動模塊、人機交互模塊。以STM32F103芯片為控制模塊核心,采用雙路全H橋驅動芯片TB6612驅動直流電機,探測模塊包括一個超聲波測障模塊、四個紅外循跡對管和光電編碼器、人機交互模塊包括一個手機藍牙APP和LCD彩色液晶顯示屏。采用增量式PID算法實現了小車軌跡的精確控制。小車設計的功能有:直行、左右轉彎、超聲波避障及測距、紅外循跡、APP藍牙遠程控制及測速。
關鍵詞:增量式PID;STM32;超聲波測障;藍牙透傳;紅外尋跡
中圖分類號:TP23? ? ? ? ?文獻標志碼:A? ? ? ?文章編號:2095-2945(2019)30-0093-02
Abstract: This paper designs an intelligent car based on PID algorithm, which includes control module, detection module, driving module and human-computer interaction module. With STM32F103 chip as the core of the control module, the DC motor is driven by a dual H-bridge driver chip TB6612. The detection module includes an ultrasonic obstacle detection module, four infrared tracer pairs and photoelectric encoder, and a human-computer interaction module including a Bluetooth APP and LCD color LCD display. The incremental PID algorithm is used to realize the precise control of car trajectory. The functions of car design include: straight line, left and right turn, ultrasonic obstacle avoidance and ranging, infrared tracing, APP Bluetooth remote control and speed measurement.
Keywords: incremental PID; STM32; ultrasonic barrier detection; Bluetooth transmission; infrared tracing
1 系統結構
1.1 系統整體結構
本系統的主控制器采用STM32系列單片機STM32F103VET6。系統整體框圖如圖1所示。
1.2 系統硬件設計
(1)電機及驅動模塊
電機使用2個有刷直流電機,高的轉速控制靈活簡便。電機的驅動由1個TB6612FNG雙H橋大電流驅動芯片實現,它具有大電流MOSFET-H橋結構,雙通道電路輸出,可同時驅動2個電機。TB6612FNG每通道輸出最高1.2A的連續驅動電流,啟動峰值電流達2A/3.2A(連續脈沖/單脈沖);4種電機控制模式:正轉/反轉/制動/停止;PWM支持頻率高達100kHz。
(2)測速模塊
本系統采用在電機上安裝測速碼盤,利用光電開關實現脈沖輸出,通過程序實現測速,其優點是獲取信息準確,體積小,不增加車輪的負擔。
(3)超聲波測障模塊
本系統使用超聲波模塊HC-SR04來實現障礙物的有無檢測和距離檢測。HC-SR04超聲波測距模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達高到3mm;模塊包括超聲波發射器、接收器與控制電路。
機器內部超聲波只需要提供一個10uS以上脈沖觸發信號,該模塊內部將發出8個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號。回響信號的脈沖寬度與所測的距離成正比。由此通過發射信號到收到的回響信號時間間隔可以計算得到距離。
(4)紅外循跡模塊
本系統采用四個紅外光電對管實現循跡功能,每個紅外對管的發射管不斷的發射紅外線,當發射出的紅外線沒有被反射回來或者被反射回來但是強度不夠大時,紅外接收一直處于關斷狀態,此時模塊的TTL輸出為高電平,相應的指示二極管一直處于熄滅狀態;當黑線出現在檢測范圍內時,紅外線被吸收且強度足夠大,紅外接受管關斷,此時模塊的TTL輸出為高電平,指示二極管熄滅。
(5)藍牙無線收發模塊
本系統采用HC-05主從一體藍牙模塊,通過該藍牙模塊控制實現小車的前進、后退、右轉彎、左轉彎、倒車右轉、倒車左轉、測速、避障等功能。控制方法為在小車行走過程中通過Android手機利用APP界面的“按鈕”控制改變小車運動狀態。
2 智能小車軟件設計
2.1 增量式PID的算法實現
本系統采用PID調節方式來完成小車的運動狀態調節。該方法的調節效率高,絕對誤差小。
傳統的PID控制結構如圖2所示:
在算法層面本系統使用單級增量式PID,輸入為目標角度,輸出為PWM的增減量。其計算公式(1)如下:
其中Kp、Ki、Kd分別為比例系數,積分系數和微分系數。ek為第k次采樣的實時輸出與設定值的誤差。
其算法流程如下:
在整定PID參數時先進行比例系數的整定,然后進行積分系數的整定以消除穩態誤差,最后進行微分系數的整定以減小角度的超調量。
智能小車機器人通過串口通信發送速度值,上位機用 Visual Basic 6.0編制的PID曲線繪制軟件通過串口接收速度值,在校驗通過后,實時的繪制出PID速度曲線,進行在線整定數字PID的三個參數Kp、Ki和Kd。
3 測試結果
3.1 直行及變向測試結果
實驗結果:小車反應很迅速,不會出現程序跑飛的現象。前進后退、左轉右轉、加速減速均已實現。其中左轉右轉是通過改變左右輪的速度來實現的。加速減速是改變輸出給電機驅動TB6612的PWM的占空比實現。
3.2 避障及循跡測試結果
尋跡的原理是通過紅外對管來實現檢測黑線的位置,通過程序判斷黑線的位置來了解小車本身所處的位置,從而決定小車下一步的行進路線。經過試驗測試效果非常好完全可以按照黑線所指示的路線行進,而且程序穩定性十分好。
3.3 藍牙控制及數據回傳實驗現象
在stm32最小系統板上,藍牙模塊連接的是USART2的RX和TX,通過在程序的USART2的接收終端所接收的字符來判斷小車下一步該執行什么程序。并且小車將當前所處的狀態(左右輪的轉速以及超聲波探頭所測的距離值)返回手機。
4 結束語
本文闡述了智能小車的總體設計思路和系統框圖,主要研究了智能小車機器人的軟硬件設計, 并給出了系統架構和軟件流程。采用數字增量PID控制算法對直流減速電機的轉速進行控制。在上位機編制 PID 曲線繪制軟件方便整定 PID 參數。經過模塊測試和整機測試,該系統控制精度高,運行可靠,具有很強的抗干擾能力,可被廣泛用于教學、智能玩具和搬運等場合,有很好的實用價值。
參考文獻:
[1]蔣龍,羅亮,王欣.基于積分分離PID控制的自平衡小車設計[J].西南科技大學學報,2015,30(2):56-58.
[2]史敬灼,劉玉.超聲電機簡單專家PID速度控制[J].中國電機工程學報,2013,5(36):148-152.
[3]張群,楊絮,張正言,等.藍牙模塊串口通信的設計與實現[J].實驗室研究與探索,2012,6(3):251-253.