王 鈺,朱 琳,蘇世雄,馬新華
(1.西安航空學(xué)院 計算機學(xué)院,西安710077;2.中國兵器裝備集團 摩托車檢測技術(shù)研究所,西安710032)
隨著人工智能時代的到來,智能機器人的應(yīng)用越來越廣泛,智能小車作為一種輪式的移動機器人是智能機器人的一種典型應(yīng)用。它是一個集環(huán)境感知、動態(tài)決策與規(guī)劃、智能控制與執(zhí)行等多功能于一體的綜合系統(tǒng)[1-2]。同時,伴隨著科技的進(jìn)步,各種高科技及前沿技術(shù)廣泛應(yīng)用于智能小車領(lǐng)域,使得智能小車越來越多樣化[3],其中,無人控制的智能小車自動行駛成為人們關(guān)注的熱點[4]。文獻(xiàn)[5]設(shè)計了基于Arduino 的智能避障小車,采用RB-URF02 超聲測距傳感器作為避障檢測模塊,使得小車具有了一定的避障功能,但是只考慮了正前方一個方向的障礙物檢測,并且當(dāng)遇到障礙物時,默認(rèn)的轉(zhuǎn)彎方向也只是同一個方向。文獻(xiàn)[6]設(shè)計了一種基于AT89S52 的Android 手機藍(lán)牙控制智能小車,使得小車能夠根據(jù)人為控制進(jìn)行避障,但是該小車無法自主避障。文獻(xiàn)[7]設(shè)計了基于89C52 的智能避障小車,采用NREF24L01 作為無線接收模塊,以紅外光電傳感器作為避障模塊,設(shè)計了一款智能控制小車。文獻(xiàn)[8]設(shè)計了一種基于機器視覺的循跡避障小車系統(tǒng),該小車以攝像頭作為信息采集模塊,得到障礙物的距離,從而避開障礙物。
雖然學(xué)術(shù)界對智能小車的研究取得了一定的進(jìn)展,但是,都是基于某一種模式進(jìn)行研究的,其小車的智能性和多樣性不足。因此,為了進(jìn)一步提高小車的智能性和多樣性,本文設(shè)計的智能小車有2 種控制模式,即自動模式和手動模式,采用5路超聲波傳感器,分別置于小車的前后左右,對小車周圍環(huán)境進(jìn)行全方位的障礙物檢測。當(dāng)處于自動模式時,小車根據(jù)5 路超聲波傳感器獲取路障信息,進(jìn)行算法融合之后,決策出所要執(zhí)行的動作,從而實現(xiàn)自主避障;當(dāng)處于手動模式時,小車根據(jù)上位機APP 人工控制進(jìn)行避障,從而達(dá)到避障功能。
為了保證智能避障小車的平穩(wěn)性,小車采用四輪穩(wěn)定,其中前兩輪為驅(qū)動輪,后兩輪為萬向輪,通過控制前輪的轉(zhuǎn)動來實現(xiàn)小車的驅(qū)動及方向的轉(zhuǎn)向控制。主控MCU 采用STM32F407,該芯片的配置豐富且功能強大。整個系統(tǒng)包括:控制器模塊、5 路超聲波模塊、語音播報模塊、藍(lán)牙模塊、Android APP 上位機控制模塊、顯示器模塊、直流電機驅(qū)動模塊和電源模塊。系統(tǒng)功能如圖1所示。

圖1 系統(tǒng)功能圖Fig.1 System function diagram
為了提高檢測信息的全面性,本文設(shè)計的智能小車有5 路US-100 超聲波傳感器,分別置于小車周圍,由于前方為主要檢測區(qū)域,因此,前方左右各設(shè)置1 路,其余3 路分別置于左、右、后。
本系統(tǒng)主控芯片選擇STM32F407 單片機,該芯片負(fù)責(zé)整個系統(tǒng)的數(shù)據(jù)收集、信息處理和電機控制。本智能小車設(shè)計2 種避障模式,分別為自主(主動)避障和手動(被動)避障。在自主避障模式下,小車根據(jù)5 路超聲波傳感器采集的數(shù)據(jù)融合計算后,控制電機的運轉(zhuǎn)和轉(zhuǎn)向;在手動模式下,小車根據(jù)用戶操作上位機(Android APP)發(fā)送的指令,調(diào)節(jié)電機的轉(zhuǎn)速、轉(zhuǎn)向和啟停,以此來控制小車的速度和方向。整個主控芯片的電路如圖2所示。

