王瑩
(201620 上海市 上海工程技術(shù)大學(xué))
當(dāng)前,全球正處于以互聯(lián)網(wǎng)、大數(shù)據(jù)、云計(jì)算、人工智能等技術(shù)為代表的新一輪科技革命,汽車(chē)行業(yè)與人工智能正在逐漸交互融合,電動(dòng)化、網(wǎng)聯(lián)化、智能化、共享化成為汽車(chē)產(chǎn)業(yè)發(fā)展的潮流和趨勢(shì)。如果說(shuō)電動(dòng)車(chē)是對(duì)于未來(lái)汽車(chē)的最基本要求,那么擁有高度人工智能的汽車(chē)就是人們最美好的想象。智能的無(wú)人駕駛汽車(chē)在控制、傳感器技術(shù)、機(jī)械以及計(jì)算機(jī)領(lǐng)域不斷被技術(shù)革新,迅速進(jìn)化,幾乎可以達(dá)到無(wú)需人工手動(dòng)操作就能自動(dòng)切換行駛狀態(tài)、道路識(shí)別的功能[1]。
智能小車(chē)是一個(gè)集行為控制與執(zhí)行、動(dòng)態(tài)路徑規(guī)劃與決策以及環(huán)境感知的智能系統(tǒng)。它能驗(yàn)證智能車(chē)輛的控制算法,實(shí)現(xiàn)小車(chē)自主尋線駕駛、模擬真車(chē)行駛狀態(tài),對(duì)于智能車(chē)輛的研究具有一定的輔助作用。
智能小車(chē)的應(yīng)用較廣,可應(yīng)用于國(guó)防、航空航天、工業(yè)和一些服務(wù)型行業(yè),完成數(shù)據(jù)采集和故障處理等,在惡劣環(huán)境下幫助人類進(jìn)行各種工作。智能汽車(chē)控制系統(tǒng)作為 21 世紀(jì)最新研究的技術(shù)產(chǎn)品,發(fā)展前景巨大,十分具有研究?jī)r(jià)值[2]。
本文通過(guò)對(duì)智能小車(chē)的硬件系統(tǒng)及控制系統(tǒng)進(jìn)行設(shè)計(jì)的基礎(chǔ)上,通過(guò)實(shí)物模擬,運(yùn)用Python編程語(yǔ)言實(shí)現(xiàn)對(duì)小車(chē)自動(dòng)駕駛過(guò)程中的尋線控制,實(shí)現(xiàn)其自動(dòng)駕駛尋線功能,從而模擬真車(chē)行駛過(guò)程中的路線控制。
基于Python 編程的智能小車(chē)尋線駕駛研究,目標(biāo)是能夠?qū)崿F(xiàn)小車(chē)在給定路線下沿路線軌跡正常行駛。智能小車(chē)的控制系統(tǒng)總體方案設(shè)計(jì)主要包括主控模塊、驅(qū)動(dòng)模塊、紅外尋線模塊、超聲波模塊、藍(lán)牙模塊、電源模塊6 個(gè)模塊。
智能小車(chē)采用直流減速電機(jī)控制小車(chē)后方兩輪進(jìn)行驅(qū)動(dòng)的結(jié)構(gòu),在小車(chē)最前方的紅外傳感器下方裝有一個(gè)活動(dòng)腳輪,可進(jìn)行360°旋轉(zhuǎn),從而實(shí)現(xiàn)小車(chē)的轉(zhuǎn)向功能,其實(shí)物如圖1 所示。

