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

48
逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文 頭控系統 Head Control System 指導教授:黃榮興 生:白易民 陸龍綿 張哲瑋 中 華 民 國 九 十 二 年 五 月 三 十 日

Transcript of 逢 甲 大 學 自動控制工程學系專題製作 專 題 論...

Page 1: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

逢 甲 大 學

自動控制工程學系專題製作

專 題 論 文

頭控系統

Head Control System

指導教授:黃榮興

學 生:白易民

陸龍綿

張哲瑋

中 華 民 國 九 十 二 年 五 月 三 十 日

Page 2: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3
Page 3: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

感謝

感謝逢甲自動控制工程學系的師長、學長姐在學業上的指導;特別是專題的

指導教授黃榮興老師,他給予我們充分的空間及資源,而在我們遇到疑難的時候,

也提供適當的指導和協助。

另外,還要感謝機電整合實驗室的學長廖銘暘,協助我們解決製作專題過程

中遇到的許多困難;還有研究所的學長黃柏強、許宏駿、資訊系研究所的的學長

劉益源,也熱心幫忙解答疑難,讓我們得以順利完成這個專題;也要多謝賴德城

同學借我們很棒的數位相機,讓這份專題增色不少。

i

Page 4: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

中文摘要

目前頭控系統已有幾種成熟的技術,如使用雷射、CCD 作為主要的感測器;

在本專題中,我們以陀螺儀為藍本設計一個以光遮斷器為主要感測器的頭盔裝置

來感應駕駛者頭部姿態,希望讓頭部狀態的改變反應至場景上,使駕駛者有身歷

其境的感覺。

ii

Page 5: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

Abstract

At present there are several mature technologies in head control system which use laser,

CCD as main sensor. In this monographic study, we take the gyroscope as original version to

design a helmet which use light blinder as main sensor to detect the driver’s head attitude,

and we hope the change of head attitude can respond to the scene, to make the driver feel the

reality.

At the moment this system can combine with the three-leg six-DOF platform, to conduct an experiment of dynamic simulation.

iii

Page 6: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

目錄

感謝……………………………………………………………………………… i

中文摘要………………………………………………………………………… ii

Abstract………………………………………………………………………… iii

目錄……………………………………………………………………………… iv

圖目錄…………………………………………………………………………… vi

表目錄…………………………………………………………………………… viii

第一章 緒論…………………………………………………………………… 01

1.1 研究背景與動機……………………………………………………… 01

第二章 理論基礎……………………………………………………………… 02

2.1 光感測器原理………………………………………………………… 02

2.2 光遮斷器特性………………………………………………………… 03

2.3 光遮斷器與光學編碼………………………………………………… 05

第三章 硬體架構……………………………………………………………… 07

3.1 系統硬體架構………………………………………………………… 07

3.2 硬體電路設計………………………………………………………… 08

3.2.1 光遮斷器驅動電路………………………………………… 08

3.2.2 轉向判斷電路……………………………………………… 09

3.2.3 訊號處理電路……………………………………………… 13

3.2.4 電路板佈線及製作………………………………………… 14

3.3 硬體架構設計………………………………………………………… 17

第四章 軟體架構……………………………………………………………… 21

4.1 系統軟體架構………………………………………………………… 21

4.2 8051 系統架構………………………………………………………… 22

iv

Page 7: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

4.3 接收端程式…………………………………………………………… 27

第五章 實驗結果與討論……………………………………………………… 34

5.1 感測器電路測試……………………………………………………… 34

5.2 8051/RS-232 連線測試………………………………………………… 35

5.3 頭控系統測試………………………………………………………… 36

第六章 結論與未來展望……………………………………………………… 37

6.1 結論…………………………………………………………………… 37

6.2 未來展望……………………………………………………………… 38

參考資料………………………………………………………………………… 39

v

Page 8: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖目錄

圖 2.1 穿透型光遮斷器……………………………………………………… 03

圖 2.2 反射型光遮斷器……………………………………………………… 03

圖 2.3 光電晶體的等效電路………………………………………………… 04

圖 2.4 光電晶體的基本電路………………………………………………… 04

圖 2.5 基本光學編碼器……………………………………………………… 06

圖 2.6 增量型光學編碼器…………………………………………………… 06

圖 2.7 絕對型光學編碼器…………………………………………………… 06

圖 3.1 系統裝置示意圖……………………………………………………… 07

圖 3.2 光遮斷器電路………………………………………………………… 08

圖 3.3 光柵裝置圖…………………………………………………………… 09

圖 3.4 D 型正反器時序圖…………………………………………………… 10

圖 3.5 轉向判斷電路………………………………………………………… 11

圖 3.6 MAX plus ΙΙ 8.0 設計轉向判斷電路………………………………… 12

圖 3.7 MAX plus ΙΙ 8.0 模擬結果…………………………………………… 12

圖 3.8 訊號處理電路………………………………………………………… 13

圖 3.9 訊號處理實體………………………………………………………… 14

圖 3.10 電路佈線……………………………………………………………… 15

圖 3.11 電路板上層…………………………………………………………… 15

圖 3.12 電路板下層…………………………………………………………… 15

圖 3.13 未安裝電路板的盒子內部…………………………………………… 16

圖 3.14 安裝電路板之後的盒子內部………………………………………… 16

圖 3.15 框架立體圖…………………………………………………………… 17

圖 3.16 框架實體……………………………………………………………… 17

vi

Page 9: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖 3.17 感測器側視圖………………………………………………………… 18

圖 3.18 簡易陀螺儀…………………………………………………………… 18

圖 3.19 轉軸結構圖…………………………………………………………… 19

圖 3.20 轉軸實體圖…………………………………………………………… 19

圖 3.21 轉軸導線……………………………………………………………… 20

圖 4.1 DMA-USB FX 外觀…………………………………………………… 21

圖 4.2 8051 串列埠傳送接收電路…………………………………………… 21

圖 4.3 8051/ICL232 裝置……………………………………………………… 22

圖 4.4 8051 串列傳輸流程圖………………………………………………… 24

圖 4.5 8051 模擬器…………………………………………………………… 26

