Presentation is loading. Please wait.

Presentation is loading. Please wait.

13-1 功能簡介 13-4 實驗成果 13-2 電路說明 13-5 延伸應用與練習 13-3 程式設計

Similar presentations


Presentation on theme: "13-1 功能簡介 13-4 實驗成果 13-2 電路說明 13-5 延伸應用與練習 13-3 程式設計"— Presentation transcript:

1 13-1 功能簡介 13-4 實驗成果 13-2 電路說明 13-5 延伸應用與練習 13-3 程式設計
第13章 距離感測:超音波& 紅外線 13-1 功能簡介 實驗成果 13-2 電路說明 延伸應用與練習 13-3 程式設計

2 13-1 功能簡介 距離感測器可用來提供系統判斷距離障礙物或目標物的遠近、水位高低,或是當近接開關、計數貨物數量,一般來說,距離量測可使用超音波、紅外線、雷射或CCD(影像感測)來完成,考慮成本及使用的方便性,大多以超音波、紅外線為主。超音波可測得非常線性的距離值,但不適合像電腦鼠迷宮短距離或容易有超音波繞射的環境,此時紅外線測距就是一個很好的選擇,不過紅外線測得的距離值為非線性,且有盲區的問題需克服;本實驗先以超音波為例,在延伸思考會提及紅外線測距。

3 13-1 功能簡介 本實驗欲利用圖13-1 的HC-SR04 超音波模組,完成一個裝置在汽車後保險桿上的倒車警報系統,方便使用者倒車時的距離評估;圖13-2 為本實習的系統方塊圖,其警示的規則是(下列的數字是指倒車時超音波模組與障礙物的距離,警示聲頻率為400Hz): 1.當倒車距離超過100 公分時(還很遠),蜂鳴器每秒發出 一0.4 秒的長聲警示。 2.當倒車距離30 ~ 100 公分時,蜂鳴器每0.5 秒發出一0.1 秒短聲警示。

4 13-1 功能簡介 3.當倒車更接近障礙物介於10 ~ 30 公分時,蜂鳴器間隔0.3 秒發出一0.1秒短聲警示。
4.當離障礙物3 ~ 10 公分時,蜂鳴器每隔100ms 發出一50ms短聲警示。 5.當距離障礙物低於3 公分時,蜂鳴器持續發出警告聲。

5 13-1 功能簡介

6 13-2 電路說明 倒車雷達需要一個距離感測器,先以超音波為例,以下分述其感測原理及模組的使用方法。 1. 超音波元件介紹與感測原理
一般人耳可聽見的聲頻範圍為20Hz ~ 20kHz,而超音波是人耳聽不到,頻率大於 20kHz 的一種機械波。超音波感測器是利用高頻訊號來偵測物質或生物訊號的感測器,常見的應用有超音波測距儀、超音波洗淨器、金屬或鋼材內部缺陷的超音波檢測、醫療用途超音波成像等;超音波感測器依其測量源及用途的不同,需選用不同的聲波頻率,高頻者 (數MHz 至GHz)大多應用在醫療、工業用途,低頻者(20kHz 至數百kHz)多應用在距離量測。

7 13-2 電路說明 超音波的產生與接收,有電磁感測型、磁伸縮型、壓電型等三種,目前市面上所使用的超音波換能器(Transducer)大多屬於壓電型,與石英振盪晶體所使用的原理一樣:當在石英等具有壓電性的結晶體上沿著一定的方向施加外力使其變形時,其結晶體會隨著變形而產生電荷在相反的面上,如果變形方向反過來,則極性會倒過來,這就是所謂的壓電效應,如圖13-3 所示。

8 13-2 電路說明 超音波感測器被分為發射器與接收器,二者都具有壓電效應,對發射器(圖 13-1(a) 左側)而言,是將40kHz 的電場訊號加在晶體上,使晶體產生形變而振動空氣,發射出40kHz 的超音波(屬於壓電逆效應,或稱電壓效應);而對接收器而言,若有接收到40kHz 的超音波,則晶體會因空氣振動而產生電的信號(屬於壓電效應)。 2.超音波距離量測原理 超音波距離量測的原理如圖 13-4、圖 13-5 所示,主要是利用由超音波發射器發出含40kHz 載波的單一脈衝(圖 13-5 的T),經空氣傳播碰到障礙物反射,而由接收器接到此單一脈衝時中間的時間差,來計算障礙物與超音波模組之間的距離。

9 13-2 電路說明 其基本關係為: 其中t 為發射器發出脈衝到接收器接收到信號的時間差,因為是超音波來回反射的時間,因此需除2;而C 是聲音在空氣中傳播的速度,一般為 T(公尺/ 秒),T 為環境溫度,假設操作溫度在25℃,音波的速度為346m/s。