圖1 活動(dòng)腳輪實(shí)物圖Fig.1 Physical picture of caster
智能小車(chē)為雙輪結(jié)構(gòu),雙輪車(chē)架結(jié)構(gòu)簡(jiǎn)單穩(wěn)定,足以承受上層各模塊的重量。上層模塊的重量主要集中在電源模塊和連接了Micro bit 芯片的可穿戴擴(kuò)展版,在安裝時(shí)應(yīng)注意將這兩部分裝載于車(chē)架中央,以防重心的偏移導(dǎo)致小車(chē)前方的活動(dòng)腳輪轉(zhuǎn)向出現(xiàn)大幅度誤差,改變小車(chē)原有的路徑。
主控模塊的核心是將一塊Micro bit 芯片作為主板,集成了絢麗多彩的LED 閃爍、超聲波避障等常用傳感器。Micro bit 具有免安裝驅(qū)動(dòng),電子模塊集成度高,支持時(shí)下最熱門(mén)的多種編程語(yǔ)言等多項(xiàng)優(yōu)勢(shì)。
Micro bit 開(kāi)發(fā)板尺寸雖小(125 px×100 px),但集成了種類豐富的電子模塊:5×5 LED 顯示屏,2 顆可編程按鍵,加速度計(jì),電子羅盤(pán),溫度光線傳感器,藍(lán)牙低功耗等。Micro:bit 主板實(shí)物如圖2 所示[3]。

圖2 Micro bit 實(shí)物圖Fig.2 Physical picture of Micro bit
Micro bit 主板具有多個(gè)引腳,I/O(Input/Output)端口,主要包括了GPIO,ADC,DAC,IIC,SPI,PWM 等,該主板引腳圖如圖3 所示。

圖3 Micro bit 引腳圖Fig.3 Pins of Micro bit
智能小車(chē)電機(jī)驅(qū)動(dòng)模塊采用了2 個(gè)直流減速電機(jī)來(lái)控制小車(chē)的左右輪,直流減速電機(jī)實(shí)物如圖4 所示。作為控制小車(chē)執(zhí)行前進(jìn)、轉(zhuǎn)彎、倒退等運(yùn)行方式的重要執(zhí)行機(jī)構(gòu),該電機(jī)是通過(guò)控制主板發(fā)出的PWM 調(diào)制信號(hào)實(shí)現(xiàn)電機(jī)的轉(zhuǎn)速控制,通過(guò)控制2 個(gè)直流減速電機(jī)的轉(zhuǎn)速來(lái)實(shí)現(xiàn)小車(chē)的轉(zhuǎn)向。

圖4 直流減速電機(jī)Fig.4 DC reduction motor
智能小車(chē)選用的紅外傳感器為T(mén)CRT5000 傳感器。TCRT5000 采用的是藍(lán)色LED 發(fā)射管,通電后發(fā)出人眼看不到的紅外線[4]。傳感器的黑色部分用于接收,內(nèi)部電阻器的電阻隨所接收的紅外光而變化,其實(shí)物圖如圖5 所示。

圖5 尋線傳感器實(shí)物圖Fig.5 Physical picture of line finding sensor
由該傳感器構(gòu)成的電路原理如圖6 所示,當(dāng)比較器的正向輸入端電壓低于反向輸入端電壓時(shí),輸出低電平,LED燈亮,表示接收到了反射光。

圖6 尋線傳感器電路原理圖Fig.6 Circuit principle of line finding sensor
智能小車(chē)電源模塊所使用的是一節(jié)18650 鋰電池,其實(shí)物圖如圖7 所示。18650 電池壽命理論為循環(huán)充電1 000 次。由于其單位密度的容量很大,所以大部分用于筆記本電腦,除此之外,因18650 工作穩(wěn)定性非常好,廣泛應(yīng)用于各大電子領(lǐng)域。

