《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM單片機(jī)的裝載機(jī)障礙物監(jiān)測(cè)預(yù)警系統(tǒng)設(shè)計(jì)
基于ARM單片機(jī)的裝載機(jī)障礙物監(jiān)測(cè)預(yù)警系統(tǒng)設(shè)計(jì)
摘要: 所設(shè)計(jì)的對(duì)裝載機(jī)障礙物距離的監(jiān)測(cè)預(yù)警系統(tǒng),,是以Mini ARM作為處理器針對(duì)裝載機(jī)的工作場(chǎng)地及需要監(jiān)測(cè)的距離信號(hào)來考慮的,,通過試驗(yàn)驗(yàn)證,,該系統(tǒng)已完成了所需的功能要求,,最大測(cè)量值為9.99m,誤差≤0.01m,。安裝非常方便,,便于使用,。但該系統(tǒng)還有一個(gè)不足,,即用超聲波傳感器檢測(cè)車輛前方路面信息時(shí),,如果是凸起的障礙物能有效的檢測(cè)到,但當(dāng)前方為凹坑時(shí)便檢測(cè)不出來,,所以有待于進(jìn)一步研究,。
關(guān)鍵詞: ARM 障礙物探測(cè)
Abstract:
Key words :

1 引言

  隨著信息化、智能化,、網(wǎng)絡(luò)化的發(fā)展,,嵌入式系統(tǒng)技術(shù)獲得廣闊的發(fā)展空間,工業(yè)控制領(lǐng)域也進(jìn)行著一場(chǎng)巨大的變革,,以32位高端處理器為平臺(tái)的實(shí)時(shí)嵌入式軟硬件技術(shù)將應(yīng)用在工業(yè)控制的各個(gè)角落,。嵌入控制器因其體積小、可靠性高,、功能強(qiáng),、靈活方便等許多優(yōu)點(diǎn),其應(yīng)用已深入到工業(yè)、農(nóng)業(yè),、教育,、國(guó)防、科研以及日常生活等各個(gè)領(lǐng)域,對(duì)各行各業(yè)的技術(shù)改造,、產(chǎn)品更新?lián)Q代,、加速自動(dòng)化化 進(jìn)程、提高生產(chǎn)率等方面起到了極其重要的推動(dòng)作用[1],。

  現(xiàn)今,,國(guó)內(nèi)外雖有部分車輛安裝了超聲波倒車防撞報(bào)警裝置、基于DSP的智能車輛防撞系統(tǒng),、圖像處理技術(shù)的汽車追尾預(yù)警系統(tǒng)等,,但是用于像裝載機(jī)這種廣泛用于城建、礦山,、公路等工程的工程機(jī)械的障礙物監(jiān)測(cè)預(yù)警系統(tǒng)卻沒有發(fā)現(xiàn),。所以建立一個(gè)對(duì)障礙物進(jìn)行監(jiān)測(cè)預(yù)警的系統(tǒng),提前為駕駛員提供危險(xiǎn)信號(hào),,讓駕駛員能及時(shí)采用有效措施是減少事故的有效方法[2~5],。

2 系統(tǒng)硬件設(shè)計(jì)

  本系統(tǒng)以裝載機(jī)為研究對(duì)象,以實(shí)現(xiàn)信號(hào)采集,、調(diào)理,、傳送、顯示和預(yù)警為目的,。把系統(tǒng)劃分為障礙物距離信號(hào)采集模塊,、LCD顯示模塊、聲光報(bào)警模塊和處理器模塊這四個(gè)部分,。其中以處理器為核心,,通過總線和接口電路把信號(hào)輸入和輸出相連。系統(tǒng)做成框圖如圖1所示,。

                         圖1 系統(tǒng)組成框圖

  該Mini ARM模塊集成有C2290微控制器最小系統(tǒng),,USB主機(jī)控制器、10M以太網(wǎng)通信控制器以及NAND FLASH 電子盤,,其硬件資源主要有:2M NOR FLASH,、16K SRAM、2M/8M Bytes PSRAM,、10M 以太網(wǎng)接口,、2 路USB-Host 控制器,、集成電子盤、2 路CAN控制器以及RTC等[6],。

  LCD顯示模塊使用內(nèi)置T6963C的液晶顯示模塊,,該模塊上已經(jīng)實(shí)現(xiàn)了T6963C與行、列驅(qū)動(dòng)器及顯示緩沖區(qū)RAM 的接口,。

