任玲玲,李浪,閆庚龍,莫仁浪
(茅臺學院,貴州遵義, 563000)
物聯網是指將互聯的概念擴展到人與物以及物物之間信息的交換和通信。物聯網在智能家居、現代交通、軍事科技、環境監測等領域都有廣泛應用[1],智能小車作為機器人的分支,可以在預設的路線上行駛,也可以自動躲避障礙物前進,實現循跡與避障功能。智能小車也是物聯網的一部分。智能小車可以利用傳感器監測周圍的環境信息,利用藍牙、WiFi、紅外等進行無線通信,實現對智能小車的無線控制功能[2]。它不需要人工管理,只要將編寫的程序提前上傳至單片機,就可以完成相應任務,可以節省人力物力。與遙控小車有所不同,遙控小車需要通過人工遙控來控制小車方向,本文設計的智能循跡避障小車是通過計算機程序來控制小車的運行狀態和方向,而且可以通過藍牙實現手機端對智能小車的控制以及實現循跡與避障模式的切換。可以廣泛應用于無人駕駛汽車、自動運輸機器人、自動清潔機器人等方面[3]。
本文設計一款可以對周圍環境作出智能判斷及反應的智能小車。智能小車可以實現以下三個功能:第一,通過循跡模塊檢測路面黑線,并跟隨預設的黑線前進,實現自動導航功能;第二,通過避障模塊檢測障礙物,并繞開障礙物行駛,實現自動避障功能;第三,手機遙控,通過藍牙模塊接收手機端發送過來的數據,進而控制小車進入循跡模式或避障模式。
根據智能小車的功能需求,對小車的各個模塊進行設計,硬件部分主要包括Arduino單片機、循跡模塊、避障模塊、藍牙、電源、驅動模塊等,總體設計框圖如圖1所示。

圖1 系統總體設計框圖
各個模塊的主要功能:Arduino模塊:作為智能小車的核心部分,對驅動模塊、循跡模塊、避障模塊起著控制作用,傳感器檢測路面上的黑線和障礙物,并將收集到的信息反饋給主控芯片,主控芯片對信息進行處理,然后將處理結果發送給驅動模塊,從而控制小車的運動狀態。循跡模塊:檢測路面上的黑線,使小車能夠跟隨路面預設的黑線前進,實現循跡功能。避障模塊:檢測周圍障礙物,使小車能夠路面地避開障礙物前進,實現避障功能。電源模塊:電源要為單片機、傳感器、驅動部分提供電能,使智能小車能夠正常運行。驅動及電機模塊:執行Arduino對信息的處理結果,控制電機的運動狀態,進而實現智能小車的轉向。藍牙模塊:接收手機端發送過來的數據,進而控制小車不同的運動狀態和進入不同的模式,智能小車根據接收的信息進入循跡或避障模式。
根據智能小車的總體設計,需要為智能小車設計和選擇合適的硬件設備。智能小車的硬件設計主要包括小車的車體的設計、主控器的選擇、循跡模塊的選擇、避障的模塊的選擇、驅動模塊的選擇、電機的選擇、電源模塊的選擇、通信模塊的選擇。循跡模塊和避障模塊檢測小車周圍的環境信息,并將信息反饋給主控芯片,主控芯片對信息進行處理,然后將處理結果發送給驅動模塊,進而實現對電機的控制。通過藍牙模塊接收手機端發送過來的信息,并對信息進行處理和判斷,然后控制小車進入不同的模式,實現手機遙控功能。其智能小車的整體接線圖如圖2所示。

圖2 智能小車連線圖
Arduino有許多版本,每個版本有不同發特點。本項目選擇Arduino UNO R3版本,其實物圖如圖3所示。這個版本UNO的處理器核心是ATmega328,這是目前使用最多的版本,具有十分穩定和滿足智能小車功能實現的需要[4]。