圖 4.6 接收程式……………………………………………………………… 29

圖 5.1 感測電路測試………………………………………………………… 34

圖 5.2 串列傳輸測試………………………………………………………… 35

圖 5.3 頭控系統測試………………………………………………………… 36

vii

Page 10: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

表目錄

表 2.1 光感測器的種類……………………………………………………… 02

表 3.1 D 型正反器真值表…………………………………………………… 10

表 3.2 J-K 正反器真值表…………………………………………………… 13

表 4.1 串列埠之四種工作模式……………………………………………… 23

表 4.2 ASCII 碼對照表……………………………………………………… 27

viii

Page 11: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

第一章 緒論

1.1 研究背景與動機

隨著模擬技術的進步,配合三桿六自由度動感平台的發展,希望把真實的可

視區域也能加入模擬的一環,因此需要一個可以偵測頭部姿態的裝置,以便將偏

轉角度與顯示器的結果作結合,使所見到的虛擬場景能隨著頭部的轉動而改變,

來達到身歷其境的模擬效果;目前已有多種相關的技術,像是利用陀螺儀、CCD、

雷射等作為主要的量測感測器,雖然精確度不錯,但相對的價位也相當高。

因此想要利用較便宜易得的感測器,以期能設計出一套具有概略估計頭部姿

態的感測裝置,裝置的主要功能在判斷各個軸的偏轉角度,所以優先考慮旋轉感

測器,在感測器的選擇上主要針對光感測器和由磁環和霍爾 IC 構成的磁性感測元

件,但因磁性感測器價格較光感測器高,且在安裝設計上也較為困難,所以在本

專題中採用光遮斷器作為主要的感測元件,並應用所學過的電路學、電子學、8051

單晶片、程式語言,製作出低成本的頭控系統。

1

Page 12: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

第二章 理論基礎

2.1 光感測器原理

感測器是一種能量測各種物理量或化學量的變化然後輸出的裝置,一般以電

氣訊號來表示,而光感測器是一種能把光能轉換成電能的變換器,通常將這種光

和材料間的物理作用稱為「光電效應」,光電效應會隨著入射光的波長、強度及接

收材料的不同,而有不同的特性;光感測器的檢測對象,除了可見光之外,還有

紅外線、紫外線等不可見光,可視要檢測的對象來決定所要使用的光感測器,其

應用範圍也相當廣。

光感測器的種類很多,表 2.1 是光感測器分類表,和一些常見的代表元件,

雖然分成許多類型,但最重要的是光電二極體,像光電晶體等都是以光電二極體

為基礎所發展出來的,此外因其價格便宜、使用簡便,所以本專題選用屬於光感

測器的光遮斷器來做主要量測元件[01]。

表 2.1 光感測器的種類

PN 光電二極體 PIN 光電二極體 雪崩光電二極體 光電電晶體(光電達靈頓)

有接合

光電 IC、光電閘流體(光電反射器、光電斷路器) 光導電元件

無接合 焦電元件

真空管類 光電管、光電倍增管、攝影管 彩色感測器 固體圖像感測器 檢出位置用元件(PSD)

其他分類

太陽電池(光電二極體)

2

Page 13: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

2.2 光遮斷器特性

光遮斷器通常是用來判斷是否有物體通過的裝置,光遮斷器的組成要件是發

光二極體和光電晶體,將兩者相對分立包裝在同一基座上,一般可以分成穿透型

及反射型兩種,如圖 2.1 是穿透型,當不透光板進入凹槽的時候,把光擋住光電

晶體就不導通;而圖 2.2 是反射型,發射端和接收端都在同一側,當物體靠近時

會把光反射到光電晶體,二者都相當於是當作開關使用的光感測元件;其應用相

當廣泛,旋轉時之脈波計算、磁碟機及滑鼠等產品都會用到光遮斷器做為定位控

制開關。

不透光板

光電晶體

基座

發光二極體

����������������������������������������������������������������

�����������������������������������������������������������������������������

����������������������������������������������������������������

��������������������������

��������������������������

反射物

發光二極體 光電晶體

光學透鏡

圖 2.1 穿透型光遮斷器 圖 2.2 反射型光遮斷器

而構成光電晶體的主要元件是光電二極體,光電二極體主要是受光照射後,

其端電流會隨照度大小或波長長短而改變,但是光電二極體的光電流非常小,通

常需要再做適當的電流放大,所以就將光電二極體和電晶體做在一起,形成光電

晶體,如圖 2.3 所示,所以其特性是在光電二極體輸出特性上,加入電晶體的特

性。

光電晶體和一般電晶體不同的地方,是其集極電流是由基極電流上的光線所

觸發的,當光照射到光電二極體的時候,所產生的光電流會經由電晶體的基極輸

3

Page 14: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

入,因此可以得到把光電二極體的光電流放大β倍的電流變化,β是電晶體的電

流放大率,有些光電晶體中會用達靈頓電晶體來取代電晶體,這類光電達靈頓電

晶體能得到較大的電流輸出,約放大β2 倍乘上光電流;其中光電晶體不必外加偏

壓電路以產生順向電流,即照度的大小將決定光電晶體輸出電流的大小,也就是

說入射光的強度愈強,輸出電流就愈大,並會使得電晶體的 C、E 端電壓下降,

此時集極電流導通,光遮斷開關為通路,而當發光二極體和光電晶體間的光線被

遮斷時則形成斷路。

光電晶體一般是在基極(B)開路狀態下使用,而將電壓施加於射極(E)與

(C)之兩個端子,以便將逆向偏壓施加至集極的接合部分,當照度等於零時,

理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體

放大後容易對輸出造成干擾,加上環境中的外來光源影響,都是使光電晶體輸出

產生誤差的主要因素。

光電二極體

IPC

IP

IB

C

E

B

光電晶體

V

RE

IC

(a)

V

RL

IC

(b)

圖 2.3 光電晶體的等效電路 圖 2.4 光電晶體的基本電路

光電晶體的輸出型式有二種,射極輸出型和集極輸出型,圖 2.4 (a)為射極

輸出型,其輸出是由電晶體的射極輸出,所得到的光信號與輸出的信號相同,另

