徐碧媛
(南京信息工程 大學電子與信息工程學院,江蘇南京,210000)
隨著電子技術的飛速發展,小車系統對自動化的要求也越來越高。當下現有的道路資源緊缺,車輛限號,交通阻塞,事故頻發等問題都對人們的生活造成了一定程度上的影響。因此,對雙車系統跟隨行駛的研究與優化對于減輕交通堵塞現象以及提高駕駛安全性具有重要的意義。
根據題目設計任務要求,預期利用TI 提供的MSP_EXP432P401R 實現四條設計要求的全部內容:要求一:需要設計并制作領頭小車和跟隨小車,在不大于速度0.3m/s的10%內完成一圈行駛,間距保持20cm;要求二:跟隨小車需先加速追上領頭小車再沿外圈行駛兩圈停止;要求三:兩車實現交互完成超車領跑;要求四:領頭小車識別等停標志后停車5s,兩車不發生碰撞。

圖1 小車跟隨行駛場地示意圖
(1)主控系統
方案一:以MSP430 單片機作為主控制系統。MSP430系列單片機是美國德州儀器推向市場的一種16 位超低功耗、具有精簡指令集的混合信號處理器,有處理能力強、運算速度快、超低功耗等優點,但是它的端口數量少。
方案二:以MSP432 單片機作為主控制系統。MSP432系列是最新的更高主頻和更豐富外設通用微控制器產品,有32 位的內核,可提供更高的性能。MSP432 端口數量相對更多。
綜合本系統對單片機性能和I/O 口數量的需求,選擇方案二。
(2)直流電動機驅動模塊
方案一:基于L298N 的驅動模塊。L298N 是一款接受高電壓的電機驅動器,直流電機和步進電機都可以驅動。一片驅動芯片可同時控制兩個直流減速電機做不同動作,在6V~46V 的電壓范圍內,提供2A 的電流,并且具有過熱自斷和反饋檢測功能,但是電流過大可能引起L298N 的燒毀。
方案二:AT8236 模塊。AT8236 是一款直流有刷電機驅動器,能夠以高達6A 的峰值電流雙向控制電機。利用電流衰減模式,可通過對輸入信號進行脈寬調制來控制電機轉速,同時具備低功耗休眠模式。AT8236 具有集成同步整流功能,可顯著降低系統功耗要求,能有效改善散熱性能,符合環保要求。
分析比較:相比 L298N 的熱耗性和外圍二極管續流電路,AT8236 芯片帶有裸露焊盤的 ESOP8 封裝,能有效改善散熱性能,外圍電路簡單,只需外接電源濾波電容就可直接驅動電機,利于減小系統尺寸。綜上最終選擇方案二。
(3)循跡模塊
方案一:OpenMV 循跡。利用大津法進行閾值的自動判定,將閾值上下的像素點劃分成黑白兩色,該方法可以自適應光線,適應性強,可以滿足光照要求;對于數字識別,利用OpenMV 豐富的開源庫和相關算法庫,加入相關算法矯正,提高識別成功率和速度;藥房返回部分采用記憶算法,在去往病房的過程中對路徑進行記憶,根據記憶的結果進行路徑返回。利用光電對管實線藥物裝載與卸載的識別機械結構對車輛的穩定性起著重要作用,對于兩輪差速的小車,需要將重心集中在后輪輪軸部位,方便小車進行原地轉向。
方案二:灰度傳感器循跡。利用不同顏色的檢測面對光的反射程度不同,光敏電阻對不同檢測面返回的光其阻值也不同的原理進行顏色深淺檢測。該傳感器是數字傳感器,通過檢測結果,比較運動位置是否有偏差,再執行調控程序??山Y合PID 算法實現小車的基本運動,靈敏度可調且較高。
綜合PID 算法的掌握程度和硬件模塊的性價比選擇方案二。
(4)雙車通信模塊
方案一:藍牙HC-05 實現雙車通信。HC-05 是主從一體的藍牙模塊,可以較方便地實現兩車通信,配置兩個藍牙的AT 指令模式,分別對兩個藍牙進行測試指令發送,初始化設置,兩設備互相綁定,設置相同的串口波特率以及配對碼,即可完成兩塊藍牙之間的通信,易操作。
方案二:WiFi 模塊ESP8266 實現雙車通信。ESP8266芯片體積小,功耗低,支持透傳,丟包現象不嚴重,價格低。
綜合通信協議的可讀性和可操作性分析選擇方案一。
通過對小車相關功能需求的分析,確定了系統結構原理圖如圖2 所示,電源給主控芯片供電,主控芯片通過各IO口實現各模塊功能,從而實現小車智能化運動。循跡模塊中PID 算法控制領頭小車的速度達到規定要求,使得雙車全程行駛平穩。

