interaction design of ultrasound and arduino …...arduino embedded system 指導教授:林育德...

59
自動控制工程學系專題製作 超音波與 Arduino 嵌入式系統 互動設計 Interaction Design of Ultrasound and Arduino Embedded System 指導教授:林育德 生:林子翔 黃仁佑

Upload: others

Post on 04-Jul-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

  • 逢 甲 大 學 自動控制工程學系專題製作

    專 題 論 文

    超音波與Arduino嵌入式系統

    互動設計 Interaction Design of Ultrasound and

    Arduino Embedded System

    指導教授:林育德

    學 生:林子翔

    黃仁佑

    中 華 民 國 九 十 九 年 六 月

  • i

    感謝

    感謝林育德老師耐心的教導我們指引我們如何尋找前進的方法,儘管我們不

    懂的可能都是一些再基本的問題,然後再指點我們所忽略的,不厭其煩的。也特

    別吩咐學長幫助我們成長。感謝林彥廷學長大力幫忙,總是很樂意提供幫助,提

    供他個人的經驗跟我們所需要的,也不時的給予我們建議。也感謝實驗室的學長

    們,因為看到他們為自己研究而努力,也感染與我們,感受認真的男人最帥氣。

  • ii

    中文摘要

    「人機互動設計」是一股不可忽視的強流,讓人與電腦能互動。應用層面極廣,

    在醫療和娛樂更是普遍。在醫療界中,一些肢體障礙的朋友們,也透過某種形式

    的與電腦互動,而行原本所不能的動作。

    而本論文是利用超音波元件來做一些量測以判斷距離,再將超音波的發射端

    與接收接至 Arduino 嵌入式電路板上,使超音波可以做單一發射後接收的工作,

    在利用 Arduino 的程式語言結合 FLASH 的程式碼 ActionScript3.0 藉由超音波辨

    識一個區域內的物體,並在偵測後,FLASH 中的物件可以跟隨移動。

    關鍵詞:超音波、flash、ActionScript3.0、Arduino

  • iii

    Abstract

    The design of Human-Computer Interaction is a strong trend that enhances the teraction between human beings and computer. The application of this technology has been adopted in the field of the medication and entertainment. In the medical field, disabled people can do some actions that they can’t perform originally by interacting with computers in the entertainment. This research is to use ultrasound to design Human-Computer Interaction device. Here are the steps of our experiment. First, ultrasonic elements are used to measure the distance between the elements and the objects. Second, the date collected by the ultrasonic elements are transmitted to the circuit boards. Third, the programming language of Arduino are combined to Actionscript3.0 to process the imformation. finally, the date can be displayed through Flash. The methods above finish the different kinds of Human-Computer Interaction by ultrasound. Keyword:ultrasonic、flash、ActionScript3.0、Arduino

  • iv

    目錄 感謝.................................................................................................................................I 中文摘要.......................................................................................................................II Abstract .....................................................................................................................III 第1章 緒論..........................................................................................................1

    1.1 前言..........................................................................................................1 1.2 研究動機..................................................................................................2

    第2章 超音波原理探討..........................................................................................2 2.1 何謂超音波....................................................................................................2

    2.1.1 超音波的傳播速度..........................................................................2 2.1.2 超音波的特性..................................................................................2

    2.2 超音波的產生................................................................................................3 2.2.1 直接壓電效應..................................................................................3 2.2.2 逆壓電效應......................................................................................5

    2.3 超音波等效電路............................................................................................7 2.4 超音波感測器種類........................................................................................9 2.5 超音波使用方式..........................................................................................10 2.6 超音波感測器的注意事項..........................................................................12 2.7 超音波人體感測原理..................................................................................12 2.7.1 物體移動........................................................................................12 2.7.2 物體的細部動作............................................................................13 第3章 硬體系統架構與性質..................................................................................14

    3.1 硬體的電路架構..........................................................................................14 3.2 電路探討......................................................................................................15

    3.2.1 超音波發射電路............................................................................15 3.2.2超音波接收電路...............................................................................17

    3.2.3 Arduino硬體探討...................................................................................19 3.2.3.1 Arduino嵌入式系統介紹. .....................................................19 3.2.3.2 Arduino特色...........................................................................19 3.2.3.3 Arduino電路板介紹...............................................................20

    第4章 軟體系統架構與性質....................................................................................22 4.1 主架構圖......................................................................................................22 4.2 軟體介紹......................................................................................................24

    4.2.1 Arduino IDE ...................................................................................24 4.2.2 Arduino IDE 介面介紹..................................................................25 4.2.3 Serproxy 介面介紹........................................................................26

  • v

    4.2.3 FLASH Action Script 3.0 介紹..................................................22 4.3 軟體製作......................................................................................................23

    4.3.1 Arduino IDE 程式碼說明..............................................................27 4.3.2 Serproxy 開放程式碼說明............................................................29 4.3.3 FLASH Action Script 3.0 程式碼說明....................................31

    第5章 實驗結果........................................................................................................39 5.1 硬體成果......................................................................................................39

    5.1.1實際發射電路.....................................................................................39 5.1.2超音波實際接收電路.........................................................................41 5.1.3發射接收串接之後的電路.................................................................42

    5.2 軟體成果......................................................................................................44 第6章 結論與展望....................................................................................................48

    6.1 結論..............................................................................................................48 6.2 未來展望......................................................................................................48

    參考文獻......................................................................................................................49

  • vi

    圖目錄

    圖2.1 壓電效應(直接壓電效應) .................................................................................4

    圖2.2逆壓電效應...........................................................................................................5

    (a)沒有施加電壓

    (b)施加電壓,上(+)下(-)

    (c)施加電壓,上(-)下(+)

    (d)加入交流電

    圖2.3可逆元件的概念...................................................................................................6

    圖2.4 超音波之等效電路.............................................................................................7

    圖2.5 超音波之阻抗特性.............................................................................................7

    圖2.6 單一發射型.......................................................................................................10

    圖2.7 對射型...............................................................................................................10

    圖2.8 分離反射型.......................................................................................................11

    圖2.9 整型反射型.......................................................................................................11

    圖2.10 物體移動示意圖.............................................................................................13

    圖3.1 硬體架構...........................................................................................................14

    圖3.2 超音波發射電路圖...........................................................................................15

    圖3.3 超音波感測器之距離量測狀況.......................................................................17

    (a) 距離3~5公分左右的情形

    (b) 距離約15~20公分的情形

    (c) 距離約30公分左右的情形

    圖3.4 超音波接收電路圖...........................................................................................18

    圖3.5 運用Wii Nunchuck去控制Wii 的加速度感測器...........................................19

    圖3.6 Arduino電路板...............................................................................................20

    圖4.1 軟體流程圖.......................................................................................................23

  • vii

    圖4.2 Arduino IDE 介面..........................................................................................24

    圖4.3 Flash Action Script 3.0介面............................................................................26

    圖5.1 實際的發射電路.............................................................................................39

    圖5.2 發射端感測器輸入訊號.................................................................................39

    圖 5.3 接收端感測器收到的訊號............................................................................40

    圖5.4 超音波實際接收電路.....................................................................................41

    圖5.5 超音波實際接收端感測物體輸出訊號.........................................................41

    圖5.6 完整感測器的電路.........................................................................................42

    圖5.7 完整感測器焊接成品.....................................................................................42

    圖5.8 由接收端輸出至arduino的訊號.....................................................................43

    圖5.9 在Arduino IDE上Debug後正確無誤.............................................................40

    圖 5.9 Serproxy 開啟後正確無誤............................................................................44

    圖5.10 Flash.as在Debug後正確無誤.......................................................................45

    圖5.11 Flash.fla在Debug後正確無誤......................................................................45

    圖5.12 Flash的物件產生和移動..............................................................................46

    圖5.13 Flash輸出處產生數值..................................................................................46

  • viii

    表目錄

    表3.1 超音波發射電路使用元件概論.......................................................................15

    表3.2 超音波接收電路使用元件概論.......................................................................18

    表3.3 Arduino的功能接腳圖.......................................................................................21

    表4.1 Arduino IDE工作介面功能...............................................................................25

    表4.2 Arduino IDE 程式碼之步驟.............................................................................27

    表4.3 Serproxy的程式碼更改說明..............................................................................29

  • 1

    第1章 緒論

    1.1 前言

    超音波是指振動頻率超過約 20k Hz 的音波,大約就是超過人耳所能聽見的

    聲音頻率。

    超音波的使用已經越來越普遍。特別在醫療用途上,常見的有診斷用超音波

    和治療用超音波,像是利用超音波來照胎兒觀察其發育情形、外科用來看人體器

    官組織、以及處理體內血液流動的照影,在治療用途上,除了超音波按摩之外、

    震碎腎結石的治療以及將若要植入東西時的輔助儀器。在工業上最廣泛的就像是

    量測,像是常用的倒車雷達、測速照相機或是聲納等等。

    1.2 研究動機

    超音波照影技術,大部分還是使用在醫療產業上。我們研究方向是利用超音

    波產生影像來觀測空間之內物體的動作情形,運用在居家看護的系統上,如果可

    以不需要將任何的感應裝置放置在人的身上,可減少增加物體在受測人身上的不

    方便性。再來,因為透過超音波感測接收到的,僅僅只是受測人的行為動作或者

    是點的反射,不會有因感測而洩漏受測人的隱私問題。遠距離醫療雖然在台灣還

    不盛行,人們還是習慣親自到醫院看診安心,

    若是發展更加卓越之後,也許可透過這樣的方式達到藉由某些個人獨一無二

    的特徵來作為安全鎖。如此一來不需要費心保護一隻鑰匙或者是牢記一堆密碼而

    頭疼,因為自己就是那把鑰匙。

  • 2

    第 2 章 超音波原理探討

    2.1 何謂超音波

    聲波(Sound Wave或Acoustic Wave)是聲音的傳播形式。聲波是一種機械波,

    由物體(聲源)振動產生而型成。聲波必須透過介質才能夠傳送,例如氣體、液

    體、固體,故音波在真空狀態下是無法被傳遞的。人耳可以聽到的聲波的頻率一

    般是在每秒20Hz至20kHz之間。所以若是任何聲波或是振動超過每秒20kHz,人

    耳就無法識別而聽不見,所以稱之為超音波(Ultrasound)。

    2.1.1 超音波的傳播速度

    聲音在空氣中的傳播速度為343m/sec,在水中的傳播速度為1480m/sec。由

    於超音波受到傳播媒介溫度的影響很大,因此要考慮媒介溫度的影響。為了求出

    音波在空氣中的傳播速度(音速),可以使用以下的關係式。傳播媒介的速度為V

    m/sec,則

    V m/sec = 331.5m+0.60714t

    其中,t為溫度 C

    。例如溫度為20 C

    時,聲音速度V為

    V m/sec = 331.5+0.607 x 20 = 343.64

    則從計算結果可得知超音波在一般20 C

    的空氣中傳播速度為343.6m/sec。

    2.1.2 超音波的特性

    超音波具有在氣體中容易衰減,液體和固體中傳播效率佳的性質。相對的,

    電波無從在水中傳播。因此水中的通信全都使用超音波。例如:漁船的聲納雷達

    便是運用這種特性。由於超音波傳播的速度比電波顯著的緩慢,所以能夠正確捕

    捉到及利用反射波的回音(Echo)現象。

    聲波可以理解為介質偏離平衡態的小擾動傳播。這個傳播過程只是能量的傳

    遞過程,而不發生質量的傳遞。如果擾動量比較小,則聲波的傳遞會滿足經典的

    http://zh.wikipedia.org/w/index.php?title=%E5%A3%B0%E9%9F%B3&variant=zh-tw�http://zh.wikipedia.org/w/index.php?title=%E9%A2%91%E7%8E%87&variant=zh-tw�

  • 3

    波動方程(公式2.1),

    ………………………………….. (2.1)

    且屬於線性波。如果擾動很大,則不滿足線性的聲波方程,會出現波的色散,和

    激波的產生。

    音速可用波長和頻率之積表示。因為傳播速度慢的超音波之波長變的非常

    短,所以指向性尖銳,傳播通路能夠依據幾何光學上加以處理,波長短的意思就

    是表示能夠當做寬度狹小的脈衝放射,假如使用電波的雷達那樣,相信由此不難

    明白可以應用做方向性與距離分解性能優異的超音波聲納與超音波診斷,還有超

    音波顯微鏡等之理由。

    2.2 超音波的產生

    超音波感測器的種類也有很多種,其感測元件一般是利用壓電陶瓷的壓電效

    應(Piezoelectricity),可以分為直接壓電效應與逆壓電效應

    2.2.1 直接壓電效應

    直接壓電效應為壓電元件直接受到外部應力與振動變位等作用,產生電子信

    號輸出的現象,如圖2.1。圖中電極A、B的地方分別安裝導線。圖2-1(a)沒有施以

    外力給壓電元件,輸出電壓e = 0V。圖(b)施加給壓電元件壓應力F,上側電極產

    生正電壓(+),而下側電極產生負電壓(-),壓電元件較原本的厚度較小。圖(c)則

    是施加給壓電元件拉伸力F,上側電極產生負電壓(-),而下側電極產生正電壓

    (+),壓電元件較原本的厚度較大,與前面圖(b)成相反狀態

  • 4

    圖2.1 壓電效應(直接壓電效應)

    如果將外部應力F換成超音波能量,則就變成了超音波感測器了。對壓電元

    件施加機械應力而轉換成電子信號的能量。相反地,將電能施加與壓電元件可以

    轉換程機械性應力或是位移。

    F

    F 電極 A

    電極 B

    P P P

    F

    F

    (a)無應力 (b)壓應力 (c)拉伸應力

  • 5

    2.2.2 逆壓電效應

    圖 2.2 為逆壓電效應的原理圖。當對壓電元件施加直流電壓時產生的情形,

    但若施加 40kHz 的交流電壓時,壓電元件也會產生 40kHz 的超音波。

    圖 2.2 逆壓電效應

    壓電元件為可逆元件,我們可以用圖 2.3 來表示之,圖中將壓電陶瓷當做共

    通轉換器(transducer),同時具有受信(sensor)和發聲(speaker),例如為麥克風和喇

    叭,將相同規格的壓電陶瓷 1、2 做不同的表現

    40kHz 超音波

    (b)施加電壓,上(+)下(-) (a)沒有施加電壓

    40kHz 交流電壓

    電極 A

    電極 B

    P P

    F

    F

    F

    F

    P P

    (c) 施加電壓,上(-)下(+) (d)加入交流電

  • 6

    圖 2.3 可逆元件的概念

    輸入(應力) 輸出(電子信號) 壓電陶瓷 1

    輸出(應力) 輸入(電子信號) 壓電陶瓷 2

    共用元件

    聲音振盪的應用

    聲音受信的應用

  • 7

    2.3 超音波等效電路

    圖 2.4 為超音波之等效電路為 LCR 串並聯電路,因超音波發射器或接收器

    都是工作於某一特定的頻率。發射器乃振動出該特定頻率的超音波,而接收器也

    針對該特定頻率有最大的靈敏度。故其等效電路與石英振盪器跟陶磁振盪器相

    似。

    圖 2.4 超音波之等效電路

    圖 2.5 為超音波感測器之阻抗特性,圖左側及右側表示電容性,中間表示電

    感性,而由一般的振盪器得知,

    圖 2.5 超音波之阻抗特性

    將有串聯諧振頻率(公式 2.2)及並聯諧振頻率(公式 2.3)的存在,其頻率約如下

  • 8

    面的公式:

    …………………………………….. (2.2)

    ……………………………………. (2.3)

    目前市售常用知超音波感測器的操作頻率大都為 25kHz 到 40kHz。若以 40kHz

    的超音波感測器而言。已知他的等效電路結構是一個諧振電路,所以我們可以用

    振盪器產生 40kHz 的方波交流信號加於超音波感測器之上,驅動超音波發射器,

    它將發出 40kHz 的音波。而接收器乃把所接收到的 40Hz 音波振動轉換成交流電

    壓輸出,好像不用在乎 Sf 或 Pf 的不同。但超音波感測器的 Sf 及 Pf 並不一樣,卻

    是不爭的事實,若發射器與接收器錯誤使用時,將造成效果不佳的靈敏度太小,

    甚至無法使用,此乃因發射器與接收器有著不同的諧振點,事實上當發射器的操

    作頻率位於 Sf (串聯諧振頻率)接收器的操作頻率位於 Pf (並聯諧振頻率)因

    為發射器乃被加入交流信號當驅動源我們希望有最大能量產生,則其阻抗應該越

    小越好。如圖 2.5 Sf 時的阻抗最小,且是電阻性。反之接收器希望其端電壓越大

    越好,故頻率值應該位於並聯諧振點 Pf ,以得到最大的阻抗。

  • 9

    2.4 超音波感測器種類

    超音波感器測器之種類可以細分為以下六種型式:

    (1)開放型(Open Type)

    其發射器和接收器之感測面由細網覆蓋,一般用於室內或濕氣較低的場合。

    (2)密閉型(Encloseed Type)

    整個超音波感測器均被密閉封裝,適用於室外或環境較差的場合。

    (3)脈波傳送型(Pulse Transit Type)

    外表與一般開放型並無太大差別。但這種 類型之超音波感測器是屬發射與接

    收一體。主要是它具有很短的衰退時間,並使用脈波驅動。而所加的脈波電壓可

    達數拾甚至數百伏特。故能得到瞬間大功率的發射以進行達距離的傳送。

    (4)寬頻帶型(Wide Bandwidth Type)

    這類超音波感測器的頻寬較大,若中心頻率為 40kHz,其頻寬可達正負

    5kHz,所以對中心頻率可能漂移較多的場合中,很適合使用寬頻帶型,以免超

    音波發射與接收因頻率漂移而失效。

    (5)振盪內建型(Buillt-in Crystal Type)

    該類型的產品乃把超音波壓電材料與所需要的振盪電路做在一起,都屬發射

    器,只要加上直流電源,其內部振盪電路使能自動產生驅動信號,使壓電材料產

    生超音波之振動。是一種非常方便的產品。

    (6)高頻型(High Frequency Type)

    該類型頻率可高達 120kHz 或 210kHz.因頻率高,使得其指向性特別明顯。

    大約只在正負 10 的範圍以內。

    各類型之超音波感測器,均有其適用的場合,以符合不同的需求。所以不是

    隨便買一組超音波感測器,就什麼功能都想達到。而在本次專題製作我們將採用

  • 10

    脈波傳送型的超音波做為主要元件。

    2.5 超音波使用方式

    1. 單一發射型

    單一發射型隻超音波(圖 2.6) 只使用超音波發射器產生 20KHz 以上之某一

    圖 2.6 單一發射型

    固定音波,可應用於熔接機、洗碗機…等大功率超音波振動設備、或超音波美容

    振動儀、超音波驅蚊。

    2. 對射型

    對射型之超音波發射器和接收器(圖 2.7) 分別置於不同地方,若有物體置於

    圖 2.7 對射型

    兩者之間時,超音波將被檔住,則接收器將無法收到超音波信號, 便能知道物體

    進入或侵入,所以對射型可用於偵測物體之有無或安全防護。

  • 11

    3. 分離反射型

    分離反射型超音波發射與接收器(圖 2.8) 被擺在同一邊,發射出去的超音波

    圖 2.8 分離反射型

    被擺在同一邊,發射出去的超音波若遇到物體將反射回來,則接收器便能收到超

    音波信號,用以表示有物體靠近,或是由超音波發射到被收接收到的時間,計算

    距離的遠近,所以分離反射型可以用於偵測物體之有無,遠近或防盜。許多電動

    門就是用超音波偵測有人進入而啟動馬達做自動門的開啟與關閉。

    4. 整型反射型

    整型反射型接收與發射(圖 2.9) 乃同一個包裝的超音波感測元件,與分離反

    圖 2.9 整型反射型

    射型的功用是一樣的。並且是以脈波方式驅動,然後接收回波信號之有無以判斷

    是否有反射物或計算其距離。

  • 12

    2.6 超音波感測器的注意事項

    超音波感測器與其他感測器而言,本身亦可用作震盪器使用,可 說是一種非

    常方便的可逆元件,但要將其善加使用,則有若干需要特別注意事項。現在此把

    其要點加以簡明整理。

    1. 一般把頻率超過 20kHz 以上的音響震動稱為超音波。

    2. 超音波感測器本身也可用作超音波產生器(超音波感測器是一種可逆元件)。

    3. 超音波感測器是利用電氣直接壓電效果而成。(而超音波產生器則利用壓電氣

    之反效果原理)。

    4. 超音波傳送速度會依所經媒體溫度不同而異。

    5. 超音波感測器(轉換器)當溫度上升時,中心頻率會下降。

    6. 超音波喇叭(產生器)如以使用公定頻率,則能提高能源效率。

    7. 超音波的反射效率高(擁有二重.三重大的反射能源)。

    8. 超音波越是高頻指向性也越強。

    9. 超音波感測器能有效達整個寬廣空間(具有強擴散性)。

    10. 超音波感測器能檢出透明物體。

    11. 超音波適用於厚度錶與測距錶。(在超音波厚度錶上使用高頻信號)。

    2.7 超音波人體感測原理

    利用超音波感測器對於波的來回反射性感應受測物體,物體對超音波感測器

    而言就是所謂的障礙物,而障礙物可以是人的手或身體的任何部位,在本專題中

    是以手為一個最簡單的障礙物來進行本實驗。

    2.7.1 物體移動

    利用感測器感應受測物體在超音波進行路徑中,造成接收端收到的訊號變化

    來判別物體的距離跟移動路徑。利用接收到的訊號變化輸入 arduino 嵌入式系統

    中,在晶片中轉換計算間結果傳入PC,在FLASH的視窗中做物體移動呈

    現,整個實驗的基本架構如圖 2.10 所示。

  • 13

    圖 2.10 物體移動示意圖

    2.7.2 物體的細部動作

    根據設計,每一個感測器在不斷的發射與接收當中可以測知物體某一點的位

    置,在利用 Arduino 讀入電腦裡。

    同理,若是能利用多個感測器,根據每個感測點的不同,點點連成線,線再成面

    就可感測出物體面如此成像。

  • 14

    第 3 章 硬體系統架構與性質

    3.1 硬體電路架構

    如圖 3.1 所示,利用 Arduino 電路板供應感測器電路所需要的 power,發射

    器打出超音波再由接收端收取,在傳送到 Arduino 電路板做資料處理,然後利用

    Serproxy 伺服器建立起 Arduino 與 PC 的橋樑,然後在 FLASH Action Script 製作

    動作的呈現。

    圖3.1硬體架構

  • 15

    3.2 電路探討

    總共分為三個部份:發射電路、接收電路、Arduino 硬體來討論。

    3.2.1 超音波發射電路

    根據超音波發射電路圖(圖3.2)當電源接通時,電容 1C 兩端之電壓 1C ,因此

    第三接腳輸出高態而令 1C 經 2R 3R 4R 充電,當時,第三腳輸出低態而令 1C 經

    2R 3R 4R 放電,於時第三腳又要轉為高態輸出,如此反覆動作,即可不斷輸出

    方波而在超音波發射電路使用元件概論(表3.1)中列出了超音波的發射電路中所

    用到最重要之元件。

    圖3.2 超音波發射電路圖

    表 3.1 超音波發射電路使用元件概論

    元件名稱 元件動作原理

    555 震盪器 555是一種方波產生器、震盪器或計時器,

    依接法不同可分為單穩態震盪電路、不穩態震

    盪電路等。可變電阻及下面的電容為時間元

    件,也就是調整頻率之主要元件,第五腳接出

    為旁路電容,作雜波濾波用。

    因為要使超音波作動在最理想的情況下,

  • 16

    是輸入40kHz的方波訊號。為此選擇使用555單

    穩態震盪來做發動超音波感應器。

    超音波感測器

    如第二章節所述,超音波感測器為一種可

    逆元件,在搭配電路之前先以訊號產生器做

    測試,分別測量感測距離,依照下圖3.3得知

    感測範圍至少可從 5~30 公分

    (a) 距離3~5公分左右的情形

    (b) 距離約15~20公分的情形

  • 17

    (c) 距離約30公分左右的情形

    圖3.3 超音波感測器之距離量測狀況

    3.2.2 超音波接收電路

    根據超音波接收電路圖(圖3.4)所示,接收端為另一個超音波感測器,距離大

    約5公分~30公分做距離感測,藉由調整可變電阻RS,使T1及T2兩個1815BJT的

    集極端輸出信號為最大,同時在輸出為一正直流電壓。在T1工作區可調整至截止

    狀態,待接收到反射信號時會導通,得到負半週信號輸出。而T2當有負半週信號

    送入,即由導通變成截止,集極輸出為高電位。當T2輸出為高電位,可送至後端

    的部分當一觸發信號。而100kΩ電阻提供輸出端電容放電的路徑,也就是說,當

    無信號接收時,電容將經會由100KΩ 放電至0電位,否則,輸出端會接收一次

    後始終保持高電位。

    只是實驗時發現,由BJT共極電路產生的訊號並非理想的訊號,為了使其更

    接近完美的方波訊號在輸出端利用74LS14整波。再利用D型latch電路延遲輸出,

    以便訊號進入Arduino電路板中處理時,可以更穩定,而在超音波接收電路元件

    概論(表3.2)中列出了超音波的接收電路中所用到最重要之元件。

  • 18

    圖3.4 超音波接收電路圖

    表 3.2 超音波接收電路使用元件概論

    元件名稱 元件動作原理

    BJT1815(NPN) 基本構成類似兩個二極體所組成,

    BJT的應用極廣,在此電路中是採用共

    射極電路Common Emitter(CE)。

    74LS14 總共有14接腳得的IC電晶體,除了

    ndGVCC與 之外,共有六個反相閘。

  • 19

    3.2.3 Arduino 硬體探討

    3.2.3.1 Arduino嵌入式系統介紹

    Arduino電路板是由一顆可重複燒錄的晶片(微控制器,microcontroller)和一

    張電路板所構成,電路板中的微晶片部份是利用ATmega168和Arduino專屬的開

    發程式去控制整個電路板的運作。而Arduino的電路板有許多各種不同的型號

    而在本次的專題中,是利用Arduino Duemilanove這塊電路板來製作專題。

    3.2.3.2 Arduino特色

    Arduino是一塊基於開放原始碼的Simple i/o介面版,並且具有使用類似javaC

    語言的開發環境。讓您可以快速使用Arduino語言與Flash或Processing等軟體,作

    出互動作品。Arduino可以使用開發完成的電子元件例如Switch或sensors或其它控

    制器、LED、步進馬達或其它輸出裝置來呈現效果。Arduino也可以獨立運作

    成為一個可以跟軟體溝通的介面,例如說:flash processing 或其他互動軟體,

    Arduino也具有類比轉數位,和數位轉類比的接腳,可以再利用感測器製作人機

    互動設計時,省去很多的麻煩,也解省很多的時間。

    Arduino也可以和各種不同的周邊配備互相結合,例如當Wii Nunchuck插上

    Arduino以後並在Arduino的程式碼中加入Wii Nunchuck則可以運用Wii Nunchuck

    去控制Wii 的加速度感測器如(圖3.6)所示,並且可以在Arduino的程式介面中看

    到x,y,z三軸中的值。

    圖3.5 運用Wii Nunchuck去控制Wii的加速度感測器

  • 20

    3.2.3.3 Arduino 電路板之接腳介紹

    在此節開始介紹Arduino電路板(圖3.7)上的接腳功能,並介紹每一支接腳的

    用途,如下表3.3所示。

    圖3.6 Arduino電路板

  • 21

    表3.3 Arduino的功能接腳說明

    接腳 功能介紹

    1 pwm(Pulse Width Modulation)

    2 LED 燈專用的接腳

    3 GND

    4 AREF輸入參考電壓的接腳

    5 在讀取訊息和輸入訊息時,TX和RX會因此而動作

    6 USB之接頭

    7 控制供電來源

    8 變壓器供電(5V~12V)

    9 5V的輸出

    10 GND

    11 5V~12V的輸入

    12 類比輸入

    13 Reset

    14 ICSP線上燒錄端

    15 電源顯示燈

    16 Tx和Rx的接孔

    17 數位輸入

  • 22

    第 4 章 軟體系統架構與性質

    4.1 主架構圖

    首先,啟動超音波電路,按Arduino IDE程式執行鍵,則Arduino IDE程式開

    始動作,Arduino IDE程式主要有兩個作用,一個是輸出數位信號,而另一個則

    是接收類比信號。Serproxy是連結Arduino和電腦傳輸的一個介面,透過這個介面

    讓數值在Arduino和電腦之間傳送,信號經過電腦USB的port 5331,在Flash的介

    面中顯示,然後Flash會透過此數值讓Flash物件加以移動,而架構的圖形化以圖

    4.1來表示。

  • 23

    圖4.1 軟體流程圖

  • 24

    4.2 軟體介紹

    4.2.1 Arduino IDE (Arduino Integrated Development Environment)

    Arduino IDE(圖4.2)是一套整合開發環境軟體,它是用來撰寫Arduino電路板

    所需要的程式工具,它所用的簡單程式語言,是由Processing程式語言修改而來

    的,當我們在整合開發環境程式中將寫好的程式上傳到Arduino電路板後,程式

    會先轉成C語言,然後經由Arduino的電路板轉換成,微處理機控制器所用的機器

    碼。這個在幕後進行的動作,就是讓大家覺得Arduino簡單好用的關鍵,因為他

    替我們處理了燒錄微控制器之類的繁複過程。而學習Arduino的語法相當簡單,

    它的語法結構與Processing,Java,C語言相當類似,因此只需要基礎的程式設計

    能力就可以快速上手,而利用下表4.1來介紹Arduino IDE的工作介面功能。

    圖4.2 Arduino IDE 介面

  • 25

    表4.1 Arduino IDE工作介面功能

    符號編碼 符號功能介紹

    1 終止程式執行

    2 開啟一個新的程式

    3 開啟舊檔

    4 save檔案

    5 開始燒錄程式

    6

    Serial Monitor,它主要的功能是,

    可以監看類比所傳入的數值,但要配合

    Serial.println(val)這個函式動作。

    7

    Debug,當我們所寫的程式有所錯

    誤的時候,在程式介面的最下方會顯現

    出來。

    8 輸入程式

    9 顯示程式在debug後是錯誤還是失敗

    4.2.2 Serproxy 介面介紹

    Serproxy是一個伺服器,它的功用是負責連結Arduino和電腦之間的一個介

    面,簡單來說,就是負責呼叫windows來對USB介面傳送資訊的介面,而這種連

    結用的介面,可以運用各種程式來撰寫,例如運用 ++C ,BCB,Flash,VB等,

    皆可撰寫出此種連接介面,但通常他所需要的函式,一般來說最原始的資料在廠

    商的技術手冊裡面,因此必須透過廠商提供,才能拿到,而在購買Arduino的時

    候,就可以在他們的官方網站下載到Serproxy,因此省去了很多時間,且Serproxy

    的原始碼開放的,因此可以自行修改。

  • 26

    4.2.3 FLASH Action Script 3.0 介紹

    Flash 的發展,從Flash Player到Flash Player10,程式語言也從零散的動畫指

    令,到現在已經具有物件導向精神的Action Script 3.0。在Action Script 3.0中,取

    消了許多Action Script 2.0的語法或者函式,但是因為Action Script 3.0整體不僅效

    能提升了很多,更加嚴警的語法加上功能強大的類別,讓Flash的效果用來用多,

    也讓開發者可以有更多的運用和發展。

    而Action Script 3.0看起來就像是Action Script 2.0的版本升級,但整個核心架構卻

    是大大不同,語法也徹底翻新,對初學者來說,學習Action Script 3.0的門檻會變

    得較高,而對於原本就有Action Script 2.0底子的人只需要多花點時間亦可容易上

    手,而具有Jave和 ++C 的人來說,再物件導向的觀念中會非常熟悉。Action Script

    3.0的介面如下圖4.3所示。

    圖 4.3 Flash Action Script 3.0 介面

  • 27

    4.3 軟體製作

    4.3.1 Arduino IDE 程式碼說明

    在此程式碼中,主要的流程為五個步驟,如下表4.2所示。

    表4.2 Arduino IDE 程式碼之步驟

    步驟 步驟說明

    一 先定義需要用到的腳位和變數。

    二 指定Arduino與電腦交換訊息的速率。

    三 利用迴圈將超音波訊號重複進行輸入

    與輸出。

    四 將資料存入暫存器中。

    五 利用led燈觀察值的傳入狀況。

    Arduino IDE 程式碼:

    int u = 0; //定義超音波的 input 腳位為第 0 的接腳

    int led = 13; //定義 led 的 input 腳位為第 13 的接腳

    int val = 0; //超音波類比訊號數值暫存變數為 0

    int delayTime = 0; //延遲時間數值暫存變數為 0

    void setup() //程式開始

    {

    Serial.begin(9600);

    //指定 Arduino 與電腦交換訊息的速率,通常都使用 9600bps

  • 28

    pinMode(led, OUTPUT); //將數位腳位 led 指定為輸入模式

    delayTime = 1760/60; //設定整個回傳數值的速時間差為 1760/60,約 0.03 秒

    }

    void loop () { //程式迴圈開始

    val = analogRead(0)*2; //將超音波傳入的類比訊號*2 倍

    Serial.println(val); //將數值訊息送出

    Serial.println(0, BYTE); // 類比訊號以 BYTE 的形式傳入

    Serial.flush();

    //利用 flush 含式把資料存放到 Arduino 的 buffer 區中,確保資料是最新的

    digitalWrite(led, HIGH) ;// 將 led 的腳位設定為 hight

    delay(val*2); //delay 超音波傳入的類比訊號*2 倍

    digitalWrite(led, LOW); //將 led 的腳位設定為 low

    delay(val*2); } //delay 超音波傳入的類比訊號*2 倍

  • 29

    4.3.2 Serproxy 開放程式碼說明

    在Serproxy的程式碼中,只有3個部分是可以更改的,如下表4.3所示。

    表4.3 Serproxy的程式碼更改說明

    更改部分 更改部分說明

    一 若是連結Flash的程式請設定true

    二 指定Serproxy與電腦交換訊息的速率。

    可以設定想要連結的port,若我們只需

    要用到port 1則設定5331,若我需要用

    到port 2則設定5332,在Serproxy最多只

    能到port 8也就是5338

    Serproxy 程式碼:

    # Config file for serproxy // serproxy 的配置

    # Transform newlines coming from the serial port into nils

    //傳送新的符行進入串連通訊中

    # true (e.g. if using Flash) or false

    //或是連結 Flash 的程式請設定 true

    newlines_to_nils=true //新的符行是 true

  • 30

    # Comm ports used //所需要用到的 port

    comm_ports=1 //我們只需要用到 port1

    # Default settings //可承認的設定

    comm_baud=9600 // serproxy 與電腦交換訊息的速率

    comm_databits=8 //以 8 位元傳送

    comm_stopbits=1 //傳輸中的間距為 1 個 bit

    comm_parity=none //沒有設定優先性

    # Idle time out in seconds //傳輸的時間設定

    timeout=300 //傳輸時間是 0.3 秒

    # Port 1 settings (ttyS0) // Port 1 的設定

    net_port1=5331 // Port 1 的代碼為 5331

  • 31

    4.3.3 FLASH Action Script 3.0 程式碼說明

    一開始必須先用 Action Script 3.0 的.as 檔,寫出一個套件,而套件在 FLASH

    中是可以被.fla 檔案繼承的。而在 Flash.fla 的程式中則是用來設計物件的樣式

    Flash.as 程式碼:

    /*

    首先,先建立一個資料的套件,

    而這個套件支援所有當使用 event.data 這個函式時的 flash.fla 檔案,

    並且可以和 Serproxy 互相連結,

    且支援 port1 到 port8 的資料傳輸

    */

    package { //先預設一個套件

    /*

    將所有的類別引入套件中

    */

    import flash.display.Sprite;//引入影片的類別

    import flash.net.XMLSocket;//引入 xml 資料儲存的堆疊

    import flash.events.*;//引入所有的監聽資料

    /*

    定義一個可以讓 Arduino 繼承 XMLSocket 的類別

    */

    public class Arduino extends XMLSocket{

    //利用 public 將 Arduino extends XMLSocket 定義為一個公開的類別,

    任何套件都能用

    private var _connected :Boolean = false; // 是否已連結

    private var _host :String = "127.0.0.1"; // 主機名稱或是 IP 位址

  • 32

    private var _port :int = 5331; // 設定連結埠號

    //建立我們所需要的 port 號碼和主要的ip位置

    //read the documentation of the SerialProxy to better understandwhat this means

    public function Arduino(port:int = 5331, host:String = "127.0.0.1") {

    super();//使用 super() 陳述式,明確呼叫其直屬父類別的建構函式

    /*

    如果 port < 1024) || (port > 65536 的時候,就追蹤 Arduino 的 port 並且在 serproxy

    讀取檔案

    若不是則 port 不等於 port

    */

    if((port < 1024) || (port > 65536)){

    trace("** Arduino ** Port must be from 1024 to 65535 ! read the Flash

    Documentation and the serProxy config file to better understand");

    }else{

    _port = port;

    }

    _host = host;//檢查主機主機名稱

    // 重新設定監聽

    configListener(this);

    xconnect();//自動連接

    }

    // 重新設定監聽

    private function configListener(dispatcher:IEventDispatcher):void{

    dispatcher.addEventListener(Event.CLOSE, closeHandler);

    dispatcher.addEventListener(Event.CONNECT, connectHandler);

    dispatcher.addEventListener(DataEvent.DATA, dataHandler);

    dispatcher.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler);

  • 33

    }

    //---------------------------------------

    // 連接成和連接失敗時並且回報

    //---------------------------------------

    //連結 XMLsocket

    public function xconnect ():void {

    super.connect(_host, _port);

    }

    // 從 xmlsocket 傳回連接失敗的訊息

    public function disconnect () { //以 public 函式設定為公開

    的訊息

    if (_connected) {

    super.close();

    _connected = false;

    }

    }

    // 繼續保持聯結

    private function connectHandler(event:Event):void{

    trace("** Arduino ** Connecting to "+_host+":"+_port+" . . .");

    }

    // 當 Arduino 斷線時顯示段線

    private function closeHandler(event:Event):void{

    trace("** Arduino ** disconnected");

    }

    // 持續追查資料

    private function dataHandler(event:DataEvent):void{}

    // 當 serialProxy 沒開時顯示** Arduino ** Connection failed! you must launch the

    serialProxy first"

  • 34

    private function ioErrorHandler(event:IOErrorEvent):void{

    trace ("** Arduino ** Connection failed! you must launch the serialProxy

    first");

    }

    private function onDataReceived (str:String) {

    e_onReceiveData(str);

    }

    /*

    //---------------------------------------

    // EVENTS

    //---------------------------------------

    當輸入 ctrl+enter 時資料會去追.fla 檔

    */

    private function e_onReceiveData (str:String){

    trace("** Arduino ** onDataReceived str:"+str);

    var evt = {target:this, type:"onReceiveData"};

    evt.data = str;

    dispatchEvent(new Event(evt));

    }

    }

    }

    Flash.fla 程式碼

    // 在舞臺上畫 3 個方塊,並命名為 square

    for(var i:int=0 ;i

  • 35

    square1.graphics.lineTo(50,0); //畫線 x 軸為 50

    square1.graphics.lineTo(50,50); //畫線連接 x 軸 50 到 y 軸 50

    square1.graphics.lineTo(0,50); //y 軸為 50

    square1.graphics.lineTo(0,0); //在(0,0)位置合併

    square1.graphics.endFill(); //元全填入顏色

    square1.rotation=Math.random()*60; //以亂數 0~60 指定 rotation 的值

    square1.scaleX=Math.random()*0.5; //以亂數 0~0.5 指定縮放大小

    square1.scaleY=square1.scaleX; //y 軸的縮放大小和 x 軸相同

    square1.x =Math.random()* 300; // square1 x 軸的位置以以亂數 0~300 取數

    square1.y =Math.random()* 400; // square1 y 軸的位置以以亂數 0~300 取數

    this.addChild(square1);} //加入這個物件,在開場的時候

    //-----------------------------------------------------------------------

    for(var k:int=0 ;k

  • 36

    for(var j:int=0 ;j

  • 37

    var step2:Number = sMax2 / 1024;

    var curPos2:Number = 0;

    //---------------------------------------------------

    var squareWidth3:Number =square3.width;

    var squareheight3:Number =square3.height;

    var sMax3:Number = stage.stageWidth - squareWidth3+

    stage.stageHeight - squareheight3;

    var sMin3:uint = 0;

    var step3:Number = sMax3 / 1024;

    var curPos3:Number = 0;

    //--------------------------------------------------

    //實作,並建立 5334 port

    var a:Arduino = new Arduino(5331); //定義 Arduino 為 Arduino(5331)

    a.addEventListener(DataEvent.DATA, receiveData);//監聽這個資料

    //接收從 Arduino 的數值

    function receiveData(event:DataEvent):void{

    //起動功能函式並且 trace 數值

    trace(event.data);

    var newPos1:Number = sMax1- event.data *step1; //定義新的位置

    //-----------------------------------------------------

    var newPos2:Number = sMax2- event.data *step2;

    //----------------------------------------------------

    var newPos3:Number = sMax3- event.data *step3;

    //---------------------------------------------------

    var foo1:Number = newPos1 - curPos1;//定義 foo 為控制的他移動的變

  • 38

    if((foo1 < -2) || (foo1 > 2)){

    //利用 if 當(foo1 < -2) || (foo1 > 2 時會移動

    square1.x = newPos1 ;

    curPos1 = newPos1;}

    //-------------------------------------------------------

    var foo2:Number = newPos2 - curPos2;

    if((foo2 < -2) || (foo2 > 2)){

    square2.y = newPos2 ;

    curPos2 = newPos2;

    }

    //-------------------------------------------------

    var foo3:Number = newPos3 - curPos3;

    if((foo1 < -2) || (foo1 > 2)){

    square3.x = newPos3 ;

    square3.y = newPos3 ;

    curPos3 = newPos3;}

    }

  • 39

    第 5 章 實驗結果

    5.1 硬體成果:

    主要呈現發射端跟接收端的實際操作以及結合之後。

    5.1.1 實際發射電路:

    在焊接發射電路前,先以麵包板做為測試,如圖 5.1 所示。

    圖 5.1 實際的發射電路

    由圖 5.1 的實際發射電路中將訊號接入示波器後,可以清楚的看出方波,如圖 5.2 所示,但並沒有像理想的方波一樣那麼穩定,還是會有微小之雜訊。

    圖 5.2 發射端感測器輸入訊號

  • 40

    而利用發射電路所發射出的方波,讓接收端電路接收後所呈現的波形為一個

    弦波之圖形,如圖 5.3 所示,從圖 5.2 及 5.3 知道,發射端到接收感測器並無明

    顯頻率衰減問題。

    圖 5.3 接收端感測器收到的訊號

  • 41

    5.1.2 超音波實際接收電路:

    在焊接接收電路前,先以麵包板做為測試,如圖5.4所示。

    圖5.4 超音波實際接收電路

    由圖 5.4 的實際接收電路中將訊號接入示波器後,將障礙物之於感測器之上,示波器會有所動作如圖 5.5 所示,但並沒有像理想的狀態一樣那麼穩定,還是會有微小之雜訊,且並不像方波,若不能呈現出方波之形狀,對後端的輸出,

    會因此而不穩定。

    圖5.5 超音波實際接收端感測物體輸出訊號

  • 42

    5.1.3 發射接收串接之後的電路:

    因為最初的目標是希望能將超音波感測器的接收端和發射端,架於電腦螢幕之正上方,因此決定將超音波發射電路和超音波接收電路一起焊接於同一塊電路

    板上,因此先利用麵包板測試,如圖 5.6 所示,圖 5.7 為焊接完後之成品。

    圖5.6 完整感測器的電路

    圖5.7 完整感測器焊接成品

  • 43

    焊接之後雜訊有明顯增加,故使用 74ls14 做整流改良。傳送至 Arduino 的訊

    號有明顯改善。如圖 5.8。

    圖5.8 由接收端輸出至Arduino的訊號

  • 44

    5.2 軟體成果

    (1)在軟體上,當啟動Arduino IDE時是確定正確無誤的,圖5.9所示

    圖5.9 在Arduino IDE上Debug後正確無誤

  • 45

    (2)順利燒錄到Arduino電路板後,開啟Serproxy並且執行Flash ActionScriot 3.0後

    是沒有發生錯誤的,圖5.10所示

    圖5.10 Serproxy開啟後正確無誤

    (3)Flash.as和Flash.fla在開啟後Debug也是正確無誤如圖5.11和圖5.12所示

    圖5.11 Flash.as在Debug後正確無誤

  • 46

    圖5.12 Flash.fla在Debug後正確無誤

    (4)在啟動Flash過後,當手接近超音波時,Flash裡面的物件確實會因為手距離的

    改變,Flash的物件,會因為超音波類比的刺激量,跟隨移動如圖5.13所示

    圖5.13 Flash的物件產生和移動

  • 47

    且在Flash輸出知地方也會顯示,類比刺激量兩倍過後的數值和變動,如圖5.14

    所示

    圖5.14 Flash輸出處產生數值

  • 48

    第 6 章 結論與展望

    6.1 結論

    根據上一章所述,電路板和每一個程式其實都有按照理論在動作,而在最後

    將所有電路和程式拼湊起來後卻會因為超音波的來回接收的速度過快,使電腦無

    法正確的傳達訊號,有時還會當機,而透過示波器,我們觀察到電路有時會有微

    小的擾動,也導致 Flash 物件有時無法正常運作,在這裡我們可以大膽的假設問

    題電源的干擾,特別是麵包板的雜訊過大,如果用 PCB 板,相信電路即能順利

    動作。另外許多值得改進的地方,特別是超音波 buffer 的部分,在控制方面可加

    以修正,例如可再利用 8051 的單晶片做暫存器的控制,也可以再利用期的軟體

    介面做處理。另外增加距離的判斷以及可測距離的增加都是未來可以繼續研究的

    主要方向。

    6.2 未來展望

    可將專題做出判斷動作的能力,因為目前只能做到以x軸為標準位置的程

    度,若能在以後增加更多顆的超音波接收器,甚至到y和z的程度,便可更細部

    的辨別人體的動作,增加更多的訊息提供給電腦,使之具有資料庫,可以判斷目

    前人是處於快速移動、跌倒等狀態,並且及時性的傳送訊息以及在危險狀況時透

    過資料庫判斷做緊急的處理。加上超音波不會像攝影機顯示出人的長相,放置於

    公共場具有高度的隱私性。或且做人臉識別,根據所接收到的訊息做人臉特徵的

    處理。也甚至可以更進一步的做出和互動的模式,使用在復健或是遊戲。

  • 49

    參考文獻

    [1]中央研究院計算中心後設資料工作組「人體動作質地分析與肢體情緒數位傳

    達應用開發三年計畫(第一年度)」「動作分析與動作資料庫後設資料設計」

    [2]魯智寶,人體運動學資料之網路視覺化模擬評估平台開發,朝陽科技大學工

    業工程管理系碩士論文,2005

    [3]藍善凡,以Particle Filter和NBP偵測人體動作參數,國立清華大學電機工程學

    系碩士論文,2007

    [4]李錫堅,智慧型居家意外事件之評估與偵測,行政院國家科學研究院,

    PB9401-0311

    [5]游坤憲,超音波測距系統之研究,逢甲大學自動控制工程學系專題論文,2004

    [6] 周治軒,超音波動態測距系統,逢甲大學自動控制工程學系專題論文,2004

    [7] 鄭政東編譯,超音波工程,全華圖書,民國88年

    [8] 谷腰欣司,趙中興編譯,感測器,全華圖書,民國95年

    [9]奶綠茶(筆名),Flash 3D特效宅急便,旗標出版,民國98年

    [10] 林新德,FLASH Cs3 Action Script 3.0 應用程式設計,博碩文化,民國96年

    [11] 黃新峰,FLASH Action Script 3.0 範例應用20例,松岡出版,民國98年

    [12] 林義翔譯,踏進互動科技世界-使用Arduino ,旗標出版,民國98年

    感謝到表目錄改,英文未Interaction Design of Ultrasound and Arduino Embedded System感謝中文摘要Abstract

    專題改緒論前言1.2 研究動機

    第2章 超音波原理探討2.1 何謂超音波2.1.1 超音波的傳播速度2.1.2 超音波的特性

    2.2 超音波的產生2.2.1 直接壓電效應2.2.2 逆壓電效應

    2.3 超音波等效電路2.4 超音波感測器種類2.5 超音波使用方式2.6 超音波感測器的注意事項2.7 超音波人體感測原理2.7.1 物體移動2.7.2 物體的細部動作

    第3章 硬體系統架構與性質3.1 硬體電路架構3.2電路探討3.2.1超音波發射電路3.2.2 超音波接收電路3.2.3 Arduino硬體探討3.2.3.1 Arduino嵌入式系統介紹3.2.3.2 Arduino特色3.2.3.3 Arduino電路板之接腳介紹

    第4章 軟體系統架構與性質4.1 主架構圖4.2 軟體介紹4.2.1 Arduino IDE (Arduino Integrated Development Environment)4.2.2 Serproxy 介面介紹4.2.3 FLASH Action Script 3.0 介紹

    4.3 軟體製作4.3.1 Arduino IDE 程式碼說明4.3.2 Serproxy 開放程式碼說明4.3.3 FLASH Action Script 3.0 程式碼說明

    第5章 實驗結果5.1 硬體成果:5.1.1實際發射電路:5.1.2超音波實際接收電路:5.1.3發射接收串接之後的電路:

    5.2 軟體成果

    第6章 結論與展望6.1 結論6.2 未來展望

    參考文獻