10 13-2 電路說明

11 13-2 電路說明 3.超音波模組說明 (1)距離偵測限制:最遠不超過5 公尺,偵測角度不超過15 度,偵測的物體或障礙物也不可太小(因其反射波太小會被視為雜訊)。 (2)模組有VCC、Trig、Echo、GND 四個接腳,其測量距離的使用方法如下,時序圖如圖 13-6 所示:

12 13-2 電路說明

13 13-2 電路說明

14 13-2 電路說明

15 13-2 電路說明

16 13-2 電路說明

17 13-2 電路說明

18 13-3 程式設計 本實驗的程式主軸在超音波的觸發腳Trig 與接收腳Echo 的時序處理,只要產生圖 13-6 模組所需的時序,即可利用Arduino 的pulseIn 指令取得反射波的時間。

19 13-3 程式設計

20 13-3 程式設計

21 13-3 程式設計

22 13-3 程式設計

23 13-3 程式設計 1.pulseIn(pin, level, timeout)測量pin 腳的脈寬時間
pulseIn 為Arduino 的進階指令,它可測量指定pin 腳在level 狀態(HIGH 或LOW)的脈寬時間,例如pulseIn(9, HIGH),Arduino 會等待D9 腳到高準位,然後啟動計時器,在不超過timeout 的時間內,等待D9 腳變至低準位時停止計時,最後回傳計時的時間(單位ms)。其中timeout 為選用參數,若未指定,預設為1 秒,另外,若超過timeout時間仍量不到指定的level 狀態時會回傳0。

24 13-3 程式設計 1.行號18 ~ 23 負責送出超音波的觸發時序脈波。 2.行號24 透過pulseIn() 指令量測反射波的時間。
3.行號25 的時間轉成距離程式是根據公式13-1 的計算結果 而來。 4.行號29 ~ 46 是倒車雷達的距離判斷與警示音的處理,利用簡易的if 指令即可完成。

25 13-4 實驗成果 1.確定好本實驗的電路及程式後,即可開始進行編譯程式,以及下載、燒錄、測試的工作。
2.燒錄成功後,請開啟Serial Monitor,應可看到Serial Monitor 上顯示超音波模組所測到的與前方障礙物距離,若無法正常顯示,請檢查接線是否正確。 3.為檢查距離是否正確,可使用圖 的方式,選用一個障礙物(例如紙盒)並在底下放一把直尺,移動超音波即可得知測得的數據是否正確,若不正確,有可能是模組本身的校正問題或是程式中行號51 中的除數問題,可試著改其它數值看看(公式13-1 中採用t /58 是假設室溫為25℃情況下的音速計算所得)。

26 13-4 實驗成果

27 13-4 實驗成果 4.移動與障礙物不同的距離,聽聽蜂鳴器的聲音是否如實驗設計呈現,包含倒車距離:
(1)超過100 公分時,蜂鳴器每秒發出一0.4 秒長聲警示。 (2)30 ~ 100 公分時,蜂鳴器每0.5 秒發出一0.1 秒短聲警示。 (3)10 ~ 30 公分時,蜂鳴器間隔0.3 秒發出一0.1 秒短聲警示。 (4) 3 ~ 10 公分時,蜂鳴器每隔100ms 發出一50ms 短聲警示。 (5) 低於3 公分時,蜂鳴器持續發出警告聲。

28 13-5 延伸應用與練習 超音波模組HC-SR04 是一個便宜又好用的測距模組,網路上已有善心人士將此模組的距離測量、單位轉換等程序函式化,讓Arduino 使用者在使用上更加方便,本節將細說如何安裝及使用此Ultrasonic 函式庫。 本節的倒車雷達警示換成下列的規則,可以試著修改程式完成需求;其中倒車距離cm 是指超音波模組與障礙物的距離,警示聲頻率改為600Hz:

29 13-5 延伸應用與練習 (1)當cm 超過100 公分時,蜂鳴器每秒發出一0.4 秒警示。
(3)當cm 介於4 ~ 100 公分時,蜂鳴器每cm×10 毫秒發出一 cm×5 毫秒警示。

30 13-5 延伸應用與練習 以下透過幾個步驟介紹如何安裝及使用Ultrasonic 函式庫:
arduino-library-for-ultrasonic-ranging-module-hc-sr04/,下載後打開壓縮檔,並找到Ultrasonic 資料夾。 (2)直接使用書後光碟→程式→ libraries → Ultrasonic 的資料夾。