圖2 STM32 主控芯片電路圖Fig.2 STM32 controller
本文選擇的電機是12 V 直流電機,選擇的電機驅(qū)動芯片是雙H 橋L298N 模塊。該模塊可以直接驅(qū)動兩路5~30 V 直流電機,其輸入端口IN1、IN2、IN3、IN4 分別與單片機控制端IO 口的PA11、PG11、PG10、PA15 連接,輸出端口OUT1、OUT2(OUT3、OUT4)分別與左(右)電機的正、負(fù)極相連。L298N 的邏輯功能可參見其芯片手冊,電機驅(qū)動模塊電路如圖3所示。
本系統(tǒng)采用US-100 超聲波作為檢測障礙物的距離,該超聲波可測量的范圍為2 cm~4.5 m,擁有2.4~5.5 V 的寬電壓輸入范圍,自帶溫度傳感器對測距結(jié)果進(jìn)行校正,同時具有GPIO、串口等多種工作方式,其工作穩(wěn)定性可靠。采用電平觸發(fā)方式測距,其測距計算方法: 距離=(高電平時間* 聲速)/2,其中,高電平時間可采用單片機的定時器獲取,聲速取值為340 m/s,從而便可計算出障礙物距離。

圖3 電機驅(qū)動電路Fig.3 Motor-driven circuit
語音播報功能使得電子產(chǎn)品更加人性化、便捷化,在許多應(yīng)用領(lǐng)域都有著不可替代的作用[9]。本系統(tǒng)設(shè)計的語音播報功能可用于小車運行的各種狀態(tài)中。例如,小車上電后播報“初始化成功,請選擇模式”,左轉(zhuǎn)時播報“當(dāng)前正在左轉(zhuǎn)”等。本系統(tǒng)所采用的語音芯片為XFS5152CE,該芯片可支持中文、英文語音合成,集成了語音編碼、解碼功能,同時支持錄音和播放功能,支持UART、I2C、SPI 三種通訊方式,本文采用UART 通訊方式。語音播報電路如圖4所示。

圖4 語音播報電路Fig.4 Voice broadcasting circuit
為了清晰顯示小車周圍檢測到的障礙物距離,本文未采用常用的LCD1602 或LCD12864 顯示器,而是采用當(dāng)前較為流行的專門針對工業(yè)自動化應(yīng)用而設(shè)計的迪文屏顯示,該屏集成了大量的工業(yè)自動化處理相關(guān)軟件,使用起來較為方便、簡單。
本文采用HC-06 作為從藍(lán)牙模塊,用來接收上位機(手機APP)發(fā)送來的各種指令。但是,在小車與藍(lán)牙連接之前需要對藍(lán)牙進(jìn)行相關(guān)的設(shè)置,例如,測試通訊是否正常,修改波特率、名稱、密碼等。該部分可參見HC-06 藍(lán)牙芯片手冊進(jìn)行設(shè)置即可。
電源模塊是整個系統(tǒng)的能量中心,穩(wěn)定良好的電源是保證小車順利完成的基礎(chǔ)。本文采用的電源是12 V 可充電鋰電池,電源管理模塊將電壓調(diào)節(jié)后重新分配給各不同電源標(biāo)準(zhǔn)的模塊,以保證各器件正常工作。
本系統(tǒng)軟件開發(fā)主要有STM32 控制器、手機APP 兩個方面。針對STM32 控制器采用Keil uVision5 集成開發(fā)環(huán)境,該軟件是基于Windows 的平臺開發(fā),簡單易上手,非常適合于嵌入式系統(tǒng)的開發(fā)。針對手機APP 采用常用的Android 平臺進(jìn)行開發(fā),并且該平臺支持藍(lán)牙開發(fā)。因此,整個系統(tǒng)的流程如圖5所示,藍(lán)牙模式和自主避障模式流程分別如圖6、圖7所示。

圖5 系統(tǒng)流程Fig.5 System flow chart

圖6 藍(lán)牙模式流程Fig.6 Bluetooth mode flow chart

圖7 自主避障模式流程Fig.7 Autonomous obstacle avoidance mode flow chart
將小車置于含有障礙物的路段中,結(jié)果表明,小車運行平穩(wěn),各項設(shè)計符合要求。圖8 為自主避障模式,圖9 為藍(lán)牙模式,2 個碼盤中間顯示小車速度檔位,碼盤顯示小車左右電機的PWM 值。藍(lán)牙模式下小車采用PID 來控制速度,通過手機APP 控制小車直行、停止、后退、轉(zhuǎn)角等。通過點擊加速、減速控制小車速度單位,這里將小車速度劃分為10 個檔位,默認(rèn)是1 檔,10 檔最大。圖10 為開發(fā)的上位機APP 軟件。

圖8 自主避障模式測試Fig.8 Test autonomous obstacle avoidance mode

圖9 藍(lán)牙避障模式測試Fig.9 Test Bluetooth obstacle avoidance mode

圖10 APP 控制軟件Fig.10 APP control software
實踐證明,本文設(shè)計并實現(xiàn)的智能小車能夠根據(jù)超聲波傳感器采集的信息進(jìn)行主動避障和人工控制APP 軟件實現(xiàn)手動避障兩種避障模式,實現(xiàn)了小車的準(zhǔn)確避障,并且在手動模式時可以控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止以及調(diào)速等功能。小車整體運行平穩(wěn),操作方便、簡單、易上手,下一步將針對小車循跡展開研究,使得小車的功能更加完善,智能性更高。