第一篇:紅外測距總結報告
紅外測距電路總結報告
學 院:機電工程學院班 級:學 號:姓 名:劉豐源
11電氣1班 1100103139 摘要
本次實驗是設計一個紅外測距電路,它由軟件和硬件兩部分組成。軟件部分包括信號產生、AD接收、數據處理、液晶顯示;硬件部分包括發射模塊和接收模塊。此電路可以測較短的距離,精度在0~5mm之間。
關鍵詞
STC8051單片機;紅外測距;
一、方案設計
1、發射模塊
采用用單片機產生一個1khz的信號經紅外發射管發射這樣設計既簡單又方便,電路也更加簡單。
2、接收模塊 放大電路:
采用5v電源供電,利用lm358芯片進行單電源放大。由于放大倍數在20到40倍之間,經過一級放大即可。
濾波電路:
由于經過放大以后的信號還有很多雜波,而我們需要的是接收到的1khz的信號,一般的濾波器很難解決干擾問題,所以直接選用有源二階帶通濾波器。
峰值檢波電路:
根據要求的精度為5mm,最簡單的峰值檢波電路即可勝任,出于節約成本的考慮,決定不用帶運放的高精度檢波電路,假如還要進一步提升測量精度,就需要選用更好的峰值檢波電路。
AD轉換電路:
AD轉換選用0809芯片,它是并行傳輸的,占用的IO口太多,但是軟件編寫非常簡單。
單片機控制電路:
AD轉換的數字信號傳入單片機,通過軟件自動求出所測的距離,顯示正確的距離。
二、電路分析
1.發射模塊
由8051的定時器產生一個1khz的方波,用一個三極管驅動,將信號加載到紅外發射管上。2.接收模塊電路設計
因為紅外接收管接收到的信號只有一百毫伏左右,而且還有很多干擾,需要先放大再帶通濾波,單片機只能接受數字信號,所以還需要通過峰值檢波輸出一個直流電壓,經TLC1543芯片轉換成數字信號輸入單片機進行處理。
考慮到題目測量范圍和接收到的信號大小,選取放大倍數為40倍左右,倍數太大回出現波形失真,使測量的最短距離變小,倍數太小信號強度不夠,則能測量的最遠距離會變小,放大倍數B=R4/R3=40; 關于有源二階帶通濾波器的設計:
令C=C3=C4,則req=R5//R6=(R5*R6)/(R5+R6)品質因數Q等于中心頻率除以帶寬
即Q=fc/BW=1/2*R7/req
由上邊的公式,取中心頻率f=1khz,增益A=2,品質因數Q=10,則令C=C3=C4=50nf,可以得到電阻值為R5=16K,R6=160,R7=64K;關于峰值檢波電路的設計:
考慮到電容值越大檢波效果越好,但是放電速度越慢,經過測試,選取了20uf的電容和100k的電阻以及1n4148構成最簡單的峰值檢波電路。
電路圖及元件參數如下:
3.單片機控制模塊
接收模塊處理好的數據傳入單片機,程序自動計算出此時的距離,再在1602液晶上顯示。
三、軟件分析
軟件由4部分組成,信號產生模塊、AD接收模塊、數據處理模塊和LCD顯示模塊,利用單片機的定時器0可以持續不斷的產生1khz信號并輸出,由于輸出信號是穩定的,而接收管接收到的信號隨著障礙物距離的變遠而變小,所以我們可以通過檢測信號的強弱來判斷距離,我采用提前把正確的距離和信號強弱的關系先測量好,建成一張信號距離表,然后利用exelc將得到的數據匯成一條曲線,得到一個函數關系式,在程序中插入這個關系式,單片機得到一個信號,程序就會算出相應的距離,這樣既簡單又方便。處理好的數據直接傳送到1602液晶屏顯示即可。
四、調試和測試
調試中所用到的儀器設備主要有:有示波器,函數信號發生儀,穩壓電源。數字萬用表。調試過程如下:
首先調試發射部分,直接用示波器測量單片機輸出的信號,為1khz;
再調試接收部分的放大模塊:先用函數發生儀模擬一個接收信號,把放大電路和濾波電路斷開,測量358芯片的1腳,輸入信號為1khz,100mv的正弦信號,用示波器測量1腳為1khz,2.8v的正弦信號,放大倍數為28倍,由于有信號衰減,放大部分正常;
接下來調試帶通濾波:把放大電路和濾波電路連好,輸入函數發生儀產生的模擬信號,測量358芯片的7腳,得到一個穩定的正弦波,通過調節輸入信號的頻率,測得帶通濾波器的中心頻率為1.8khz,帶通濾波器不正常。由于電阻自身的誤差比較大,電容也有誤差,再加上計算出來的電阻值沒有剛好合適的,取得是相近的電阻元件,所以照成了較大的誤差,我再在C3,C4上分別并聯了一個相同容量的電容,再次測量中心頻率變為880hz,截止頻率400hz,這次濾波器可以滿足要求了。然后接著測量整個電路的輸出端,示波器打到直流檔,調節信號強弱,發現檢波電路工作良好。
最后我修改程序將輸出信號改為880hz,接入紅外發射和接收管,直接進行最終的整合調試,解決一些電路連接上的問題后,將電壓再液晶上顯示出來,用米尺畫出一張標準距離圖,測量出電壓和距離之間的關系并做成表,最終填入程序中,再驗證距離和長度的關系是否正確。整個紅外測距電路到此結束。
五、心得總結
該電路設計簡單,精度為5mm,但還可以進一步提高。雖然測量距離和超聲波比起來短很多,但是精度高,適合短距離的高精度測量。但是當測量距離從近到遠變化時,距離測量變化的靈敏度比較低。需要一個更好的峰值檢波電路才能提高響應速度。
六、參考文獻和資料
1.郭天祥編著《新概念51單片機c語言教程—入門、提高、開發、擴展全攻略》 2.TLC1543編程實例——百度文庫 3.《運算放大器電路設計手冊》
4.《有源帶通濾波器的設計和計算》 5.《單片機C語言程序設計》
第二篇:超聲波測距總結報告
電子技術實驗課程設計
超聲波測距系統
總結報告
自03 胡效赫 2010012351
自03 胡效赫 2010012351
一、課題內容及分析
首先根據課程所給的幾個題目進行選擇,由于自己最近在做電子 設計大賽的平臺設計,希望對超聲波測距在定位方面應用有更詳盡的了解,所以選擇課題三——超聲波測距作為課程設計,內容如下:
對課題進行分析:實驗提供超聲波傳感器T40-16和R40-16,利用面包板和小規模芯片搭接電路,實現距離的測量及顯示。大致思路即驅動發射端發出超聲波,接收端收到返回的脈沖進行處理與計算得到測量距離并通過數碼管和蜂鳴器顯示。
二、方案比較與選擇
由于超聲波測距方案原理基本相同,只要能夠檢測出發射到接收的時間,并通過相應計算就可以得到所測距離。所以問題大致分為驅自03 胡效赫 2010012351 動發射端、接收端檢測、間隔時間計算與計算結果顯示四部分。具體的方案設計如下:
閘門脈沖源產生基準寬度為T 的閘門脈沖,該脈沖一方面控制計數電路的計數啟動和并產生計數器清零脈沖,使計數器從零開始對標準脈沖源輸出的時鐘脈沖(頻率為17KHz)計數。同時開啟控制門,超聲波振蕩器輸出的40kHz脈沖信號通過控制門,放大后送至超聲波換能器,由發射探頭轉換成聲波發射出去。該超聲波經過一定的傳播時間,達到目標并反射回來,被超聲波換能器的接收探頭接收變成電信號,經放大、濾波、電壓比較和電平轉換后,還原成方波。圖中的脈沖前沿檢測電路檢測出第一個脈沖的前沿,輸出控制信號關閉計數器,使計數器停止計數。則計數器的計數值反映了超聲波從發射到接收所經歷的時間(或距離)。
自03 胡效赫 2010012351
三、模塊化設計及參數估算
1、閘門控制模塊 ? 設計思路
555振蕩電路產生頻率為2Hz的脈沖,作為閘門脈沖源。RC微分電路將輸出的2Hz脈沖進行微分運算產生脈沖信號,作為計數啟動和計數清零的信號,分別控制D觸發器的置高端和74LS90的清零端。? 參數設計:
555振蕩電路T =(R1+2*R2)*C*ln2。其中R1取4.7kΩ,R2接入10kΩ滑動變阻器,最后實測7.51kΩ,C取47uF。RC微分電路R為1kΩ,C為4.7nF
2、超聲波發生模塊 ? 設計思路
555振蕩電路產生頻率為40kHz的脈沖,作為驅動超聲波發射端 自03 胡效赫 2010012351 的基礎脈沖信號。
同時由2Hz閘門信號作為門控(高電平有效)。
再利用電壓比較器,對555脈沖信號進行整形,而后輸出。? 參數設計
555振蕩電路T =(R1+2*R2)*C*ln2。其中R1取2kΩ,R2接入 1kΩ滑動變阻器,最后實測440Ω,C取10nF。
3、超聲波接收模塊 ? 設計思路
電壓放大電路,利用LF347放大超聲接收端信號
電壓比較電路,利用電阻分壓設計閾值電壓VREF,當沒有接收到信
號時V-大于V+,輸出為負,當接收到信號時V-小于V+,輸出為正。穩壓電路,電壓比較器輸出端接1kΩ電阻,反接5V穩壓管接地,自03 胡效赫 2010012351 使沒有信號即輸出為負時,輸出-0.7V電平,有信號即輸出為正時,輸出5V電平。? 參數設計
放大電路電阻值為1kΩ和750kΩ,放大倍數為750。
電壓比較器VREF由100kΩ電阻和100kΩ的滑動變阻器分壓決定,最終滑動變阻器阻值取為5.68kΩ,VREF取值大致為-0.6V。
4、計數控制模塊 ? 設計思路
計數控制模塊由,計數啟動和計數停止控制組成。由D觸發器進行實現 當計數開始時閘門信號的微分電路給出低電平脈沖將Q置高,計數信號有效。而接收到回波后,接收信號由低變自03 胡效赫 2010012351 高,CLK產生上升沿將Q置低,計數信號關閉。
5、計數模塊 ? 設計思路
555振蕩電路產生17kHz的脈沖型號用來計數 三個74LS90級聯,采用十進制接法計數,分別對應米、分米、厘米。
計數信號控制源由計數控制模塊的D觸發器的Q信號給出 計數信號清零源由閘門控制信號的微分模塊經由緩沖器后給出高脈沖清零。? 參數設計
555振蕩電路T =(R1+2*R2)*C*ln2。其中R1取5.1kΩ,R2接入
47kΩ滑動變阻器,最后實測18.98kΩ,C取2.2nF。
6、報警模塊 ? 設計思路
令A[4],B[4],C[4]分別對應米、分米、厘米,同時當模塊計數時報 警應該無效,設D觸發器輸出信號為Q,則 邏輯函數Alarm = A1’A0’B3’B2’B1’Q 自03 胡效赫 2010012351 利用與非、或非及非邏輯運算搭接電路
四、實驗電路總圖
1、電路原理圖
自03 胡效赫 2010012351
2、時序圖
3、面包板布局
五、實驗結果與實驗中出現的問題分析
1、實驗結果 結果:基本要求及提高要求全部完成。其中四個地方用到了滑動變阻器分別是三個555的脈沖源(產生2Hz、17kHz和40kHz的方波)和接收模塊的電壓比較器閾值電壓VREF的確定。調試結果的各自03 胡效赫 2010012351 阻值已在模塊設計中標明。
2、實驗中出現的問題及分析
A.微分電路輸出信號的檢查
開始分模塊調試時,不會測量微分電路輸出的脈沖信號,然后不能確定問題出現在下級還是本級。經過老師的提示,只要把示波器顯示的波形調到最粗最亮,調成相應掃描速度,可以看到面板上有亮點間歇顯示。從而驗證微分電路輸出信號無誤,并且幅值正確。
B.數碼管顯示不穩定
數碼管顯示不穩定,多數原因是由于數字電路與模擬電路相互干擾,計數器中混有雜波和高頻信號。用示波器測量計數電路的74LS90的信號,發現有17kHz的雜波。首先將模擬地和數字地分開將555振蕩電路的地直接由引線接到學習機上,而后數碼管開始顯示,但仍不太穩定。再在VCC和GND之間跨接0.1uF的電容濾掉雜波。之后數碼管穩定顯示。
C.信號輸出不正確
D觸發器輸出電平Q在未接受到信號時應該是低電平,但始終是高電平。開始時不確定前級各模塊的正確與否,有些停滯,之后確定前級信號正確,D觸發器接線正確,而輸出信號不對,則一定芯片的問題。換了芯片之后,輸出正常。
六、收獲、體會和建議
1、收獲與體會 本次實驗充分體會電路模塊設計與調試的過程,對于設計電路和自03 胡效赫 2010012351 測試電路的能力有了更一步的提升。首先,搭接與調試電路時,應該本著自頂向下逐步求精的原則,在理解原理并確定原理正確之后,先對于面包板的布局進行規劃,把相應的芯片測試后,插到相應部分,保證后面搭接時方便并且思路清晰。然后,按分模塊逐級搭接調試的原則測試電路,保證了每一級的輸入信號都是正確的后,如果輸出不正確,去檢查接線,接線正確后檢查芯片是否正常工作。最后,發現信號干擾問題,嘗試用濾波,分離數字地和模擬地,以及簡單的搭接電容的方法,解決干擾。依照上述方法調試電路,保持一顆正常心態,可以高效并且正確的完成問題。
2、建議 由于整個實驗過程中只需要,測量接收波形的上升沿,所以對于模擬電路中波形整形處理部分現對簡單。現提出以下課程建議: 建議老師將提高要求的測量距離改為高于3m,這樣同學們利用波形放大然后與閾值電壓比較的方法就不能實現了,因為相應的雜波干擾也會隨之放大,沖過閾值電壓,影響結果。所以此時同學應該使用選頻電路選出40kHz的波形,控制后面的計數模塊,對于模擬電路部分會有更高的鍛煉。
附工作日志
8月21日 自03 胡效赫 2010012351 經過周末的預習,查找了關于超聲傳感器的原理知識和超聲測距的相關內容。分析了超聲測距的實現方案,并將電路分為各個模塊實現,每個模塊進行了相應仿真(但有些仿真結果不理想,待硬件實測)。
本日上午首先針對超聲測距系統方案中的幾個模塊與同學進行了討論,包括方波頻率的選擇與實現,閘門信號的實現與清零,以及面包板的布局合理性。
而后首先搭接了三個555方波發生器。上午只搭接測試出了,40kHz的方波 本日下午再次對于板子的規劃進行思考,并大致劃分了區域,把相應用到的芯片放到了相應的位置。然后搭接測試出了2Hz方波。分別測試兩種方波的頻率均很穩定,效果不錯。而后開始搭接超聲發射模塊的實現,將兩種頻率的方波進行邏輯運算,經由LS00,信號傳至運算放大器LF347,將信號與2.5V電壓值進行比較,得到最終的大約0.5s驅動一次超聲波發射器的效果。
但是遇到的問題是,當2Hz和40kHz的方波共同輸入到LS00中時,對2Hz的方波進行測量,示波器顯示的頻率很難穩定下來,發現混有雜波,可能是40kHz的雜波,也可能是交流成分。進行了各種測試,重新退到上一步驟,檢查芯片的問題,等等。但是問題并沒解決,后來懷疑是示波器測量可能不是很準。直接測量最終運放發射的信號,發現效果正常。問題解決。
而后進行超聲接收信號接收處理的部分電路的搭接,以及觸發器電路的搭接。之后搭出17kHz的脈沖源后,下課。
晚上又把數碼顯示和蜂鳴器部分搭出來了,明天分模塊測試。8月22日
由于昨天已經把各個模塊全部搭好,今天開始分模塊測試和模塊的聯調測試。今天下來調試結果:
超聲波發射模塊調試通過正常運行,并且接收模塊可以接收到相應信號,在示波器上顯示相應波形。40kHz的555脈沖源正常,2Hz的555脈沖源正常,經過LS00運算后,到LF347正常驅動T40-16,而相應的R40-16接收到反射的超聲波信號后,產生較大幅值的波形(較之原有的干擾信號),可以通過放大,與閾值電壓比較后得到相應的脈沖信號(沒有接收到信號時,信號為0,大于閾值電壓,最終輸出低電平信號-0.7V;接收到信號后,信號為負,小于閾值電壓,最終由于穩壓管穩壓后輸出高電平5V)。即,當調整出較好的閾值電壓后接收到超聲信號后會產生相應的上升沿信號。
對于閘門信號的作用部分,由74LS74雙上升沿D觸發器來完成。對2Hz脈沖信號進行微分運算,上升沿時給出正脈沖,經由40106COMS施密特反相器可以得到一直是高電平閘門信號時給出低電平和一直是低電平閘門信號時給出高電平的信號。將LS74的置高端接前者信號,給出低電平脈沖時D觸發器被置高,而只有CLK信號給出上升沿后才能將D觸發器置低。
!!但是輸入信號都測出來了,輸出不對哎有木有 所以明天LS74是重點哎有木有!!
而后是計數器顯示模塊,需要有17kHz的555脈沖源,搞定。與經由閘門信號控制鎖存后的Q輸出端進行邏輯運算(LS00),結果輸出到LS90中進行計數并在數碼管中顯示。同時從計數的信號端中做組合邏輯實現低于0.2m時報警。同時計數器的清零信號由閘門信號微分運算后COMS施密特反相器整形后得到。
開始沒有產生555脈沖信號的時候,將CLK和CLR用學習機模擬,效果很好,接上555后發現數碼管不穩,有木有!!
模擬地和數字有干擾有木有!!想辦法有木有!!自03 胡效赫 2010012351 數電電子技術實驗考核的時候就有這個問題木有解決,明天上午一定要解決有木有!!
8月23日
今天來到實驗室后重新整理了思路,調整了心態。理清了各個模塊的作用關系,由最初級開始逐級測試,當確定D觸發器的輸入信號均正常,并且接線正常,而輸出不正常,所以果斷換了74LS74。突然之間信號變好了,然后數碼管開始工作了,無比的開心。直接找助教驗收基本實驗,助教發現信號并不是很穩定,然后感覺計數器和數碼管顯示部分仍有雜波干擾,在VCC和GND之間接入0.1uF,信號穩定了,基本實驗調試通過。好開心,有木有。而后通過改變閾值電壓,使閾值電壓接近0V,將距離較遠處的返回信號,也作為有效信號。然后通過了提高要求。搞定!
第三篇:紅外測距儀總結報告
紅外測距儀總結報告
一、摘要:
本次設計任務是設計一個紅外測距電路,它由硬件和軟件兩部分組成,硬件部分包括發射模塊和接收模塊,先由stc8051單片機產生一個1khz的信號,經紅外發射管發射,碰到障礙物后返回,接收管接收到信號通過放大、濾波、峰值檢波、AD轉換后傳回單片機,單片機即可通過判斷接收電壓的大小來確定距離。軟件部分包括信號產生、AD接收、數據處理、液晶顯示。
關鍵詞: STC8051 紅外測距
二、電路總體方案:
1、發射部分: 用單片機產生一個1khz的信號經紅外發射管發射。因為用單片機產生信號方便控制盒調節,電路也更加簡單。
2、接收部分: 采用±5v雙電源供電,利用LM358芯片進行雙電源放大,因放大倍數在20至40倍之間即可,所以只需經過一級放大。
濾波部分: 由于經過放大以后的信號還有很多雜波,而我們需要的是接收到的1khz的信號,一般的濾波器很難解決干擾問題,所以直接選用有源二階帶通濾波器。
峰值檢波部分:
根據要求的精度為5mm,最簡單的峰值檢波電路即可勝任,出于節約成本的考慮,決定不用帶運放的高精度檢波電路,假如還要進一步提升測量精度,就需要選用更好的峰值檢波電路。
AD轉換部分: 由于所買單片機缺少AD轉換模塊,另購帶PCF8591芯片的AD轉換模塊外接到單片機與電路板之間來實現AD轉換。簡化了軟件編程中繁雜的IO口編程。
單片機控制部分: AD轉換的數字信號傳入單片機,通過軟件采用查表發進行處理,得出正確的距離。
三、硬件設計:
1.紅外發射管電路設計:
1.1 紅外發射管原理
由STC8051的定時器產生一個1KHZ的方波,用
一個三極管驅動,將信號傳送到紅外發射管上。
1.2 紅外發射管外圍電路和元件參數設計
注:通過R3的調節改變測量范圍。
1.3紅外接收管電路設計:
紅外接收管接受的信號只有一百毫伏左右,而
且還有很多干擾,需要先放大在帶通濾波,單片機只能接受信號,所以
還需要通過峰值檢波輸出一個直流電壓,經pcf8591 芯片轉換成數字信
號輸入單片機進行處理。
2.放大器的設計
2.1放大器的工作原理:
考慮到題目測量范圍和接收到的信號大小,選取放大倍數為30倍左右,倍數太大會出現波形失真,是測量范圍的最短距離變小,倍數太小信號強度不夠,則能測量的最遠距離會變小,放大倍數:
B=Rf / Rb =30;
3.關于有源二階帶通濾波器的設計:
則令C = C3 = C4,則 Rep = R5 / / R6 =(R5 * R6)/(R5 + R6)
品質因素Q等于中心頻率除以帶寬
即 Q = fc / BW = 1/2*(R7 / Rep)?
由上邊的公式,去中心頻率 f = 1 khz ,增資A = 5,品質因素 Q=8,則令C = C3 = C4 =104,可以得到電阻值為R5=2.5 K,R6=100,R7=25K;
4.關于峰值檢波電路的設計:
考慮到電容值越大檢波效果越好,但是放電速度越慢,經過測試,選取了200uf的電容和100k的電阻以及LM358構成最簡單的峰值檢波電路。
5.電路圖如下:
注: 1.R4的電阻大小可改變測量精度;
2.整流電路中R8的大小決定最后測量結果精度;
3.前兩個放大器用TL082,后一個選用LM358;
四. 程序設計:
軟件由4個部分組成,信號產生模塊,AD接受模塊,數據處理模塊和LCD顯示模塊,利用單片機的定時器0可以持續不斷的產生1khz信號并輸出,由于輸出信號時穩定的,而接收管接收的信號時隨著障礙物距離的變遠而變小,所以我們可以通過檢測信號的強弱來判斷距離,但是接收的信號并不是完全是線性變化,采用一個或者幾個固定的公式并不能得出準確的距離,所以采用提前把正確的距離和信號強弱的關系先測量好,建成一張信號距離表,這樣測量時就可以查表快速得出距離。精度也方便控制。處理好的數據直接傳送到1502液晶屏顯示即可。
流程圖如下:
五.測試方案:
本次測試所用到的儀器設備主要有: 示波器,函數信號發生儀,穩壓電源,數字萬用表。
調試過程如下:
調試發射部分,直接用示波器測量單片機輸出的信號,為1khz;
調試接收部分的放大模塊:先用函數信號發生儀模擬一個接收信號,把放大電路和濾波電路斷開,測量TL082芯片的1腳,輸入信號為1khz,1 00mv的正弦信號,用示波器測量1腳為1khz,2.9v的正弦信號,放大倍
數為29倍,由于有信號的衰減,放大部分正常;
調試帶通濾波: 把放大電路和濾波電路連好,輸入函數發生儀產生的 模擬信號,測量TL082芯片的7腳,得到一個穩定的正弦波,通過調節輸入信號的頻率,測得帶通濾波器的中心頻率為1khz,滿足要求。然后接著測量整個電路的輸出端,示波器打到直流檔,調節信號強弱,發現檢波電路工作良好。
最后,接入紅外發射管與接收管,直接進行最終整調試,適當改變了R3與R4的電阻大小,再將電壓在液晶上顯示出來,用米尺畫出一張標準的距離圖,測量距離圖上每隔5mm所對應的電壓記錄并做成表格最終填入程序中,并多次驗證距離和長度的關系是否正確。并做多次修正。
六、參考文獻和資料:
1.《新概念51單片機c語言教程——入門、提高、開發、擴展全攻略》
——郭天祥著
2.《運算放大器電路設計手冊》
3.《電路與模擬電子技術》
—— 殷祥瑞
4.pcf8591中文資料——百度文庫
5.pcf8591編程實例——百度文庫
第四篇:超聲波測距模塊總結報告
超聲波測距模塊總結報告
董升亮
Senscomp公司的超聲波測距系統包括兩個部分,分別是測距模塊(6500)和靜電換能器(600)。前者驅動后者,后者負責發送和接收超聲波,之后用戶便可根據超聲波發收這一時間間隔計算出與目標物之間的距離。經過多次戶外實驗與優化,目前可實現一片單片機對4個超聲波測距模塊的控制,并且每個的探測距離都可達到10米左右。
一、超聲波測距原理
超聲波是指頻率高于20khz的機械波。為了以超聲波作為檢測手段,必須產生超聲波和接收超聲波。完成這種功能的裝置就是超聲波換能器或超聲波探頭。超聲波換能器有發送器和接收器,600系列換能器同時具有發送和接收聲波的作用。超聲波換能器是利用壓電效應的原理將電能和超聲波相互轉化,即在發射超聲波的時候,將電能轉換,發射超聲波;而在收到回波的時候,則將超聲振動轉換成電信號。
超聲波測距原理也很簡單,就是測出超聲波從發射到遇到障礙物返回所經歷的時間,再乘以超聲波的速度就可以得到二倍的聲源與障礙物之間的距離。
即:D=C*T/2。其中,D為600換能器到障礙物之間的距離;C為超聲波此時在空氣中的傳播速度;T為超聲波的發收時間。在空氣中,聲波的傳播速度一般受溫濕度的影響,在沒有溫濕度傳感器或對測量精度要求不高的情況下,一般取340m/s。在以上幾次實驗中,程序中采用C=340m/s。
二、6500驅動模塊
我們所采用的這款6500驅動模塊,手冊上說可以實現6英寸-35英尺(0.152m-10.668m)的準確測距,但由于所采用的600模塊是自發自收的,在發送過程中從障礙物返回的信號就無法捕獲。另外,超聲波換能器有一定的慣性,發送結束后還留有一定的余振,這種余振經換能器同樣產生電壓信號,擾亂了系統捕捉返回信號的工作。因此,在余振未消失以前,還不能啟動系統進行回波接收(要等待2.38ms),以上兩個原因造成了超聲傳感器具有測量一定的測量范圍。模塊最近可以到測量37cm。當然實際實驗過程中會在這些標準上稍有浮動。該模塊操作簡單,但要特別注意的是它的噪聲干擾問題。該模塊共有九個引腳如圖1。
圖1
1引腳:接地
2引腳:BLNK,多返回模式時,用于控制(拉低)ECHO信號 3引腳:不用
4引腳:INIT,拉高啟動模塊發射超聲波。拉低時,ECHO也同時拉低 5引腳:不用
6引腳:OSC,6500模塊內部時鐘,一般用不到
7引腳:ECHO,當超聲波遇到障礙物返回至換能器時,該引腳拉高。該引腳需要一個470KΩ的電阻上拉至Vcc 8引腳:BINH,可使能探測37cm以內的障礙物 9引腳:Vcc,4.5V-6.8V供電,我們采用5V供電 說明:在這9個引腳當中,我們只用到其中的4個(Vcc,GND,INIT,ECHO)。另外一點值得強調的是,由于BLNK和BINH受內部噪聲影響比較大,因此這兩個引腳直接連接到GND。并且6500模塊與單片機控制板之間的連接排線長度盡量要短。
6500驅動模塊具有兩種工作方式。第一種工作方式測量的是換能器到其前方第一個障礙物之間的距離。第二種工作方式可探測多個障礙物的回波,其區分能力為間隔3英寸以上的障礙物。
圖2 單返回模式,控制時序實例
三、600系列換能器
此超聲波換能器是集發送與接收一體的一種換能器。傳感器里面有一個圓形的薄片,薄片的材料是塑料,在其正面涂了一層金屬薄膜,在其背面有一個鋁制的后板。薄片和后板構成了一個電容器,當給薄片加上頻率為49.4khz、電壓為300vacpk-pk左右的方波電壓時,薄片以同樣的頻率震動,從而產生頻率為49.4khz的超聲波。當接收回波時,6500內有一個調諧電路,使得只有頻率接近49.4khz的信號才能被接收,而其它頻率的信號則被過濾。
換能器在將電信號轉化成聲波的過程中,所產生的聲波并不是理想中的矩形,而是一個類似花瓣一樣形狀,發送超聲波的波束角大約為30度,見圖3。在實際應用中,該波束應為一個立體的圓錐形,這也導致兩個問題:
1)隨著探測距離的延長,探測障礙物方位的準確性下降。即無法對障礙物進行準確定位。
2)探測距離越遠,能量擴散越嚴重,在障礙物不理想的情況下,返回信號減弱,以至于在標準探測范圍內,返回脈沖也達不到600換能器的判斷閾值。
圖3
四、單片機控制模塊
系統采用PIC30F4011控制芯片,同時集成串口和CAN總線兩種數據傳輸方式。該電路共配置了8個6500模塊接口,目前已經用到了其中的4個。為了減小相互之間的干擾,每個模塊之間都采用了LC濾波電路。同時在每個模塊的電源到地之間增加了一個1uF的旁路電容和一個470uF的鋁電解電容,前者用來消除內部干擾對BINH引腳的影響,后者起儲能作用,這兩者視情況可選擇使用。其電路連接如圖4,PCB布線如圖5。兩者中的電感用相近引腳間距的電容做了代替。
圖4
圖5
五、程序控制模塊
由于該單片機控制多個超聲波測距模塊,因此在編程過程中要首先考慮到各個模塊之間的相互影響,最基本的要求是某一個模塊突然的硬件錯誤不會對其他模塊的正常運行造成影響。最初考慮到在uCOS-II上進行編程,但實施過程中發現要借用互斥信號量與多個郵箱,任務多且復雜,既費時又費力,并且會對超聲波往返時間的計時產生影響,同時也使對程序的閱讀更加困難。最終放棄了這個方案。
新方案采用多重循環來進行模塊控制調度,為避免陷入死循環,程序中采用了goto語句。在此程序中,我們定義了一個整型變量Con6500,讓他分別等于1、2、3、4來分別控制這四個模塊,同時還用到了3個定時器:
Timer1:用于設置6500模塊探測周期。
Timer2:用于記錄各個模塊超聲波往返時間。Timer3:用于防止某一模塊超時。
程序中對各個模塊的返回引腳均采用查詢的方式,整個程序的關鍵代碼如下: int main(void){ //CAN、UART、Timer、IO初始化 Con6500=1;//從第一個模塊開始探測 //……
while(1){ StartChk:while(Timer1Lock==1)//有一個6500模塊開啟
{
while(Con6500==1)//開啟的是第一個模塊(6500-1)
{
TMR3=0;//為第一個模塊計時,以避免其超時
while(1)//查詢6500-1返回引腳
{
if(PORTDbits.RD1==1)//ECHO1有返回
{
ECHO1();//完成距離計算及數據發送
LATBbits.LATB8=0;//關閉6500-1超聲波換能器
Con6500=2;//下一次6500-2模塊發送
Timer1Lock=0;//標記所有模塊都關閉
goto StartChk;//等待下一個模塊開啟
}
else if(TMR3>=WaitTMR3)//如果6500-1超時
{
LATBbits.LATB8=0;//關閉6500-1超聲波換能器
Con6500=2;//下一次6500-2模塊發送
Timer1Lock=0;//標記所有模塊都關閉
goto StartChk;//等待下一個模塊開啟
}
}
}
while(Con6500==2)//若開啟的是第二個模塊(6500-2)
{
TMR3=0;//為6500-2計時,避免其超時
while(1)//查詢6500-2返回引腳
{
if(PORTEbits.RE1==1)//ECHO2有返回
{
ECHO2();//完成距離計算及數據發送
LATBbits.LATB7=0;//關閉6500-2超聲波換能器
Con6500=3;//下一次6500-3模塊發送
Timer1Lock=0;//標記所有模塊都關閉
goto StartChk;//等待下一個模塊開啟
}
else if(TMR3>=WaitTMR3)//若6500-2超時
{
LATBbits.LATB7=0;//關閉6500-2超聲波換能器
Con6500=3;//下一次6500-3模塊發送
Timer1Lock=0;//標記所有模塊都關閉
goto StartChk;//等待下一個模塊開啟
}
}
} //……其它模塊
} } } /*定時器1中斷服務程序*/
void __attribute__((__interrupt__))_T1Interrupt(void){ IFS0bits.T1IF=0;//清除T1中斷標志
if(Con6500==1){
TMR2=0;//超聲波收發時間計時開始
LATBbits.LATB8=1;//開啟6500-1超聲波換能器
Timer1Lock=1;//標記有模塊開啟
} if(Con6500==2)//判斷SonarLock=1是為了防止6500-1不工作
{
TMR2=0;//超聲波收發時間計時開始
LATBbits.LATB7=1;//開啟6500-2超聲波換能器
Timer1Lock=1;//標記有模塊開啟
} //…… }
六、關于噪聲干擾
噪聲問題是必須要注意和解決的問題,否則它將影響測距模塊的可靠性和準確性,有時甚至會直接導致其無法正常工作。對超聲波測距模塊產生的干擾主要包括內部干擾和外部干擾。
1、內部干擾
內部干擾主要來自超聲波發送時產生的發送脈沖,6500模塊的內部電路見圖6。
圖6 其中TL851是一個數字12步測距控制集成電路。內部有一個420khz的陶瓷晶振,6500系列超聲波距離模塊開始工作時,在發送的前16個周期,陶瓷晶振被8.5分頻,形成49.4khz的超聲波信號,然后通過三極管Q1和變壓器T1輸送至超聲波傳感器。發送之后陶瓷晶振被4.5分頻,以供單片機定時用。在發生脈沖的過
程中,通過示波器觀察,會發現在GND和BINH上會有多個尖峰脈沖,其峰峰值有時甚至達到4V,這將導致在發送超聲波時,ECHO引腳被突然拉高,從而導致根本無法探測障礙物。其原因為BINH引腳對噪音過于敏感,官方提供的解決辦法為將BINH直接連接到地,同時在Vcc與GND之間加1uF的旁路電容。但在實際應用過程中我們發現,即便單個模塊調試成功,當將多個6500模塊集成在一個板子上同時工作時,仍會有干擾發生從而影響某一個或幾個模塊的正常工作。經過反復調試,我們發現有必要在6500模塊排線的末端加一大容量的鋁電解電容來穩定供電電壓濾除噪音。
TL852是專門為接收超聲波而設計的芯片。因為返回的超聲波信號比較微弱,需要進行放大才能被單片機接收,TL852主要提供了放大電路,當TL852接收到4個脈沖信號時,就通過REC給TL851發送高電平表明超聲波已經接收。由此可見,當返回超聲波信號太弱或者達不到4個返回脈沖時,將不能實現準確測距。
2、外部干擾
外部比較復雜,包括外部事物產生與該超聲波類似的噪音;不理想的障礙物對測距的干擾;以及個測距模塊之間的相互干擾。
雖然多數超聲波傳感器的工作頻率為50Khz左右,遠遠高于人類能夠聽到的頻率。但是周圍環境也會產生類似頻率的噪音。比如,電機在轉動過程會產生一定的高頻,輪子在比較硬的地面上的摩擦所產生的高頻噪音,機器人本身的抖動。這些都將對換能器接收信號造成影響。但這一類噪音出現的幾率比較低,有時可以忽略不計。
由于換能器發送的超聲波并不是理想的圓柱型,而是開口呈30度的圓錐形。這將導致測距模塊對障礙物的方位判斷產生誤差。即超聲波可能會先碰到周圍的物體產生返回信號,從而無法準確探測換能器與目標物體之間的距離。這個問題也是在后期實驗過程中驗證了的。在這種情況下,可采用復合返回模式,但這樣又極易造成內部干擾。因此在對測距精度要求不高的情況下,我們還是采用單返回模式。
最后一個要注意的是多模塊之間的交叉問題,由于我們所采用的超聲波測距模塊發射的超聲波幾乎完全相同,這就導致相互間產生干擾的幾率增大,其解決方案為增大模塊之間的朝向角,也可以在換能器前加一遮擋物,前提是不影響超聲波的發送。
七、實驗過程及測試結果分析
實驗過程完全沒有預想中的那么順利,看似操作簡單的測距模塊,至今為止已經耗費了一個多月的時間。總結起來,大部分時間都耗費在了消除噪音上。
第一階段主要是對第一套測距模塊的測試和相關電路的設計修改。但在一開始就遇到了麻煩,主要原因歸結于自己的粗心大意和不重視官方材料。以至于在電路設計時忽略了ECHO引腳的上拉電阻,導致無法測得返回信號。由于英語水平并不很高和當時的習慣問題,并未意識到從官方網站上查找相關資料,而是僅僅局限于對電路電氣規則的檢查。
第二階段主要集中于對噪聲的發現與處理。在相關電路及元件問題解決后,模塊仍無法正常工作,具體表現就是ECHO引腳的突然拉高從而導致無法進行正常測量,這也是該超聲波測距模塊最常見的問題。其原因是BINH引腳對噪聲過于敏感,而噪聲有來源于模塊內部,即在每次發送超聲波時產生的脈沖會對供電電壓造成影響。經過示波器觀察會發現在BINH引腳和GND引腳上有峰峰值(大約為3.6V)較大脈沖信號。我們采取的主要解決辦法是將BINH和BLNK引腳在排線末端直接
連接到地,并在Vcc與GND之間加一個1uF的濾波電容。后期實驗我們發現,即使這樣也會存在問題。
第三階段主要是對多個6500模塊控制程序的編寫。由于PIC30F4011控制芯片只有兩個外部中斷引腳,于是我們選擇用查詢的方式監測返回信號。經過多次嘗試,最終放棄了在操作系統上進行編程。新方案的詳細介紹見第五部分:程序控制模塊。
第四階段為對4個模塊的組裝與調試。由于有先前積累的經驗與教訓,這一階段耗時相對較少,主要問題仍然是噪音處理,將個別模塊1uF的濾波電容換成了330uF,主要用來穩定改模塊的供電電壓。實驗時,我們將四個6500模塊和單片機控制電路安裝在小車上,其中兩側各一個,前方兩個。為了減震,將4個模塊和控制電路固定在了一塊泡沫磚上。實驗場地前期選在一樓東門口的丁字路口上,后期沿路行進至環校公路。各個6500模塊的探測周期設定為1次/秒。
靜態測量時,地點選在東門口,測試數據穩定,效果較好。后來選取一10米左右障礙物(樓梯),該障礙物形狀很不規范。對4個6500模塊進行分別測量測試數據基本穩定,但偶爾會無返回信號,測試數據見附件。在移動測量時,發現有時測得的數據并不反映真實情況,特別是在周圍環境比較復雜的情況下,會無法探測到與前方障礙物之間的真正距離。但總體來講,效果還可以。另外還有一點需要注意,那就是車子不能移動太快,否則將會影響超聲波返回信號的接收。
實驗至此還存在的不足是,其中的一個模塊仍不很穩定,其內部干擾有時會影響正常。一般斷電重啟就能解決。
八、心得體會
經過這么長時間的鍛煉,得到的最重要的一點體會是:不能急功近利,遇事不能浮躁,要想解決問題最終還是要靠靜下心來仔細分析。遇到困難不能退縮更不能半途而廢,不懂的可以上網查,這也是一個不斷學習和不斷積累經驗的過程。另外實驗室的設備齊全,要學會充分利用。
對于燒毀的那個三極管Q1,其原因最終還要歸結于TL851芯片的XMIT引腳脈沖持續時間過長,導致Q1長時間導通,而三極管的集電極與發射極又直接與Vcc和GND相連,從而致使短路電流持續時間過長,超過三極管允許極限,進而將其燒毀。
九、附件說明
附件1為東門口靜態測試,單位為米。為了便于觀察,對串口輸出做了規范,1
至4列分別對應1至4個模塊測得的數據,空白單元代表無返回數據。
附件2為靜態遠距(9m-10m)測試結果。
附件3為由東門口行至南樓西側以及返回所得數據。附件4為該測距系統的相關電路與PCB板圖。里面電感用相同引腳電容做了代替。
附件5為PIC30F4011芯片的4模塊控制程序。
十、補充
ECHO引腳會出現一個尖峰脈沖影響對返回時間的判斷,需要接一104電容加以濾除。
第五篇:軍事測距
軍事上的測量距離的方法
測量距離,在戰場上的用處最大,在簡易測繪中最為重要,方法也最多。在這里,我們只能揀些最簡單實用的講一講。
每人都有一副靈便的尺子,隨時帶在身邊,使用起來十分方便。這副尺子就是我們的雙腳。
用雙腳測量距離,首先要知道自己的步子有多大?走的快慢有個譜。不然,也是測不準確的。
《隊列條令》上對步子的大小有個規定,齊步走時,一單步長七十五厘米,走兩單步為一復步,一復步長一米五;行進速度每分鐘一百二十單步。
為啥規定步長一米五,步速每分鐘一百二十單步呢?這是根據經驗得來的。無數次測驗的結果說明:一個成年人的步長,大約等于他眼睛距離地面高度的一半,例如某人從腳根到眼睛的高度是150厘米,他的步長就是75厘米。如果你有興趣的話,不妨自己量量看。還有一個經驗:我們每小時能走的公里數,恰與每三秒鐘內所邁的步數相同。例如,你平均三秒鐘能走五單步,那每小時你就可以走五公里。不信,也可以試一試。
這兩個經驗,只是個大概數,對每個人來說,不會一點不差,這里有個步長是否均勻,快慢能否保持一致的問題。要想準確地測定距離,就要經常練習自己的步長和步速。
怎么練習呢?連隊不是天天出操、練步法嗎?這就是練習步長和步速的極好機會。
還有個練習的辦法,在公路上,每隔一公里就有一塊里程碑,你可以經常用步子走一走,算算步數,看看時間,反復體會自己的步長和
掌握了自己的步長和步速,步測就算學會了。步測時,只要記清復步數或時間,就能算出距離。例如,知道自己的復步長1.5米,數得某段距離是540復步,這段距離就是:540×1.5米=810米。若知道自己的步速是每分鐘走54復步,走了10分鐘,也可以算出這段距離是:54×10=540復步,540×1.5米=810米。根據復步與米數的關系,我們把這個計算方法簡化為一句話:“復步數加復步數之半,等于距離。”就能很快地算出距離來。
2.目測
人的眼睛是天生的測量“儀器”,它既可以看近,近到自己的鼻子尖,又能看遠,遠到宇宙太空的天體。用眼睛測量距離,雖然不能測出非常準確的數值,但是,只要經過勤學苦練,還是可以測得比較準確的。在我軍炮兵部隊中,有許多同志練出了一手過硬的目測本領,他們能在幾秒鐘內,準確地目測出幾千米以內的距離,活象是一部測距機。
怎樣用眼睛測量物體的距離呢?
人的視力是相對穩定的,隨著物體的遠近不同,視覺也不斷地起變化,物體的距離近,視覺清楚,物體的距離遠,視覺就模糊。"
而物體的形狀都有一定規律的,各種不同物體的遠近不同,它們的清晰程度也不一樣。我們練習目測,就是要注意觀察、體會各種物體在不同距離上的清晰程度。觀察的多了,印象深了,就可以根據所觀察到的物體形態,目測出它的距離來。例如當一個人從遠處走來,離你2000米時,你看他只是一個黑點;離你1000米時,你看他身體上下一般粗;500米時,能分辨出頭、肩和四肢;離200米時,能分辯出他們的面孔、衣服顏色和裝具。
這種目測距離的本領,主要得靠自己親身去體會才能學到手。別人的經驗,對你并不是完全適用的,下面這個表里列的數據,是在一般情況下,正常人眼力觀察的經驗,只能供同志們參考。不同距離上不同目標的清晰程度
距離(米)分 辨 目 標 清 晰 程 度 100人臉特征、手關節、步兵火器外部零件。
150—170衣服的紐扣、水壺、裝備的細小部分。
200房頂上的瓦片、樹葉、鐵絲。
250—300墻可見縫,瓦能數溝;人臉五官不清;衣服、輕機槍、步槍的顏色可分。
400人臉不清,頭肩可分。
500門見開關,窗見格,瓦溝條條分不清;人頭肩不清,男女可分。
700瓦面成絲;窗見襯;行人邁腿分左右,手肘分不清。
1000房屋輪廓清楚,瓦片亂,門成方塊窗襯消;人體上下一般粗。
1500瓦面平光,窗成洞;行人似蠕動,動作分不清。2000窗是黑影,門成洞;人成小黑點,停、動分不清 3000房屋模糊,門難辨,房上煙囪還可見。
你覺得根據目標的清晰程度判斷距離沒有把握時,還可以利用與現地的已知距離,相互進行比較,有比較才能判定。比如,兩電線桿之間的距離,一般為五十米,如果觀測目標附近有電線桿,就可以將觀測的物體與電引桿間隔比較,然后再判定。現地沒有距離比較時,就用平時自己較熟悉的50米、100米、200米、500米等基本距離,經過反復回憶比較后再判定。如果要測的距離較長,可以分段比較,爾后推算全長。
由于天候、陽光、物體顏色和觀察位置、角度的不同,眼睛的分辨力常會受到影響,目測的距離就會產生誤差。
晴天:面向陽光觀測,眼睛受到光線的刺激,視力會減弱,容易把物體測遠了;如背向陽光觀測,眼睛不受光線刺激,物體被陽光照射得清晰明亮,容易把物體測近了。
陰天或早晚天色較暗時:能見度減弱,物體顯得模糊,容易把目標測遠了。
雨后:空氣清新,物體顏色鮮明,又容易把目標測近了。在開闊地形上目測,或隔著水面、溝谷觀察,或從高處往低處觀察,都容易把目標測近了。
應根據各種具體情況,經過艱苦練習,反復體會,摸出自己的經驗。俗話說:“熟能生巧”,練得多,體會深,經驗豐富了,就能比較準確地目測出物體的距離來。-