圖7 18650 電池實(shí)物圖Fig.7 Physical picture of 18650 battery
18650 電池相比于普通電池,容量大、使用壽命長(zhǎng)(一般為普通電池的2 倍)、安全性能高、電壓高(一般為3.6 V,4.8 V,遠(yuǎn)高于鎳鎘和鎳氫電池的1.2 V 電壓),在充電前不必將剩余電量放空,使用方便。
藍(lán)牙模塊實(shí)物圖如圖8 所示。在該模塊的作用下,本文所設(shè)計(jì)的智能小車(chē)可以實(shí)現(xiàn)數(shù)據(jù)互傳。該模塊波特率:9 600,停止位:1 位,起始位:1 位(0),數(shù)據(jù)位:8 位。藍(lán)牙收到數(shù)據(jù)從Tx斷口發(fā)送出去,對(duì)應(yīng)板子上的Rx 斷口,藍(lán)牙接收端口為Rx 對(duì)應(yīng)板子上的Tx 端口。

圖8 藍(lán)牙模塊實(shí)物圖Fig.8 Physical picture of Bluetooth module
智能小車(chē)在車(chē)頭上裝有一個(gè)HC-SR04 超聲波測(cè)距傳感器,實(shí)物如圖9 所示。可用于檢測(cè)透明物體、液體、任何表粗糙、光滑、光的密致材料和不規(guī)則物體。該模塊包含超聲控制電路、發(fā)射器以及接收器,具有傳輸距離范圍寬、測(cè)距精度高等優(yōu)點(diǎn),因此,該模塊可以作為智能小車(chē)的避障模塊來(lái)實(shí)現(xiàn)小車(chē)基本的避障功能。

圖9 HC-SR04 超聲波測(cè)距傳感器實(shí)物Fig.9 Physical picture of HC-SR04 ultrasonic distance sensor
該模塊的工作原理為:(1)采用I/O 口TRIG 觸發(fā)測(cè)距,給至少10 us 的高電平信號(hào);(2)模塊自動(dòng)發(fā)送8 個(gè)40 kHz 的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)I/O口ECHO 輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測(cè)試距離=(高電平時(shí)間×聲速)/2。
車(chē)身部分選用鋁合金車(chē)架,其俯視圖如圖10 所示。

圖10 智能小車(chē)車(chē)架俯視圖Fig.10 Vertical view of intelligent car frame
紅外探測(cè)算法,即利用紅外線在不同顏色物體表面具有不同反射強(qiáng)度的特點(diǎn),根據(jù)收到反射光的強(qiáng)度判斷尋線路徑的位置。智能小車(chē)行駛過(guò)程中,由紅外傳感器不斷向地面發(fā)射紅外光。當(dāng)紅外光碰到給定路線上的白色部分時(shí),發(fā)生漫反射,反射光被小車(chē)上的傳感器接收;如果紅外光碰到黑色線路,則會(huì)被吸收,小車(chē)上的傳感器不會(huì)接收到紅外光。智能小車(chē)的主板會(huì)根據(jù)是否收到反射的紅外光為依據(jù)來(lái)確定黑線的位置和小車(chē)的行走路線[5]。
基于該算法,智能小車(chē)尋線流程圖如圖11所示。小車(chē)開(kāi)始運(yùn)行后,首先使用紅外傳感器探測(cè)黑線,在探測(cè)到黑線的情況下判斷小車(chē)的運(yùn)動(dòng)情況并給出下一步的指示,如果沒(méi)有探測(cè)到黑線,則給出停止運(yùn)行命令并且重復(fù)進(jìn)行路線的判斷。

