基于安卓手機的多功能智能小車
引 言
智能車的應用非常廣泛,在工業(yè)制造、農(nóng)業(yè)生產(chǎn)、安全實驗、環(huán)境探索和檢測,甚至是軍事偵察、外星探測等各方面都有應用。在外星的探索上,19 世紀美國在探索火星時發(fā)送了“機遇號”和“勇氣號”兩輛勘測小車,而我國在 2013 年探測月球時也發(fā)送了首顆勘測小車“玉兔”號 [1]。
隨著車聯(lián)網(wǎng)、智能汽車的興起,亟待解決的問題越來越多,各種新技術(shù)應運而生。智能汽車作為人工智能的重要領(lǐng)域之一,已經(jīng)成為時代的熱點。未來智能汽車將是跨學科、跨領(lǐng)域的高新技術(shù)載體,甚至是某種意義上有靈魂、有生命的高度智慧體 [2]。智能小車成本較低,而且應用技術(shù)十分廣泛,包含微控制、無線通信、傳感器技術(shù)等,以智能小車作為智能汽車的模型,是探索智能汽車以及人工智能非常好的切入點。
1 小車整體設計
智能小車以單片機作為控制核心,下位機與 Android 手機終端通過藍牙無線傳輸技術(shù)實時通信。在小車手動模式下, 用戶通過手機發(fā)送指令信息,控制中心根據(jù)接收到的指令按照程序控制小車運動,完成相應的任務。手機終端能夠?qū)崟r接收控制器上傳的傳感器數(shù)據(jù)信息,分析處理后在屏幕上顯示相關(guān)信息,并根據(jù)程序設定做出相應的安全提醒或危險警報。
1.1 小車供電系統(tǒng)
電源是系統(tǒng)穩(wěn)定工作的前提。小車的主控系統(tǒng)、通信模塊、傳感器模塊以及其他模塊的工作電壓基本都為 5 V,而驅(qū)動直流電機需要 12V。因此電源采用三節(jié) 3.7V可充電的鋰電池,鋰電池相對于普通鋅 - 錳干電池的優(yōu)點是容量大、能提供更大的電流,電源更穩(wěn)定而且可快速充電。三節(jié)鋰電池電壓能夠達到 11V,足夠驅(qū)動直流電機,經(jīng)過降壓 /穩(wěn)壓電路后得到穩(wěn)定的 5V 電壓,為各芯片提供穩(wěn)定的工作環(huán)境。降壓 / 穩(wěn)壓電路的核心是三端穩(wěn)壓器 LM7805,LM7805性能穩(wěn)定,輸出端能夠得到穩(wěn)定的 5V電壓,而且內(nèi)部電路還具有過壓、過流等保護功能。
1.2 小車主控系統(tǒng)
小車主控系統(tǒng)以 STC89C52 為核心。STC89C52 是一種增強型 51 單片機,不但性能更加穩(wěn)定,而且增大了 ROM 和 RAM,提高了運算速度。增強后的 STC89C52 具有 8 KB FLASH 存儲器、512 B RAM、32 位 I/O 口線、一個全雙工串行口,以及 3 個 16 位定時器 / 計數(shù)器和 4 個外部中斷。另外,STC89C52 可設置節(jié)電模式,具有較強的抗干擾能力和低功耗 [3]。因此不管是外設接口還是內(nèi)存或者運算速度等, STC89C52 都能滿足目前設計要求,而且 STC89C52 輕巧, 控制端口簡單。
1.3 小車底層運動模塊
智能小車驅(qū)動采用直流減速電機,該電機轉(zhuǎn)速小、功耗低、調(diào)速性能較好、力矩大。為了減少對控制器和電源的干擾, 在電機內(nèi)部增加環(huán)形壓敏電阻。L298N 是專用的驅(qū)動集成電路,芯片工作電壓為 5 V,驅(qū)動電機電壓為 12 V。L298N 可同時驅(qū)動 2 個直流電機,輸入端為 TTL 邏輯電平,可以直接連單片機的 I/O 口 [4]。OUTl ~ 4 為四個輸出端,輸出電流為 2 A 左右,分別接兩個直流電機。L298N 邏輯真值見表 1 所列。
1.4 溫度檢測
智能小車的溫度檢測采用 TO-92 封裝的 DS18B20 數(shù)字式溫度傳感器,這種傳感器體積小、控制方便、穩(wěn)定性好,而且 DS18B20 采用獨特的 1-Wire 通信,即僅采用一個數(shù)據(jù)線就可以與微控制器進行通信。該技術(shù)將時鐘線、數(shù)據(jù)線、控制線甚至電源線合并成一根線,只要符合其通信協(xié)議標準就能進行通信 [5],所以電路十分簡單。DS18B20 能夠檢測-55 ~125 ℃,并且可以由用戶自行配置 9 ~12 位分辨率,具有用戶可編程的非易失性,以及過溫與低溫觸發(fā)報警的報警功能,測量結(jié)果直接輸出數(shù)字溫度信號。同時,一根總線上可以連接多個 DS18B20,具有支持多點組網(wǎng)、實現(xiàn)多點測溫的功能。在本文設計中 DS18B20 主要用來檢測周圍的環(huán)境溫度。
1.5 超聲波測距
HC_SR04 是常用的非接觸式超聲波距離測量模塊,工作電壓為 3.3 ~5 V。HC_SR04 的工作原理是觸發(fā)端Trig 給 10 μs 以上的高電平信號,HC-SR04 內(nèi)部自動發(fā)送 8 個 40 kHz 的方波,模塊自動檢測是否有信號返回,如果有信號返回,模塊 Echo 端輸出一個時間為超聲波從發(fā)射到返回的高電平 [6]。單片機通過定時器計算 Echo 端高電平的時間,根據(jù)定時器計算所得到的時間和所處環(huán)境聲音傳播的速度計算出當前距離。
當小車上的距離傳感器測得的距離到達障礙第一個限定值時,小車上的危險指示燈閃爍做出危險警告 ;當測得的距離到達第二個限定值時,系統(tǒng)自動采取緊急制動措施 [7]。終端也能夠自主分析接收到的數(shù)據(jù),根據(jù)不同的情況,手機屏幕顯示相關(guān)危險信息內(nèi)容,并做相應的語音提示。DS18B20 測距及報警流程如圖 1 所示。
圖 1 DS18B20 測距及報警流程
1.6 手機 APP 設計
手機軟件的開發(fā)相對來說是智能小車設計過程中的難點, 本文系統(tǒng)的 APP 通過第三方在線開發(fā)平臺 MIT APP Inventor 進行設計。APP Inventor 是 Google 公司開發(fā)的一款手機編程工具軟件,在智能家居與機器人控制領(lǐng)域都有非常廣泛的應用。其最大優(yōu)勢是環(huán)境搭建方便,開發(fā)過程簡單 [8], 且上手容易,大大縮短了開發(fā)周期。
APP 開發(fā)主要分為兩部分內(nèi)容。一是 APP 用戶界面的設計。用戶界面是用戶與系統(tǒng)信息交互的媒介,所以清晰、美觀的 UI 設計會讓人操作起來更加舒適。用戶界面設計即根據(jù)需求添加所需組件,根據(jù)組件性能設計組件的形狀、大小、顏色及背景等,然后按照軟件的功能與風格要求設計界面布局。
另一部分是 APP 邏輯組件的設計。APP 邏輯設計即編程,組件類似 C 語言中的封裝函數(shù),需要時直接調(diào)用。APP Inventor 提供了較多邏輯控制事件、字符操作、條件事件等, 邏輯設計即定義各個組件的行為及具體實現(xiàn)功能。首先按要求修改組件相應參數(shù),然后按照組件要實現(xiàn)的功能添加相應的邏輯控制、條件選擇、數(shù)據(jù)操作等事件定義組件的動作流程 [9]。APP 主要模塊有通信連接、運動指令下達、傳感器信息顯示,到達限定值時危險信息警報。最終完成的 APP 界面如圖 2 所示。
圖 2 APP 界面
2 智能小車研究過程中的技術(shù)難點
智能小車 APP 需要接收傳感器的動態(tài)數(shù)據(jù)并實時顯示。傳感器的數(shù)據(jù)一直更新,不能像單片機的 While 循環(huán)一樣一直接收數(shù)據(jù),若 APP 發(fā)一個控制碼過去接收一次數(shù)據(jù),則只能單次接收,而傳感器的數(shù)據(jù)是動態(tài)的,要求實時更新,此種方式顯然達不到要求。筆者受到單片機串口中斷思想的啟發(fā),添加一個定時器,當定時器啟動時開始接收數(shù)據(jù),然而這樣雖然能夠?qū)崟r接收、顯示數(shù)據(jù),卻不能按字節(jié)提取某一個傳感器的數(shù)據(jù)分別顯示。最后在教師的指導下把接收到的文本轉(zhuǎn)換成 Hex 格式,實現(xiàn)了隨意按照設定字節(jié)數(shù)提取某一部分的數(shù)據(jù)。
3 結(jié) 語
本文設計的智能小車可以實現(xiàn)利用智能手機通過無線傳輸對小車進行實時控制,智能車上搭載的傳感器能夠把數(shù)據(jù)上傳到手機,通過手機可實時查看傳感器的檢測值,超過設定值時呈現(xiàn)對應的報警信息。但由于目前通信采用的是短距離無線通信技術(shù),傳輸距離有限,未來擬改變通信方式,采用如 GPRS 等遠距離無線通信,并增加攝像頭,實現(xiàn)手機實時監(jiān)控小車周圍情況 [10]。另外,未來還可嘗試增加 GPS 定位功能,得到較精確的定位。