2.1 障礙物距離檢測(cè)電路的設(shè)計(jì)

  對(duì)于障礙物的檢測(cè)方法有超聲波測(cè)距法,、圖像處理法、激光測(cè)距法等,。但是由于超聲波傳感器具有信息處理簡(jiǎn)單,、價(jià)格低廉、制作方便等優(yōu)點(diǎn),。本系統(tǒng)采用超聲波測(cè)距法來對(duì)障礙物的距離進(jìn)行檢測(cè),。

(1)超聲波測(cè)距的原理

  超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時(shí)刻的同時(shí)開始計(jì)時(shí),,超聲波在空氣中傳播,,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計(jì)時(shí),。超聲波在空氣中的傳播速度為c,,根據(jù)計(jì)時(shí)器記錄的時(shí)間t,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離s[7],,即s=ct/2 (1),。

(2)超聲波測(cè)距電路

  在本系統(tǒng)中超聲波測(cè)距電路是由MICROCHIP的PIC16C57設(shè)計(jì)而成的,選用的超聲波傳感器是T/R40-16壓電陶瓷傳感器,。在工作中,,主控器PIC16C57發(fā)出信號(hào)使發(fā)射端的超聲波換能器發(fā)出加以電壓激勵(lì),其受激勵(lì)后以脈沖的形式發(fā)射超聲波,,當(dāng)超聲波接收器接收到回波信號(hào)時(shí),,傳回到主控器中,從脈沖信號(hào)開始發(fā)射時(shí)主控器中的定時(shí)器便開始計(jì)時(shí),,接收到回波信號(hào)時(shí)停止計(jì)時(shí),。所側(cè)出的時(shí)間間隔再乘以聲速就得到了兩倍的距離值。從而計(jì)算出障礙物到發(fā)射點(diǎn)的距離,。其電路圖如圖2所示,。

                          圖2 超聲波測(cè)距電路圖
 距離值通過PIC16C57的10腳進(jìn)行串行輸出,經(jīng)MAX232芯片后與ARM的串口相連,。芯片MAX232是為RS232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,,它完成TTL電平和RS232電平的轉(zhuǎn)換[8]。

2.2 聲光報(bào)警電路設(shè)計(jì)

  本系統(tǒng)要求根據(jù)影響裝載機(jī)穩(wěn)定性的障礙物距離的臨界值對(duì)危險(xiǎn)狀況進(jìn)行三級(jí)報(bào)警,。當(dāng)處于低危險(xiǎn)狀況時(shí),,只有指示燈綠燈被點(diǎn)亮,,提醒駕駛者注意;當(dāng)危險(xiǎn)級(jí)別增高時(shí),,指示燈黃燈點(diǎn)亮,,同時(shí)伴隨有舒緩的蜂鳴聲,提醒駕駛者采取措施,;當(dāng)達(dá)到最高危險(xiǎn)級(jí)別時(shí),,指示燈紅燈被點(diǎn)亮,,同時(shí)蜂鳴聲由舒緩轉(zhuǎn)為急促,,提醒駕駛者趕緊制動(dòng)。
設(shè)計(jì)中,,分別采用了LPC2290的P2.20(GPIOA4)驅(qū)動(dòng)綠色LED,,P2.21(GPIOA5)驅(qū)動(dòng)黃色LED, P2.22(GPIOA6)驅(qū)動(dòng)紅色LED,P2.23(GPIOA7)驅(qū)動(dòng)蜂鳴器,。所設(shè)計(jì)的報(bào)警電路如圖3所示,。
 

                         圖3 報(bào)警電路圖