31 13-5 延伸應用與練習 2.安裝:取得後,將整個Ultrasonic 資料夾複製至Arduino IDE 安裝目錄的libraries 資料夾下即可使用。不過,網站上的Ultrasonic 函式庫僅適用於Arduino1.0 版以前的版本,Arduino1.0 以後的版本建議使用書後光碟的函式庫。 3.使用方法:Ultrasonic 函式庫提供了3 個函式,說明如下。 (1) 建立Ultrasonic 物件: 這是初始化Ultrasonic 模組的函式, 語法為Ultrasonic(int TP, int EP),其中TP 為Trig 觸發腳位,EP 為Echo 接收腳位,例如Ultrasonic mySolar(TrigPin, EchoPin) 代表建立一個名稱為mySolar 的超音波物件。

32 13-5 延伸應用與練習 (2)Timing():產生觸發超音波模組的時序,並傳回測得的反 射時間。
(3)Ranging(int sys):進行距離單位轉換,若sys=CM=1 則 傳回公分單位值,若sys=INC=0 則傳回英吋單位。 程式碼與chap13_1.ino 大同小異,只是把超音波部分的程式模組化,如下列紅色字的程式所示。

33 13-5 延伸應用與練習

34 13-5 延伸應用與練習

35 13-5 延伸應用與練習

36 13-5 延伸應用與練習

37 13-5 延伸應用與練習 本實驗可達到類似chap13_1.ino 的成果,請同學燒錄程式後測試倒車雷達的效果是否比較好,若習慣Ultrasonic 函式庫的用法後,可讓程式更加精簡且容易明白。 1.函式庫是一些方法、函式和常數的集合,使用者可透過標準方法來自建函式、存取函式或執行。函式庫有官方提供、第三方提供,及使用者自行建立三種,其基本架構都一樣。

38 13-5 延伸應用與練習 2.以下是本實驗使用到的Ultrasonic 函式庫,若自己的程式慢慢愈寫愈多以後,也可依樣畫葫蘆建立自己的函式庫。打開Arduino IDE 安裝資料夾下的libraries → Ultrasonic 資料夾,可發現除了範例檔examples 外有三個檔案,分別是: (1) C++ 檔案Ultrasonic.cpp: 此為主要程式的部分,程式內容如下,有些程式片斷都是chap13_1.ino 中教過的。其中行號7 #include "Arduino.h" 是使用任何Arduino函式或常數必須引入的標頭檔,而行號8 #include "Ultrasonic.h" 則是定義Ultrasonic 函式庫中會用到的函式定義或常數。

39 13-5 延伸應用與練習

40 13-5 延伸應用與練習

41 13-5 延伸應用與練習

42 13-5 延伸應用與練習 (2)Ultrasonic.h:此為Ultrasonic 函式庫的標頭檔,可定義函式庫中會使用到的所有函式定義(函式原型)或常數,標頭檔內容如下,其中行號7,8,28 的組合是一個在標頭檔中很常見的怪異結構,目的是為了防止使用者無意中重複引入(include)此標頭檔兩次或以上。

43 13-5 延伸應用與練習

44 13-5 延伸應用與練習

45 13-5 延伸應用與練習 (3)keywords.txt: 此為告訴Arduino IDE 有哪些關鍵字的標示檔, 每一行代表一個關鍵字, 中間以Tab 鍵分隔( 非空白字), 方便在Arduino IDE 中作突顯式的顏色標示,一般KEYWORD1 代表是類別class,該關鍵字在Arduino IDE 中會以橙色表示,KEYWORD2 代表是方法或函式function,該關鍵字以棕色表示,Constants 代表常數,該關鍵字以藍色表示。

46 13-5 延伸應用與練習

47 13-5 延伸應用與練習 短距離測距還有使用紅外線的作法,一般常見的有Sharp 距離感測器,如圖 所示,以及更短距離(循跡用途)的TCRT5000、CNY70 感測器。由於紅外線光的反射屬於光速,我們不能使用超音波計算反射時間的作法,只能控制紅外線功率與反射回來後的準位,得知感測器與障礙物的距離, 另外為了減少不同障礙物顏色之反射率不同造成的感測誤差,模組上會使用PSD(position sensitive detector,位置偵測器)元件因應。

