黃暢暢,董丹華,趙江濤,東新茹
(新疆農(nóng)業(yè)大學(xué)交通與物流工程學(xué)院,新疆 烏魯木齊 830052)
目前,隨著網(wǎng)絡(luò)技術(shù)與芯片技術(shù)的飛速發(fā)展,智能機(jī)器人在實(shí)際生活場(chǎng)景中得到了越來(lái)越廣泛的應(yīng)用。移動(dòng)機(jī)器人是智能機(jī)器人中的一個(gè)重要分支,受到世界各國(guó)的廣泛關(guān)注,它在各個(gè)領(lǐng)域和惡劣環(huán)境中有著廣闊的應(yīng)用前景,其工作場(chǎng)景有自動(dòng)巡檢、自動(dòng)探測(cè)、自動(dòng)搬運(yùn)、定點(diǎn)采集、自動(dòng)轉(zhuǎn)彎、自動(dòng)返航、自動(dòng)充電、服務(wù)特殊群體等。課題組設(shè)計(jì)的基于STM32F103C8T6 主控芯片的智能小車(chē)就屬于智能移動(dòng)機(jī)器人的范疇,能夠通過(guò)傳感器探索周?chē)系K物,并實(shí)現(xiàn)自動(dòng)循跡、自動(dòng)避障的功能。
該設(shè)計(jì)是以單片機(jī)小車(chē)為基礎(chǔ)開(kāi)發(fā)的無(wú)線遙控系統(tǒng)。小車(chē)由L298N 電機(jī)驅(qū)動(dòng)模塊、ESP8266WIFI 通信模塊、紅外循跡模塊、HC-SR04 超聲波避障模塊、SG90 舵機(jī)模塊組成,由STM32F103C8T6 控制芯片完成各模塊之間的連接與控制。APP 能傳送相應(yīng)命令,對(duì)小車(chē)移動(dòng)進(jìn)行靈活巧妙的控制。當(dāng)系統(tǒng)啟動(dòng)后,ESP8266WIFI 通信模塊搜索并連接WIFI,用戶可通過(guò)手機(jī)端APP 按鈕控制小車(chē)行駛。在手動(dòng)模式下,用戶通過(guò)APP 中的按鈕向小車(chē)發(fā)送不同的控制命令,從而改變小車(chē)的移動(dòng)方向。在自動(dòng)模式下,小車(chē)能沿著紅外循跡到地面黑線運(yùn)動(dòng),能躲避障礙物。具體設(shè)計(jì)模塊圖如圖1所示。
圖1 總體設(shè)計(jì)模塊圖
該傳感器模塊具有良好的環(huán)境光線適應(yīng)能力,可以利用電位器調(diào)整其檢測(cè)距離,有效距離范圍為2 cm~60 cm,工作電壓為3.3 V~5 V。具有干擾小、方便裝配、便于使用、價(jià)格低廉等優(yōu)點(diǎn)[1]。本設(shè)計(jì)用了2 對(duì)反射型光電探測(cè)器RPR220 實(shí)現(xiàn)紅外線發(fā)射與接收,發(fā)射管發(fā)射一定頻率的紅外線,當(dāng)檢測(cè)方向出現(xiàn)黑色循跡線時(shí),紅外線將會(huì)被反射回接收管,經(jīng)比較芯片LM358 電路比較處理后,信號(hào)輸出端口輸出一個(gè)低電平的數(shù)字信號(hào)。相關(guān)電路原理圖如圖2所示。
圖2 紅外線發(fā)射與接收?qǐng)D
超聲波常用于距離的測(cè)量。HC-SR04 超聲波檢測(cè)效率高,方向性強(qiáng),測(cè)量距離較遠(yuǎn),使用方便,易于做到實(shí)時(shí)控制。其他包括兩個(gè)通用的壓電陶瓷超聲波傳感器以及外部信號(hào)處理電路。一個(gè)壓電陶瓷傳感器發(fā)送超聲波信號(hào),另外一個(gè)作為接收器接收反射回來(lái)的信號(hào),由于發(fā)出的信號(hào)和接收的信號(hào)都比較微弱,需要通過(guò)外圍信號(hào)放大器提高信號(hào)的功率,使信號(hào)能穩(wěn)定傳輸給單片機(jī)。超聲波模塊共4 個(gè)引腳:VCC、GND 接上5 V 電源和地線,Trig(控制端)控制發(fā)出超聲波信號(hào),Echo(接收端)接收反射回來(lái)的超聲波信號(hào)。首先利用Trig觸發(fā)測(cè)距,對(duì)至少10 μs高電平信號(hào)進(jìn)行檢測(cè)作為啟動(dòng)信號(hào)。該模塊將發(fā)射8 個(gè)40 kHz 周期電平,并測(cè)定回波,如果發(fā)現(xiàn)有回波,則輸出回響信號(hào)?;仨懶盘?hào)的脈沖寬度隨著所測(cè)距離的增大而增大,反之亦然。由此,通過(guò)發(fā)射信號(hào)到收到的回響信號(hào)之間時(shí)間間隔再乘以聲波在空氣中的傳輸速度,便可以計(jì)算得到距離。超聲波傳感器原理圖如圖3所示。
圖3 超聲波傳感器避障電路原理圖
ESP8266 芯片為低功耗WIFI 芯片模塊,可輕松進(jìn)行二次開(kāi)發(fā),接入云服務(wù),實(shí)現(xiàn)手機(jī)3G/4G 隨時(shí)隨地控制。它有自己的固件,這使得用戶很容易操作,而且不需要寫(xiě)入計(jì)時(shí)信號(hào)。本設(shè)計(jì)采用的是ESP8266-12F 系列。芯片采用3.3 V 直流電源供電,通過(guò)AT 指令將其配置為STA 模式并接入路由器。通過(guò)手機(jī)或其他移動(dòng)設(shè)備實(shí)現(xiàn)對(duì)單片機(jī)車(chē)的遠(yuǎn)程控制。ESP8266 模塊具有良好的處理能力和存儲(chǔ)容量,它可以通過(guò)串口接收其他單片機(jī)或其他特定應(yīng)用設(shè)備的信號(hào),從而利用僅有的系統(tǒng)資源實(shí)現(xiàn)更多功能[2]。該模塊是通過(guò)串口(TXD、RXD)與STM32 單片機(jī)進(jìn)行通信,由于內(nèi)置了網(wǎng)絡(luò)通信協(xié)議模塊,可以通過(guò)網(wǎng)絡(luò)與其他傳感器或設(shè)備通信,通過(guò)設(shè)置幾個(gè)簡(jiǎn)單的AT通信指令即可實(shí)現(xiàn)設(shè)備互聯(lián)與網(wǎng)絡(luò)通信[3]。
L298N 是一種電機(jī)驅(qū)動(dòng)芯片,具有工作電壓高、輸出電流大、驅(qū)動(dòng)能力強(qiáng)、發(fā)熱量低、抗干擾能力強(qiáng)等特點(diǎn)。采用15 引腳進(jìn)行封裝,可以接受標(biāo)準(zhǔn)TTL邏輯電平信號(hào)驅(qū)動(dòng)電機(jī)。有兩個(gè)使能控制端子,在不受輸入信號(hào)影響的情況下,通過(guò)插拔板上跳線帽動(dòng)態(tài)調(diào)整電路工作方式,有邏輯電源輸入端子。通過(guò)內(nèi)置穩(wěn)壓芯片78MO5,內(nèi)部邏輯電路可以在低電壓下工作,外部邏輯電壓也可以達(dá)到5 V。為避免對(duì)穩(wěn)壓芯片造成損壞,當(dāng)使用大于12 V的驅(qū)動(dòng)電壓時(shí),一定要使用外部5 V 接口獨(dú)立供電[4]。L298N 模塊原理圖如圖4所示。
圖4 L298N模塊原理圖
轉(zhuǎn)向器是小車(chē)的主要部件。其內(nèi)部結(jié)構(gòu)主要由驅(qū)動(dòng)電機(jī)、齒輪組以及一個(gè)控制板組成,如圖5所示。
圖5 SG90舵機(jī)主要部件圖
電位器:用于位置反饋。它會(huì)將其旋轉(zhuǎn)后產(chǎn)生的電阻變化信號(hào)發(fā)送回控制電路,從而監(jiān)控當(dāng)前軸角度控制電路,用來(lái)驅(qū)動(dòng)小型直流電機(jī)和接收PWM 控制信號(hào)和電位器反饋信號(hào)。
減速齒輪組:用于放大直流電機(jī)的轉(zhuǎn)矩。
工作原理:SG90 舵機(jī)內(nèi)的控制板可以產(chǎn)生一定周期和一定寬度的電子信號(hào)。將獲得的電壓與電位計(jì)的電壓進(jìn)行比較,以獲得電壓差輸出。判斷電路板IC 方向后,驅(qū)動(dòng)直流電機(jī)開(kāi)始旋轉(zhuǎn),通過(guò)減速器將動(dòng)力傳遞給擺臂,并通過(guò)位置檢測(cè)器傳回信號(hào),判斷是否到達(dá)相應(yīng)位置,通過(guò)調(diào)整脈沖信號(hào)的占空比(PWM)實(shí)現(xiàn)對(duì)轉(zhuǎn)向器的旋轉(zhuǎn)角度的控制[5]。標(biāo)準(zhǔn)PWM 信號(hào)的周期固定為20 ms。脈沖寬度對(duì)應(yīng)于0°~180°的角度,不同制造商和不同型號(hào)的轉(zhuǎn)向器也會(huì)有所不同[6]。
本設(shè)計(jì)的控制系統(tǒng)基于Keil μVision5編譯環(huán)境。其工作流程主要包括系統(tǒng)初始化、車(chē)速和方向控制、障礙物定位處理等。同時(shí),可以在編譯環(huán)境中重新定義管腳,包括PWM 輸出引腳、串口通信、外部中斷等,能夠?qū)⒏黝?lèi)傳感器、電子元件等模塊組合,從而實(shí)現(xiàn)不同功能,極大地滿足了多傳感器融合進(jìn)行試驗(yàn)的需求。在主程序中,系統(tǒng)經(jīng)過(guò)一系列初始化之后,小車(chē)等待WIFI 串口連接,WIFI 串口連接完成后,等待手機(jī)APP 發(fā)出指令通過(guò)路由器發(fā)送至ESP8266 與單片機(jī)進(jìn)行通信,從而實(shí)現(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、跟蹤和避障等功能。
本設(shè)計(jì)采用L298N 電機(jī)驅(qū)動(dòng)模塊。由L298N 模塊各個(gè)端口的邏輯關(guān)系可知,當(dāng)ENA 與ENB 為1 時(shí),通過(guò)控制IN1、IN2、IN3、IN4 端口電平的高低來(lái)改變電機(jī)的轉(zhuǎn)向。電機(jī)方向控制邏輯表如表1 所示。同時(shí),單片機(jī)還可以產(chǎn)生PWM 波,通過(guò)調(diào)節(jié)占空比的方式來(lái)控制電機(jī)的轉(zhuǎn)速[7]。
表1 電機(jī)方向控制邏輯
初始化結(jié)束后連接WIFI,接收到手機(jī)發(fā)出的循跡指令,小車(chē)前方有一對(duì)紅外對(duì)管,分別置于黑線兩側(cè),紅外管相對(duì)于黑線有2 mm~4 mm 的距離。當(dāng)兩對(duì)紅外管都能探測(cè)到黑線時(shí),汽車(chē)就會(huì)一直向前行駛。當(dāng)左側(cè)傳感器無(wú)法檢測(cè)到黑線時(shí),左側(cè)電機(jī)向前旋轉(zhuǎn),右側(cè)電機(jī)向后旋轉(zhuǎn),利用差速原理實(shí)現(xiàn)車(chē)輛的向右轉(zhuǎn)向,直到檢測(cè)到左側(cè)的黑線后,小車(chē)?yán)^續(xù)沿直線行駛。同樣,當(dāng)右側(cè)傳感器無(wú)法檢測(cè)到黑線時(shí),右側(cè)電機(jī)向左旋轉(zhuǎn),左側(cè)電機(jī)向右旋轉(zhuǎn),實(shí)現(xiàn)車(chē)輛的向左轉(zhuǎn)向,直到在右側(cè)檢測(cè)到黑線,小車(chē)?yán)^續(xù)直線行駛。循跡流程如圖6所示。
圖6 紅外循跡模塊流程圖
初始化結(jié)束后,連接WIFI,接收到手機(jī)發(fā)出的避障指令,在小車(chē)的正前方放置SG90 舵機(jī),將超聲波傳感器固定在SG90 轉(zhuǎn)向機(jī)上。當(dāng)小車(chē)向前移動(dòng)時(shí),SG90 舵機(jī)保持固定。此時(shí)超聲波傳感器檢測(cè)小車(chē)前方是否存在障礙物,如果前方有障礙物,則通過(guò)SG90 舵機(jī)帶動(dòng)超聲波傳感器先向左、后向右旋轉(zhuǎn)90°,檢測(cè)左側(cè)和右側(cè)是否存在障礙物,并測(cè)算車(chē)輛與兩側(cè)障礙物之間的距離。如果與左側(cè)障礙物的距離大于右側(cè),單片機(jī)控制小車(chē)右轉(zhuǎn),否則左轉(zhuǎn),然后直行。為了使超聲波傳感器的距離測(cè)量更加準(zhǔn)確,在實(shí)際程序中采用了五次測(cè)量距離的方法來(lái)計(jì)算其平均值,以保證數(shù)據(jù)的準(zhǔn)確性。超聲波避障模塊流程如圖7所示。
圖7 超聲波避障模塊流程圖
初始化結(jié)束后,連接WIFI,接收到手機(jī)發(fā)出相應(yīng)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)指令,小車(chē)就可以執(zhí)行相應(yīng)的動(dòng)作。ESP8266 通信模塊與路由器和手機(jī)之間通過(guò)WIFI 信道進(jìn)行通信,ESP8266 接收到指令后通過(guò)串口與STM32 單片機(jī)進(jìn)行通信。在實(shí)際測(cè)試過(guò)程中,該程序響應(yīng)速度快,控制距離長(zhǎng),理論上只要同在一個(gè)局域網(wǎng)下就可以進(jìn)行實(shí)時(shí)控制[8-9]。
課題組設(shè)計(jì)的自動(dòng)循跡避障小車(chē)以STM32F103C8T6 主控芯片作為整個(gè)控制系統(tǒng)的核心,通過(guò)WIFI 連接手機(jī)APP 控制,進(jìn)而實(shí)現(xiàn)小車(chē)簡(jiǎn)單的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等功能。小車(chē)裝有超聲波避障,通過(guò)舵機(jī)的旋轉(zhuǎn)實(shí)現(xiàn)超聲波的多方位測(cè)距動(dòng)作,并傳輸?shù)絾纹瑱C(jī)進(jìn)行下一步的避障判斷。自動(dòng)避障小車(chē)還裝有紅外線尋跡模塊,可以實(shí)現(xiàn)在特定區(qū)域內(nèi)的固定路線行駛[10]。
本設(shè)計(jì)為自動(dòng)巡檢、自動(dòng)探測(cè)、自動(dòng)搬運(yùn)、定點(diǎn)采集、自動(dòng)轉(zhuǎn)彎、自動(dòng)返航、自動(dòng)充電、服務(wù)特殊群體等具體工作場(chǎng)景的智能設(shè)備的設(shè)計(jì)提供了參考。