于PC104與C8051F120的水下機(jī)器人環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為了實(shí)現(xiàn)對水下機(jī)器人周圍環(huán)境的監(jiān)測,提出了一種基于PC104與C8051F120的水下機(jī)器人環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)方案,并完成系統(tǒng)的軟硬件設(shè)計(jì)。該系統(tǒng)的硬件部分主要是采集下潛深度傳感器、姿態(tài)傳感器、溫濕度傳感器的數(shù)據(jù),軟件部分采用用Visual C++6.0設(shè)計(jì)了監(jiān)控界面。該系統(tǒng)能夠?qū)崟r(shí)顯示視頻和各傳感器數(shù)據(jù)。實(shí)際測試表明,該系統(tǒng)具有穩(wěn)定性高、準(zhǔn)確性高的特點(diǎn),達(dá)到了設(shè)計(jì)要求。
水下機(jī)器人具有重大需求和巨大的市場價(jià)值,如:用于泵站流道和葉輪葉片、壩體、橋墩、排沙口、攔污柵、病險(xiǎn)水庫等的水下檢查和評估。用于市政飲用水系統(tǒng)中水管、水庫檢查;用于城市排污/排澇管道、下水道檢查;用于科學(xué)研究、教學(xué)目的的水環(huán)境、水下生物的觀測、研究和教學(xué);用于海洋考察、冰下觀察;還有,隨著當(dāng)前全球化的安全局勢的惡化,水下機(jī)器人可以廣泛應(yīng)用于安全部門,如:檢查大壩、橋墩上是否安裝爆炸物,船側(cè)、船底是否有炸彈等。這些功能得實(shí)現(xiàn)都是基于水下機(jī)器人對于周圍環(huán)境的監(jiān)測,所以采用一種高效、實(shí)時(shí)、簡單的系統(tǒng)來完成環(huán)境監(jiān)測的功能是十分必要的。在做了多種系統(tǒng)的比較后,提出并設(shè)計(jì)了基于PC104與C8051F120的水下機(jī)器人環(huán)境監(jiān)測系統(tǒng)設(shè)計(jì)方案,該系統(tǒng)能夠完成對環(huán)境的監(jiān)測功能。
1 總體設(shè)計(jì)
圖1是系統(tǒng)總體結(jié)構(gòu)圖,岸上由微型計(jì)算機(jī)組成,實(shí)時(shí)顯示視頻圖像和各傳感器數(shù)據(jù);水下由PC104、C8051F120、視頻采集卡、模擬攝像頭、溫濕度傳感器、姿態(tài)傳感器、下潛深度傳感器組成。PC104通過視頻采集卡采集模擬攝像頭的信號,C8051F120采集各傳感器的數(shù)據(jù),通過串口傳輸給PC104,PC104通過臍纜把視頻信號和各傳感器數(shù)據(jù)送給岸上的微型計(jì)算機(jī),微型計(jì)算機(jī)進(jìn)行實(shí)時(shí)地顯示。
2 硬件設(shè)計(jì)
C8051F120是完全集成的混合信號片上系統(tǒng)型MCU芯片,全速、非侵入式的在系統(tǒng)調(diào)試接口,高速、流水線結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核,真正8位500 ksps的ADC,兩個(gè)12位DAC,具有可編程數(shù)據(jù)更新方式,帶PGA和8通道模擬多路開關(guān),2周期的16 x 16乘法和累加引擎,128 KK或64KB可在系統(tǒng)編程的FLASH存儲器,8448(8K+256)字節(jié)的片內(nèi)RAM,可尋址64KB地址空間的外部數(shù)據(jù)存儲器接口,硬件實(shí)現(xiàn)的SPI、SMBus /I2C和兩個(gè)UART串行接口,5個(gè)通用的16位定時(shí)器,具有6個(gè)捕捉/比較模塊的可編程計(jì)數(shù)器/定時(shí)器陣列,片內(nèi)看門狗定時(shí)器、VDD監(jiān)視器和溫度傳感器。
在本設(shè)計(jì)中PC104采用的是Em104P—i2909,溫濕度傳感器采用的是DHT11單總線傳感器,姿態(tài)傳感器采用的是SCA100T—D01。下潛深度傳感器采用GB-2100A投入式壓力傳感器。電路使用了芯片內(nèi)部自帶的12位AD轉(zhuǎn)換器、多路模擬選擇開關(guān)和基準(zhǔn)電壓電路,使電路變得更簡潔實(shí)用,并外接22.118 4 MHz晶振,經(jīng)過9/4倍頻得到50 MHz。由于溫濕度傳感器和姿態(tài)傳感器都只需接在I/O口,下潛深度傳感器接在模擬量輸入口,故之介紹電路板的電源電路和串口電路。圖2是電源電路原理圖,圖3是串口電路原理圖。
3 軟件設(shè)計(jì)
3.1 系統(tǒng)流程圖
單片機(jī)程序軟件采用的是Keil uVision4,并使用C語言編寫程序。程序采用模塊化的設(shè)計(jì),分為AD轉(zhuǎn)換程序、定時(shí)器中斷程序、串口程序等。系統(tǒng)先對各個(gè)模塊進(jìn)行初始化,等到初始化完成后,系統(tǒng)進(jìn)入主程序,等待中斷,完成各個(gè)模塊的程序。圖4是主程序流程圖。
3.2 傳感器測量模塊
艙內(nèi)主要測量溫度、濕度和水下機(jī)器人的姿態(tài)。對于溫濕度傳感器通過單片機(jī)的I/O口模擬時(shí)鐘信號來進(jìn)行讀取數(shù)據(jù),對于姿態(tài)傳感器通過單片機(jī)的I/O口模擬SPI信號來進(jìn)行讀取數(shù)據(jù)。艙外主要測量水下機(jī)器人下潛的深度。通過C8051F120自帶的12位ADC轉(zhuǎn)換器,并選擇模擬通道1進(jìn)行下潛深度傳感器的采集,把采集到的模擬量信號轉(zhuǎn)換成數(shù)字量。AD轉(zhuǎn)換器有4種轉(zhuǎn)換啟動方式,由ADCOCN中的ADC0啟動轉(zhuǎn)換方式位(ADOCM1,ADOCM0)的狀態(tài)決定。轉(zhuǎn)換觸發(fā)源有:
1)向ADCOCN的ADOBUSY位寫1;
2)定時(shí)器3溢出(即定時(shí)的連續(xù)轉(zhuǎn)換);
3)外部ADC轉(zhuǎn)換啟動信號的上升沿,CNVSTR0;
4)定時(shí)器2溢出(即定時(shí)的連續(xù)轉(zhuǎn)換)。
本程序采用向ADCOCN的ADOBUSY位寫1作為啟動方式。當(dāng)通過向ADOBUSY寫‘1’啟動數(shù)據(jù)轉(zhuǎn)換時(shí),查詢ADOINT位以確定轉(zhuǎn)換是否結(jié)束,當(dāng)轉(zhuǎn)換結(jié)束后讀出轉(zhuǎn)換后的數(shù)據(jù)并處理。串口初始化和轉(zhuǎn)換程序如下。
3.3 定時(shí)器中斷模塊
為了使系統(tǒng)達(dá)到低功耗的要求,采用定時(shí)器中斷來使能各傳感器,并對各傳感器數(shù)據(jù)進(jìn)行采集和處理。當(dāng)100 ms定時(shí)器中斷到來時(shí),首先對賦予數(shù)據(jù)包的起始位,然后使能ADC,進(jìn)行下潛深度傳感器數(shù)據(jù)的采集;接著使能姿態(tài)傳感器,讀取姿態(tài)傳感器數(shù)據(jù),并對姿態(tài)傳感器的X軸,Y軸數(shù)據(jù)進(jìn)行正負(fù)的判別;最后使能溫濕度傳感器,進(jìn)行溫濕度傳感器數(shù)據(jù)的采集并賦予數(shù)據(jù)包結(jié)束符。圖5是定時(shí)器中斷流程圖。
定時(shí)器中斷程序如下。
3.4 串口通信模塊
串口通信模塊主要是負(fù)責(zé)和工控機(jī)進(jìn)行通信,當(dāng)PC104需要傳感器數(shù)據(jù)的時(shí)候,單片機(jī)就通過串口把數(shù)據(jù)發(fā)給PC104,PC104在把信息發(fā)送給岸上的微型計(jì)算機(jī),供用戶進(jìn)行顯示。圖6是串口中斷程序流程圖。
串口中斷程序如下。
4 視頻圖像的采集和傳輸
H264采用“回歸基本”的簡潔設(shè)計(jì),不用眾多的選項(xiàng),獲得比MPEG-4好得多的壓縮性能;H.264加強(qiáng)了對各種信道的適應(yīng)能力,采用“網(wǎng)絡(luò)友好”的結(jié)構(gòu)和語法,有利于對誤傳和丟包的處理;H.264應(yīng)用目標(biāo)范圍較寬,可以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求。
RTP是一種網(wǎng)絡(luò)傳輸協(xié)議,RTP協(xié)議不要求底層網(wǎng)絡(luò)提供可靠的數(shù)據(jù)傳輸服務(wù),它自身也不對報(bào)文丟失、重復(fù)和次序顛倒等差錯(cuò)進(jìn)行處理。應(yīng)用程序可以通過檢測RTP報(bào)文固定頭中的次序號發(fā)現(xiàn)傳輸過程中的差錯(cuò)。RTP具有較好的實(shí)時(shí)性,對于低帶寬實(shí)時(shí)性要求高的場合很實(shí)用。
圖7是視頻結(jié)構(gòu)圖。PC104和微型計(jì)算機(jī)之間采用的是C/S模式。模擬攝像頭的信號通過視頻采集卡送入到PC104中,PC104通過H264壓縮后,然后通過RTP傳輸給微型計(jì)算機(jī),微型計(jì)算機(jī)接受到視頻數(shù)據(jù)后進(jìn)行解壓顯示。
5 實(shí)驗(yàn)應(yīng)用
該系統(tǒng)用于水下機(jī)器人周圍環(huán)境的測試。在進(jìn)行測試時(shí),通過按操作員控制器上面的相應(yīng)按鈕來實(shí)現(xiàn)相應(yīng)的功能。當(dāng)點(diǎn)擊視頻采集按鈕時(shí),視頻圖像數(shù)據(jù)會顯示;當(dāng)點(diǎn)擊傳感器數(shù)據(jù)采集按鈕時(shí),傳感器數(shù)據(jù)會顯示。測試界面如圖8所示,圖中的視頻圖像是水下橋墩的墻壁。當(dāng)發(fā)現(xiàn)數(shù)據(jù)不對時(shí),需要修改相應(yīng)的電路或者程序。通過實(shí)際應(yīng)用發(fā)現(xiàn),該測試系統(tǒng)測試結(jié)果準(zhǔn)確并且穩(wěn)定可靠。
6 結(jié)論
經(jīng)過試驗(yàn)測試得知,對于水下機(jī)器人艙體和艙內(nèi)的基本環(huán)境監(jiān)測問題,如水下機(jī)器人的姿態(tài)、艙內(nèi)的溫濕度、下潛深度和水下景象,傳感器數(shù)據(jù)和視頻數(shù)據(jù)都能夠?qū)崟r(shí)地采集,PC104與微型計(jì)算機(jī)之間的通信能夠準(zhǔn)確無誤地傳輸,對于水下機(jī)器人周圍環(huán)境的監(jiān)測起到了實(shí)時(shí)監(jiān)控的效果,為將來水下機(jī)器人的自主導(dǎo)航提供了有利的條件。