基于RFID的助盲語(yǔ)音尋物機(jī)器人的設(shè)計(jì)與實(shí)現(xiàn)
隨著科學(xué)技術(shù)的發(fā)展和人們生活水平的不斷提高,我們對(duì)生活的安全、舒適、便捷等各方面的要求也越來越高[2]。針對(duì)盲人的生理缺陷,研究了一款幫助盲人尋找所需物品的移動(dòng)機(jī)器人,它以UP-MAGIC2410為主控芯片,嵌入式Linux為操作系統(tǒng),并采用多線程的方式集成了射頻識(shí)別模塊、超聲波測(cè)距模塊、電機(jī)驅(qū)動(dòng)模塊和語(yǔ)音聲控模塊。通過RFID模塊對(duì)物品進(jìn)行辨識(shí)確定所尋物體的位置并且進(jìn)行精確定位,直流電機(jī)和驅(qū)動(dòng)器完成對(duì)機(jī)器人的移動(dòng)控制,而超聲波模塊實(shí)現(xiàn)避障功能[3]。盲人可以通過語(yǔ)音來對(duì)機(jī)器人進(jìn)行尋物控制,在語(yǔ)音命令的指示下機(jī)器人將獨(dú)立完成一次尋物過程,并會(huì)在找到的物體處給出語(yǔ)音提示。基于RFID的助盲尋物機(jī)器人是結(jié)合了RFID技術(shù)、語(yǔ)音聲控技術(shù)、傳感技術(shù)等的融合體,它給盲人的生活帶了極大的便利[4]。
1功能描述
基于RFID助盲尋物機(jī)器人,是幫助盲人尋找物品的電子產(chǎn)品,它可以方便盲人尋找所需物品,避免盲人因找物而帶來的麻煩,并可以通過語(yǔ)音命令對(duì)機(jī)器人進(jìn)行控制,同時(shí)機(jī)器人也會(huì)給出語(yǔ)音提示,讓盲人能享受現(xiàn)代科技生活的便捷。
本系統(tǒng)主要包括以下幾個(gè)功能模塊:
1)智能檢測(cè)模塊:
◆RFID讀寫器:檢測(cè)室內(nèi)的帶有RFID標(biāo)簽的物品,確定其物品方位后通過語(yǔ)音提示給盲人。
◆溫濕度傳感器:檢測(cè)室內(nèi)的溫度和濕度,通過語(yǔ)音提示給盲人。
◆煙霧濃度探測(cè)器:自動(dòng)檢測(cè)煙霧及溫度,當(dāng)煙霧濃度大于一定的范圍的時(shí)候,進(jìn)行語(yǔ)音提示。
2)手動(dòng)控制模塊:
◆Zigbee模塊:在手動(dòng)控制模塊與中控模塊之間進(jìn)行無線傳輸指令和數(shù)據(jù)。
◆按鍵控制:直接通過手持終端上的按鍵來發(fā)出控制指令。
◆SPCE061A語(yǔ)音模塊:識(shí)別盲人發(fā)出的語(yǔ)音指令來控制機(jī)器人,語(yǔ)音控制機(jī)器人使得整個(gè)系統(tǒng)操作簡(jiǎn)單實(shí)用更加人性化。
3)中控模塊:
◆中控模塊采用北京博創(chuàng)公司的UP-MAGIC2410開發(fā)板,它集成了助盲語(yǔ)音尋物機(jī)器人的所有子系統(tǒng),接口豐富,功能強(qiáng)大,是機(jī)器人的總控制器。通過手持終端的Zigbee無線通訊,控制機(jī)器人的開啟、溫濕度檢測(cè)、煙霧濃度檢測(cè)和語(yǔ)音尋物的功能。
硬件系統(tǒng)框圖如下圖1。
2項(xiàng)目總體設(shè)計(jì)
根據(jù)助盲尋物機(jī)器人的功能與技術(shù)要求的實(shí)際情況,采用“硬件+軟件”的系統(tǒng)結(jié)構(gòu)來設(shè)計(jì)機(jī)器人[5],各部分簡(jiǎn)要介紹如下:
系統(tǒng)選用基于采用UP-MAGIC2410的硬件開發(fā)平臺(tái)。嵌入式操作系統(tǒng)選用Linux 2.6.24,可以很好的滿足用戶的需求,而且用戶可以對(duì)Linux系統(tǒng)進(jìn)行剪裁或定制。
SQLit3數(shù)據(jù)庫(kù)支持大多數(shù)的SQL指令,使用方便,一個(gè)文件就是一個(gè)數(shù)據(jù)庫(kù),不需要安裝數(shù)據(jù)庫(kù)服務(wù)器軟件,減小了系統(tǒng)空間的使用量。不僅有完整的Unicode標(biāo)準(zhǔn)支持,而且它還具有速度快的特點(diǎn),可以減少系統(tǒng)查詢所消耗的時(shí)間。
系統(tǒng)的開發(fā)環(huán)境如下:
1)硬件環(huán)境:UP-MAGIC2410硬件開發(fā)平臺(tái)、SPCE061A語(yǔ)音模塊、Zigbee無線傳輸模塊、超聲波模塊、RFID模塊;
2)軟件環(huán)境:Linux2.6+SQLite3
3應(yīng)用的技術(shù)分析
3.1 Zigbee簡(jiǎn)介
ZigBee技術(shù)是一種應(yīng)用于短距離范圍內(nèi),低傳輸數(shù)據(jù)速率下的各種電子設(shè)備之間的無線通信技術(shù)。ZigBee名字來源于蜂群使用的賴以生存和發(fā)展的通信方式,蜜蜂通過跳ZigZag形狀的舞蹈來通知發(fā)現(xiàn)的新食物源的位置、距離和方向等信息,以此作為新一代無線通訊技術(shù)的名稱。
ZigBee技術(shù)的特點(diǎn):
1)功耗低:工作模式下,ZigBee傳輸速率低,傳輸數(shù)據(jù)量很小,因此信號(hào)的收發(fā)時(shí)間很短,其次在非工作模式時(shí),ZigBee節(jié)點(diǎn)處于休眠模式。2)傳輸可靠:ZigBee的媒體接入控制層(MAC層)采用talk-when-ready的碰撞避免機(jī)制。3)網(wǎng)絡(luò)容量大:ZigBee低速率、低功耗和短距離傳輸?shù)奶攸c(diǎn)使它非常適宜支持簡(jiǎn)單器件。4)兼容性:ZigBee技術(shù)與現(xiàn)有的控制網(wǎng)絡(luò)標(biāo)準(zhǔn)無縫集成。
5)安全性:Zigbee提供了數(shù)據(jù)完整性檢查和鑒權(quán)功能,在數(shù)據(jù)傳輸中提供了三級(jí)安全性。
CC2430是一顆真正的系統(tǒng)芯片(SoC)CMOS解決方案。這種解決方案能夠提高性能并滿足以ZigBee為基礎(chǔ)的2.4GHz ISM波段應(yīng)用對(duì)低成本,低功耗的要求。它結(jié)合一個(gè)高性能2.4GHz DSSS(直接序列擴(kuò)頻)射頻收發(fā)器核心和一顆工業(yè)級(jí)小巧高效的8051控制器。
3.2 RFID簡(jiǎn)介
RFID模塊采用RMU900+讀寫器。RMU900+模塊是超小型化超高頻讀寫器核心部件,它集成了PLL、發(fā)射、接收、射頻耦合器件 及MCU等。其主要工作頻率為840-960MHz,同時(shí)支持EPC C1 GEN2、ISO 18000-6C兩個(gè)協(xié)議,可工作在+3.3V的低電壓下,最大輸出功率可達(dá)到27dBm,并且可以通過UART、WIEGAND連接上位機(jī)。RMU900+模塊還提供完整的通訊協(xié)議,可用于上位機(jī)為L(zhǎng)inux操作系統(tǒng)的應(yīng)用。
3.3 UP-MAGIC2410簡(jiǎn)介
本次項(xiàng)目的設(shè)計(jì)使用的硬件平臺(tái)是由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-MAGIC 2410實(shí)驗(yàn)平臺(tái)。S3C2410微處理器的ARM9高性能的開發(fā)平臺(tái),主頻200MHz,100MHz總線頻率。采用最小系統(tǒng)核心板加擴(kuò)展板的雙層構(gòu)架,標(biāo)配32MSDRAM和64M NAND FLASH。提供LINUX2.4/2.6操作系統(tǒng),并且提供了完整的驅(qū)動(dòng)和應(yīng)用程序。
UP-MAGIC 2410是專門為對(duì)成本和功耗非常敏感同時(shí)性能要求又相當(dāng)高的應(yīng)用而設(shè)計(jì)的。憑借代碼大小和中斷延遲的優(yōu)化、集成的系統(tǒng)部件、靈活的配置、簡(jiǎn)單的高級(jí)語(yǔ)言編程和強(qiáng)大的軟件系統(tǒng),UP-MAGIC2410將成為廣大系統(tǒng)(從復(fù)雜片上系統(tǒng)到低端的微控制器)的理想解決方案。
部分模塊的詳細(xì)設(shè)計(jì):
3.4語(yǔ)音控制模塊
語(yǔ)音控制模塊主要是通zigbee的無線傳輸來控制助盲機(jī)器人尋找物體。SPCE061A是臺(tái)灣凌陽(yáng)公司出的一款單片機(jī),它的CPU內(nèi)核采用凌陽(yáng)最新推出μ’nSP?s21(Microcontroller and Signal Processor)16位微處理器芯片。圍繞μ’nSP?s21所形成的16位μ’nSP?s21系列單片機(jī)采用的是模塊式集成結(jié)構(gòu),它以μ’nSP?s21內(nèi)核為中心集成不同規(guī)模的ROM、RAM和功能豐富的各種外設(shè)接口部件;由于具有語(yǔ)音處理的特色,即便是不掛接額外的硬件,也能制作語(yǔ)音通訊產(chǎn)品[6]。
3.5超聲波模塊設(shè)計(jì)圖如下
超聲波是指頻率超過20KHz以上的聲音。理論上,聲音在25℃空氣中傳播速度的理論值為344m/s,這個(gè)速度在0℃時(shí)降為334m/s。如果測(cè)距精度要求很高,則應(yīng)通過溫度補(bǔ)償?shù)姆椒右孕U?。而超聲波測(cè)距是利用超聲波在空氣中的傳播速度為已知,測(cè)量聲波在發(fā)射后遇到障礙物反射回來的時(shí)間,根據(jù)發(fā)射和接收的時(shí)間差計(jì)算出發(fā)射點(diǎn)到障礙物的實(shí)際距離。由此可見,超聲波測(cè)距原理與雷達(dá)原理是一樣的。
測(cè)距的公式表示為:L=C*T (1)。
式(1)中L為測(cè)量的距離長(zhǎng)度;C為超聲波在空氣中的傳播速度;T為測(cè)量距離傳播的時(shí)間差(T為發(fā)射到接收時(shí)間數(shù)值的一半)。
發(fā)射部分用來對(duì)超聲波換能器進(jìn)行功率驅(qū)動(dòng),將由單片機(jī)產(chǎn)生的40KHZ脈沖信號(hào)送入發(fā)射輸入端,經(jīng)過驅(qū)動(dòng)放大達(dá)到足夠功率之后,推動(dòng)超聲波換能器產(chǎn)生超聲波。之所以使用40KHz的脈沖信號(hào)是因?yàn)閷?shí)際的需要α=αf2式中α為衰減,α為介質(zhì)常數(shù)(空氣中α=2×10-13S2/cm),f位震蕩頻率。由上面的公示可知,當(dāng)f=40KHz時(shí),α=3.2×10-4/cm,1/a=31m。如果f=30KMz,1/a=56cm。用波動(dòng)方程表示超聲波A=A0e-axcos(wt+kx),那么(1/a)表示了在這個(gè)長(zhǎng)度上,平面聲波的振幅衰減為原來e分之一。由此可見,頻率越高,衰減越厲害,傳播的距離越短。
接收部分主要由接收換能器和放大電路等環(huán)節(jié)組成。其中放大電路是一個(gè)放大倍數(shù)較高的三級(jí)運(yùn)算放大器,是將從目標(biāo)處反射回來的微弱信號(hào)進(jìn)行放大整形后送入計(jì)數(shù)控制電路部分。由于在距離較遠(yuǎn)時(shí)聲波的回波信號(hào)很小,因而轉(zhuǎn)換為電信號(hào)的幅度也較小,為此要求將信號(hào)放大60萬倍左右[7]。因?yàn)楣采浞糯筮m合用于小信號(hào)放大,所以采用三級(jí)共射放大:前兩級(jí)放大100倍,其帶寬為15MHz能充分滿足要求;第三級(jí)采用運(yùn)算放大器,帶寬為4 MHz。
部分代碼如下:
void init0int() interrupt 0
{uint timer_us = 0;
TR0=0;//關(guān)閉定時(shí)器0
timer_us = TH0*256+TL0;
if(timer_us>190)timer_us=timer_us-180;//修正測(cè)距的距離
if(timer_us<=735)
{timer_us=timer_us-96}//二次修正
length = ((unsigned long)(329)*timer_us)/2000;//計(jì)算長(zhǎng)度,是擴(kuò)大1000倍
flag = 0;
EA = 0; }//禁止所有中斷
3.6驅(qū)動(dòng)模塊的設(shè)計(jì)
驅(qū)動(dòng)程序是連接硬件設(shè)備和設(shè)備文件的紐帶,是操作系統(tǒng)內(nèi)核和硬件設(shè)備之間的接口。
采用嵌入式Linxu系統(tǒng),其驅(qū)動(dòng)程序主要有兩種加載方式:直接編譯入內(nèi)核和模塊加載[8]。其中,采用直接編譯進(jìn)內(nèi)核方式,在內(nèi)核啟動(dòng)時(shí)就已經(jīng)存在。而采用模塊化加載方式,需要時(shí)動(dòng)態(tài)的加載入內(nèi)即可,這樣使得程序按需加載,節(jié)省了內(nèi)存,也相對(duì)靈活[9]。
模塊化加載的的方式如下:
1)在Linxu內(nèi)核目錄下,執(zhí)行“make menuconfig”指令,彈出Linux內(nèi)核的配置菜單。
2)針對(duì)本課題選用的PL2303芯片的串口轉(zhuǎn)USB設(shè)備,在配置菜單中選擇響應(yīng)的驅(qū)動(dòng)模塊,具體如下:
USB support -->
USB Serial Converter Support -->
USB Serial Converter Support
USB Prolific 2303 Single Port Serial Driver
3)退出配置菜單,并執(zhí)行“make modules”指令編譯驅(qū)動(dòng)模塊。也可以只編譯內(nèi)指定目錄下的驅(qū)動(dòng)模塊,即通過執(zhí)行“make mod? ules SUBDIRS=drivers/usb/serial”指令只編譯內(nèi)核源代碼中drivers/usb/serial目錄下的驅(qū)動(dòng)模塊。
4)執(zhí)行完上述指令后,會(huì)在drivers/usb/serial目錄下生成驅(qū)動(dòng)模塊usbserial.ko和pl2303.ko。
5)將usbserial.ko和pl2303.ko下載到開發(fā)平臺(tái)上,并執(zhí)行“insmod usbserial.ko”和“insmod pl2303.ko”兩條指令。當(dāng)然由于pl2303. ko是依賴于usbserial.ko的,所以上述指令的執(zhí)行順序是不能改變的。
6)最后,通過mknod建立響應(yīng)的設(shè)備文件結(jié)點(diǎn),即執(zhí)行“mknod /dev/ttyUSB0 c 188 0”即可,而指令中的/dev/ttyUSB0代表文件節(jié)點(diǎn)的名車;“c”代表驅(qū)動(dòng)程序的類型,為字符驅(qū)動(dòng);而188和0分別代表該串口轉(zhuǎn)USB設(shè)備的主次設(shè)備號(hào)[10]。
3.7系統(tǒng)的工作流程如下
通過對(duì)SPCE061A語(yǔ)音模塊進(jìn)行語(yǔ)音命令預(yù)存儲(chǔ)操作,并將訓(xùn)練的命令存儲(chǔ)在flash中,在下次啟動(dòng)時(shí)先判定是否已經(jīng)存儲(chǔ),如果存儲(chǔ),就直接將命令進(jìn)行加載。否則對(duì)其訓(xùn)練。
在語(yǔ)音訓(xùn)練完成時(shí),再和中控進(jìn)行串口通信。但接受到一條命令時(shí),語(yǔ)音模塊就通過串口像中控平臺(tái)發(fā)送一個(gè)對(duì)應(yīng)的命令符。
中控平臺(tái)找到物體后,語(yǔ)音模塊可以通過串口中斷接受中控平臺(tái)發(fā)來的命令,并給予語(yǔ)音提示。
預(yù)先對(duì)RFID記錄標(biāo)簽信息。RFID啟動(dòng)時(shí),先開啟USB接口,等待中控平臺(tái)傳送指令,在通過指令找到相應(yīng)標(biāo)簽信息,然后開啟標(biāo)簽查找功能。
機(jī)器人在中控平臺(tái)的指令下啟動(dòng),并根據(jù)中控平臺(tái)中尋徑算法控制其移動(dòng)避障。并在每一次移動(dòng)的同時(shí)發(fā)送超聲波所反饋的信息。
超聲波先設(shè)定好其探測(cè)長(zhǎng)度(設(shè)定頻率),當(dāng)電機(jī)驅(qū)動(dòng)開啟后,超聲波通過單片機(jī)GPIO口控制也隨之開啟,隨著機(jī)器人的每一次移動(dòng),將前方信息反饋給單片機(jī)。再由單片機(jī)通過串口傳送給中控平臺(tái)。
先存儲(chǔ)語(yǔ)音和RFID標(biāo)簽信息的數(shù)據(jù)庫(kù),再創(chuàng)建語(yǔ)音控制,RFID通信,和算法的線程,機(jī)器人的調(diào)控接口作為參數(shù)設(shè)置在算法線程中,由算法來給電機(jī)驅(qū)動(dòng)提供指令。
4仿真及總結(jié)
基于RFID助盲語(yǔ)音尋物機(jī)器人完成實(shí)現(xiàn)之后,我們對(duì)它進(jìn)行了測(cè)試,當(dāng)我們?cè)谑覂?nèi)點(diǎn)燃物品產(chǎn)生煙霧時(shí),機(jī)器人自動(dòng)會(huì)通過語(yǔ)音提示來告訴盲人室內(nèi)的煙霧濃度過高,同時(shí)還可以檢測(cè)室內(nèi)的溫濕度狀況;當(dāng)通過語(yǔ)音發(fā)出尋物指令時(shí),機(jī)器人就開始移動(dòng)尋找物品,如果有障礙物遮擋時(shí)它會(huì)自動(dòng)及時(shí)進(jìn)行避障,不至于撞到周圍物體,直到機(jī)器人移動(dòng)到RFID模塊掃描到所要找的物品時(shí),它會(huì)停止移動(dòng)并且通過語(yǔ)音提示來告訴盲人物品已找到。整個(gè)測(cè)試結(jié)果基本達(dá)到了預(yù)期的效果,但是機(jī)器人移動(dòng)起來所走的路線由于受到路面等環(huán)境因素稍微有點(diǎn)偏差,以致最后離找到的物品發(fā)生位置上的偏差。
這款助盲語(yǔ)音尋物機(jī)器人所定位的服務(wù)對(duì)象是我國(guó)的廣大的盲人群體,切實(shí)的幫助盲人解決生活上尋找物體的不便,為他們帶來物聯(lián)網(wǎng)時(shí)代下高科技的生活體驗(yàn)[11]。利用RFID定位導(dǎo)航,是依賴其較高的精確度,且便于控制[12]。根據(jù)RFID技術(shù)檢測(cè)到目標(biāo)物的位置[13],利用超聲波探測(cè)技術(shù)結(jié)合貪心算法進(jìn)行局部路徑規(guī)劃[14],在保證規(guī)劃任務(wù)順利完成的同時(shí),也保證了路徑規(guī)劃的收斂性,并且具有較好的環(huán)境適應(yīng)能力[15]。在探測(cè)路面狀況方面,是利用超聲波來進(jìn)行實(shí)時(shí)探測(cè)。超聲波不僅可以設(shè)置探測(cè)定長(zhǎng),而且探測(cè)距離遠(yuǎn)。采用Zigbee無線傳輸語(yǔ)音命令控制機(jī)器人,實(shí)現(xiàn)人機(jī)互動(dòng)的趣味和便利。
隨著對(duì)移動(dòng)機(jī)器人技術(shù)的深入研究,以及機(jī)器人在工業(yè)和日常生活中的逐漸普及,采用RFID技術(shù)的移動(dòng)機(jī)器人研究的顯得越來越為人們所關(guān)注,其也必將為人們的生活、生產(chǎn)帶了極大的便利。
參考文獻(xiàn):
[1]李磊,葉濤,譚民.移動(dòng)機(jī)器人技術(shù)研究現(xiàn)狀與未來[J].機(jī)器人,2002(24):475-477.
[2]楊化書,曲新峰.工業(yè)機(jī)器人技術(shù)的應(yīng)用及發(fā)展[J].黃河水利職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004(4):42-43.
[3]郭戈,胡征峰,董江輝.移動(dòng)機(jī)器人導(dǎo)航與定位技術(shù)[J].微計(jì)算機(jī)信息,2003(8):10-12.
[4]陳博.機(jī)器人技術(shù)的發(fā)展趨勢(shì)和最新發(fā)展[J].西安教育學(xué)院學(xué)報(bào),2004(3):85-87.
[5]康一梅.嵌入式軟件設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2008:178,189-194,282-284.
[6]王??.有聲圖書市場(chǎng)分析[EB/OL].http://bbs.省略/home.php?mod=space&uid=51004&do=blog&id=379745,2010-11-02。
[7]吳濤.移動(dòng)機(jī)器人避障與路徑規(guī)劃研究[D].武漢:華中科技大學(xué),2004.
[8]李俊.嵌入式Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].北京:人民郵電出版社,2008:16-20.
[9]劉淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動(dòng)程序開發(fā)[M].北京:北京航空航天大學(xué)出版社,2006:199-204.
[10]童永清.Linux C編程實(shí)戰(zhàn)[M].北京:人民郵電出版社,2008:204-219.
[11]蔣新松.機(jī)器人學(xué)導(dǎo)論[M].沈陽(yáng):遼寧科學(xué)技術(shù)出版社,1944:511-516,543-554.
[12]陳華志,謝存禧.移動(dòng)機(jī)器人導(dǎo)航及其相關(guān)技術(shù)的研究[J].機(jī)床與液壓,2003(4):12-15.
[13]雷斌.動(dòng)態(tài)環(huán)境下多移動(dòng)機(jī)器人路勁規(guī)劃研究[M].武漢:武漢理工大學(xué),2006.
[14]劉京京.多目標(biāo)遺傳優(yōu)化及其在機(jī)器人路徑規(guī)劃中的應(yīng)用[D].南京:南京理工大學(xué),2007.
[15]劉世成.工業(yè)機(jī)器人路徑規(guī)劃算法研究[M].沈陽(yáng):沈陽(yáng)工業(yè)大學(xué),2004.