徐碧媛
(南京信息工程 大學(xué)電子與信息工程學(xué)院,江蘇南京,210000)
隨著電子技術(shù)的飛速發(fā)展,小車系統(tǒng)對(duì)自動(dòng)化的要求也越來越高。當(dāng)下現(xiàn)有的道路資源緊缺,車輛限號(hào),交通阻塞,事故頻發(fā)等問題都對(duì)人們的生活造成了一定程度上的影響。因此,對(duì)雙車系統(tǒng)跟隨行駛的研究與優(yōu)化對(duì)于減輕交通堵塞現(xiàn)象以及提高駕駛安全性具有重要的意義。
根據(jù)題目設(shè)計(jì)任務(wù)要求,預(yù)期利用TI 提供的MSP_EXP432P401R 實(shí)現(xiàn)四條設(shè)計(jì)要求的全部內(nèi)容:要求一:需要設(shè)計(jì)并制作領(lǐng)頭小車和跟隨小車,在不大于速度0.3m/s的10%內(nèi)完成一圈行駛,間距保持20cm;要求二:跟隨小車需先加速追上領(lǐng)頭小車再沿外圈行駛兩圈停止;要求三:兩車實(shí)現(xiàn)交互完成超車領(lǐng)跑;要求四:領(lǐng)頭小車識(shí)別等停標(biāo)志后停車5s,兩車不發(fā)生碰撞。
圖1 小車跟隨行駛場(chǎng)地示意圖
(1)主控系統(tǒng)
方案一:以MSP430 單片機(jī)作為主控制系統(tǒng)。MSP430系列單片機(jī)是美國德州儀器推向市場(chǎng)的一種16 位超低功耗、具有精簡指令集的混合信號(hào)處理器,有處理能力強(qiáng)、運(yùn)算速度快、超低功耗等優(yōu)點(diǎn),但是它的端口數(shù)量少。
方案二:以MSP432 單片機(jī)作為主控制系統(tǒng)。MSP432系列是最新的更高主頻和更豐富外設(shè)通用微控制器產(chǎn)品,有32 位的內(nèi)核,可提供更高的性能。MSP432 端口數(shù)量相對(duì)更多。
綜合本系統(tǒng)對(duì)單片機(jī)性能和I/O 口數(shù)量的需求,選擇方案二。
(2)直流電動(dòng)機(jī)驅(qū)動(dòng)模塊
方案一:基于L298N 的驅(qū)動(dòng)模塊。L298N 是一款接受高電壓的電機(jī)驅(qū)動(dòng)器,直流電機(jī)和步進(jìn)電機(jī)都可以驅(qū)動(dòng)。一片驅(qū)動(dòng)芯片可同時(shí)控制兩個(gè)直流減速電機(jī)做不同動(dòng)作,在6V~46V 的電壓范圍內(nèi),提供2A 的電流,并且具有過熱自斷和反饋檢測(cè)功能,但是電流過大可能引起L298N 的燒毀。
方案二:AT8236 模塊。AT8236 是一款直流有刷電機(jī)驅(qū)動(dòng)器,能夠以高達(dá)6A 的峰值電流雙向控制電機(jī)。利用電流衰減模式,可通過對(duì)輸入信號(hào)進(jìn)行脈寬調(diào)制來控制電機(jī)轉(zhuǎn)速,同時(shí)具備低功耗休眠模式。AT8236 具有集成同步整流功能,可顯著降低系統(tǒng)功耗要求,能有效改善散熱性能,符合環(huán)保要求。
分析比較:相比 L298N 的熱耗性和外圍二極管續(xù)流電路,AT8236 芯片帶有裸露焊盤的 ESOP8 封裝,能有效改善散熱性能,外圍電路簡單,只需外接電源濾波電容就可直接驅(qū)動(dòng)電機(jī),利于減小系統(tǒng)尺寸。綜上最終選擇方案二。
(3)循跡模塊
方案一:OpenMV 循跡。利用大津法進(jìn)行閾值的自動(dòng)判定,將閾值上下的像素點(diǎn)劃分成黑白兩色,該方法可以自適應(yīng)光線,適應(yīng)性強(qiáng),可以滿足光照要求;對(duì)于數(shù)字識(shí)別,利用OpenMV 豐富的開源庫和相關(guān)算法庫,加入相關(guān)算法矯正,提高識(shí)別成功率和速度;藥房返回部分采用記憶算法,在去往病房的過程中對(duì)路徑進(jìn)行記憶,根據(jù)記憶的結(jié)果進(jìn)行路徑返回。利用光電對(duì)管實(shí)線藥物裝載與卸載的識(shí)別機(jī)械結(jié)構(gòu)對(duì)車輛的穩(wěn)定性起著重要作用,對(duì)于兩輪差速的小車,需要將重心集中在后輪輪軸部位,方便小車進(jìn)行原地轉(zhuǎn)向。
方案二:灰度傳感器循跡。利用不同顏色的檢測(cè)面對(duì)光的反射程度不同,光敏電阻對(duì)不同檢測(cè)面返回的光其阻值也不同的原理進(jìn)行顏色深淺檢測(cè)。該傳感器是數(shù)字傳感器,通過檢測(cè)結(jié)果,比較運(yùn)動(dòng)位置是否有偏差,再執(zhí)行調(diào)控程序??山Y(jié)合PID 算法實(shí)現(xiàn)小車的基本運(yùn)動(dòng),靈敏度可調(diào)且較高。
綜合PID 算法的掌握程度和硬件模塊的性價(jià)比選擇方案二。
(4)雙車通信模塊
方案一:藍(lán)牙HC-05 實(shí)現(xiàn)雙車通信。HC-05 是主從一體的藍(lán)牙模塊,可以較方便地實(shí)現(xiàn)兩車通信,配置兩個(gè)藍(lán)牙的AT 指令模式,分別對(duì)兩個(gè)藍(lán)牙進(jìn)行測(cè)試指令發(fā)送,初始化設(shè)置,兩設(shè)備互相綁定,設(shè)置相同的串口波特率以及配對(duì)碼,即可完成兩塊藍(lán)牙之間的通信,易操作。
方案二:WiFi 模塊ESP8266 實(shí)現(xiàn)雙車通信。ESP8266芯片體積小,功耗低,支持透?jìng)?,丟包現(xiàn)象不嚴(yán)重,價(jià)格低。
綜合通信協(xié)議的可讀性和可操作性分析選擇方案一。
通過對(duì)小車相關(guān)功能需求的分析,確定了系統(tǒng)結(jié)構(gòu)原理圖如圖2 所示,電源給主控芯片供電,主控芯片通過各IO口實(shí)現(xiàn)各模塊功能,從而實(shí)現(xiàn)小車智能化運(yùn)動(dòng)。循跡模塊中PID 算法控制領(lǐng)頭小車的速度達(dá)到規(guī)定要求,使得雙車全程行駛平穩(wěn)。
圖2 系統(tǒng)結(jié)構(gòu)原理圖
圖3 AT8236 原理圖
采用 TI 公司的 MSP-EXP432P401R 作為主控制器,MSP_EXP432P401R 是使用高性能的ARM Cortex-M4F 為內(nèi)核的32 位處理器,低功耗,片上外設(shè)豐富,內(nèi)置高速存儲(chǔ)器,豐富的增強(qiáng)型I/O 端口和外設(shè)連接到外部總線。MSP432P4 MCU 采用了帶浮點(diǎn)單元和 DSP 加速功能的48MHz 32 位 ARM Cortex M4F,功耗為80uA/MHz 工作功耗和 660nA RTC 待機(jī)操作功耗,高級(jí)加密標(biāo)準(zhǔn) (AES256) 加速器、CRC、DMA、32 位硬件乘法器,存儲(chǔ)器為256K 閃存、64KBRAM,而且 MSP-EXP432P401R 具有C 語言風(fēng)格的匯編語言,有與標(biāo)準(zhǔn)C 兼容的C 語言,C 語言函數(shù)可以與匯編函數(shù)互相調(diào)用,使其開發(fā)更加容易,整個(gè)系統(tǒng)更加簡單。
驅(qū)動(dòng)芯片我們采用的是AT8236。此芯片是一款單通道H 橋電機(jī)驅(qū)動(dòng)器,能夠以高達(dá) 6A 的峰值電流雙向控制單個(gè)電機(jī)。芯片內(nèi)部集成同步整流功能,能夠有效降低系統(tǒng)功耗要求。利用電流衰減模式,可通過對(duì)輸入信號(hào)進(jìn)行脈寬調(diào)制來控制電機(jī)轉(zhuǎn)速,電路結(jié)構(gòu)簡單。芯片為單通道電路輸出,可以驅(qū)動(dòng)一個(gè)電機(jī),其中AOUT1、AOUT2 與BOUT1、BOUT2 為2 路驅(qū)動(dòng)信號(hào)輸出,分別驅(qū)動(dòng)兩個(gè)電機(jī),一個(gè)小車系統(tǒng)前后四輪分屬兩個(gè)電機(jī)驅(qū)動(dòng),驅(qū)動(dòng)模塊外接的2路驅(qū)動(dòng)信號(hào)采用外接PWM 信號(hào)同時(shí)控制兩個(gè)電機(jī)正反轉(zhuǎn)和速度。
藍(lán)牙HC-05 模塊原理圖如圖4 所示。是一款主從一體的藍(lán)牙模塊,無線工作頻段為2.4GHz ISM,調(diào)制方式為GFSK。接收靈敏度高,為-85dBm,為雙車提供雙向無線通信。通過實(shí)現(xiàn)兩個(gè)單片機(jī)串口之間的無線通信為雙車系統(tǒng)通信奠定基礎(chǔ)。先對(duì)兩個(gè)藍(lán)牙進(jìn)行配置,用TTL 轉(zhuǎn)串口的數(shù)據(jù)互傳,發(fā)送測(cè)試指令,設(shè)置配對(duì)碼,綁定地址連接模式,初始化后實(shí)現(xiàn)相互通信,從而控制兩車運(yùn)動(dòng)。HC-05 的六根引腳,將VCC 接電源的正極,VDD 為外接供電電源輸入端接GND 地線,模塊串口發(fā)送引腳TXD 可直接接單片機(jī)的RXD 引腳,模塊串口接收引腳RXD 可直接接單片機(jī)的TXD引腳,KEY 用于進(jìn)入AT 狀態(tài),LED 這個(gè)引腳是用來檢測(cè)藍(lán)牙模塊是否已經(jīng)連接上了其他藍(lán)牙設(shè)備。HC-05 通過TX 和RX 引腳,支持使用標(biāo)準(zhǔn)AT 命令。為此,須在啟動(dòng)時(shí)進(jìn)入特殊命令模式。啟動(dòng)進(jìn)入數(shù)據(jù)模式,這樣它就可以與其他設(shè)備進(jìn)行無線通信。
圖4 HC—05 原理圖
根據(jù)題目要求,我們?cè)O(shè)計(jì)了小車跟隨系統(tǒng)的工作流程,如圖5 所示。系統(tǒng)硬件主要有中央處理器、電機(jī)驅(qū)動(dòng)電路、循跡模塊、藍(lán)牙通信模塊、測(cè)速模塊、超聲波防撞模塊等部分組成。利用霍爾編碼器測(cè)速,PID 算法控制領(lǐng)頭小車的速度達(dá)到規(guī)定要求,使得雙車全程行駛平穩(wěn),實(shí)現(xiàn)領(lǐng)頭小車的平均速度誤差最小達(dá)到4.3%;利用超聲波傳感器模塊使得兩車全程不發(fā)生碰撞,設(shè)定程序使得領(lǐng)頭小車和跟隨小車交互沿內(nèi)圈行駛實(shí)現(xiàn)超車領(lǐng)跑,利用藍(lán)牙通信實(shí)現(xiàn)小車跟隨,由五路的灰度傳感器實(shí)現(xiàn)循跡以及識(shí)別特定位置上的等停指示標(biāo)識(shí)。使用蜂鳴器模塊使小車完成一次行駛到達(dá)終點(diǎn)時(shí)發(fā)出聲音提示,從而實(shí)現(xiàn)小車的運(yùn)控設(shè)計(jì)。
圖5 系統(tǒng)總體工作流程圖
(1)循跡模塊
代碼中包含PID 控速部分,運(yùn)用PID 可以使得小車平穩(wěn)地進(jìn)行直線運(yùn)動(dòng),轉(zhuǎn)彎和倒車。依靠編碼器反饋數(shù)值,通過速度閉環(huán)解決對(duì)小車行駛距離的把控,小車所采用的PID 算法是閉環(huán)控制系統(tǒng)中常用的控制算法之一,其全稱為比例積分微分控制。其傳遞函數(shù)如公式(1)所示。
圖6 循跡流程圖
通過配置串口的波特率便可以控制串口通訊的速率。為保證數(shù)據(jù)接收正常,本設(shè)計(jì)通過對(duì)控制系統(tǒng)中的MSP_EXP432P401R 進(jìn)行編寫通信協(xié)議程序,以防止無線接收模塊在受到干擾的情況下收到錯(cuò)誤指令而使小車失控的情況發(fā)生。代碼如下:
(2)通信模塊
設(shè)置第一個(gè)HC-05 藍(lán)牙無線通信模塊。串口調(diào)試助手XCOM 將藍(lán)牙模塊1 恢復(fù)默認(rèn)設(shè)置:AT+ORGL,并發(fā)送。設(shè)置藍(lán)牙模塊1 配對(duì)碼,配置藍(lán)牙1 的配對(duì)碼:AT+PSWD=“0000”,并發(fā)送。藍(lán)牙1 與藍(lán)牙2 的配對(duì)碼須一樣才能成功配對(duì)。設(shè)置1 主模式串口調(diào)試助手A,將藍(lán)牙A配置為從機(jī)模式:AT+ROLE=1,并發(fā)送。藍(lán)牙模塊1 綁定藍(lán)牙模塊2 地址。AT+BIND=98d3,32,30d8ea,這個(gè)地址是查詢藍(lán)牙模塊2 的地址后得出的數(shù)據(jù)。確認(rèn)綁定地址,設(shè)置串口波特率串口調(diào)試助手XCOM,設(shè)置藍(lán)牙1 的串口波特率,輸入AT+UART=56700,0,0。設(shè)置藍(lán)牙模塊1 的連接模式為0,即AT+CMODE=0。數(shù)據(jù)0 的含義是藍(lán)牙連接模塊必須按照指定藍(lán)牙地址進(jìn)行連接,這樣第一個(gè)藍(lán)牙模塊1才能自動(dòng)連接第二個(gè)藍(lán)牙模塊2。重新上電后兩個(gè)藍(lán)牙模塊都進(jìn)入常規(guī)工作模式,各自的藍(lán)牙模塊會(huì)自動(dòng)搜索相同綁定地址的藍(lán)牙配對(duì)模塊,完成配對(duì)。兩個(gè)藍(lán)牙模塊之間既能通過單片機(jī)的串行口傳遞主模塊發(fā)給從模塊的數(shù)據(jù)。
(3)電機(jī)驅(qū)動(dòng)模塊
通過改變傳入的CCR1 來改變通道的占空比,從而實(shí)現(xiàn)前進(jìn),直行時(shí)左轉(zhuǎn)微調(diào),直行時(shí)右轉(zhuǎn)微調(diào),停車等不同程度的PWM 波輸出,實(shí)現(xiàn)電機(jī)驅(qū)動(dòng)。編寫直行函數(shù),直行左轉(zhuǎn)微調(diào)函數(shù),直行右轉(zhuǎn)微調(diào)函數(shù),停車函數(shù),循跡函數(shù)。最后在主函數(shù)中調(diào)用即可。
設(shè)計(jì)分析軟件環(huán)境:Windows 11;Keil uVision5;立創(chuàng)EDA。
儀器設(shè)備硬件平臺(tái):可調(diào)直流電源、100MHz 示波器、MSP_EXP432P401R 芯片。
配套加工安裝條件:螺絲刀、萬用表、焊錫、焊臺(tái)、熱熔膠槍。
(1)要求一:領(lǐng)頭小車與跟隨小車相距20cm 繞外圈行駛一圈,速度在0.27m/s~0.33m/s 之間。測(cè)試結(jié)果如表1 所示。
表1 速度與距離測(cè)試
誤差在允許范圍內(nèi),距離誤差不大于6cm,要求一結(jié)果符合要求。
(2)要求二:跟隨小車先加速追上領(lǐng)頭小車,再一起外圈行駛兩圈停止。領(lǐng)頭小車速度測(cè)試結(jié)果如表2 所示。
平均速度誤差在10%以內(nèi),距離誤差不大于6cm,符合要求。
(3)要求三:兩車?yán)@外圈一起行駛一圈,然后交互完成超車領(lǐng)跑。如表3 所示。
表3 要求三:測(cè)試結(jié)果
平均速度均大于0.3m/s,距離誤差不大于6cm,符合要求。
(4)要求四:領(lǐng)頭小車識(shí)別等停標(biāo)志后停車5s,兩車不發(fā)生碰撞。小車全程平均速度如表4 所示。
表4 要求四:領(lǐng)頭的速度小車測(cè)試
平均速度誤差在10%以內(nèi),距離誤差不大于6cm,達(dá)到要求。
本系統(tǒng)較為完整地完成了設(shè)計(jì)要求,本小組也通過這次比賽進(jìn)一步掌握了利用單片機(jī)整合主控以及通信運(yùn)控功能。在測(cè)試中,將小車速度誤差降低到了4.3%,運(yùn)用PID 使得小車平穩(wěn)行駛。本系統(tǒng)另外設(shè)計(jì)了OLED 顯示屏模塊,運(yùn)用I2C 協(xié)議將要打印的數(shù)據(jù)發(fā)送在顯示屏上便于觀看。