常 安,萬振凱
(天津工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 信息化中心,天津 300387)
人工智能時(shí)代的來臨,使得大部分儀器設(shè)備走向自動(dòng)化以及智能化,智能設(shè)備在生活中已隨處可見,并且已經(jīng)被越來越廣泛地應(yīng)用到生活生產(chǎn)中。隨著科技水平的提高,越來越多的傳感器被應(yīng)用到智能設(shè)備上,使設(shè)備可以像人一樣去感知周圍環(huán)境。單個(gè)傳感器的功能往往會有很大的局限性,只具備單一的感應(yīng)功能,不能夠滿足智能設(shè)備多功能的需求。因此,為滿足更多需求,需要在設(shè)備上安裝更多的傳感器。該設(shè)計(jì)基于HC-SR04、溫濕度、光照強(qiáng)度等傳感器,并用樹莓派作為控制設(shè)備,形成了具有多種功能的自感應(yīng)系統(tǒng)。
搭載該系統(tǒng)的智能小車可以很好地感知周圍環(huán)境,并根據(jù)環(huán)境特點(diǎn)作出相應(yīng)的行為。例如,當(dāng)光線暗時(shí),光照強(qiáng)度傳感器會將信息傳遞給控制設(shè)備并結(jié)合算法控制繼電器的開、閉,完成對燈光的控制。利用傳感器和L298N 的配合并根據(jù)土壤溫濕度判斷該地區(qū)是否可以進(jìn)入,躲避地區(qū)障礙物,實(shí)現(xiàn)自感應(yīng)功能。
圖1 系統(tǒng)結(jié)構(gòu)圖Fig.1 System structure diagram
在實(shí)際工作中,有時(shí)需要進(jìn)入一些危險(xiǎn)或人力不容易達(dá)到的地方進(jìn)行作業(yè),這時(shí)為了更好地完成工作需要智能小車的幫助[1]。在可見范圍內(nèi),小車可以通過操作人員控制,但當(dāng)超出這個(gè)范圍時(shí),智能小車[2]的自感應(yīng)功能就顯得非常重要了。
系統(tǒng)主要由以下幾個(gè)部分組成,分別是數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)驅(qū)動(dòng)模塊。
數(shù)據(jù)采集模塊主要負(fù)責(zé)周圍環(huán)境的感知,通過傳感器獲取需要的數(shù)據(jù)信息。隨后將這些信息傳遞給數(shù)據(jù)處理模塊(MCU),再根據(jù)系統(tǒng)算法數(shù)據(jù)驅(qū)動(dòng)模塊給出行為上的反饋。系統(tǒng)結(jié)構(gòu)圖如圖1 所示。
樹莓派是一種微型電腦,起初是為了學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)的[3]?,F(xiàn)在它除了具備編程教育功能以外,還為許多物聯(lián)網(wǎng)開發(fā)愛好者提供了一種選擇,使他們不僅僅局限在單片機(jī)上。相對于單片機(jī)而言,樹莓派更像一臺微型計(jì)算機(jī),可以完成一定的計(jì)算任務(wù)。同時(shí)它還具有更多的GPIO 接口,方便更多功能的擴(kuò)展以及多種傳感器之間的互聯(lián)。
選用樹莓派作為自感應(yīng)系統(tǒng)的控制設(shè)備,有以下幾點(diǎn)原因:第一點(diǎn)是它的小巧輕便,可以很好地安裝在智能設(shè)備上;第二點(diǎn)是它有40 個(gè)GPIO 接口,可以連接多個(gè)傳感器,方便系統(tǒng)后續(xù)功能的擴(kuò)展;第三點(diǎn)是它具有獨(dú)立的處理器以及操作系統(tǒng),可以快速地處理來自各種傳感器反饋的數(shù)據(jù),并調(diào)用相關(guān)模塊使驅(qū)動(dòng)模塊作出反應(yīng)。
圖2 L298N實(shí)物圖Fig.2 L298N Physical map
圖3 HC-SR04實(shí)物圖Fig.3 HC-SR04 Physical map
L298N 是專用驅(qū)動(dòng)集成電路[4],屬于H 橋集成電路。其輸出電流為2A,最高電流4A,最高工作電壓50V,可以驅(qū)動(dòng)感性負(fù)載,像大功率直流電機(jī)、步進(jìn)電機(jī)等,特別是其輸入端可以與單片機(jī)直接相聯(lián),可以很好地被MCU 控制。當(dāng)驅(qū)動(dòng)直流電機(jī)時(shí),可以直接控制步進(jìn)電機(jī),并根據(jù)輸入端的高低電平實(shí)現(xiàn)正反向的旋轉(zhuǎn)。
采用L298 芯片為核心,加上簡單的外圍電路就可以驅(qū)動(dòng)兩路直流電機(jī),L298 驅(qū)動(dòng)優(yōu)點(diǎn):每一組PWM 波用來控制一個(gè)電機(jī)的速度,另外2 個(gè)I/O 口控制電機(jī)的轉(zhuǎn)動(dòng)方向,減少了硬件設(shè)計(jì)與軟件編程的工作量[5]。實(shí)物圖如圖2 所示。
HC-SR04 傳感器是將超聲波信號轉(zhuǎn)換成其他能量信號(通常是電信號)的傳感器。超聲波對物體有很強(qiáng)的穿透性,這一特點(diǎn)在不透明固體中表現(xiàn)突出。
圖4 光照強(qiáng)度傳感器Fig.4 Light intensity sensor
HC-SR04 傳感器[6]可以廣泛應(yīng)用在物位(液位)監(jiān)測、機(jī)器人防撞,以及防盜報(bào)警等相關(guān)領(lǐng)域。工作可靠,安裝方便,發(fā)射夾角較小,靈敏度高,方便與工業(yè)顯示儀表連接。實(shí)物圖如圖3 所示。
該系統(tǒng)使用的光照強(qiáng)度傳感器是GY-30。GY-30 是一款數(shù)字光強(qiáng)度檢測模塊,對弱光也有較高靈敏度的傳感器。輸入電壓為3V ~5V,可檢測的光照度范圍是:0 ~65535 lx,內(nèi)置16bitAD 轉(zhuǎn)換器。具有不區(qū)分光源,接近于視覺靈敏度的分光特性,可對廣泛的亮度進(jìn)行1lx 的高精度測量。如圖4 是GY-30 實(shí)物圖。
為了更好地測試土壤濕度,該設(shè)計(jì)選用的是FC-28 型號的檢測器。該傳感器利用電磁脈沖原理,依靠電磁波在介質(zhì)中的傳播率來檢測土壤的表觀介電常數(shù)(ε),從而得到土壤的濕度(θv)。利用電位器芯片可以調(diào)節(jié)測定的閾值,順時(shí)針調(diào)節(jié)控制濕度會變大,逆時(shí)針調(diào)節(jié)控制濕度會變小[7]。傳感器與電位器連接圖如圖5 所示。
GPIO 是Python 提供的一個(gè)接口庫,可以通過代碼調(diào)用樹莓派上的GPIO 接口(使用pip install RPi.GPIO 命令來安裝GPIO 模塊)。樹莓派的GPIO 接口由40 個(gè)針腳(PIN)組成,每個(gè)針腳都可以用導(dǎo)線和外部設(shè)備相連。
在40 個(gè)PIN 接口中,有 固 定 輸 出 的5V(2、4 號PIN)、3.3V(1、17 號 PIN)和地線(Ground,6、9、14、20、25、30、34、39)。如果一個(gè)電路兩端接在5V 和地線之間,該電路就會獲得5V 的電壓輸入。27、28 號PIN標(biāo)著ID_SD 和ID_SC,它們是兩個(gè)特殊的PIN,屬于ID EEPROM(Electrically Erasable Programmable Read-Only Memory)接口,用于和拓展開發(fā)系統(tǒng)功能的附加電路板通信。每個(gè)PIN 都有對應(yīng)的編號,如GPIO14。開發(fā)系統(tǒng)的操作系統(tǒng)中,會用GPIO 的編號14 來指代這個(gè)PIN,而不是位置編號的8。有一些PIN 除了GPIO 功能外,還提供了高級端口功能。比如說,GPIO14 和GPIO15 就同時(shí)可以充當(dāng)UART 端口。GPIO 編號方式如圖6 所示。
圖5 傳感器與電位器連接圖Fig.5 Sensor and potentiometer connection diagram
圖6 GPIO編號方式Fig.6 GPIO Numbering method
將上述硬件組裝,得到小車實(shí)物圖如圖7 所示。
圖7 小車實(shí)物圖Fig.7 Cart physical map
圖8 主程序流程圖Fig.8 Main program flow chart
圖9 L298N驅(qū)動(dòng)流程Fig.9 L298N Drive process
軟件設(shè)計(jì)由以下幾個(gè)模塊構(gòu)成:初始化程序、驅(qū)動(dòng)程序(包括小車的運(yùn)動(dòng)、燈光的開閉)、數(shù)據(jù)收集程序、控制程序。
初始化程序主要開啟需要用到的GPIO 口,使它們進(jìn)入準(zhǔn)備狀態(tài);數(shù)據(jù)收集程序主要是利用傳感器對環(huán)境的實(shí)時(shí)監(jiān)測并獲取數(shù)據(jù);驅(qū)動(dòng)程序主要是根據(jù)數(shù)據(jù)收集程序的數(shù)據(jù)并結(jié)合控制程序的算法來改變GPIO 口的高低電平,并調(diào)用L298N 驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)[4]以及繼電器控制燈光的開閉。主程序流程圖如圖8 所示。
驅(qū)動(dòng)程序和收集程序的執(zhí)行分為兩個(gè)部分:第一部分是土壤濕度傳感器和HC-SR04 傳感器的數(shù)據(jù)收集。首先由土壤濕度傳感器測量判斷運(yùn)動(dòng)區(qū)域的濕度是否可以進(jìn)入,然后由HC-SR04 實(shí)時(shí)測量小車周圍障礙物的距離,此過程最終調(diào)用L298N 模塊來驅(qū)動(dòng)步進(jìn)電機(jī)的運(yùn)轉(zhuǎn);第二部分是光照強(qiáng)度傳感器感受環(huán)境光照經(jīng)過控制程序判斷是否小于設(shè)定值,以此來改變繼電器的開閉,已達(dá)到控制LED 燈的效果,使得該設(shè)計(jì)在暗處也可以正常使用。L298N 驅(qū)動(dòng)流程如圖9 所示,繼電器驅(qū)動(dòng)流程如圖10 所示。
圖10 繼電器驅(qū)動(dòng)流程Fig.10 Relay drive process
基于嵌入式設(shè)計(jì)了一款自感應(yīng)系統(tǒng),多個(gè)傳感器共同完成對系統(tǒng)運(yùn)行環(huán)境的感知,交由樹莓派對數(shù)據(jù)進(jìn)行處理,經(jīng)過軟件程序的驅(qū)動(dòng)并改變L298N 驅(qū)動(dòng)板和繼電器的高低電平使小車實(shí)現(xiàn)自動(dòng)運(yùn)動(dòng)的功能,以及搭配傳感器實(shí)現(xiàn)避障功能和光照功能。在實(shí)際測試中該系統(tǒng)可以很好地完成預(yù)定功能的運(yùn)行,達(dá)到實(shí)驗(yàn)要求。
多種傳感器搭配使得系統(tǒng)具有跟多的功能,解決了單一傳感器的局限性,結(jié)合樹莓派較高的可拓展功能以及可編程特性,使得該系統(tǒng)可以很好地使用。
現(xiàn)如今人工智能技術(shù)飛速發(fā)展,研究和開發(fā)這款自動(dòng)避障小車系統(tǒng)有很重要的意義。整個(gè)系統(tǒng)構(gòu)成簡單,硬件技術(shù)成熟穩(wěn)定,結(jié)合樹莓派的高擴(kuò)展性,還可添加多種傳感器實(shí)現(xiàn)更多功能,具有很強(qiáng)的實(shí)用性。在后期的改進(jìn)中,還可加入攝像頭模塊實(shí)現(xiàn)更多的功能。