一為集極輸出型,如圖 2.4 (b)所示,其信號與輸出的信號反相,在相同入射光

4

Page 15: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

量下,取相同的負載電阻時,則以集極輸出型所得之輸出信號較大。在本專題中

選用內含二個光電晶體的光遮斷器,因其構造的關係,所以採用射極輸出型電路

來做基本的輸出。

2.3 光遮斷器與光學編碼

光遮斷器常當做光學編碼器,用來偵測轉動的變化量,而編碼的方式大致可

分成以下幾種。

最基本的編碼是由一組光遮斷器組成,如圖 2.5 所示,由轉軸帶動刻有等間

隔缺口的光柵圓盤,分別將發射端與接收端置於光柵兩側,所以當光柵旋轉時,

光電晶體將接收到斷續的光源,並送出斷路與通路的訊號,可以用來量測轉速,

但無法判斷轉動的方向。

另一種稱做「增量型光學解碼器」,如圖 2.6 所示,增量型解碼器需要二組光

遮斷器,由內部軌道的第二組光遮斷器提供一個起始參考點,然後在通過每一個

缺口的光接收器時,計數值被更新一次;以上二種編碼方式都是靠計數脈波來編

碼,其精密度由缺口的數目而定,當缺口數目越多、劃分越細密,所能量測的角

度位置精度就越高。

另一種形式的光學解碼器,則是輸出角度的絕對位置,稱做「絕對型光學解

碼器」;絕對型光學解碼器採用多個軌道,每一軌道均有一組光遮斷器,每個光接

受器提供一個位元 0、1 輸出,如圖 2.7 為四軌道(4 位元)使用「葛雷碼(Gray code)」

的絕對型光學解碼器,圓盤被分為 24=16 個區域,因此解析度是 360° /16=22.5° ,

要有更好的解析度就必須加入更多軌道,如八軌道(8 位元)角度解析度為 360

° /28=1.4° 。葛雷碼相鄰間隔之間每次只能有一個位元的變化,如此可以減少因

光接受器讀取錯誤造成的誤差[02]。

5

Page 16: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

發光二極體 光電晶體

������������������

轉軸

光柵

圖 2.5 基本光學編碼器

圖 2.6 增量型光學編碼器

圖 2.7 絕對型光學解碼器

6

Page 17: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

第三章 硬體架構

3.1 系統硬體架構

本專題中使用三組光遮斷器和光柵構成主要的感測器,用來量測出頭部姿

態,並透過 8051 單晶片用 RS-232 串列通訊埠與電腦溝通,其系統架構如圖 3.1

所示。

使用者

感測器8051

顯示螢幕 主機

圖 3.1 系統裝置示意圖

把感測器裝載於使用者的頭頂上,利用感測器來量測使用者頭部的前後、左

右及旋轉三種姿態,再把訊號送到電腦由螢幕顯示,其中的感測器主要是用二個

光遮斷器來當做旋轉感測器,搭配光柵圓盤,藉由旋轉光柵,會重複產生光的通

過、遮斷動作,相當於接收器光電晶體形成 ON-OFF 交互切換的動作,經過判斷

電路得到 0、1 的邏輯輸出脈波,再經由 8051 用 RS-232 將訊號送到電腦處理;

軟體方面用 Visual Basic 來寫接收感測器訊號的程式。所以接下來將對硬體感測

器方面的設計,及軟體 8051、VB 的撰寫這二方面來做討論。

7

Page 18: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

3.2 硬體電路設計

在此章節中將對所用的感測器電路、訊號判別、處理電路做討論,並對電路

做模擬、分析及說明。

3.2.1 光遮斷器驅動電路

本專題中設計來量測頭部姿態的裝置,其主要是使用光遮斷器所組成,而所

用的光遮斷器和光柵是從滑鼠上取得,其內部是由二個光電晶體的集極為共點所

構成,所以在電路設計時用射極輸出,所輸出的信號再以一個 NPN 電晶體加以放

大。

圖 3.2 是一組光遮斷器的電路設計圖,圖中紅色虛線表光遮斷器,由一個發

射器和兩個光電晶體所構成,其中 R1 為限流電阻,避免電源電流太大而把發光

二極體燒掉,而 Q1、Q2 為 NPN 電晶體用來做共射極放大器,放大輸出信號,當

光柵阻斷 A 的光源時,則 A 輸出端會產生一個由低電位到高電位的變化輸出,若

阻斷 B 則 B 輸出端產生輸出,當光柵轉動時會分別遮住 A、B 二光遮斷器,產生

二個相位不同的脈波,藉由脈波相位領先、落後的差異可以判斷出光柵轉動的方

向。

R1

Q2

Q1光遮斷器

A輸出

B輸出

A

B

圖 3.2 光遮斷器電路

8

Page 19: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖 3.3 是實際裝置的示意圖,要注意的是光柵與光遮斷器之間的距離關係,

因為 A、B 二個光電晶體是並排在一起的,且相隔的距離非常的近,所以光柵轉

軸必須在二個光電晶體中心線上,確保光柵轉動時能完全的阻斷 A、B 所接收的

光源,以免產生干擾訊號,此外若是轉動時光柵與發射端、光電晶體不能保持穩

定,也會產生誤差;另外在輸出端加上史密特觸發器,因為史密特觸發器的遲滯

電壓可以把電壓調整成方波,藉此把光遮斷器輸出的波形做整形,減少雜波干擾

藉此消除接點反彈跳效應,以提高訊號的穩定度[03]。

�������������������������������������������������������������� 軸心

光柵

光遮斷器

光電晶體光發射端

A B

逆向

順向

圖 3.3 光柵裝置圖

3.2.2 轉向判斷電路

轉向判斷電路主要是利用 D 型正反器構成,正反器的輸出狀態是由輸入訊號

和控制訊號共同決定的,當決定之後就會一直保持到改變的訊號出現為止,從表

3.1 的真值表中可知 D 型正反器的主要功能是當輸入脈波發生時,將資料由輸入

端 D 送至 Q 端輸出,當沒有脈波輸入時,輸入端 D 與輸出端 Q 之間是相互隔離

