歡迎您光臨本站 登入註冊首頁

單片機控制紅外編碼探測障礙物

admin @ 2014-03-25 , reply:0

概述

1探測障礙的原理   在室內自動感知障礙的設備中,常使用紅外線探測障礙物的存在與否。探測的基本原理是:在測量的範圍內,主動向探測方向發射紅外信號,如果存在障礙物,就會把發……

1 探測障礙的原理
    在室內自動感知障礙的設備中,常使用紅外線探測障礙物的存在與否。探測的基本原理是:在測量的範圍內,主動向探測方向發射紅外信號,如果存在障礙物,就會把發射的信號反射回發送端。在發送端,如果收到反射的信號,就確認障礙物的存在。
    但是在實際應用中,紅外干擾源較多;而且在有反射光的情況下,由於光線的干擾,很容易判斷失誤,出現虛警。因此,有些設備在發射信號時,改進為發送一串連續的紅外脈衝,然後接收反射的信號。如果接收到的紅外脈衝數量超過某一門限值時,就判斷障礙存在。這種方法儘管在一定程度上可以降低虛警率,但實驗表明,在較強的反射光和使用電子鎮流器方式的日光燈起輝時,仍很容易出現干擾現象。
    本文提 出 解決干擾的方案是:由單片機控制發射有一定意義的紅外編碼脈衝串,同時,單片機接收該脈衝串。如果接收到的信號和發射的信號基本一致,才判斷為有障礙物的存在。
    探測障礙的原理框圖如圖1所示。
 
圖1 探測障礙原理框圖

2 電路設計
    在實測電路中,使用台灣義隆公司的EM78P156E單片機,紅外發射管為MIE552A2,紅外接收頭為寧波雨晶微電子有限公司的NB0038,電路如圖2所示。
  
    當需要探測障礙物時,單片機U1首先讓U2紅外接收頭NB0038接通電源。在發射電路中,D2為紅外發射管,U1的P51引腳輸出編碼脈衝,通過Q2控制D2發射紅外信號。當有紅外信號進入接收頭時,U2的輸出端出現高電位,並送到U1的P67引腳。
    NB0038是用於紅外接收的一體化接收頭,採用環氧樹脂封裝,把獨立的PIN二極體同前置放大器集成在同一封裝上。其內部結構框圖如圖3所示。接收的載波中心頻率為38.0 kHz,
 
圖3 NB0038內部結構框圖

3 編碼脈衝的產生和接收
    在實際使用中,由於EM78P156E單片機的工作頻率是4 MHz,載波脈衝採用26 us,其中高電位是10 us,低電位是16 us,占空比是38.5%。在產生載波時,要檢測是否有反射信號。反射信號的檢測是單片機利用低電位的16 us時間內判斷接收引腳是否存在相應的發射信號。
    為了確定需要編碼的調製信號脈衝寬度,在1000個NB0038的接收頭中,隨意選擇30個作實驗。在約20 cm的距離內出現表面不光滑的障礙物,從單片機通過紅外發射管發射信號到NB0038接收信號,檢測出現在接收引腳為高電平時的載波脈衝量如表1所列。

表1 載波脈衝數統計
  典型值 最小值 最大值
脈衝數/個 9 13 16

    因此,選擇調製信號脈衝為24個載波脈衝寬度為:24×26 us= 624 us
    發射信號的格式如圖4所示。
 
圖4 發射信號的格式
3.1 編碼"1"脈衝產生和接收
(1)產生一個占空比為38.5%的載波脈衝
    首先,使紅外發射控制P51=1,發射紅外信號,保持時間是10 us。然後,重新使P51=0,停止發射紅外信號,保持時間是16 us,
(2)判斷是否存在反射信號"1"
    在發射到第17,19,21和23個載波脈衝時,在停止發射紅外信號的16 us內,檢測接收引腳P52。如果P52=1,則表明存在反射信號;如果P52=0,則認為無反射信號。在這4次判斷過程中,如果有3次以上判斷為存在反射信號,則確認接收到反射的"1"。
    實現的軟體流程如圖5所示。
 
圖5 發送編碼"1"流程
3.2 編碼"0"脈衝產生和接收
    當發射"0"脈衝時,停止發送任何紅外信號。
    在相當於第17,19,21和23個載波脈衝時間的時候,檢測接收引腳P52。如果P52=1,則表明存在干擾的紅外信號;如果P52=0,則表明沒有其他紅外信號的干擾。在這4次判斷過程中,如果有3次以上判斷為沒有其他紅外信號的干擾,則確認正確地接收到"0"。
    實現的軟體流程如圖6所示。
 
圖6 發送編碼"0"流程

4 抗干擾能力分析
    在應用中,發現發送和接收低於6位的編碼脈衝,仍然有一定的受干擾現象發生;但發送和接收高於10位的編碼脈衝,已經具有較強的抗干擾能力。
    實際上,在發送編碼為"0"時,是沒有紅外信號存在的。對於隨機而頻繁的干擾信號,這時很容易檢測到干擾的存在。
    發送編碼的實質是:
① 當編碼位為"1"時,檢測是否存在障礙物。這時如果有信號的反射,則表明在測量的範圍內有障礙物。如果接收不到反射的信號,說明沒有障礙物,或者是障礙物超出測量的範圍。
② 當編碼位為"0"時,檢測是否存在干擾。這時如果有干擾信號,則表明發射"1"測到的障礙物,有可能是由於有干擾信號而導致的錯誤判斷。

5 編碼的方案
    應用中 ,發送編碼的方案有3種:

  1.  發送較短的編碼串(10-16位),判斷時間約6-10 ms。在接收過程中,不能有一位的誤碼,否則認為是干擾,要等待下一次的障礙檢測。這種方案在檢測過程中,不能存在干擾。
  2.  發送大於16位的編碼串(16-32位),判斷時間約10-20 ms。對接收"0"和"1"的編碼誤碼統計,其中可以根據應用場合的需要,存在1-2位"0"的誤碼和1-3位"1"的誤碼,這樣能有效提高抗干擾能力。
  3.  發送大於32位編碼串,判斷時間>20ms。根據實際情況來分析接收的編碼,以判斷障礙的存在。

    實際應用中,採用24位編碼,分3次發出。3次發射的編碼如表2所列。

表2 發射的脈衝編碼表
發送順序 編碼 作用 發送間隔/ms
第一次,8位 10100101 防止1位的間隔干擾 -
第二次,10位 1100100011 防止2位的間隔干擾 2
第三次,6位 111000 防止3位的間隔干擾 1

    當不多於2位"0"的誤碼和2位"1"的誤碼時,確認障礙物的存在。


[admin via 研發互助社區 ] 單片機控制紅外編碼探測障礙物已經有2009次圍觀

http://cocdig.com/docs/show-post-42164.html