黃 鶯
(柳州鐵道職業(yè)技術(shù)學(xué)院 電子技術(shù)學(xué)院,廣西 柳州 545616)
微電機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、計(jì)算機(jī)技術(shù)和嵌入式技術(shù)不斷地高速發(fā)展,使得生產(chǎn)和管理進(jìn)入了自動(dòng)化、智能化和網(wǎng)絡(luò)化時(shí)代。為了解決生產(chǎn)和管理中操作控制復(fù)雜的問(wèn)題,適應(yīng)社會(huì)新管理和控制要求,提高勞動(dòng)者工作效率,嵌入式多功能小車(chē)無(wú)疑是一種高效率的工具。多功能小車(chē)由于行動(dòng)模式比較簡(jiǎn)單,被廣泛應(yīng)用于生產(chǎn)、生活和救援中。目前,小車(chē)系統(tǒng)實(shí)現(xiàn)的功能大多數(shù)只有自動(dòng)循跡、自動(dòng)避障、測(cè)距等功能,功能較單一、集成度不高;部分小車(chē)可實(shí)現(xiàn)紅外、無(wú)線和藍(lán)牙控制,但缺乏遠(yuǎn)程數(shù)據(jù)傳輸、存儲(chǔ)和控制;在小車(chē)行走路徑引導(dǎo)中采用CCD攝像頭傳感器獲取道路信息,圖像信息豐富,但由于使用單片機(jī)處理,導(dǎo)致數(shù)據(jù)處理能力不強(qiáng),圖像分析速度慢、分析結(jié)果精度較低;尤其是在無(wú)人能達(dá)的惡劣環(huán)境下工作時(shí),遠(yuǎn)程的控制幾乎不可能實(shí)現(xiàn)[1-2]。由于智能手機(jī)的便攜性和普及性,使得手機(jī)在各個(gè)領(lǐng)域中得到廣泛應(yīng)用?;诖嗽颍疚囊孕≤?chē)為控制裝置,采用STC公司的IAP15F2K61S2單片機(jī)為處理器核心,借助智能手機(jī)處理速度快、存儲(chǔ)容量大的特點(diǎn),該小車(chē)依托Android平臺(tái),結(jié)合各種傳感器和云臺(tái)攝像頭,搭配WiFi無(wú)線網(wǎng)絡(luò)傳輸模塊,設(shè)計(jì)了嵌入式多功能小車(chē),具有自動(dòng)循跡、自動(dòng)避障、手機(jī)控制、碼盤(pán)測(cè)速、無(wú)線圖像傳輸和處理等功能,使小車(chē)功能更豐富,在惡劣環(huán)境下也能實(shí)現(xiàn)數(shù)據(jù)信息的采集。
多功能小車(chē)車(chē)體采用四輪結(jié)構(gòu),在四個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)下采用差動(dòng)方式轉(zhuǎn)向,利用左右電機(jī)的速度差控制小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn);使用光電傳感器電路板實(shí)現(xiàn)小車(chē)循跡;核心板與WiFi轉(zhuǎn)串口模塊連接,實(shí)現(xiàn)小車(chē)與上位機(jī)的數(shù)據(jù)通信和云臺(tái)攝像頭的圖像傳輸;小車(chē)的前面安裝有功能板,功能板上安裝有光強(qiáng)傳感器、超聲波傳感器,實(shí)現(xiàn)光強(qiáng)測(cè)量、距離測(cè)量和障礙物的檢測(cè)。上位機(jī)控制軟件采用Android平臺(tái),在谷歌第二代NEXUS 7平板安裝監(jiān)控軟件,用于給小車(chē)發(fā)送工作命令,接收小車(chē)發(fā)送回來(lái)的圖像、數(shù)據(jù),進(jìn)行處理和存儲(chǔ),并顯示所有的數(shù)據(jù)信息。具體結(jié)構(gòu)如圖1所示。
圖1 多功能小車(chē)結(jié)構(gòu)框圖
嵌入式單片機(jī)采用STC公司生產(chǎn)的IAP15F2K61S2型號(hào)。該單片機(jī)是增強(qiáng)型8051處理器,運(yùn)行速度快,內(nèi)置61 kB FLASH程序存儲(chǔ)器和2048 B的SRAM、EEPROM,兼容MSC-51單片機(jī)系列,支持ISP/IAP功能,內(nèi)部時(shí)鐘頻率5~35 MHz,內(nèi)置8通道10位高速ADC和3通道捕獲/比較單元,各種接口齊全,方便擴(kuò)展。
循跡采用的是檢測(cè)黑線的方法,本模塊采用的是8個(gè)紅外傳感器來(lái)檢測(cè)黑線。當(dāng)紅外傳感器檢測(cè)到黑線時(shí),紅外光被吸收,安裝在小車(chē)上的紅外接收管接收不到信號(hào),紅外傳感器電路板上的LED燈滅,當(dāng)檢測(cè)不到黑線時(shí),紅外管接收到反射回來(lái)的紅外光,輸出低電平,紅外傳感器電路板上的LED燈亮;通過(guò)檢測(cè)IO口的信號(hào),根據(jù)IO口的信號(hào)來(lái)判定小車(chē)是否處于黑色線上或小車(chē)是否偏離黑線,并以此信號(hào)對(duì)小車(chē)進(jìn)行調(diào)整。具體電路如圖2所示。
圖2 循跡傳感器電路圖
傳感器的安裝:本模塊采用的是8個(gè)相同光電傳感器,第4、5個(gè)傳感器處于黑線上,黑線兩邊各安裝3個(gè)。在調(diào)整靈敏度時(shí),黑線兩邊的紅外傳感器的靈敏度要稍高,第4、5個(gè)傳感器的靈敏度要稍低,這樣有利于循跡過(guò)程中當(dāng)小車(chē)偏離黑線時(shí)能進(jìn)行更好的調(diào)整。
多功能小車(chē)采用四個(gè)步進(jìn)電機(jī)作為小車(chē)驅(qū)動(dòng)電路,電機(jī)采用的是H型橋路驅(qū)動(dòng)電路,采用UL2003、L298芯片驅(qū)動(dòng)步進(jìn)電機(jī)工作;采用PWM技術(shù)實(shí)現(xiàn)對(duì)小車(chē)的調(diào)速,利用左右電機(jī)的速度差實(shí)現(xiàn)轉(zhuǎn)向。電路實(shí)現(xiàn)簡(jiǎn)單,控制方便,調(diào)速范圍大。由于電機(jī)驅(qū)動(dòng)模塊的驅(qū)動(dòng)芯片需要較大電流,因此,電機(jī)驅(qū)動(dòng)模塊與單片機(jī)連接的引腳需設(shè)置成推挽輸出,PCA模塊0-2全部設(shè)置為8位PWM模式。
圖3中的T1是超聲波的發(fā)射探頭,由TRIG控制是否發(fā)送指令,T2是超聲波的接收探頭,接收到的脈沖數(shù)據(jù)送入單片機(jī)的外部中斷入口進(jìn)行計(jì)數(shù),同時(shí)設(shè)置內(nèi)部定時(shí)器/計(jì)數(shù)器T0處于定時(shí)模式,用于計(jì)算從發(fā)射數(shù)據(jù)到接收數(shù)據(jù)的時(shí)間差,再根據(jù)公式2S=VT求得距離S=VT/2=172T,其中V是聲波速度,取344 m/s,T 為時(shí)間差[3]。
圖3 碼盤(pán)測(cè)速測(cè)距電路原理圖
多功能小車(chē)采用的是光電碼盤(pán)式轉(zhuǎn)速傳感器,通過(guò)測(cè)量脈沖的方式求得距離和速度。具體的電路如圖3所示。使用外部的中斷0對(duì)光電碼盤(pán)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),計(jì)數(shù)變量為MP,然后通過(guò)MP的個(gè)數(shù)計(jì)算出小車(chē)行進(jìn)的距離,進(jìn)而可以求得速度。經(jīng)測(cè)知,小車(chē)的車(chē)輪直徑為6.5 cm,車(chē)輪走一圈的周長(zhǎng)為20.41 cm,使用示波器測(cè)得小車(chē)走一圈,MP數(shù)為152個(gè),因此小車(chē)每行走1 cm,MP數(shù)量約為7。程序中可以根據(jù)MP個(gè)數(shù)來(lái)計(jì)算小車(chē)所走過(guò)的距離,把距離除以時(shí)間就可計(jì)算速度。
光強(qiáng)傳感器模塊采用的是光強(qiáng)傳感器BH1750FVI,具有良好的光譜靈敏度、16 bit串行數(shù)據(jù)輸出。光強(qiáng)傳感器BH1750FVI是數(shù)字照度傳感器,其與單片機(jī)的連接只需3個(gè)I/O口,使用I2C通訊協(xié)議實(shí)現(xiàn)與單片機(jī)的數(shù)據(jù)通訊[4]。具體連接電路如圖4所示。
WiFi模塊設(shè)置成服務(wù)器模式,協(xié)議通信設(shè)置為T(mén)CP,端口統(tǒng)一設(shè)置為60000,IP地址可以根據(jù)需要設(shè)定。WiFi模塊通過(guò)串口方式與單片機(jī)連接,WiFi模塊的WiFi_RX接到單片機(jī)的TXD,WiFi_TX接到單片機(jī)的RXD。云臺(tái)攝像頭配置和小車(chē)上的WiFi模塊一一對(duì)應(yīng),開(kāi)啟攝像頭和小車(chē)WiFi,攝像頭自動(dòng)連接WiFi。WiFi模塊具體電路連接如圖5所示。
多功能小車(chē)底層驅(qū)動(dòng)程序主要由小車(chē)循跡程序、超聲波測(cè)距、光強(qiáng)檢測(cè)、碼盤(pán)測(cè)距程序等組成。
主程序的工作流程具體是:系統(tǒng)通電后,單片機(jī)進(jìn)行初始化,云臺(tái)攝像頭進(jìn)行自檢,與WiFi模塊進(jìn)行網(wǎng)絡(luò)連接,連接成功后就進(jìn)入等待接收上位機(jī)發(fā)送過(guò)來(lái)的字符,再根據(jù)指令作出相應(yīng)的操作,處理結(jié)束后,就把相應(yīng)的數(shù)據(jù)信息通過(guò)串口轉(zhuǎn)WiFi模塊發(fā)送到上位機(jī)進(jìn)行處理和存儲(chǔ),以備查用,如圖6所示。
圖4 光強(qiáng)傳感器電路圖
圖5 WiFi模塊電路圖
字符代表小車(chē)功能操作具體如表1所示。
圖6 下位機(jī)工作流程圖
表1 上位機(jī)與單片機(jī)通信字符控制表
3.1.1 循跡程序設(shè)計(jì)
循跡主要是依據(jù)循跡傳感器模塊采集的IO信息來(lái)確定的。在小車(chē)運(yùn)行過(guò)程,單片機(jī)對(duì)小車(chē)各種狀態(tài)進(jìn)行分析,不同狀態(tài)下給予不同程序的調(diào)整。小車(chē)在行走的過(guò)程中,經(jīng)分析共有10種狀態(tài),具體的狀態(tài)如表2所示。
表2 小車(chē)循跡控制表
根據(jù)上述10種狀態(tài),利用左右電機(jī)的速度差實(shí)現(xiàn)小車(chē)動(dòng)作。具體循跡流程如圖7所示。
3.1.2 超聲波測(cè)距程序
程序中使用外部中斷2和定時(shí)器/計(jì)數(shù)器T0配合共同完成超聲波測(cè)距功能。當(dāng)小車(chē)接收到平板電腦發(fā)送的測(cè)距指令時(shí),單片機(jī)P35置成高電平,同時(shí)啟動(dòng)定時(shí)器/計(jì)數(shù)器T0,超聲波發(fā)射出去,超聲波在傳播過(guò)程中碰到障礙物就立即返回來(lái),當(dāng)接收頭接收到數(shù)據(jù),即外部中斷2發(fā)生中斷,關(guān)閉定時(shí)器T0和關(guān)閉外部中斷,接著進(jìn)行中斷處理,計(jì)算定時(shí)器T0的數(shù)值參數(shù)為wavaVal,然后調(diào)用距離計(jì)算函數(shù)并進(jìn)行處理,向上位機(jī)傳送數(shù)據(jù),定時(shí)器時(shí)間差wavaVal=TH0*256+TL0,距離計(jì)算流程圖如圖8所示。
圖7 小車(chē)循跡流程圖
圖8 超聲波測(cè)距流程圖
3.1.3 光強(qiáng)檢測(cè)程序
光強(qiáng)檢測(cè)采用的是BH1750芯片,與單片機(jī)的3個(gè)IO口連接就可以正常工作(SCL、SDA和ADDR分別接單片機(jī)的P14、P15和P42)。BH1750與單片機(jī)的通信使用是標(biāo)準(zhǔn)的I2C通訊協(xié)議,單片機(jī)通過(guò)I2C接口向BH1750發(fā)送各種控制命令并讀取測(cè)量數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換處理,向上位機(jī)傳送數(shù)據(jù)。
3.1.4 碼盤(pán)測(cè)距程序
使用外部的中斷0對(duì)光電碼盤(pán)的脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù)MP,然后通過(guò)MP的個(gè)數(shù)計(jì)算出小車(chē)行進(jìn)的距離,進(jìn)而可以求得速度。外部中斷0的具體實(shí)現(xiàn)如下:void exint0()interrupt 0{MP++;}。然后再根據(jù)MP的數(shù)值計(jì)算小車(chē)前進(jìn)距離,比如要使小車(chē)前進(jìn)30 cm就停止,根據(jù)前文公式可以求得MP為223。實(shí)現(xiàn)碼盤(pán)測(cè)距偽代碼如下:
Begin
等待中斷,并對(duì)MP進(jìn)行計(jì)數(shù)
If G_Flag并且MP>223
則0→G_Flag并且調(diào)用STOP函數(shù)
End
其中G_Flag是小車(chē)前進(jìn)的標(biāo)志位,STOP代表的是讓小車(chē)停止。
Android操作系統(tǒng)是一個(gè)自由、開(kāi)源的系統(tǒng),具有資源豐富的特點(diǎn),廣泛應(yīng)用于便攜設(shè)備中,具有廣闊的應(yīng)用前景[5]。上位機(jī)是在Eclipse開(kāi)發(fā)軟件下結(jié)合SDK進(jìn)行開(kāi)發(fā)的。上位機(jī)主要有WiFi連接功能、按鈕控制、數(shù)據(jù)顯示等功能。上位機(jī)通過(guò)WiFi連接功能與小車(chē)上的WiFi模塊進(jìn)行連接,通過(guò)WiFi網(wǎng)絡(luò)向下位機(jī)發(fā)送相應(yīng)的控制字符命令,下位機(jī)接收到此控制字符命令后進(jìn)行驗(yàn)證并返回一個(gè)數(shù)值,上位機(jī)根據(jù)數(shù)值判定連接是否成功。連接成功后點(diǎn)擊上位機(jī)監(jiān)控軟件中的按鈕,通過(guò)WiFi網(wǎng)絡(luò)向下位機(jī)發(fā)送相應(yīng)的控制命令,下位機(jī)接收到控制命令并解析后會(huì)執(zhí)行相應(yīng)的操作,實(shí)現(xiàn)對(duì)小車(chē)的控制,在進(jìn)行控制的同時(shí)向上位機(jī)發(fā)送數(shù)據(jù)信息和狀態(tài)信息,上位機(jī)對(duì)數(shù)據(jù)信息和狀態(tài)信息進(jìn)行處理并顯示、保存[6-7]。具體工作流程如圖9所示。
圖9 上位機(jī)工作流程圖
對(duì)于上位機(jī)通過(guò)WiFi網(wǎng)絡(luò)向下位機(jī)發(fā)送“photo”命令,下位機(jī)接收到此命令后通過(guò)WiFi模塊向云臺(tái)攝像頭發(fā)送拍照命令,云臺(tái)攝像頭拍照成功后會(huì)通過(guò)WiFi模塊向上位機(jī)無(wú)線發(fā)送圖片,并完成圖片顏色識(shí)別同時(shí)把處理結(jié)果向下位機(jī)發(fā)送,以實(shí)現(xiàn)對(duì)小車(chē)的控制。顏色識(shí)別過(guò)程可以描述為:先獲取圖片得到圖片的寬和高,判定圖片上各點(diǎn)的像素值,接著對(duì)像素進(jìn)行分離得到RGB的值,再對(duì)RGB進(jìn)行判定,如果R像素比較多,就判斷為紅色,如果G像素比較多,就判斷為綠色,否則就判斷為藍(lán)色。
圖10 平板控制軟件運(yùn)行圖
測(cè)試前先使用下載線把下位機(jī)程序下載至下位機(jī)單片機(jī)中,把小車(chē)放到指定的賽道上。通過(guò)安裝在平板電腦上的軟件,點(diǎn)擊相應(yīng)的按鈕,可以發(fā)送相應(yīng)的命令實(shí)現(xiàn)小車(chē)的前進(jìn)、倒退、左轉(zhuǎn)、右轉(zhuǎn)、停止、高速、中速、低速、拍照、顏色識(shí)別和測(cè)距等功能。平板電腦軟件運(yùn)行效果圖如圖10所示,小車(chē)實(shí)物圖如圖11所示。
圖11 小車(chē)實(shí)物運(yùn)行圖
點(diǎn)擊上位機(jī)的“循跡”,“前進(jìn)”,“倒退”,“左轉(zhuǎn)”,“右轉(zhuǎn)”,“停車(chē)”,選擇“速度檔”中“高速”、“中速”、“低速”,“倒車(chē)”,“拍照”,“顏色識(shí)別”等按鈕100次,觀察小車(chē)運(yùn)動(dòng)控制的情況,計(jì)算出準(zhǔn)確率。點(diǎn)擊“攝像頭”按鈕一次,攝像頭會(huì)轉(zhuǎn)動(dòng)90°,再按一次,攝像頭會(huì)旋轉(zhuǎn)到初始角度,重復(fù)這樣的過(guò)程100次,觀察攝像頭旋轉(zhuǎn)的準(zhǔn)確率。
具體功能測(cè)試結(jié)果如表3所示。
表3 測(cè)試情況表
測(cè)試結(jié)果表明,點(diǎn)擊上位機(jī)的“循跡”,“前進(jìn)”,“倒退”,“左轉(zhuǎn)”,“右轉(zhuǎn)”,“停車(chē)”,選擇“速度檔”中“高速”、“中速”、“低速”,“倒車(chē)”,“拍照”,“顏色識(shí)別”和“攝像頭”等按鈕,系統(tǒng)都能正確執(zhí)行相應(yīng)的功能,準(zhǔn)確率都在95%以上。經(jīng)過(guò)分析,由于平板電腦與小車(chē)上的WiFi模塊網(wǎng)絡(luò)連接偶爾會(huì)斷線,導(dǎo)致無(wú)法控制小車(chē)運(yùn)動(dòng);顏色識(shí)別準(zhǔn)確率則是與攝像頭拍攝圖片的距離有一定關(guān)系,距離過(guò)近,拍攝的圖片易出現(xiàn)色差,導(dǎo)致顏色識(shí)別準(zhǔn)確率降低??傊?,本文設(shè)計(jì)的運(yùn)用Android系統(tǒng)控制的多功能小車(chē)系統(tǒng),具有良好的操控性和實(shí)用性,小車(chē)工作穩(wěn)定,界面直觀友好,實(shí)時(shí)性較好。
[1]葛廣軍,楊帆.基于單片機(jī)的智能小車(chē)控制系統(tǒng)設(shè)計(jì)[J].河南城建學(xué)院學(xué)報(bào),2011(3):47-50.
[2]孫青.基于嵌入式控制系統(tǒng)的自動(dòng)導(dǎo)引小車(chē)設(shè)計(jì)與實(shí)現(xiàn)[D].南京理工大學(xué),2010.
[3]侯益坤,侯聰玲,劉益標(biāo).基于ARM嵌入式的智能小車(chē)的控制系統(tǒng)設(shè)計(jì)[J].機(jī)電工程技術(shù),2010(1):21-23,105.
[4]王建,毛騰飛,陳英革.基于BH1750芯片的測(cè)光系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].常熟理工學(xué)院學(xué)報(bào),2011,25(2):117-120.
[5]徐誠(chéng).零點(diǎn)起飛學(xué)Android開(kāi)發(fā)[M].北京:清華大學(xué)出版社,2013:2-3.
[6]朱丹峰,葛主冉,林曉雷.基于Android平臺(tái)的無(wú)線遙控智能小車(chē)[J].電子器件,2013,36(3):408-412
[7]林長(zhǎng)青,成海量.基于Android系統(tǒng)和藍(lán)牙通信的手機(jī)遙控車(chē)設(shè)計(jì)[J].山西電子技術(shù),2012(3):56-58.