圖11 紅外探測(cè)算法尋線流程圖Fig.11 Routing flow chart of infrared detection algorithm
相較于其他算法,紅外探測(cè)算法不需要大量的運(yùn)算和復(fù)雜的電路設(shè)計(jì),避免了復(fù)雜的計(jì)算量使得數(shù)據(jù)膨脹的缺點(diǎn),保證了尋線駕駛的穩(wěn)定性和準(zhǔn)確性。本文所用的主板Micro bit 的燒錄容量上限為89 MB,過(guò)大的數(shù)據(jù)難以全部燒錄進(jìn)主板,使用該算法的情況下可以完美匹配本文小車(chē)所選用的硬件。
本文所使用的編程軟件為Python,它不僅有簡(jiǎn)潔的語(yǔ)法,更關(guān)注高層次程序邏輯,將低層次邏輯通過(guò)封裝其他語(yǔ)言代碼(如 C、C++)或集成第三方庫(kù)方式實(shí)現(xiàn),Python 語(yǔ)言的設(shè)計(jì)初衷是更快速、更高效地解決問(wèn)題[6]。
本文將Mu-0.9.13 作為Python 語(yǔ)言的編輯器。Mu 是一個(gè)跨平臺(tái)編輯器,它具有編程語(yǔ)言的核心功能,去除了傳統(tǒng)編輯器復(fù)雜的界面和設(shè)置以及各種各樣的插件,專為本文所使用的micro:bit 開(kāi)發(fā)板做了優(yōu)化,可以直接編寫(xiě)micropython程序,并寫(xiě)入micro:bit 開(kāi)發(fā)板中。
智能小車(chē)主程序的主要功能為:通過(guò)代碼控制小車(chē)判斷自身的位置是否處于黑線上,若當(dāng)前位置沒(méi)有偏離路線,則正常行駛;如果偏離路線,則通過(guò)一定方式回到正確的路線上。首先小車(chē)的初始狀態(tài)為靜止?fàn)顟B(tài),使用Car_run(0)函數(shù)給小車(chē)一個(gè)為0 的初始速度。具體程序代碼如下:


上述代碼為小車(chē)尋線駕駛的主程序,要使小車(chē)正常運(yùn)行,則需要加載已經(jīng)定義完成的庫(kù)。在程序的開(kāi)頭,使用“import PCA9685”語(yǔ)句載入PCA9685 模塊。由于該模塊并不屬于Python 本身自帶的模塊,因此,需要額外建立一個(gè)名稱為PCA9685.py 的庫(kù)。通過(guò)導(dǎo)入該模塊,能夠在后續(xù)的程序代碼中賦予小車(chē)行進(jìn)的速度,使小車(chē)在黑線上全程以穩(wěn)定速度運(yùn)行,完整代碼如圖12 所示。

圖12 尋線程序完整代碼Fig.12 Line finding program code
通過(guò)本文設(shè)計(jì)的尋線程序,智能小車(chē)能夠?qū)崿F(xiàn)在給定的黑色線路上進(jìn)行尋線駕駛功能。在運(yùn)行過(guò)程中可以觀察到,小車(chē)不管是在前行還是轉(zhuǎn)彎狀態(tài)下,車(chē)速都處于穩(wěn)定,沒(méi)有出現(xiàn)車(chē)速偏快偏慢的現(xiàn)象。小車(chē)在給定線路上運(yùn)行狀況如圖13所示。

圖13 小車(chē)實(shí)際尋線駕駛Fig.13 Actual route finding driving chart
本文以智能小車(chē)為主要研究對(duì)象,預(yù)設(shè)了一個(gè)“8”字形行駛軌跡。經(jīng)過(guò)調(diào)試,智能小車(chē)最終能夠以穩(wěn)定的速度實(shí)現(xiàn)其尋線駕駛功能。
本文實(shí)現(xiàn)了基于Micro:bit 為主板的智能小車(chē)尋線駕駛功能的硬件設(shè)計(jì)。以Micro bit 開(kāi)發(fā)板為主板,構(gòu)建了嵌入式硬件控制系統(tǒng),搭建了真實(shí)智能車(chē)的縮影:智能小車(chē)。選用紅外探測(cè)算法來(lái)完成智能小車(chē)的路線識(shí)別,規(guī)避了復(fù)雜的計(jì)算,減少了數(shù)據(jù)膨脹的可能性,較為完美地契合了硬件設(shè)備。通過(guò)Python 編程語(yǔ)言實(shí)現(xiàn)對(duì)小車(chē)的行駛控制,引導(dǎo)其完成預(yù)期的尋線駕駛功能。