圖2 系統結構原理圖

圖3 AT8236 原理圖
采用 TI 公司的 MSP-EXP432P401R 作為主控制器,MSP_EXP432P401R 是使用高性能的ARM Cortex-M4F 為內核的32 位處理器,低功耗,片上外設豐富,內置高速存儲器,豐富的增強型I/O 端口和外設連接到外部總線。MSP432P4 MCU 采用了帶浮點單元和 DSP 加速功能的48MHz 32 位 ARM Cortex M4F,功耗為80uA/MHz 工作功耗和 660nA RTC 待機操作功耗,高級加密標準 (AES256) 加速器、CRC、DMA、32 位硬件乘法器,存儲器為256K 閃存、64KBRAM,而且 MSP-EXP432P401R 具有C 語言風格的匯編語言,有與標準C 兼容的C 語言,C 語言函數可以與匯編函數互相調用,使其開發更加容易,整個系統更加簡單。
驅動芯片我們采用的是AT8236。此芯片是一款單通道H 橋電機驅動器,能夠以高達 6A 的峰值電流雙向控制單個電機。芯片內部集成同步整流功能,能夠有效降低系統功耗要求。利用電流衰減模式,可通過對輸入信號進行脈寬調制來控制電機轉速,電路結構簡單。芯片為單通道電路輸出,可以驅動一個電機,其中AOUT1、AOUT2 與BOUT1、BOUT2 為2 路驅動信號輸出,分別驅動兩個電機,一個小車系統前后四輪分屬兩個電機驅動,驅動模塊外接的2路驅動信號采用外接PWM 信號同時控制兩個電機正反轉和速度。
藍牙HC-05 模塊原理圖如圖4 所示。是一款主從一體的藍牙模塊,無線工作頻段為2.4GHz ISM,調制方式為GFSK。接收靈敏度高,為-85dBm,為雙車提供雙向無線通信。通過實現兩個單片機串口之間的無線通信為雙車系統通信奠定基礎。先對兩個藍牙進行配置,用TTL 轉串口的數據互傳,發送測試指令,設置配對碼,綁定地址連接模式,初始化后實現相互通信,從而控制兩車運動。HC-05 的六根引腳,將VCC 接電源的正極,VDD 為外接供電電源輸入端接GND 地線,模塊串口發送引腳TXD 可直接接單片機的RXD 引腳,模塊串口接收引腳RXD 可直接接單片機的TXD引腳,KEY 用于進入AT 狀態,LED 這個引腳是用來檢測藍牙模塊是否已經連接上了其他藍牙設備。HC-05 通過TX 和RX 引腳,支持使用標準AT 命令。為此,須在啟動時進入特殊命令模式。啟動進入數據模式,這樣它就可以與其他設備進行無線通信。

圖4 HC—05 原理圖
根據題目要求,我們設計了小車跟隨系統的工作流程,如圖5 所示。系統硬件主要有中央處理器、電機驅動電路、循跡模塊、藍牙通信模塊、測速模塊、超聲波防撞模塊等部分組成。利用霍爾編碼器測速,PID 算法控制領頭小車的速度達到規定要求,使得雙車全程行駛平穩,實現領頭小車的平均速度誤差最小達到4.3%;利用超聲波傳感器模塊使得兩車全程不發生碰撞,設定程序使得領頭小車和跟隨小車交互沿內圈行駛實現超車領跑,利用藍牙通信實現小車跟隨,由五路的灰度傳感器實現循跡以及識別特定位置上的等停指示標識。使用蜂鳴器模塊使小車完成一次行駛到達終點時發出聲音提示,從而實現小車的運控設計。

