黃暢暢,董丹華,趙江濤,東新茹
(新疆農業大學交通與物流工程學院,新疆 烏魯木齊 830052)
目前,隨著網絡技術與芯片技術的飛速發展,智能機器人在實際生活場景中得到了越來越廣泛的應用。移動機器人是智能機器人中的一個重要分支,受到世界各國的廣泛關注,它在各個領域和惡劣環境中有著廣闊的應用前景,其工作場景有自動巡檢、自動探測、自動搬運、定點采集、自動轉彎、自動返航、自動充電、服務特殊群體等。課題組設計的基于STM32F103C8T6 主控芯片的智能小車就屬于智能移動機器人的范疇,能夠通過傳感器探索周圍障礙物,并實現自動循跡、自動避障的功能。
該設計是以單片機小車為基礎開發的無線遙控系統。小車由L298N 電機驅動模塊、ESP8266WIFI 通信模塊、紅外循跡模塊、HC-SR04 超聲波避障模塊、SG90 舵機模塊組成,由STM32F103C8T6 控制芯片完成各模塊之間的連接與控制。APP 能傳送相應命令,對小車移動進行靈活巧妙的控制。當系統啟動后,ESP8266WIFI 通信模塊搜索并連接WIFI,用戶可通過手機端APP 按鈕控制小車行駛。在手動模式下,用戶通過APP 中的按鈕向小車發送不同的控制命令,從而改變小車的移動方向。在自動模式下,小車能沿著紅外循跡到地面黑線運動,能躲避障礙物。具體設計模塊圖如圖1所示。

圖1 總體設計模塊圖
該傳感器模塊具有良好的環境光線適應能力,可以利用電位器調整其檢測距離,有效距離范圍為2 cm~60 cm,工作電壓為3.3 V~5 V。具有干擾小、方便裝配、便于使用、價格低廉等優點[1]。本設計用了2 對反射型光電探測器RPR220 實現紅外線發射與接收,發射管發射一定頻率的紅外線,當檢測方向出現黑色循跡線時,紅外線將會被反射回接收管,經比較芯片LM358 電路比較處理后,信號輸出端口輸出一個低電平的數字信號。相關電路原理圖如圖2所示。

圖2 紅外線發射與接收圖
超聲波常用于距離的測量。HC-SR04 超聲波檢測效率高,方向性強,測量距離較遠,使用方便,易于做到實時控制。其他包括兩個通用的壓電陶瓷超聲波傳感器以及外部信號處理電路。一個壓電陶瓷傳感器發送超聲波信號,另外一個作為接收器接收反射回來的信號,由于發出的信號和接收的信號都比較微弱,需要通過外圍信號放大器提高信號的功率,使信號能穩定傳輸給單片機。超聲波模塊共4 個引腳:VCC、GND 接上5 V 電源和地線,Trig(控制端)控制發出超聲波信號,Echo(接收端)接收反射回來的超聲波信號。首先利用Trig觸發測距,對至少10 μs高電平信號進行檢測作為啟動信號。該模塊將發射8 個40 kHz 周期電平,并測定回波,如果發現有回波,則輸出回響信號。回響信號的脈沖寬度隨著所測距離的增大而增大,反之亦然。由此,通過發射信號到收到的回響信號之間時間間隔再乘以聲波在空氣中的傳輸速度,便可以計算得到距離。超聲波傳感器原理圖如圖3所示。

圖3 超聲波傳感器避障電路原理圖
ESP8266 芯片為低功耗WIFI 芯片模塊,可輕松進行二次開發,接入云服務,實現手機3G/4G 隨時隨地控制。它有自己的固件,這使得用戶很容易操作,而且不需要寫入計時信號。本設計采用的是ESP8266-12F 系列。芯片采用3.3 V 直流電源供電,通過AT 指令將其配置為STA 模式并接入路由器。通過手機或其他移動設備實現對單片機車的遠程控制。ESP8266 模塊具有良好的處理能力和存儲容量,它可以通過串口接收其他單片機或其他特定應用設備的信號,從而利用僅有的系統資源實現更多功能[2]。該模塊是通過串口(TXD、RXD)與STM32 單片機進行通信,由于內置了網絡通信協議模塊,可以通過網絡與其他傳感器或設備通信,通過設置幾個簡單的AT通信指令即可實現設備互聯與網絡通信[3]。
L298N 是一種電機驅動芯片,具有工作電壓高、輸出電流大、驅動能力強、發熱量低、抗干擾能力強等特點。采用15 引腳進行封裝,可以接受標準TTL邏輯電平信號驅動電機。有兩個使能控制端子,在不受輸入信號影響的情況下,通過插拔板上跳線帽動態調整電路工作方式,有邏輯電源輸入端子。通過內置穩壓芯片78MO5,內部邏輯電路可以在低電壓下工作,外部邏輯電壓也可以達到5 V。為避免對穩壓芯片造成損壞,當使用大于12 V的驅動電壓時,一定要使用外部5 V 接口獨立供電[4]。L298N 模塊原理圖如圖4所示。