3 系統(tǒng)軟件設(shè)計(jì)

  常用的嵌入式操作系統(tǒng)有VxWorks、Windows CE,、嵌入式Linux和μC/OS-Ⅱ等,,由于μC/OS-Ⅱ嵌入式系統(tǒng)具有公開源代碼,具有實(shí)時(shí)多任務(wù)內(nèi)核來進(jìn)行多任務(wù)調(diào)度等優(yōu)點(diǎn)[9],,所以本系統(tǒng)選用μC/OS-Ⅱ嵌入式操作系統(tǒng),。

  由于采用模塊化編程,所以μC/OS-II下系統(tǒng)任務(wù)的劃分也是基于不同的功能模塊,,每一個(gè)模塊被分解成一個(gè)或者多個(gè)任務(wù),,每個(gè)任務(wù)被安排一個(gè)優(yōu)先級(jí)。這樣,,一旦這些任務(wù)被建立起來,,它們之間的調(diào)度情況就完全由μC/OS-II來完成。結(jié)合本系統(tǒng)的設(shè)計(jì)需求,,程序中創(chuàng)建串口通信任務(wù),、報(bào)警任務(wù)、LCD顯示任務(wù),。其軟件流程框圖如圖4所示,。

                       圖4 軟件流程框圖

  上電后,首先進(jìn)行硬件的初始化,,然后對(duì)μC/OS-II操作系統(tǒng)進(jìn)行初始化,,建立任務(wù),進(jìn)行多任務(wù)調(diào)度,。μC /OS - II的任務(wù)調(diào)度是搶占式的,,所以在設(shè)置任務(wù)優(yōu)先級(jí)的時(shí)候應(yīng)該盡量考慮任務(wù)對(duì)實(shí)時(shí)性的要求,。即使兩個(gè)任務(wù)的重要性是相同的,它們也必須有優(yōu)先級(jí)上的差異,,這也就意味著高優(yōu)先級(jí)的任務(wù)在處理完成后必須進(jìn)入等待或掛起狀態(tài),,否則低優(yōu)先級(jí)的任務(wù)永遠(yuǎn)也不可能執(zhí)行。本系統(tǒng)中設(shè)置串口通信任務(wù)的優(yōu)先級(jí)高于液晶顯示任務(wù),,液晶顯示任務(wù)的優(yōu)先級(jí)又高于報(bào)警任務(wù),。

  1.串口通信任務(wù)完成超聲波測(cè)距部分與ARM處理器之間的數(shù)據(jù)傳輸。串口通信部分主要包括兩部分內(nèi)容:用戶接口函數(shù)和任務(wù)函數(shù),。串口共有5個(gè)用戶接口函數(shù),,分別為deopen()、dclose(),、dread(),、dwrite()和diocontrol()。

  超聲波測(cè)距裝置和LPC2290進(jìn)行通信的部分程序代碼如下:
diocontrol(Uart0_Handles,UART0_SET_MODE, (void *)&Mode0),; // 設(shè)置UART 模式
diocontrol(Uart0_Handles,UART0_SET_TIMEROUT,(void *)5),; // 設(shè)置接收超時(shí)因子, 參數(shù) =0 則關(guān)閉超時(shí)
diocontrol(Uart0_Handles, UART0_CLR_FIFO, (void *)0); // 清空接收軟FIFO
while (1)
{Rece_Count=dread(Uart0_Handles, UART_Rece
_Buff,1),; //讀取超聲波發(fā)送過來的第一個(gè)起始字節(jié),,放入緩沖區(qū)
if((Rece_Count>0)&&(UART_Rece_Buff[0]== ’@’)) //如果讀取成功且第一個(gè)字節(jié)為‘@’
{dread(Uart0_Handles,&UART_Rece_Buff[1],3); //接收后三位字節(jié),,分別為百位數(shù),、十位數(shù)、個(gè)位數(shù)
for(i=1,;i<4,;i++)
UART_Rece_Buff[i]=UART_Rece_Buff[i]+48; //將十六進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼值
for(i=0,;i<3,;i++)
sbuff[i]=UART_Rece_Buff[i+1]; //接收的數(shù)據(jù)緩存到數(shù)組中,,供LCD顯示部分調(diào)用
}
}
 2.液晶顯示任務(wù)主要是把ARM處理器中超聲波傳過來的數(shù)據(jù)顯示到液晶屏上,,以方便駕駛員能實(shí)時(shí)看到障礙物的距離值。

  顯示文字的部分程序代碼如下:
{ uint32 addr,;
uint8 i,;
for (i=0;i<24,;i++)
/* 找出目標(biāo)地址 */
{ addr = (y+i)*(GUI_LCM_XMAX>>3) + (x>>3),;
LCD_WriteTCommand3(LCD_ADR_POS, addr&0xFF, addr>>8); // 置地址指針
/* 輸出數(shù)據(jù) */
LCD_WriteTCommand2(LCD_INC_WR, *Buff);
Buff++,;
LCD_WriteTCommand2(LCD_INC_WR, *Buff),;
Buff++;
LCD_WriteTCommand2(LCD_INC_WR,*Buff),;
Buff++,;
LCD_WriteTCommand2(LCD_NOC_WR,*Buff);
Buff++,; }
LCD_WriteTCommand3(LCD_ADR_POS, 0x00, 0x00),;
// 重置地址指針
}

  3.報(bào)警任務(wù)主要是通過ARM處理器把障礙物的距離值與不同報(bào)警條件下的臨界值進(jìn)行比較,并完成相應(yīng)的報(bào)警顯示,。