的,而輸出端 D 的狀態會保持不變,通常 D 型正反器被做為儲存資料之用。

9

Page 20: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

正反器有三種觸發的型態,正緣觸發是在輸入脈波電壓上升時輸出,負緣觸

發則是在輸入脈波電壓下降時輸出,而主僕式觸發是在輸入脈波上升時先將資料

讀入正反器內部,等到輸入脈波下降時再將內部資料送至輸出端,圖 3.4 是 D 型

正反器的時序圖,比較三種觸發型態的 D 型正反器產生的輸出結果,可以發現有

很大的差別,在本專題中使用的是正緣觸發的 D 型正反器,將輸入端 D 設定為 1,

利用脈波輸入端和清除端做為控制,讓輸出端 Q 能產生所要的脈波。

表 3.1 D 型正反器真值表

圖 3.4 D 型正反器時序圖

轉向判斷電路是用來判別光柵轉動的方向,利用二個 D 型正反器和二個反或

邏輯閘所組成,其電路如圖 3.5 所示,A、B 二個輸入端是由一個光遮斷器的二個

光電晶體輸出端所提供,另一端分別接往不同的正反器當作時序脈波輸入,當物

體經過光遮斷器 A 或 B 的瞬間,會觸發 A 或 B 所連接的 D 型正反器,使正反器

的 Q 輸出高電位,而 Q 產生的同時也經過反或邏輯閘把正反器做清除的動作,在

D 型正反器的清除端接上一個反或邏輯閘,可以把首先經過輸入端 A 或 B 的訊號

做輸出,其他的都透過反或邏輯閘來做過濾,也就是說當 A 觸發後 B 就不會被觸

發,而當 B 被觸發後 A 就不會被觸發。

10

Page 21: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

Q

QSET

CLR

D

Q

QSET

CLR

D

輸入端 A

輸入端 B 虛線方向輸出 OUT-2

VCC

VCC

圖 3.5 轉向判斷電路

實線方向輸出 OUT-1

在判斷時物體必須要完成 A→AB→B 或 B→BA→A 的遮斷程序,才能正確

判斷方向;而輸出端 Q 所輸出的是時間非常短之脈波,從觸發正反器到清除,整

個過程不過幾個 ns,因此在驗證上也較為困難,最初採用正反器鎖住突波,在一

個 D 型正反器的輸出端 Q 接上 LED,藉由 LED 來判斷訊號是否正確,但在操作

上較為不便,所以使用 MAX plus ΙΙ 8.0 這套 IC 設計軟體來模擬輸出結果。

圖 3.6 是將圖 3.5 的轉向判斷電路用 MAX plus ΙΙ 8.0 來設計,使用 7474 這顆

IC 內含二個 D 型正反器來構成;而圖 3.7 是轉向判斷電路的模擬結果,其中 in-A

與 in-B 代表 A、B 二輸入端訊號,而 out-A 與 out-B 代表判斷結果所輸出的脈波,

由圖可以驗證,當 in-A 或 in-B 先被遮斷之後,就會在對應的輸出端輸出一個脈

波,藉此判斷出轉動的方向。

在整個頭控系統的感測器中,使用了三組轉向判斷電路,用來量測三個軸的

變化,分別是前後、左右和旋轉這三個方向,實際電路上使用數位 IC 來組成,包

括有 7474 內含二個正緣觸發 D 型正反器、7402 內含四個 2 輸入反或邏輯閘以及

含有六個史密特觸發器的 7414[04]。

11

Page 22: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖 3.6 MAX plus ΙΙ 8.0 設計轉向判斷電路

圖 3.7 MAX plus ΙΙ 8.0 模擬結果

12

Page 23: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

3.2.3 訊號處理電路

因為轉向判斷電路所產生的輸出脈波時間太短,造成不管是 USB 微處理器或

8051 單晶片無法完成資料的擷取,所以在轉向判斷電路的輸出端,增加了這個訊

號處理電路,如圖 3.8,是利用 J-K 正反器特性來設計。

J

Q

Q

K

SET

CLR

VCC

輸入端輸出端

圖 3.8 訊號處理電路

表 3.2 是 J-K 正反器的真值表,當 J-K 正反器的 J=K=1 時,每個脈波由 CLK

輸入後,會使輸出變成原來的補數,所以利用此特性來延長轉向判斷電路輸出的

訊號,但光柵必須要轉動二格才能產生一個脈波,再利用電腦接收端的程式來做

修正,製作時使用數位 IC 7473 來設計,圖 3.9 是完成後的實體,因為輸出脈波時

間太短這個問題,是在主要的電路完成之後才發現的[04]。

表 3.2 J-K 正反器真值表

13

Page 24: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖 3.9 訊號處理實體

3.2.4 電路板佈線及製作

電路板是用 Workbench Layout 這套軟體來佈線,整個電路包含三組光遮斷器

驅動電路和三組轉向判斷電路,採用雙層板佈線以減少電路面積,方便裝設於頭

上,圖 3.10 是佈線的完成圖,其中藍色的點是焊點,藍色的框是電路板的外型,

紅色線表示下層的電路,而黑色線是表上層電路;Workbench Layout 雖然有自動

佈線的功能,但佈線引擎不是很強,加上面積較小,所以佈線時更加困難,只能

以手工來修改。

在製作方面,用雙面玻璃纖維感光電路板經過曝光、顯影和蝕刻三個步驟,

在蝕刻時因為所佈的線較細所以有部分缺失,事後用銲錫補上,完成蝕刻後再進

行切割和鑽孔,元件的焊接是較困難的部分,尤其是上層連接排線的部分,圖 3.11

和圖 3.12 是正面和反面的完成圖[05]。

14

Page 25: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖 3.10 電路佈線

圖 3.11 電路板上層

圖 3.12 電路板下層

15

Page 26: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

在主要電路板完成後,就以塑膠殼製作承載電路板的盒子,圖 3.13 為未安裝

電路板前的樣子,設計時將電路板與感測器分開,一方面方便製作,另一方面方

便檢查錯誤,而圖 3.14 是裝入電路板後的樣子。

圖 3.13 未安裝電路板的盒子內部

