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