圖5 系統總體工作流程圖
(1)循跡模塊
代碼中包含PID 控速部分,運用PID 可以使得小車平穩地進行直線運動,轉彎和倒車。依靠編碼器反饋數值,通過速度閉環解決對小車行駛距離的把控,小車所采用的PID 算法是閉環控制系統中常用的控制算法之一,其全稱為比例積分微分控制。其傳遞函數如公式(1)所示。

圖6 循跡流程圖
通過配置串口的波特率便可以控制串口通訊的速率。為保證數據接收正常,本設計通過對控制系統中的MSP_EXP432P401R 進行編寫通信協議程序,以防止無線接收模塊在受到干擾的情況下收到錯誤指令而使小車失控的情況發生。代碼如下:

(2)通信模塊
設置第一個HC-05 藍牙無線通信模塊。串口調試助手XCOM 將藍牙模塊1 恢復默認設置:AT+ORGL,并發送。設置藍牙模塊1 配對碼,配置藍牙1 的配對碼:AT+PSWD=“0000”,并發送。藍牙1 與藍牙2 的配對碼須一樣才能成功配對。設置1 主模式串口調試助手A,將藍牙A配置為從機模式:AT+ROLE=1,并發送。藍牙模塊1 綁定藍牙模塊2 地址。AT+BIND=98d3,32,30d8ea,這個地址是查詢藍牙模塊2 的地址后得出的數據。確認綁定地址,設置串口波特率串口調試助手XCOM,設置藍牙1 的串口波特率,輸入AT+UART=56700,0,0。設置藍牙模塊1 的連接模式為0,即AT+CMODE=0。數據0 的含義是藍牙連接模塊必須按照指定藍牙地址進行連接,這樣第一個藍牙模塊1才能自動連接第二個藍牙模塊2。重新上電后兩個藍牙模塊都進入常規工作模式,各自的藍牙模塊會自動搜索相同綁定地址的藍牙配對模塊,完成配對。兩個藍牙模塊之間既能通過單片機的串行口傳遞主模塊發給從模塊的數據。

(3)電機驅動模塊
通過改變傳入的CCR1 來改變通道的占空比,從而實現前進,直行時左轉微調,直行時右轉微調,停車等不同程度的PWM 波輸出,實現電機驅動。編寫直行函數,直行左轉微調函數,直行右轉微調函數,停車函數,循跡函數。最后在主函數中調用即可。


設計分析軟件環境:Windows 11;Keil uVision5;立創EDA。
儀器設備硬件平臺:可調直流電源、100MHz 示波器、MSP_EXP432P401R 芯片。
配套加工安裝條件:螺絲刀、萬用表、焊錫、焊臺、熱熔膠槍。
(1)要求一:領頭小車與跟隨小車相距20cm 繞外圈行駛一圈,速度在0.27m/s~0.33m/s 之間。測試結果如表1 所示。

表1 速度與距離測試
誤差在允許范圍內,距離誤差不大于6cm,要求一結果符合要求。
(2)要求二:跟隨小車先加速追上領頭小車,再一起外圈行駛兩圈停止。領頭小車速度測試結果如表2 所示。
平均速度誤差在10%以內,距離誤差不大于6cm,符合要求。
(3)要求三:兩車繞外圈一起行駛一圈,然后交互完成超車領跑。如表3 所示。

表3 要求三:測試結果
平均速度均大于0.3m/s,距離誤差不大于6cm,符合要求。
(4)要求四:領頭小車識別等停標志后停車5s,兩車不發生碰撞。小車全程平均速度如表4 所示。

表4 要求四:領頭的速度小車測試
平均速度誤差在10%以內,距離誤差不大于6cm,達到要求。
本系統較為完整地完成了設計要求,本小組也通過這次比賽進一步掌握了利用單片機整合主控以及通信運控功能。在測試中,將小車速度誤差降低到了4.3%,運用PID 使得小車平穩行駛。本系統另外設計了OLED 顯示屏模塊,運用I2C 協議將要打印的數據發送在顯示屏上便于觀看。