圖 3.14 安裝電路板之後的盒子內部

16

Page 27: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

3.3 硬體架構設計

硬體架構是參考陀螺儀的構造而設計,可以量測三個自由度的變化,其中在

前後、左右的擺動方面是靠重力來驅動,圖 3.15 是用 Auto CAD 所畫的前後、左

右二個軸的示意圖,當這二個方向上有改變時,重量會使框架維持在水平,並由

框架帶動光柵,藉此偵測出轉動的刻度,再經由電路判斷轉向,將訊號輸入到電

腦用軟體做角度的換算;而圖 3.16 是完成後的實體,因為框架在裝上光柵和光遮

斷器之後,會破壞原來所要的平衡,所以在框架上加裝銅製的螺絲,用來調整框

架的平衡,可以旋轉銅柱改變力矩來做平衡的微調。

圖 3.15 框架立體圖 圖 3.16 框架實體

框架的組成是以方型結構為主,因為這樣金屬片加工時較方便,且尺寸也較

容易掌握,在此之前嘗試過用圓弧型,但因金屬的彈性使得加工不易,且轉動時

容易因尺寸不合而卡到,圖 3.17 是框架側視圖,是靠重力來驅動的二個軸,可以

清楚的看到框架、光柵及光遮斷器的相對位置。

17

Page 28: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

��������������

���������������

左 右

光柵

光遮斷器4cm

5cm

1.8cm

圖 3.17 感測器側視圖

本裝置與陀螺儀最大的不同,也是最難克服的地方,就是旋轉這一個軸的量

測,設計方向朝著能不需外界輔助就能獨立運作,一開始嘗試過用小型馬達來產

生慣量,製造簡易陀螺儀,如圖 3.18 所示,但因轉速太慢、馬達太重、摩擦力太

大等因素,加上裝設困難且誤差大而沒有採用。

圖 3.18 簡易陀螺儀

18

Page 29: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

在經過多次的嘗試最後決定用磁力來解決,利用地磁與磁鐵來帶動轉軸,最

初用指南針和指南球都無法順利帶動光柵,因為磁力太弱無法負擔光柵的重量,

後來將光柵的轉軸裝上強力磁鐵,並削尖轉軸底部、加裝軸承於接點上,盡量減

少摩擦力的產生,如此一來才解決了在旋轉這個自由度上的問題,圖 3.19 是這個

裝置的側視圖和上視圖,而圖 3.20 是實際完成後的樣子,其中半圓形的塑膠殼是

方便用來固定磁鐵的。

������

����������������������������

���������������

���������������������������������������������

��������������������

���������������������������������������������������

N S

磁鐵

光柵

轉軸光遮斷器

轉動方向

4cm

1.8cm

圖 3.19 轉軸結構圖 圖 3.20 轉軸實體圖

19

Page 30: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

因為在設計上需要用磁力來做定位,所以在結構的材質上使用鋁合金來製造

框架,鋁合金不但不會影響磁力定位系統,而且在加工方面也較為容易,在框架

和導線的固定是用熱熔膠來黏接。

此外在轉動點的連接方面也是一大難題,因為既要能夠導電,同時又要使框

架能夠靈活的轉動,一般的銀絲線都辦不到,為了要盡量減少導線所產生的阻力,

所以使用非常細的漆包線來做導線,如圖 2.17 所示,並用塑膠螺絲來當轉軸,把

塑膠螺絲中間鑽一個小孔,用來穿過連接光遮斷器的導線,且每個光遮斷器都需

要五條連接線,加上所用的漆包線非常細小脆弱,焊接時會因溫度過高而燒斷,

所以在製作上格外的困難,此為在製作感測器時所遇到的一些問題。

圖 3.21 轉軸導線

20

Page 31: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

第四章 軟體架構

4.1 系統軟體架構

在讀取硬體訊號的架構上,一開始是打算使用 USB 作為傳輸介面,使用長高

科技所生產的 DMA-USB FX 作為 USB 發展系統,圖 4.1 是 DMA-USB FX 的外觀,

但是在整個測試過程較不順利,系統和實驗板都有故障,在多次更換維修後才慢

慢熟悉操作流程,但在最後關頭還是無法順利連線,因此在時間的壓力下只好暫

時放下。

圖 4.1 DMA-USB FX 外觀

最後改用 RS-232 串列埠作為傳輸介面,並以 8051 取代 DMA-USB FX 作為

傳送訊號的系統,而在電腦接收端的程式是用 Visual Basic 6.0 所寫,此程式可以

用來將從 8051 送來的感測器訊號做轉換,因 VB 所接收到的是字串訊號,所以必

須換算成位元組的型態才能判別感測器的動作,並在螢幕上顯示出數據的變化,

和換算後的角度值[06]。

21

Page 32: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

4.2 8051 系統架構

8051 的串列通訊是透過 TXD 腳將串列資料送出,RXD 腳接收外部串列訊

號,而 8051 的訊號是 TTL 準位訊號,就是輸出 0 為接地電位,輸出 1 為+5V,

但在電腦 RS-232 介面的電器準位卻是以± 12V 輸出,當 8051 要和 RS-232 介面

溝通時,必須將準位訊號做轉換才能連接,所以本專題中使用 ICL232 這顆 IC 來

作為準位轉換之用,如圖 4.2 是 8051 和 ICL232 的連接電路設計圖,而圖 4.3 是

製作完成後的完成圖。

圖 4.2 8051 串列埠傳送接收電路

圖 4.3 8051/ICL232 裝置

22

Page 33: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

ICL232 內部提供一組將+5V 轉換成± 10V 的轉換電路,以及二組 TTL-

RS-232 準位轉換電路,使用時必須再加上四個電容才能產生電壓轉換功能,可以

用三線式的全雙工通信連接方式;將 8051 的 TXD 腳所輸出的 TTL 準位訊號,經

過 ICL232 做準位轉換後送至 RS-232 的接收腳位 RXD 上,然後再由電腦程式來

處理訊號。

8051 提供了一個全雙工的串列介面,也就是說傳送與接收在硬體上是分開

的,在傳送資料時,只要將一筆資料寫入 SBUF 即可,SBUF 暫存器實際上是分