圖3 Arduino UNO R3開發板
智能小車使用兩路紅外循跡傳感器,其實物圖如圖4所示。工作原理:不同顏色的路面對紅外光線的反射能力不同,黑線會吸收傳感器發射出的紅外光,而其他顏色的路面有反射光線返回,傳感器會接收到不同強度的信號,進而轉換為高低電平,然后通過端口控制驅動模塊改變兩個電機的運動狀態,從而達到循跡的目的。

圖4 兩路紅外循跡傳感器
常見的避障方式有紅外避障和超聲波避障。
紅外避障模塊,其工作原理為:傳感器發射紅外線,遇到障礙物后會反射紅光線,傳感器根據是否收到信號來判斷是否有障礙物,進而轉換為高低電平,然后通過控制驅動模塊改變電機運動狀態,從而達到避障的目的。其價格便宜且抗干擾能力強。
超聲波避障模塊,其工作原理為:發射超聲波,遇到障礙物后返回,從而測出兩者的距離,當距離小于一定值后,判斷前方有障礙物,進而轉換為高低電平,然后通過控制驅動模塊改變電機運動狀態,從而達到避障的目的。這種方式易出現檢測盲區,從而檢測不到障礙物。
考慮各種因素,避免實驗單一性同時選擇使用紅外避障傳感器和超聲波避障。紅外避障模塊如圖5所示。

圖5 紅外避障傳感器
紅外避障模塊有VCC、GND、OUT三個引腳,其中VCC為電源正極接入口,接電源正極;GND為電源負極接入口,接電源負極;OUT接Arduino主板的一個I/O口,由于本項目只需要使用一個避障模塊,選擇5引腳。超聲波避障模塊與舵機搭載配合,超聲波模塊有VCC、GND、Echo、Trig四個引腳,其中Echo、Trig為回聲(輸出)和觸發(輸入)。實物如圖6所示。

圖6 HC-SR04傳感器
舵機SG90有紅、棕、橙三根接線,分別為VCC、GND、信號線。其工作原理是通過控制脈沖信號來控制它角度的轉動,一般一個基脈沖里高電平為0.5~2.5ms,其角度對應為0~180°,實物如7所示。

圖7 SG90 舵機
智能小車采用L239D電機驅動芯片,其實物圖如8所示。L239D采用雙H橋直流電機驅動芯片,可以實現電機正反轉及調速,適用于智能小車的設計。

圖8 L293D 驅動芯片
該驅動模塊可以驅動兩路直流電機,當使能端為高電平時,該模塊可以正常工作。驅動模塊可以通過設置INI,IN2確定電機的轉動方式,進而控制電機的狀態。智能小車采用三輪模型,前面兩個輪子各使用一個電機驅動,并通過控制電機的轉動方式改變小車的運動狀態,小車的主要運動狀態有直行、左轉、右轉、后退、停止。后輪使用一個萬向輪,萬向輪不需要通過電機控制就可以在水平方向旋轉,有利于控制小車的平衡,對小車起支撐作用。
智能小車使用的電機主要有直流減速電機、步進電機。直流減速電機價格比較便宜,使用方便,電機轉速較慢,可以實現減速功能。步進電機通過脈沖信號調節電機轉速,但電機轉速較小,價格昂貴,不適合智能小車??紤]各種因素,選擇使用直流減速電機。主要通過兩個引腳進行接線,分別接驅動模塊的兩個輸出引腳,從而控制電機的轉動。
智能小車采用7.4V鋰電池給單片機和驅動部分供電,這種供電方案簡單,鋰電池價格也比較便宜。7.4V鋰電池是通過Arduino轉接板的電源接口給主板和驅動部分供電。
要實現小程序與小車之間的通信,需要選擇合適的無線通信模塊,目前主要的通信方式有藍牙通信、WiFi通信、紅外通信。由于藍牙模塊的通信范圍較大,速度較快,價格也比較便宜,廣泛應用于智能手機、筆記本電腦、無線耳機、汽車等設備,并通過手機藍牙調試器實現與小車的通信,藍牙調試器給藍牙模塊提供了一系列需要的API,如打開藍牙適配器、搜索藍牙、連接藍牙等。所以選擇HC-05藍牙串口通信模塊作為通信模塊,藍牙模塊通過VCC、GND、TXD、RXD四個引腳進行接線,其中VCC接電源正極;GND接電源負極;TXD接主板的RXD口;RXD接主板的TXD口,其實物圖如圖9所示。