圖4 L298N模塊原理圖
轉向器是小車的主要部件。其內部結構主要由驅動電機、齒輪組以及一個控制板組成,如圖5所示。

圖5 SG90舵機主要部件圖
電位器:用于位置反饋。它會將其旋轉后產生的電阻變化信號發送回控制電路,從而監控當前軸角度控制電路,用來驅動小型直流電機和接收PWM 控制信號和電位器反饋信號。
減速齒輪組:用于放大直流電機的轉矩。
工作原理:SG90 舵機內的控制板可以產生一定周期和一定寬度的電子信號。將獲得的電壓與電位計的電壓進行比較,以獲得電壓差輸出。判斷電路板IC 方向后,驅動直流電機開始旋轉,通過減速器將動力傳遞給擺臂,并通過位置檢測器傳回信號,判斷是否到達相應位置,通過調整脈沖信號的占空比(PWM)實現對轉向器的旋轉角度的控制[5]。標準PWM 信號的周期固定為20 ms。脈沖寬度對應于0°~180°的角度,不同制造商和不同型號的轉向器也會有所不同[6]。
本設計的控制系統基于Keil μVision5編譯環境。其工作流程主要包括系統初始化、車速和方向控制、障礙物定位處理等。同時,可以在編譯環境中重新定義管腳,包括PWM 輸出引腳、串口通信、外部中斷等,能夠將各類傳感器、電子元件等模塊組合,從而實現不同功能,極大地滿足了多傳感器融合進行試驗的需求。在主程序中,系統經過一系列初始化之后,小車等待WIFI 串口連接,WIFI 串口連接完成后,等待手機APP 發出指令通過路由器發送至ESP8266 與單片機進行通信,從而實現前進、后退、左轉、右轉、停止、跟蹤和避障等功能。
本設計采用L298N 電機驅動模塊。由L298N 模塊各個端口的邏輯關系可知,當ENA 與ENB 為1 時,通過控制IN1、IN2、IN3、IN4 端口電平的高低來改變電機的轉向。電機方向控制邏輯表如表1 所示。同時,單片機還可以產生PWM 波,通過調節占空比的方式來控制電機的轉速[7]。

表1 電機方向控制邏輯
初始化結束后連接WIFI,接收到手機發出的循跡指令,小車前方有一對紅外對管,分別置于黑線兩側,紅外管相對于黑線有2 mm~4 mm 的距離。當兩對紅外管都能探測到黑線時,汽車就會一直向前行駛。當左側傳感器無法檢測到黑線時,左側電機向前旋轉,右側電機向后旋轉,利用差速原理實現車輛的向右轉向,直到檢測到左側的黑線后,小車繼續沿直線行駛。同樣,當右側傳感器無法檢測到黑線時,右側電機向左旋轉,左側電機向右旋轉,實現車輛的向左轉向,直到在右側檢測到黑線,小車繼續直線行駛。循跡流程如圖6所示。

圖6 紅外循跡模塊流程圖
初始化結束后,連接WIFI,接收到手機發出的避障指令,在小車的正前方放置SG90 舵機,將超聲波傳感器固定在SG90 轉向機上。當小車向前移動時,SG90 舵機保持固定。此時超聲波傳感器檢測小車前方是否存在障礙物,如果前方有障礙物,則通過SG90 舵機帶動超聲波傳感器先向左、后向右旋轉90°,檢測左側和右側是否存在障礙物,并測算車輛與兩側障礙物之間的距離。如果與左側障礙物的距離大于右側,單片機控制小車右轉,否則左轉,然后直行。為了使超聲波傳感器的距離測量更加準確,在實際程序中采用了五次測量距離的方法來計算其平均值,以保證數據的準確性。超聲波避障模塊流程如圖7所示。

圖7 超聲波避障模塊流程圖
初始化結束后,連接WIFI,接收到手機發出相應的前進、后退、左轉、右轉指令,小車就可以執行相應的動作。ESP8266 通信模塊與路由器和手機之間通過WIFI 信道進行通信,ESP8266 接收到指令后通過串口與STM32 單片機進行通信。在實際測試過程中,該程序響應速度快,控制距離長,理論上只要同在一個局域網下就可以進行實時控制[8-9]。
課題組設計的自動循跡避障小車以STM32F103C8T6 主控芯片作為整個控制系統的核心,通過WIFI 連接手機APP 控制,進而實現小車簡單的前進、后退、左轉、右轉等功能。小車裝有超聲波避障,通過舵機的旋轉實現超聲波的多方位測距動作,并傳輸到單片機進行下一步的避障判斷。自動避障小車還裝有紅外線尋跡模塊,可以實現在特定區域內的固定路線行駛[10]。
本設計為自動巡檢、自動探測、自動搬運、定點采集、自動轉彎、自動返航、自動充電、服務特殊群體等具體工作場景的智能設備的設計提供了參考。