開成二個不同的暫存器,一為傳送用 SBUF,另一為接收用 SBUF,當要傳送資料,

8051 會自動轉為串列方式,依據設定的鮑率,經由 TXD 一位元一位元送出資料;

而當 8051 接收完一筆資料時,則會產生中斷,通知 CPU 來讀取,資料讀取只要

執行讀取 SBUF 的指令即可;串列埠共有四種工作模式,分別是 Mode 0、Mode 1、

Mode 2 和 Mode 3,串列埠之四種工作模式之特性及功能整理如表 4.1 所示。

表 4.1 串列埠之四種工作模式

工作模式

項目

Mode 0

同步模式

Mode 1

非同步模式

Mode 2

非同步模式

Mode 3

非同步模式

SM0

SM1 設定

SM0=0

SM1=0

SM0=0

SM1=1

SM0=1

SM1=0

SM0=1

SM1=1

功能

每筆資料 8 bit

輸入/輸出擴充

8 位元之移位暫

存器

每筆資料 10 bit

1個開始位元(0)

8 個資料位元

1個停止位元(1)

每筆資料 10 bit

有同位偵錯功能

1個開始位元(0)

9 個資料位元

(TB8、RB8可自定)

1個停止位元(1)

每筆資料 10 bit

有同位偵錯功能

同 Mode 2

傳輸速度 固定為工作頻率

的一半

可調整

Timer 控制

固定為工作頻率

的 1/32 或 1/64

可調整

Timer 控制

TXD 腳作用 送出移位時脈 發送資料 發送資料 發送資料

RXD 腳作用 發送或接收資料 接收資料 接收資料 接收資料

開始接收資

料時機

設定 RI=0

及 REN=1

設 REN=1 且接收到發送微處理機

送過來之開始位元(0)

23

Page 34: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

串列傳輸的速度是用鮑率表示,在不同的工作模式下有不同的計算方式,其

中Mode 0與Mode 2的鮑率是固定的,而Mode 1及Mode 3是由 8051內部的Timer

所控制,其鮑率計算因 Timer1 之工作模式而定,通常令 Timer1 於 Mode 2 即有自

動載入功能,此時與鮑率的關係如下:

因為在本專題中只需要單向的將感測器訊號送進電腦,所以在 8051 的程式方

面只要將一個 Port 的資料,透過串列埠傳送出去就可以達到所要的功能,圖 4.4

是 8051 串列傳輸程式的流程圖。

開 始

設 定 計 時 器 1 模 式設 定 鮑 率

啟 動 計 時 器 1設 定 串 列 埠 模 式

設 定 初 始 值

讀 入 P o r t 1

串 列 輸 出

檢 查 傳 送 中 斷旗 標 T I

清 除 傳 送 中 斷 旗標 T I

T I = 1

T I = 0

圖 4.4 8051 串列傳輸流程圖

24

Page 35: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

下面是用組合語言寫的 8051 程式,8051 是透過 SCON 這個暫存器去控制串

列埠,在這裡是使用 mode 1 工作模式,配合 Timer 1 將鮑率設為 2400,程式中使

用 Port 1 來當作輸入端,將感測器的資料讀入,而 Port 2 是用來檢查 Port 1 的訊

號,在 Port 2 接上八個 LED 用燈號來顯示 Port 1 的狀態,當 Port 1 的訊號要送到

串列埠的時候,也把訊號送到 Port 2 藉此可以很方便的從燈號上判斷訊號是否正

常動作[07][08][09]。

把 Port 1 的六支接腳分成成三組,用來連接感測器的三組轉向判斷輸出,每

組二支腳分別代表正轉與反轉,當光柵轉動時判斷電路會判別轉向,若是正轉則

每轉動一格會送出一個脈波到正轉的接腳上,若反轉則脈波會送到另一支接腳,

8051 會一直抓取這三組接腳的訊號,然後和 Port 1 的其餘二支腳的訊號一起組成

一個 ASCII 碼送到串列埠暫存器輸出,再由電腦程式去分別計數三組接腳的脈波

數,然後再換算成所對應的角度。

ORG 00H ;宣告起始位址 MOV TMOD,#00100000B ;設定 timer1 為 mode2 自動載入 MOV TH1,#-13 ;設定鮑率為 2400 baud = 1 Mhz/32/13 SETB TR1 ;啟動 timer1 MOV SCON,#01000000B ;設定串列傳輸為 mode1 : 8,n,1 UART MOV P2,#11111111B ;設定 Port2 初始值 MOV P1,#11111111B ;設定 Port1 初始值

NEXT: MOV A,P1 ;將 Port1 的值讀入累加器 A MOV P2,A ;將 A 的值由 Port2 輸出 MOV SBUF,A ;將 A 由串列埠傳送出去 JNB TI,$ ;判斷是否為傳送完畢所觸發的中斷 CLR TI ;清除 TI 旗標 JMP NEXT ;跳至 NEXT 繼續執行 END ;結束

25

Page 36: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

在測試 8051 程式時,除了直接把程式燒錄在 89C51 的 IC 上,用硬體作測試

之外,用 8051 模擬器來模擬會更有效率,所以在寫 8051 組合語言程式時使用

Pinnacle 52 這套軟體,Pinnacle 52 可以模擬 8051 的狀態,能把暫存器、計時器、

各種中斷旗標等內部的變化顯示出來,還可以用單步執行程式,在程式除錯上有

很大的幫助,且在程式的編譯、連結方面也相當簡便,圖 4.5 是 Pinnacle 52 的操

作介面。

圖 4.5 8051 模擬器

用 Pinnacle 52 這套軟體來模擬 8051 時,最大的好處是可以了解暫存器、計

時器、各種中斷旗標等些內部的變化,對於程式的運作能更容易了解。

26

Page 37: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

4.3 接收端程式

在接收端程式方面是用 Visual Basic 6.0 所寫,因為 Visual Basic 的操作簡單,

且內建串列通訊的控制項,那就是 MSComm 通訊控制項,可以方便完成串列通

訊的設計。

在使用 VB 的 MSComm 通訊控制項時,所接收的訊號會被自動轉換成字串