圖9 HC-05藍牙
智能小車主要實現自動循跡、自動避障、藍牙模塊接收數據三個功能,通過編寫主程序、循跡子程序、避障子程序、接收數據等程序,實現智能小車正常運行。
智能小車要正常平穩工作,編寫高效無誤的程序是必不可少的。首先需要建立一個項目并編寫程序,要定義IO引腳并對其初始化,定義智能小車的一系列動作,包括直行、左轉、右轉、停止和后退,然后通過藍牙模塊接收手機端發送過來的信息,主控芯片對信息進行處理,然后控制智能小車進入循跡模式或避障模式,主程序框圖如圖10所示。

圖10 主程序框圖
對硬件模塊定義引腳、對引腳設置輸入輸出模式、設置波特率等。其中兩個循跡傳感器分別選擇3和4引腳,并設置為輸入模式;紅外避障傳感器選擇5引腳,并設置為輸入模式;超聲波傳感器選擇A0和A1引腳,并設置輸入和輸出模式;兩個電機分別選擇8和9、10和11引腳,并設置為輸出模式;用于串口通信的波特率設為9600。其中循跡模式和避障模式中小車的運動狀態有直行、左轉、右轉、停止和后退,不同的運動狀態,電機引腳參數不同。
循跡子程序用于實現智能小車的自動循跡功能。小車進入循跡模式,兩路紅外循跡模塊開始檢測路面上的黑線,根據是否檢測到黑線,讀出引腳的電平,控制小車進入不同狀態,根據傳感器檢測黑線的不同情況,智能小車可以進入直行、左轉、右轉、停止四種狀態。循跡子程序框圖如圖11所示。

圖11 循跡子程序框圖
避障子程序用于實現智能小車的自動避障功能。小車進入避障模式,左右紅外避障模塊開始檢測小車周圍是否有障礙物,根據是否檢測到障礙物,讀出引腳的電平,控制小車進入不同狀態,根據周圍障礙物類型的不同,智能小車可以進入直行、左轉、右轉、后退四種狀態,避障子程序框圖如圖12所示。

圖12 避障子程序框圖
手機藍牙傳送數據過程與平時使用兩部手機互傳數據一樣,不同的是在本設計中,手機為主機,藍牙模塊為從機。其工作流程如圖13所示。

圖13 藍牙工作流程圖
打開手機藍牙調試器,點擊搜索藍牙設備,點擊所要連接的藍牙名稱進行連接,然后發送數據指令。連接成功后,通過控制界面發送控制指令,從而控制小車的運行狀態??刂平缑嫒鐖D14所示。

圖14 控制界面
經過實驗調試,小車能夠達到設計的預期效果,小車的基本運行和循跡功能、避障功能都得以實現。運行結果如圖15所示。

圖15 小車運行實物圖
本文設計的循跡避障智能小車以Arduino為控制核心,將循跡模塊、避障模塊、藍牙模塊、驅動模塊等硬件設備組裝在一起,實現智能小車的自動循跡避障功能。小車在預設路線上行駛時,通過循跡模塊小車可以自動檢測路線,若小車偏離路線,可以自動左轉或右轉,然后按照指定路線前進;通過避障模塊小車可以檢測障礙物,并自動躲避障礙物前進。另外本設計也實現了手機端與藍牙模塊之間的通信,手機端可以向藍牙發送指令,實現對小車的無線控制。循跡避障小車等智能機器人可以代替人類去完成一些危險的任務或者很難完成的事情,可以廣泛應用于醫療、交通、軍事、探測等領域。因此,智能小車等智能設備具有巨大的研究價值。