4 調(diào)試及結(jié)果

  系統(tǒng)調(diào)試用到了ADS集成開發(fā)環(huán)境及EasyJTAG-H仿真器,。當(dāng)把程序編寫好并把EasyJTAG-H仿真器的JTAG接口與MiniARM產(chǎn)品相連后,便可用調(diào)試軟件把程序下載到ARM板上,,進(jìn)行試驗(yàn),。

  超聲波每檢測(cè)一次串口輸出一組數(shù)據(jù),,數(shù)據(jù)傳輸?shù)牟ㄌ芈蕿?600,,包括一個(gè)起始位和三位數(shù)據(jù)位。結(jié)果表明:微處理器對(duì)不符合所設(shè)定格式的數(shù)據(jù)幀沒有響應(yīng),,不接收所發(fā)送過來的數(shù)據(jù),,只對(duì)滿足要求的數(shù)據(jù)才進(jìn)行相應(yīng)的處理。

  超聲波檢測(cè)的數(shù)據(jù)經(jīng)調(diào)試結(jié)果表明,,能及時(shí)的在LCD液晶顯示屏上準(zhǔn)確的顯示出來,,通訊穩(wěn)定性高。同時(shí)對(duì)各種危險(xiǎn)情況能準(zhǔn)確的顯示其相應(yīng)的報(bào)警現(xiàn)象,。

  本系統(tǒng)的精度分析,,我們把超聲波傳感器的測(cè)量值與實(shí)際值進(jìn)行比較繪制了如下表1。


                  表1 障礙物距離測(cè)量值與實(shí)際值對(duì)照表

當(dāng)障礙物距離大于10m時(shí),,發(fā)現(xiàn)超聲波傳感器測(cè)量數(shù)據(jù)發(fā)生嚴(yán)重失真,,經(jīng)分析和實(shí)驗(yàn)可得本系統(tǒng)對(duì)障礙物距離檢測(cè)的最大值為9.99m,同時(shí)由表1數(shù)據(jù)經(jīng)分析計(jì)算可知測(cè)量誤差≤0.01m,。

5 結(jié)論

  所設(shè)計(jì)的對(duì)裝載機(jī)障礙物距離的監(jiān)測(cè)預(yù)警系統(tǒng),,是以Mini ARM作為處理器針對(duì)裝載機(jī)的工作場(chǎng)地及需要監(jiān)測(cè)的距離信號(hào)來考慮的,通過試驗(yàn)驗(yàn)證,,該系統(tǒng)已完成了所需的功能要求,,最大測(cè)量值為9.99m,誤差≤0.01m,。安裝非常方便,,便于使用。但該系統(tǒng)還有一個(gè)不足,,即用超聲波傳感器檢測(cè)車輛前方路面信息時(shí),,如果是凸起的障礙物能有效的檢測(cè)到,,但當(dāng)前方為凹坑時(shí)便檢測(cè)不出來,所以有待于進(jìn)一步研究,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。