的型態,字串是以 ASCII 碼來輸出,表 4.2 是 ASCII 字碼表的前 128 個,表中藍

色框起來的前 32 個有其特殊意義,所以從 8051 送來 Port 1 的資料必須避開這 32

個位址,剛好設計的感測器只用到 6 個位元,所以將 Port 1 高位元固定設為 1 表

中綠色部分,藉此避開前面的位址,只使用表中紅色所框起來的部分[10]。

表 4.2 ASCII 碼對照表 固定不變

7 0 0 0 0 1 1 1 1 6 0 0 1 1 0 0 1 1 BITS

5 0 1 0 1 0 1 0 1 4 3 2 1 不使用 所用部分

0 0 0 0 NUL DLE SP 0 @ P ` p 0 0 0 1 SOH DC1 ! 1 A Q a q 0 0 1 0 STX DC2 “ 2 B R b r 0 0 1 1 ETX DC3 # 3 C S c s 0 1 0 0 EOT DC4 $ 4 D T d t 0 1 0 1 ENQ NAK % 5 E U e u 0 1 1 0 ACK SYN & 6 F V f v 0 1 1 1 BEL ETB ‘ 7 G W g w 1 0 0 0 BS CAN ( 8 H X h x 1 0 0 1 HT EM ) 9 I Y i y 1 0 1 0 LF SUB * : J Z j z 1 0 1 1 VT ESC + ; K [ k { 1 1 0 0 FF FS , < L \ l | 1 1 0 1 CR GS - = M ] m } 1 1 1 0 SO RS . > N ^ n ~ 1 1 1 1

SI US / ? O _ o DEL

27

Page 38: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

因為 VB 所接收的資料型態是字串的型態,沒有辦法直接將 8051 的 Port 1 輸

入訊號讀取成二進位的位元組,所以在整個程式的設計上主要包含編碼、解碼和

計數這三個程序,其中編碼的部分是由 8051 的程式部份來完成,而解碼和計數的

部分是由接收端的程式來負責。

編碼方面,感測器是以二個位元為一組用來表示一個軸的狀態,將三個軸的

六個位元與另外二個固定的位元一起編成一個 ASCII 碼,然後透過 8051 送出所

對應的 ASCII 碼,所以接收端程式必須要將 8051 送來的 ASCII 字串資料再轉換

成二進位的數值,才能用來判斷出感測器所送出的訊號。

在收到 ASCII 字串資料之後需要一個解碼的程序,經過解碼才能做判斷,先

用 VB 內的 Asc()這個函數,它可以把 ASCII 碼轉換成所對應的十進位數值,

但是 VB 並沒有二進位轉換的函數,所以需要寫一個進位轉換副程式,再把十進

位值轉換成二進位值,然後再用 Left、Right、Mid 這三個字串處理函數來取出三

組位元,這樣就可以還原 8051 的訊號。

在計數判斷方面,是利用二個位元 00、01 與 10 的三種變化來判斷,當光柵

往順時針轉兩格時就送出一個 01 的值,這時就把計數值減 1,而往逆時針轉時送

出的值為 10,這時就把計數值加 1,當不轉動時就沒有訊號所表示的值為 00,此

時不做加減的動作,藉此可以計數出轉動的格數,再把格數做換算就可以得到對

應的角度,所以要把二進位值再分成兩兩一組的形式來做判斷。

圖 4.6 是接收程式執行時的狀態,設計有選擇通訊埠的選項,可以選擇使用

COM 1 或是 COM 2,在選定通訊埠之後,按下打開通訊埠的按鈕後即可開始接

收由 8051 傳來的訊號,還有一個歸零按鈕用來做定位,當感測裝置放到頭上啟動

程式後,可以調整頭部視線當水平之後就按下歸零按鈕,讓計數值從零開始計算

角度,所以可以依個人習慣來做適合的設定[10][11]。

28

Page 39: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

圖 4.6 接收程式

下面是用 VB 寫的接收端程式碼,圖 4.6 為執行結果。

`============================================================= `宣告 a、b、c 為外部變數 Dim a As Integer Dim b As Integer Dim c As Integer

29

Page 40: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

`============================================================= `進位轉換副程式 Public Function cd(Dnum As Long, w As Byte) As String Dim u As Long, s As String, n n = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z") u = Dnum s = n(u Mod w) While u >= w u = u \ w s = n(u Mod w) & s Wend cd = s End Function `============================================================= `選單控制副程式 Private Sub Combo1_Click() If (Combo1.ListIndex = 0) Then 'com1 為通訊埠及設定一些通訊機制 MSComm1.CommPort = 1 '設定為 8051 一傳資料進來就馬上觸發接收事件 MSComm1.RThreshold = 1 '設定傳輸協定 MSComm1.Settings = "2400,n,8,1" Else 'com2 為通訊埠及設定一些通訊機制 MSComm1.CommPort = 2 '設定為 8051 一傳資料進來就馬上觸發接收事件 MSComm1.RThreshold = 1 '設定傳輸協定 MSComm1.Settings = "2400,n,8,1" End If End Sub

30

Page 41: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

`============================================================= `開啟通訊埠按鍵副程式 Private Sub Command1_Click() MSComm1.PortOpen = True '打開通訊埠 End Sub `============================================================= `結束程式按鍵副程式 Private Sub Command2_Click() MSComm1.PortOpen = False '關掉通訊埠後結束程式 End End Sub `============================================================= `歸零按鍵副程式 Private Sub Command3_Click() a = 0 b = 0 c = 0 Text7.Text = a Text8.Text = b Text9.Text = c End Sub `============================================================= `串列通訊啟動副程式 Private Sub MSComm1_OnComm() Text1.Text = Trim(MSComm1.Input) Text2.Text = Asc(Text1.Text) Text3.Text = cd(Text2.Text, 2) Text4.Text = Right(Trim(Text3.Text), 2) Text5.Text = Mid(Trim(Text3.Text), 4, 2) Text6.Text = Mid(Trim(Text3.Text), 2, 2) Select Case Val(Text4.Text) Case 10 a = a + 1 Case 1 a = a - 1 End Select Text7.Text = Str(a)

31

Page 42: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

Select Case Val(Text5.Text) Case 10 b = b + 1 Case 1 b = b - 1 End Select Text8.Text = Str(b) Select Case Val(Text6.Text) Case 10 c = c + 1 Case 1 c = c - 1 End Select Text9.Text = Str(c) End Sub

32

Page 43: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

第五章 實驗結果與討論

5.1 感測器電路測試

在完成感測器電路和硬體結構之後,先對各個主要電路部份來做測試,在感

測器和轉向判斷電路方面,因為所觸發的脈波時間太短,用示波器不容易觀察出

變化,所以利用 D 型正反器和 LED 來檢驗,用 D 型正反器鎖住輸出的訊號,然

後由 LED 顯示,如此可以測試光柵轉動的方向和所輸出的訊號是否正確。

另外就是在光遮斷器驅動電路之後接上雙色 LED,用來顯示光遮斷器的狀

態,每一種顏色代表一組光遮斷器中的一個,在通電後不動的狀態下應該是全部

不亮,當有轉動變化時 LED 指示燈顯示「綠→橙→紅」或「紅→橙→綠」的變化

時表示完整的一個遮斷動作,其中橙色是表二個同時遮斷。

圖 5.1 感測電路測試

33

Page 44: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

5.2 8051/RS-232 連線測試

在串列傳輸測試方面,先用 Pinnacle 52 這套軟體在電腦上模擬 8051 的動作,

確定功能後,再燒到 89C51 的 IC 上做實際的測試,一開始先用指撥開關來代替

頭控感測器做為訊號輸入,以指撥開關輸入然後用 VB 程式接收,來測試串列傳

輸部分是否正常運作,且透過外接一組 LED 方便直接判斷指撥開關所輸入的值,

圖 5.2 為測試的情況

圖 5.2 串列傳輸測試

在這部分的測試結果顯示在傳輸方面沒有問題,由 VB 所寫的接收程式可以

正確的接收到 8051 的訊號,且在程式解碼方面也沒問題,可以將指撥開關所輸入

的值轉換成所要的值。

34

Page 45: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

5.3 頭控系統測試

在軟體程式測試完成後,接著就是連接頭控系統做實際的測試,但在測試時

發現,感測系統所送出的訊號並不穩定,且 VB 程式部分在計數訊號的方式上有

錯誤,與預期的結果不同,原先感測系統所送出的訊號應該是一個近似突波的脈

波,但是因為光柵與光遮斷器之間的距離沒有配合的很好,所以造成輸出的訊號

不穩定,使得程式的部分無法正確的讀出結果。

圖 5.3 頭控系統測試

35

Page 46: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

第六章 結論與未來展望

6.1 結論

本頭控系統主要是利用光遮斷器結合陀螺儀和磁力的原理,以低成本來研發

具有三個自由度感測能力的頭控裝置,而且本頭控系統可以單獨運作,不需透過

其他的外部裝置就能做量測,只要裝置於頭部即可量測出頭部三個軸的動作,使

用時不用像其他使用紅外線、超音波或 CCD 等做為感測器的頭控系統必須有發

射與接收二部分,所以要在外部的固定點安裝接收端,用來接收由頭部所發射出

的訊號。

本專題現階段所完成的部分,已能透過 VB 的程式抓取到頭控裝置變動的數

值來換算角度,但還沒有與虛擬場景的部分做結合,所以只能用 VB 的程式在視

窗中看到角度的變化,且在精確度方面仍有有較大的誤差。

在本專題研發製作的過程中,所有硬體的部分都是由自己設計製作的,而電

路的部分由學長指導主要的判斷電路,再加上書上的電路加以拼湊而成,所以整

個專題做下來充分的利用大學這幾年所學,將在電子學、自動量測、微算機系統、

邏輯電路設計、計算機輔助電路設計等許多科目所學到的知識實際應用到本專題

中。

所以透過製作本專題的過程對於大學過去幾年所學有更深的體認,由於每一

個環節都是自己設計製作的,所以不但體認很深還學到更多,透過實際應用才能

真正知道之前所學的重要,如果沒有基礎在面對問題時,往往會毫無頭緒連該從

何下手都不知道,更不用談解決了。

36

Page 47: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

6.2 未來展望

本專題以創新的設計來製作此頭控系統,希望能取代昂貴的陀螺儀量測器,

且在精確度上做加強,利用此頭控系統取得的頭部姿態數據,然後配合 3D 的虛擬

場景與三桿六自由度動感平台達到虛擬實境之模擬。

因為本裝置可以單獨運作,所以精確度若能提高,就可以有很大的應用空間,

例如配合 8051 等單晶片加上 LCD 液晶顯示器,可以構成一個簡單的角度量測器,

可以用來估測一些像是路面坡度等,因此精確度的問題若能改善,必能使整套系

統更為完善。

37

Page 48: 逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文理論上所產生的光電流亦為零,但實際上光電二極體的逆向飽和電流,經電晶體 ... 圖2.3

參考資料

[01] 游金湖 光感測器及其使用技術 建興 1992 年 1 月

[02] 盧明智 電子實習與專題製作-感測器應用篇 全華 2002 年 5 月

[03] 蔡朝洋 電子學實驗 全華 2000 年 6 月

[04] 豬飼國夫 著

高敏雄 譯

最新 74 系列 IC 規格表 全華 2001 年 8 月

[05] 曾榮易 Workbench Layout 快速電路板設計 全華 1999 年 8 月

[06] 許永和 微處理機-USB 週邊裝置設計與應用 長高

[07] 鄧錦城 8051 單晶片實作寶典 益眾 2000 年 7 月

[08] 李齊雄 游國幹 8051 單晶片微電腦原理與實作 儒林 2000 年 7 月

[09] 謝澄漢 馬嘉宏 8051 單晶片原理與實作 宏友 2000 年

[10] 范逸之 陳立元 Visual Basic 與 RS-232 串列控制最新版 文魁 2002 年 5 月

[11] 黃世陽 吳明哲 Visual Basic 6.0 學習範本 松崗 1998 年 11 月

38