48 13-5 延伸應用與練習 Sharp 距離感測器是目前最普及的紅外線距離感測器,因為感測器接收部分採用PSD,具有不受反射燈光、環境光、及不同物體顏色反射影響的優點;針對不同輸入訊號以及距離範圍有不同的型號可選擇,型號GP2Y0A02 為長距離偵測20 到150 公分,型號GP2Y0A21、GP2D12 為中距離10 到80 公分,型號GP2D120 為短距離4 到30 公分,本小節以Sharp GP2D12 為例。GP2D12 的內部方塊圖如圖 所示,其量測到的電壓準位及距離的關係如圖 所示,其中10cm 內為紅外線測距的盲區,真正能用的區域為10 ~ 80cm;當障礙物距感測器比較近時,接收器接收到的反射量最大故Vo 最大,反之,當障礙物比較遠時,接收器接收到的反射量 較小故Vo 減少,故10 ~ 80cm 區間量測到的電壓準位與距離關係成反比。

49 13-5 延伸應用與練習

50 13-5 延伸應用與練習

51 13-5 延伸應用與練習 圖13-16 為本小節的實驗電路圖,配接圖如圖 所示,電路很簡單,主要是學習如何讀入紅外線測距的類比電壓值,並正確的將非線性、反比的電壓與距離關係變成一個線性、正比關係,最後將距離顯示在Serial Monitor 上。

52 13-5 延伸應用與練習

53 13-5 延伸應用與練習

54 13-5 延伸應用與練習

55 13-5 延伸應用與練習

56 13-5 延伸應用與練習 以下為紅外線測距模組 GP2D12 的測距程式,程式碼很簡單,只要讀出A0 腳的數位值,帶進公式13-2 即可快速算出距離值。由於次方運算需要引入數學函式庫,故行號3 不可省略。

57 13-5 延伸應用與練習 1.確定好本實驗的電路及程式後,即可開始進行編譯程式,以及下載、燒錄、測試的工作。
2.燒錄成功後,請開啟Serial Monitor,應可看到Serial Monitor 上顯示紅外線測距模組測到前方障礙物的距離。

58 13-5 延伸應用與練習 3.為檢查距離是否正確,可同樣選用一個障礙物(例如紙盒)並在底下放一把直尺,移動GP2D12 得知測得的數據是否正確,如圖13-20 所示;與超音波比較,GP2D12 有個為數不小的盲區(<10cm)問題,請同學務必測試一下,與待測物體距離10cm 以上的數據才正確喔!

59 13-5 延伸應用與練習

60 13-5 延伸應用與練習 一般循跡用的短距離感測也都採紅外線光反射的作法,不過接收部分使用光電晶體, 例如TCRT5000、CNY70 感測器等, 圖 13-21(a) 為TCRT5000 外觀,圖 13-21(b) 為其接腳。由於接收器不是採用PSD,因此使用TCRT5000 這類感測器進行物體偵測或測距,很容易受到待測物體反射率、環境光的影響,一般只能短距離測距(<6cm),或用在循跡、近接開關、軸編碼器的位置感測。

61 13-5 延伸應用與練習

62 13-5 延伸應用與練習

63 13-5 延伸應用與練習

64 13-5 延伸應用與練習 程式部分先按照第 節的作法,進行TCRT5000 電壓準位及距離關係的測量,利用Excel 圖表→散佈圖功能,產生一個適合的趨勢線公式,方便程式撰寫。TCRT5000 電壓準位及距離關係測量可如圖 方式進行,按6cm、5.5cm、5cm…0.5cm 不同距離值,逐一測量電壓並記錄在Excel 檔上,最後可得TCRT5000 公式為:

65 13-5 延伸應用與練習

66 13-5 延伸應用與練習

67 13-5 延伸應用與練習

68 13-5 延伸應用與練習 1.確定好測試的電路及程式後,即可開始進行編譯程式,以及下載、燒錄、測試的工作。
2.燒錄成功後,請開啟Serial Monitor, 應可看到Serial Monitor 上顯示ADC 讀值及TCRT5000 至前方障礙物的距離。 3.接著以圖 13-24(b) 固定測量3cm 的條件進行不同環境光及待測物體反射率的影響,圖 是正常情況的量測結果,不同測試條件的結果整理如下:

69 13-5 延伸應用與練習 (1)表 13-3 所示為不同環境光的影響,當環境光較亮時,物體表面較亮因而反射值增加,ADC 讀值增加,距離下降。 (2)表 13-4 所示為不同待測物體反射率的影響,其中白色反射率最高,同樣距離下ADC 讀值最大,距離最小;黑色會吸光,反射率最差,故反射回光電晶體接收器的量最少,ADC 讀值最小,距離最遠。

70 13-5 延伸應用與練習

71 13-5 延伸應用與練習

72 13-5 延伸應用與練習


Download ppt "13-1 功能簡介 13-4 實驗成果 13-2 電路說明 13-5 延伸應用與練習 13-3 程式設計"

Similar presentations


Ads by Google