方志陽+儲太
(中國民航大學(xué)電子信息與自動化學(xué)院 天津 300300)
摘 要:智能引導(dǎo)小車在生活中所能扮演的角色越來越多,所起到的作用也越來越大,當人們在一個陌生環(huán)境如圖書館,博物館或旅游景點,想到達自己想去的目的地往往需要話費一番力氣,而自主規(guī)劃路徑的小車正好能為這些人提供方便。本文論述的智能引導(dǎo)小車以STC89C52單片機為核心,通過柵格法進行自主路徑規(guī)劃,并由紅外傳感器輔助行進,以及通過射頻卡來識別目的地,綜合運用了藍牙通信、自主路徑規(guī)劃、語音合成、射頻卡識別等技術(shù),使小車能實現(xiàn)自主路徑規(guī)劃,并提供引導(dǎo)的目的。
關(guān)鍵詞:自主路徑規(guī)劃;避障;射頻卡識別
基金項目:中國民航大學(xué)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃優(yōu)秀培育項目
項目號:IEKCAUC2015018
1 引言
現(xiàn)如今,智能小車的相關(guān)研究不斷深入,使得小車在加相應(yīng)傳感器后完成某一特定功能成為可能,可實現(xiàn)循跡、避障、跟隨等功能。因此智能小車開始逐步走向?qū)嶋H生活,并且各個方面為人們提供服務(wù)。
本文設(shè)計實現(xiàn)的智能小車以STC89C52單片機最小系統(tǒng)作為主要控制核心,首先敘述單片機最小系統(tǒng)、目的地輸入模塊等智能小車的硬件,然后介紹引導(dǎo)小車時的自主路徑規(guī)劃、避障以及目的地輸入與檢測等軟件的設(shè)計與實現(xiàn)。
2 智能引導(dǎo)小車的硬件設(shè)計與實現(xiàn)
智能小車的硬件是整個小車控制系統(tǒng)能否順利運行的基礎(chǔ)。其硬件主要由單片機最小系統(tǒng)作為控制器,用藍牙傳輸輸入目的地,用直流電機、光柵以及光電傳感器來實現(xiàn)順利行進,主要硬件模塊包括:單片機最小系統(tǒng)、目的地輸入模塊、小車驅(qū)動模塊、避障模塊、射頻卡模塊、語音模塊。
2.1 單片機最小系統(tǒng)
STC89C52是STC公司生產(chǎn)的一種低功耗、高性能微控制器,具有8K字節(jié)系統(tǒng)可編程存儲器,使用經(jīng)典的MCS-51內(nèi)核,但具有傳統(tǒng)51單片機不具備的功能。
2.2 目的地輸入模塊
采用藍牙輸入作為輸入的方式,所使用的為CSR-BC417藍牙芯片,工作電壓為3.3V,電流配對時為20-30mA,配對后為8mA??芍С諹ART和PIO接口的數(shù)據(jù)傳輸藍牙模塊,最高傳輸速率為3Mbps。
2.3 小車驅(qū)動模塊
小車采用四個直流電機,工作電壓為6V,電流為80-100mA。采用兩路PWM控制芯片為小車的電機供電,兩路PWM控制可以十分方便地控制電機的正反轉(zhuǎn)。
2.4 避障模塊
避障采用紅外光電傳感器HJ-IR2和比較器來實現(xiàn),檢測到障礙物時輸出低電平,平時高電平。
2.5 射頻卡模塊
該模塊由MF-S50射頻卡和MF-RC522讀寫卡模塊構(gòu)成。為非接觸式IC卡,具有8KB的EEPROM,每張卡都有唯一的序列號。
2.6 語音模塊
采用了SX6288A為主要核心的語音合成模塊,其使用異步串口方式進行通信,通過接收待合成的文本數(shù)據(jù)實現(xiàn)文本到語音的轉(zhuǎn)換。
智能小車利用目的地接收模塊接收手機發(fā)送的目的地,用單片機最小系統(tǒng)進行分析、規(guī)劃路徑,驅(qū)動模塊為小車提供動力,避障模塊為行進提供輔助作用,射頻卡模塊則為小車進行位置判斷提供作用,語音模塊實現(xiàn)的是講解或語音提示作用。
2.7 光柵模塊
采用了HJ-IR6光柵芯片、兩個光感器以及兩個柵輪構(gòu)成,當車輪轉(zhuǎn)動時,通過光柵對小車車輪轉(zhuǎn)速進行測定,從而實現(xiàn)對小車速度的監(jiān)控,方便控制智能小車的速度。
3 智能引導(dǎo)小車的軟件設(shè)計與實現(xiàn)
3.1 主程序設(shè)計
首先執(zhí)行目的地輸入程序,待目的地輸入成功后,小車先對自身所在位置進行判斷,然后執(zhí)行路徑規(guī)劃程序,規(guī)劃好路徑后調(diào)用驅(qū)動程序,小車在行進過程中由自動調(diào)速程序?qū)ζ溥M行自動調(diào)速,同時避障程序進行輔助,在遇到行人時停止,等待行人離開后繼續(xù)前進,經(jīng)射頻卡程序檢測為目的地時小車停止,并進行語音提示或講解,最后返回出發(fā)點。
3.2 路徑規(guī)劃程序
小車利用柵格法對環(huán)境劃分成網(wǎng)格單元,柵格的一致性和規(guī)范性使得柵格空間中鄰接關(guān)系簡單化,在給每個柵格賦予通行因子之后,將路徑規(guī)劃問題轉(zhuǎn)化為尋求兩個柵格節(jié)點間的最優(yōu)路徑。
3.2.1 柵格發(fā)路徑規(guī)劃算法流程
①對地圖進行柵格化,給予給每個柵格賦予一個二維坐標(x,y);
②將所有柵格劃分為可通行和禁止兩個類別,并建立兩個二維數(shù)組Ai,Bi,分別存放兩類坐標;
③小車進行初始化,初始坐標為(0,0);
④將周邊8個柵格的坐標與可通行數(shù)組內(nèi)坐標進行比較,如果為可通行,則存入另一個數(shù)組Ci;
⑤將可通行坐標與目的地坐標間距離進行計算,然后將距離最短的坐標存入Di;
⑥再對Di中的坐標依次進行④⑤操作,依次可得出一系列坐標;
⑦將這些坐標輸出到數(shù)組Ei,作為路徑。
3.3 避障程序
光電傳感器安裝于小車前部,探測距離為20-25cm,在探測到前方有行人時小車停止,待行人走后再繼續(xù)前進,避免撞上行人。當光電傳感器輸出低電平,對程序進行外中斷,當光電傳感器輸出為高電平后繼續(xù)執(zhí)行小車的程序。
3.4 目的地輸入程序
當小車與電腦或手機鏈接成功后,通過串口將目的地發(fā)送給小車,接受失敗時返回“重新輸入”語句,接收成功時返回“輸入成功”語句,然后單片機將字符對應(yīng)的坐標找出并賦值給目的地變量。
3.5 目的地識別程序
在不同的目的地各自安放射頻卡,每張射頻卡對應(yīng)一個地點,首先調(diào)用子函數(shù),將尋卡命令發(fā)給射頻卡讀寫器,若有卡則將返回的卡的類型存入數(shù)組中。接著調(diào)用子函數(shù)防沖突指令,并將返回的卡序列號(4個字節(jié))存入 數(shù)組中。調(diào)用選卡指令,選擇已知序列號的卡進行通信,調(diào)用子函數(shù)發(fā)送塊1所在扇區(qū)的密碼A給射頻卡,驗證其是否正確。讀取塊1中的數(shù)據(jù),將其存入數(shù)組中。
最后判斷房間號是否匹配,具體說明如下:輸入的3位房間號存放在數(shù)組中,讀取的3位房間號存放在另一個數(shù)組中。首先定義一個匹配標記初始值設(shè)為0。然后將兩個數(shù)組一一比較,若對應(yīng)位數(shù)值相同,初始值加1,不相同則不加,如果循環(huán)比較完后值等于3,則說明匹配,即找到房間,否則不匹配,繼續(xù)循環(huán)尋找房間。
4 結(jié)論
自主路徑規(guī)劃是智能小車應(yīng)用中的一項重要技術(shù),采用良好的自主路徑規(guī)劃技術(shù)可以使小車擺脫死硬的預(yù)設(shè)路徑,從而更方便地為人們提供更好的智能引導(dǎo),本文中所提到的自主路徑規(guī)劃方式并不是唯一的一種方式,在不同條件不同需求下可能會有其他更適合的路徑規(guī)劃方式,這是需要進一步實際檢驗的。