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

56
逢 甲 大 學 自動控制工程學系專題製作 專 題 論 文 追人自走車 Man-tracing Auto Vehicle 指導教授:蘇文彬 生:于光浩 吉剛儀 陳顧升 中華民國九十二年五月三十號

Upload: others

Post on 22-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

逢 甲 大 學

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

專 題 論 文

追人自走車

Man-tracing Auto Vehicle

指導教授:蘇文彬

學 生:于光浩

吉剛儀

陳顧升

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

2

感 謝

首先我們要感謝指導老師,蘇文彬老師,在我們製作專題有問題無法解決

的時候,蘇老師總是不厭其煩,適時的給予指導與建議,讓進度不至於停滯不

前,使我們的專題能夠適時完成。

其次要感謝徐顥忠同學,提供家中的客廳充當專題製作時的工作場所,以

及張哲瑋同學與其家中開的竣泰五金行,在自走車車體結構的材料、製作與加

工工具,提供不少的援助,著實省下我們很多的時間與金錢。以及感謝系上的

賴助教借我們自走車使用的車輪,讓我們不用再找店家訂做,以及實驗室與器

材的借用,讓我們獲得很大的方便。

最後要感謝給予我們支持與鼓勵的家人與熱心幫忙的同學,在這裡致上我

們最深的謝意。

i

中 文 摘 要

在這個講究自動化的時代,高科技產業無不利用自動化設備來降低人力與

提高效率。本次專題所設計的自走車,是利用單晶片 8051 的可程式化控制能力

來控制步進馬達與接收感測器所傳回的資訊,互相配合而完成。

8051 單晶片以其優勢的硬體架構及可完整搭配的周邊設備,配以功能強大

的指令集,使它變成一種非常受歡迎的單晶片。而步進馬達是以數位信號輸入

來控制轉速與轉動方向,再搭配焦電型紅外線感測器,便能完成此次專題的要

求。

追人自走車的動作原理是先由焦電型紅外線感測器感測到前方溫度的變

化,經由單晶片 8051 經由程式做出判斷後,驅動步進馬達前往正確的方向,本

專題研究將分為電子元件、電路部分與程式判斷流程進行討論。

ii

Abstract

This is the Era that automation is inseparable from manufacturing process. No

High-Tech manufacturer can survive without adopting automation assembly process

to increase efficiency and lower human labor cost. The design of the auto vehicle

discussed in this article, utilizing a microchip 8051 to maneuver the stepping motor

with its programmable control function, and by receiving the data from the antenna,

this auto vehicle performs its task by seamless synchronization of the motor and the

antenna.

The microchip 8051’s versatile design in hardware and expandable with a

variety of add-on parts, and equipped with a powerful programming commands, has

made the chip very popular in the industry. The stepping motor controls the speed

and direction by digital signals, with the addition of infrared sensor, which fulfills

the requirement for this discussion.

The process of how the auto vehicle maneuvers is as follows, the Infrared Sensor

detects the temperature change in the front of the unit, the microchip 8051 processes

the data and determines the action, and then the stepping motor executes the action

by maneuver the unit towards the correct direction. This discussion will be divided

by theses topics, “Electric Component “ 、 “Circuitry ”and “Programming

Commands Process ”.

iii

目 錄

感謝---------------------------------------------------------------i

中文摘要----------------------------------------------------------ii

英文摘要---------------------------------------------------------iii

目錄--------------------------------------------------------------iv

圖目錄------------------------------------------------------------vi

表目錄----------------------------------------------------------viii

第一章 前言-------------------------------------------------------1

1.1 追人自走車的介紹-----------------------------------------1

1.2 研究動機-------------------------------------------------1

1.3 預期結果-------------------------------------------------1

第二章 主要電子元件與電路介紹-------------------------------------2

2.1 8051 電源電路---------------------------------------------2

2.1.1 LM7805 介紹---------------------------------------------2

2.2 馬達驅動電路---------------------------------------------3

2.2.1 馬達的選用---------------------------------------------3

2.2.2 步進馬達驅動 IC----------------------------------------8

2.2.3 步進馬達驅動電路---------------------------------------9

2.3 感測器的選用與電路--------------------------------------11

iv

2.3.1 焦電型紅外線感測器------------------------------------11

2.4 感測電路------------------------------------------------13

2.4.1 反相放大器電路----------------------------------------13

2.4.2 比較器電路--------------------------------------------14

2.4.3 剪截電路----------------------------------------------16

2.4.4 感測器電路--------------------------------------------17

2.5 CPU 介紹-------------------------------------------------23

2.5.1 CPU 的作用---------------------------------------------23

2.5.2 CPU 介紹-----------------------------------------------23

第三章 性能簡介--------------------------------------------------28

3.1 動作流程------------------------------------------------28

3.2 自走車程式設計------------------------------------------29

3.2.1 信號輸入及等待模式------------------------------------29

3.2.2 搜尋模式及主程式--------------------------------------29

3.3 研究過程中所遇到的問題----------------------------------33

第四章 結論------------------------------------------------------34

參考文獻----------------------------------------------------------35

附錄一------------------------------------------------------------36

附錄二------------------------------------------------------------44

v

圖 目 錄

圖 2.1 8051 電源電路-----------------------------------------------2

圖 2.2 LM7805 外觀-------------------------------------------------2

圖 2.3 LM7805 的內部方塊圖-----------------------------------------3

圖 2.4 馬達單極與雙極激磁電路示意圖-------------------------------5

圖 2.5 步進馬達構造-----------------------------------------------6

圖 2.6 步進馬達各種激磁方式之時序圖-------------------------------6

圖 2.7 兩相激磁動作示意圖-----------------------------------------7

圖 2.8 FT5754 腳位示意圖-------------------------------------------8

圖 2.9 FT5754 內部示意圖-------------------------------------------8

圖 2.10 步進馬達驅動電路圖-----------------------------------------9

圖 2.11 焦電型紅外線感測器電路------------------------------------10

圖 2.12 焦電型紅外線感測器外觀------------------------------------11

圖 2.13 動作時 Vs變化----------------------------------------------11

圖 2.14 電路方塊說明----------------------------------------------12

圖 2.15 反相放大器-----------------------------------------------13

圖 2.16 比較器---------------------------------------------------14

圖 2.17 比較器的應用----------------------------------------------15

圖 2.18 二極體作為電子開關示意圖---------------------------------16

vi

圖 2.19 剪截電路正半週圖-----------------------------------------17

圖 2.20 剪截電路負半週圖-----------------------------------------17

圖2.21 主sensor電路圖-------------------------------------------19

圖2.22 第二組sensor電路圖---------------------------------------20

圖 2.23 感測器動作示意圖-----------------------------------------21

圖 2.24 8051 腳位示意圖-------------------------------------------24

圖 3.1 有訊號輸入時的動作流程圖----------------------------------31

圖 3.2 無訊號輸入時的流程圖--------------------------------------32

vii

表 目 錄

表 2.1 步進馬達規格-----------------------------------------------7

表 2.2 步進馬達驅動電路元件表-------------------------------------9

表 2.3 比較器之動作狀態表----------------------------------------15

表 2.4 感測器電路元件表------------------------------------------22

viii

第一章 前言

1.1 追人自走車的介紹

追人自走車是可以感測由人體體溫所散發出的紅外線,進而加以追蹤的智慧

型自走車。在遠距離時可以加速追蹤,並在到達所設定的距離後停下來。另外在

無人時可以自我向四週搜尋可以追蹤的目標。

1.2 研究動機

在自控系三年來的課程訓練下,得到了不少機電相關的知識,從單晶片的控

制,電子學對各電子元件的基本認識等等,正好缺少一個做整合性應用的機會。

追人自走車這個題目,結合了與單晶片習習相關的馬達控制,及感測器、放大器

等電子元件的應用,最適合用來當做練習的目標,了解感測器與致動器之間如何

配合,如何調整使得工作的效能可以更好,藉此驗證我們所學的知識。

1.3 預期結果

能對周圍兩公尺內的人體熱源進行感測,並且做出適當的反應。

1

第二章 主要電子元件與電路介紹

2.1 8051 電源電路

圖 2.1 8051 電源電路

由於自走車的大腦 - 8051 使用 5V 電源,因此我們選用 LM7805 穩壓 IC 提供

穩定 5V 給 8051。圖 2.1 是供應 8051 電源所使用的電路,當 SW1 接通後,LM 7805

隨即輸出固定 5V 的電源供 8051 使用,電路中使用的兩個電容則是用來穩定輸入

及輸出電壓,避免因為開關切換產生的突波造成元件損壞。

2.1.1 LM7805 介紹

圖 2.2 LM7805 外觀

2

LM 7805 是一種穩定電壓的 IC,圖 2.2 是它的外觀,共有三隻接腳,分別是

輸入端、輸出端與接地端,作用是將輸入超過 6V 的電壓經由內部稽納二極體獲

得標準電壓加到運算放大器的正端,輸出端迴授的電壓則加到負端,經比較後由

達靈頓電路放大輸出,由於有迴授的功能,達靈頓電路所輸出的電壓可維持定值。

圖 2.3 LM7805 的內部方塊圖

2.2 馬達驅動電路

2.2.1 馬達的選用

步進馬達是一種以數位脈波驅動的馬達,因為具有良好的應答性,只要送入

一個脈衝信號,轉軸即旋轉一定的角度。轉子轉動的步數與輸入脈波數成正比,

而轉子的旋轉速度亦與脈波頻率成正比,因此可以用在開迴路的控制系統,而不

需複雜的閉迴路迴授控制即可得到很高的精準度,因此被廣泛的利用。步進馬達

擁有以下的特性:

1. 以數位脈衝信號作開迴路控制,簡單方便。

2. 旋轉速度與脈衝信號頻率成正比。

3. 旋轉角度與脈衝信號數成正比。

3

4. 啟動、停止與左右轉控制簡單。

5. 轉動角度誤差小,且沒有累積誤差。

6. 靜止時,馬達具有高保持轉矩,能保持在停止位置上。

7. 能夠低速運轉。

8. 沒有碳刷,可靠性高,成本較便宜。[1]

步進馬達依定子線圈的相數不同可分成三相、四相和五相式,小型步進馬達

以四相式最為普遍。這種步進馬達在定子上有四組相對的線,各提供 90° 的相

位差,當步進馬達為單極激磁方式時,送入一個脈衝電流,可在各相的對應處停

住轉子,這種走一步即停住而得到的角度稱為步進角,單極激磁之步進角計算公

式如下:

步進角=360° ÷ (相數 × 轉子齒數)

例如: 4 相 50 齒之步進角為

360° ÷ (4× 50)= 1.8°

也就是說,4相 50 齒步進馬達走 200 步正好是 1圈。通常步進馬達的齒數為

10〜50 齒,其步進角為 9° 〜1.8° M 但以 1.8° 為最普遍。

步進馬達之激磁方式:

步進馬達可依定子線圈上產生正負兩個激磁方式的不同,分為單極驅動與雙

極驅動兩種方式。如圖畫出了一個四相式步進馬達使用單極驅動與雙極驅動的電

路,其中圖 2.4(A)為單極驅動電路,它是以定子線圈的中心為頂點,電流交

互地由該中點流入兩端之中心點以改變磁場。圖 2.4(B)為雙極驅動方式,則

是以加在定子線圈兩端電壓的正負變換以改變電流之方向。[1]

4

圖 2.4 馬達單極與雙極激磁電路示意圖

在步進馬達線圈中流動的電流稱為激磁電流,以四相式步進馬達而言,其定

子上共有 4個相,稱為 A、-A、B、-B。四相式步進馬達的激磁方式有:

1. 單極 1相激磁

2. 單極 1-2 相激磁

3. 單極 2相激磁

4. 雙極 2相激磁

5. 雙極 2-4 相激磁

6. 雙極 4相激磁

5

圖 2.5 步進馬達構造

下圖是各種激磁方式之時序圖:

圖 2.6 步進馬達各種激磁方式之時序圖

6

以單極兩相激磁方式為例,配合圖 2.4 的激磁電路,開關切換的順序如下:

S4 S3 S2 S1

0 0 1 1

反 ↑ 0 1 1 0 ∣正

∣ 1 0 0 1 ∣

轉 ∣ 1 0 0 1 ↓轉

註:1表示 ON,0 表示 OFF

開關每變化一次,步進馬達就走一步[1]

圖 2.7 兩相激磁動作示意圖

基於步進馬達擁有簡單與可靠的操控性,因此我們選用步進馬達作為自走車

的動力來源。這次使用的步進馬達之規格如下:

表 2.1 步進馬達規格

六線式強扭力步進馬達

兩相激磁

型號 103G775-6041

電壓 5V

電流 1.3A

阻抗 2.6Ω

步進角 1.8 DEG

7

2.2.2 步進馬達驅動 IC

以激磁信號進行步進馬達激磁電流之切換時,因切換速度較快(數百 Hz 至數

KHz),所以很少使用機械式開關來切換電路,通常是使用高功率的達靈頓電晶體

作為切換電路,所以一個四相式步進馬達要使用四顆高功率達靈頓電晶體,目前

市面上有很多四顆達靈頓電晶體包裝在一起的 IC,我們選用的型號是 FT5754,

其內部的四個 NPN 達靈頓電路,各具有 3A 的推動能力,FT5754 共有 12 隻接腳,

由於腳位對稱,因此以正反兩個方向接通都可。

圖 2.8 FT5754 腳位示意圖

圖 2.9 FT5754 內部示意圖

8

2.2.3 步進馬達驅動電路

步進馬達的行動是由 8051 進行控制。當 8051 的 P1 輸出高電壓時,2222A 的

基極變為高電壓,使得電晶體的工作模式成為主動區,射極跟集極導通,使得

FT5754 有電流通過,進而放大成步進馬達所需到的電流,電晶體輪流導通,則

馬達就會依照順序轉動,進而達到控制的目的。

圖 2.10 步進馬達驅動電路圖

表 2.2 步進馬達驅動電路元件表

元件名稱 元件規格 元件數量

CPU 89C51 1

NPN 電晶體 2222A 8

LED 3φ 4

電流放大 IC FT5754 1

電容 30pf 2

電容 10μf 1

震盪器 12MHz 1

9

電阻 10KΩ 1

強扭力步進馬達 103G775-6041 2

2.3 感測器的選用與電路

2.3.1 焦電型紅外線感測器

本專題所使用的是焦電型紅外線感測器,主要是感應熱體有溫度的物體)所輻

射的紅外線。當熱體移動(溫度有變化)的時候,將於感測器的焦電板上產生電荷

的變化與轉移。

焦電型紅外線感測器乃是以 TGS 或 PZT 為材料,能偵測紅外線的變化。然所

產生的電荷變化不易使用,故於焦電板之後,接電阻與 TET,把電荷變化轉換為

電壓變化。[2]

圖 2.11 焦電型紅外線感測器電路

10

圖 2.12 焦電型紅外線感測器外觀

經過濾光處理後,人體感測器大都只針對人體溫度所產生的紅外線波長有最

好的反應。當熱體(人的手或身體)移動的時候,會於焦電板上產生電荷的改變與

轉移,使能於 Rg上得到微小的電壓變化。再經 FET 緩衝(放大率 1倍),由 S極輸

出。[2]

圖 2.13 動作時 VS的變化

由動作波形得知,焦電型人體感測器乃:

(1)輸出電壓 VS非常小(mV)……(必須放大數千倍)

(2)熱體必須移動,才有電壓變化……(並非溫度量測)

(3)背景溫度不同時,會有不同的 VDC……(盡量使用交流放大,能克服 VDC的不同)

11

圖 2.14 電路方塊說明

因焦電型紅外線感測器的輸出電壓非常小,可能小到 1mV 以下,若想得到幾

伏特的輸出時,勢必要放大數千倍,甚至上萬倍,所以不宜只用一級放大,因為

對放大器而言,放大率與頻寬的乘積為常數。

放大率 × 頻寬 = 常數

想要頻寬大一點,則必須犧牲放大率。

放大被率大的時候,頻寬會變窄。

當用多級串接放大的時候,各級增益不必太大,一則較不易受干擾或產生震

盪現象,再則每一級都保有一定的頻寬。例如放大率為 50 倍串接後,將可以得

到約 2500 倍。

輸出電壓 VS很小,若一開始就從電源感應雜訊,再經其後數千倍的放大,將

無法分辨是正確的感應信號,還是雜訊所造成的干擾,所以在感測器的電原先加

上〝反交連電路〞以率除電源內的干擾信號。[2]

12

因放大率均不小,所以希望各級輸出所含的直流電壓不要被放大,否則會造

成飽和現象,而無法確認感測結果。希望所有放大器都只放大交流,則此時便能

使用 RC 耦合的方式,在各級間加入電容器。因焦電式紅外線感測器乃低頻動作,

所加的電容不要太小,但也不要太大(會有漏電產生),最好使用鉭質電容。[2]

2.4 感測器電路

整個感測器電路所使用到的電路介紹如下:

2.4.1 反相放大器電路:

運算放大器的應用很廣,圖 2.4.1 所示之反相放大器(inverting amplifier)

為其最基本之應用電路。由於“+”輸入端被接地,故“-”輸入端唯一需接地

點,與地同電位。即:

由於運算放大器的輸入電阻極大,輸入電流 I3幾乎為 0,故 I1-I2(負號表示

I1與 I2的電流方向相反),亦即

圖 2.15 反相放大器

13

由上式可知圖 2.15 所示之反相放大器,其電壓增益完全由 R1與 R2之電阻比

決定。是中之負號表示輸出電壓 Vo與輸入電壓 Vin反相。[3]

凡是用運算放大器構成之放大電路都有一個共同的特徵,即有一外加負迴授

元件(例如電阻器或是電容器)接在輸出端與“-”輸入端之間(在圖中是 R2)。

在此類電路中之“-”輸入端均可視為與“+”輸入端同電位。

2.4.2 比較器電路

比較器電路如圖 2.16 所示。由於“輸出端”與“輸入端”之間未接上任何負

迴授元件,因此輸出電壓 Vo=VdA=(V1-V2)A,但運算放大器本身之電壓增益 A

非常大(理想的 A為無限大,實際的運算放大器例如μ741,則 A大於 50000 倍),

因此:

當 V1-V2為正時,Vo=+Vsat。

當 V1-V2為負時,Vo=-Vsat。

(參考表 2.3 更容易明白)

圖 2.16 比較器

14

表 2.3 比較器之動作狀態表

假如把運算放大器的“-”輸入端接地,而在“+”輸入端加上輸入信號,

如圖 2.17(a)所示,則當輸入電壓 Vi 稍微高於 0 伏特時,輸出電壓 Vo=+Vsat

≒+Vcc;反之;入輸入端稍低於 0 伏特,則輸出電壓 Vo=-Vsat≒-Vcc,波形如

圖 2.17(b)所示。比較器的此種方法稱為零交叉檢知器(zero-crossing

detector)。他可讓我們輕易的獲得方波。[3]

圖 2.17 比較器的應用

15

2.4.3 剪截電路

剪截電路(clipping circuit)或稱為剪截器(clipper),其作用是將輸入

波形的某一部份(希望除去的部分)加以剪除。由於具有振幅的限制作用,故亦

稱為限制器(limiter)。

剪截電路依二極體與輸出成串聯或併聯,可分成串聯剪截電路與並聯剪截電

路。這次使用到的是串聯二極體剪截電路,介紹如下:

在分析剪截電路時,二極體可視為電子開關。當二極體順向導通時,可視為

開關閉合,在二極體被加上逆向電壓而截止時,可視為開關打開,如圖 2.17 所

示。圖 2.19 與圖 2.20 是半波整流電路。當二極體順向導通時,輸入波形呈現於

負載 RL兩端,在輸入電壓的極性反轉而使二極體逆向截止時,RL上之電壓為 0,

圖 2.19 剪去輸入波形的負半週,圖 2.20 則剪掉輸入波形的正半週。負載上只有

半波。[3]

圖 2.18 二極體做為電子開關示意圖

16

圖 2.19 剪截電路正半週圖

圖 2.20 剪截電路負半週圖

2.4.4 感測器電路

本實驗所使用到的焦電型感測器一共有四個,可分為兩組,一組主要是用來

判斷車子是否夠靠近人體(感測器-1),而另一組則是用來感測人體所在位置(感

測器-2)。

首先來介紹感測器-1 電路的動作,這組電路只有使用到一個焦電型感測器,

我們將其放在車頭的中間處,這組電路其主要功能是用於判斷車子與人體是否到

達我們所需要的距離而將車子停止動作,所以我們便將感測器用來增加感測距離

的濾片移除,如此一來便可以使感測器的感測距離大打折扣,移除濾片的感測器

所剩下的感測距離只剩下約 40 公分,因此當人體距離此感測器 40 公分時,感測

器便會產生一個類似正弦波之訊號,但此訊號相當的微弱,所以便在感測器所發

出訊號的S端串接上兩個反向放大器,第一個反向放大器的放大倍率是910倍(R4

17

/R3=910),第二個反向放大器的放大倍率是 1500 倍(R6/R5=1500),而在 S

端與第一個放大器(AP1)串接的時候,我們則是多加了一個電容(C3),其主要

目的是在濾除雜訊,以避免不必要的訊號被反向放大器所放大,而個別跨接在第

一個反向放大器(AP1)與第二個反向放大器(AP2)的第 2與第 6接腳的電容(C4),

其主要目的也是要濾除雜訊,串接在第一個反向放大器(AP)與第二個反向放大

器(AP2)之間的電容(C5),其用意也是跟 C3是相同的。經過兩個反向放大器放

大之後的訊號,一共放大了 136 萬 5 千倍,如此一來就已經被我們放大到所能利

用的強度了,再將其訊號通過比較器(AP3),藉此將類似正弦波的訊號整流成方

波,而我們比較器所需的比較電壓則是由 R7、R8 將+VCC壓降成約 1V,由此可得

當 OP2 所輸出的訊號大於 1V 則會使比較器輸出+9V,而當訊號小於 1 時,比較

器將會輸出約 9,又無訊號時 OP 輸出 0V,比較器也會輸出約-9V,所以當感測器

沒有感測到人體時,比較器依然送出約-9V 之電壓,因而我們便在比較器輸出端

後再接上一個剪裁電路,藉此來剪掉我們所不需要的負電壓,此時當感測器產生

訊號時,我們便可獲得一約+9V 的電壓輸出,但因為我們要將此輸出輸入到 8051

上,為了避免輸入電壓過高而將 8051 燒毀,因此我們在這裡又加上了一個 5.1V

的稽納二極體,用來將比較器的輸出固定在 5.1V,自此便是一個完整的 Sensor

電路工作流程。

感測器-2 感測電路則是由三個焦電型感測器所構成,我們也是將其放置在車

頭中間,但和感測器-1 上的感測器所不同的有兩大點:

1. 這三個感測器前端都有加上濾片,加上濾片後感測器的感測距離便會提高到

約有 5公尺,如此便可以用來追蹤遠處的人體。

2. 這三個感測器有放置角度的不同,我們將三顆感測器放在一起,但中間的感

測器與兩側的感測器夾角約 150° ,且把中間感測器用壓克力版子將其感測

18

範圍限制成較小,用以較精準的鎖定人體,而另外兩個感測器主要是負責確

定人體是在車子的左邊或是右邊,由此我們便可以界又兩側的感測器來追蹤

人體的往右走或是往左走。

而在電路上的動作便和感測器-1 沒有什麼差別,它的兩個反向放大器的放大

倍率一樣是 910 倍和 1500 倍,比較器的比較電壓一樣是約 1V,比較器的輸出也

是接上一個剪裁電路,後面再接上 5.1V 的稽納二極體。

最後電路圖 2.21 與圖 2.22 上的 Y1、Y2、Y3、Y4則是經由排線接到接到 8051

的輸入 I/O Port,本次專題所使用是 8051 的 Port 2。

圖 2.21 主感測器電路圖

19

圖 2.22 第二組感測器電路圖

20

圖 2.23 感測器動作示意圖

21

表 2.4 感測器電路元件表

元件種類 元件名稱 元件規格

電阻 R1、R11、R21、R31 20KΩ

電阻 R2、R12、R22、R32 22KΩ

電阻 R3、R5、R8、R13、R15、R18、R23、R25、R28、R33、

R35、R38

1KΩ

電阻 R4、R14、R24、R34 910KΩ

電阻 R6、R16、R26、R36 1.5MΩ

電阻 R7、R17、R27、R37 6.2KΩ

電阻 R9、R19、R29、R39 47KΩ

電阻 R10、R20、R30 200Ω

電容 C1、C7、C13、C19 47μ

電容 C2、C8、C14、C20 0.01μ

電容 C3、C5、C9、C11、C15、C17、C21、C23 10μ

電容 C4、C6、C10、C12、C16、C18、C22、C24 0.1μ

二極體 D1、D3、D5、D7 IN4003

二極體 D2、D4、D6、D8 5.1V 稽納二極

放大器 AP1、AP2、AP3、AP4、AP5、AP6、AP7、AP8、

AP9、AP10、AP11、AP12

LM741

22

2.5 CPU 介紹

2.5.1 CPU 的作用

CPU 相當於整個自走車的大腦,接收焦電型紅外線感測器所感測到的訊號,

並做出邏輯判斷後,再輸出脈衝訊號控制步進馬達,驅動自走車前往所感應到的

目標。CPU 必須處理所接收的資訊並做出判斷動作,是整個自走車的主要核心。

2.5.2 8051 簡介

我們選用單晶片 8051 作為自走車的核心,它擁有下列的特性:

(1)專為控制應用所設計的8 位元CPU

(2)含有一完整的布林代數(單位元邏輯)之運算功能。

(3)32 條雙向且可被讀立定址I/O 。

(4)晶片內有128 位元組可提供儲存資料的RAM 。

(5)內部有兩個16 位元計時器/記數器(8052 有3個)。

(6)具一通信用全雙工UART 。

(7)5 個中斷源,且具有兩層(高/低)優先全順序之中斷結構。

(8)晶片內有時脈(Clock)振盪器,最高頻率可達12MHz 。

(9)晶片內有4K(8052 有8K)位元組的程式記憶體(ROM)。

(10)可在外部擴充達64K 位元組程式記憶體(EPROM)。

(11)資料記憶體可在外部擴充至64K 位元組資料記憶體(RAM)。[4]

23

下圖為8051腳位示意圖:

圖2.24 8051腳位示意圖

{1} VCC(40):8051 +5V 電源接腳。

{2} VSS(20):8051 電源接地端。

{3} P0.0 ~ P0.7 (39 ~32):

此8隻腳為8051第0個輸入/輸出埠,簡稱P0。除作為輸入/輸出埠外,又可當

作外接程式記憶體的較低8位元位址,及資料匯流排,因此具有三重多工用途,

其主要功能為:

1. 當存取外部記憶體時,作為較低8位元位址匯流排 (A0 ~ A7)和資料匯流排(D0

~ D7)。一般是在每個指令週期中,先送出位址位號,再送出資料信號。

2. P0埠作為輸出用時,必須加上提升電阻。

3. P0埠作為入埠時,必須先將1狀態寫到P0,使其成為高阻抗狀態,才能成為正

常的輸入埠。

3. 當作輸出時,每個接腳可以驅動8個LS TTL 負載。

24

{4} P1.0 ~P1.7 (1 ~8):

此為8051第一個輸入/輸出埠,簡稱為P1。內部本身已有提升電阻。

1. 要作為輸入埠時,必須先將1狀態寫到P1,使其經由內部提升電阻,提升成為

高電位狀態,才能正常作為輸入埠。

2. 作為輸出埠,將1輸出,則接腳為高電位,輸出0到P1,則接腳為低電位。每

個接腳可以驅4個LS TTL 負載。

3. 在8032或8052的晶片,P1.0作為第2個計時/計數器的輸入接腳T2,P1.1為第2

計時/計數器在捕獲模式下的輸入接腳T2EX。

{5} 2.0 ~P2.7(21~28):

為第二個輸入/輸出埠,簡稱P2。內部已有一提升電阻。除可作為I/O埠外,

又作為位址匯流排的較高8位元位址。

1. 如作為輸人埠,必須先將1寫到P2,才可以正常作為輸入埠。

2. 作為輸出埠,將1輸出,則接腳為高電位,輸出0到P2,則接腳為低電位。每

個接腳可以驅動4個LS TTL 負載。

3. 當存取外部記憶體時,作為較高8位元位址匯流排 (A8 ~ A15)。

{6} P3.0 ~ P3.7 (10 ~ 17):

P3.0 ~ P3.7 簡稱P3。內部已有一提升電阻。

1.如作為輸入埠,必須先將1寫到P3,才可以正常作為輸入埠。

2.作為輸出埠,將1輸出,則接腳為高電位,輸出0到P3,則接腳為低電位。每個

接腳可以驅動4個LS TTL 負載。除作一般的I/O埠,每支接腳另有其它功能,

列舉如下:

P3.0/RXD(10) 串列通訊的信號接收腳

P3.1/TXD(11) 串列通訊的信號傳送腳

P3.2/INTO(12) 第0個外部中斷信號輸入腳

25

P3.3/INT1(13) 第1個外部中斷信號輸入腳

P3.4/T0(14) 第0個計時/計數器,外部計數信號輸入腳

P3.5/T1(15) 第1個計時/計數器,外部計數信號輸入腳

P3.6/WR(16) 對外部資料記憶體的寫入控制信號

P3.7/RD(17) 對外部資料記憶體的讀取控制信號

{7} RST (9):

為重置(RESET)信號輸入接腳,在此接腳,加上高電位,並且維持兩個機械

週期以上,晶片內部就會產生重置動作,重置時,內部相關的暫存器會被重置為

特定的內容值。

{8} XTAL1(18) XTAL2(19):

為內部時脈振盪器的輸入接腳。一般在這二接腳,加上一個12MHz 的石英振

盪器晶體,來產生所須工作頻率。

{9} PSEN(29):

PSEN是Program Store Enable,程式儲存致能信號。它是8051晶片讀取外部

程式記憶體的激發信號,當晶片在讀取外部記憶時,會送出這個信號到記憶體上

的輸出致能腳,促使記憶體送出程式碼。

{10} ALE/PROG(30):

ALE代表Address Latch Enable,位址閂鎖致能信號。因8051的P0具有位址和

資料匯流的雙工作用,在讀取外部記憶體的資料或程式碼,為分辨P0上為位址信

號線或是資料信號線,由ALE接腳輸出一負緣信號作為辨別P0上的位址信號,此

信號一般都接到一閂鎖電路致能腳。

26

{11} EA/VPP(31):

這支接腳是存取外部程式記憶體的致能腳。當8051的EA/VPP加入0電壓,表示

使用外部程式記憶體。加入5V電壓,則是自內部ROM或EPROM讀取程式執行,若使

用8031時,因為內部沒有ROM,使用時EA/VPP必須接地。[4]

27

第三章 性能簡介

3.1 動作流程:

整台自走車的靈魂元件就是設置在車頭的四個焦電型紅外線感測器,一切動

作的起點跟終點都是由這四個感測器所決定的,其中在較上方,位置連成一線並

且角度各有不同的三個感測器,是用來判斷人體的所在位置。當左邊或右邊的感

測器,感測到有人體體溫的變化時,就會發出訊號來通知8051,兩邊的馬達,一

邊正轉而另外一邊就反轉,藉此做出左轉或是右轉的動作;而位在中間的感測器

是用來鎖定真正人體的所在位置,相較於左右兩個感測器,其感測範圍是呈現近

乎90° 的一直線,而不是左邊或右邊感測器的扇型,目的就是為了能準確的做出

追蹤的行動。當中間的感測器感測到有人體的溫度變化之後,就會送出訊號給

8051,這時表示車頭已經對準目標物,可以開始追蹤,兩邊的步進馬達同時正轉,

開始朝目標物前進。當自走車車體與目標近到一定的距離時,位在下方,和地面

垂直的第四個感測器就會發生作用,傳出訊號給8051,表示已經追蹤到目標,可

以停止馬達的運動,至此自走車的動作算是告一段落。

在當初設計的時候也有考慮到目標物不會自行移動,而必須靠自走車做出搜

尋的情形,因此在開啟電源後的5秒內,如果在感測器的感測範圍內,沒有發現

可以追蹤的目標,就會進入搜尋模式。搜尋模式啟動後,會對左右各做出180°

的旋轉,藉此增加感測面積,一但有目標被發現,搜尋模式即被中斷,開始由一

般的流程來進行追蹤。

28

3.2 自走車程式設計

3.2.1 訊號輸入及等待模式

由於自走車的動作全賴訊號輸入來驅動,所以訊號的輸入頗為重要,又焦電

型紅外線感測器所產生的訊號為一脈衝訊號,但是追蹤動作不能因為訊號的消失

而就此停止,必須等到確定追到定位才能休息,因此在脈衝消失而新的脈衝尚未

產生前,必須保留一組前一次輸入訊號的「回音」,讓8051在動作的時候仍然能

夠有所依據。

然而當沒有訊號輸入的時候就必須進入等待模式。等待模式的主要目的是計

時,以便在沒有目標物的情況下,5秒後進入搜尋模式。從判斷有無訊號輸入到

是否進入等待模式,以8051的工作時脈來說,只需要15us,因此不虞會有錯過的

情形發生。

3.2.2 搜尋模式及主程式:

在正常的情形下,順利的從sensor輸入了要追縱的目標物所在的訊號,就會

進入(1) 主程式,來進行追蹤,但是如果當上述的等待時間終了之後,還是沒有

有任何目標物的訊號輸入,就會進入(2) 搜尋模式,分述如下:

(1) 主程式:

主程式的功用就是解讀從感測器傳來的訊號,並且加以判斷,以做

出符合預期的反應,例如在右邊感測器有訊號時右轉,中間感測器有訊

號時直行等等。其設計的原理是把步進馬達的脈衝信號存放在8051所保

留的暫存區中,並且設計一辨別左右步進馬達之旗標,以左旋指令(RL)

或右旋指令(RR)來驅動馬達的正轉反轉。解讀訊號和控制正反轉的程式

29

部份又是互相獨立的,這樣做的好處是當要改變判別規則時,不需要做

出大幅度的修正,只要修改單一部份就可以了。

(2) 搜尋模式:

搜尋模式是為了尋找目標,得到其相關位置的訊號而設計的,設計

原理是把搜尋模式寫在主程式之前,當沒有任何輸入,又超過等待時間

的話,就會丟給主程式一個「假的」輸入訊號,使之右轉180° ,再左

轉180° ,最後再右轉回到原來的位置。之所以使用「假的」輸入訊號,

原因是同樣可以達成驅動馬達左右轉的目的,而又不必再在搜尋模式下

寫出讓馬達左右轉的重覆部分,大大簡化了程式內容的複雜度。至於如

何判斷訊號是真是假,只要在接收訊號的最前端程式部份,加上一真偽

旗標,當任何時候,只要輸入信號「曾經」不為零,就不會啟動搜尋模

式,除非在追蹤到目標物之後,又重新等待了超過設定的時間,才會再

度進入搜尋模式。

30

圖3.1 有訊號輸入時的動作流程圖

31

圖3.2 無訊號輸入時的流程圖

32

3.3 研究過程中所遇到的問題:

1.

一開始在測試電路版時所使用的車體是單純由壓克力所組成的,後來是為了

車體的結構性跟美觀性才使用角鋼來對壓克力做固定的動作,但是同時也大大增

加了車體的重量。

而原來測試用的程式,所搭配的是一般扭力的小型步進馬達,雖然配上測試

用的壓克力車體扭力仍有所不足,不過可以藉由搭配加速減速程式來達到追蹤的

效果。但是當換上了由角鋼加以組合而成的車體時,因為角鋼本身的重量,使得

無論如何修改程式,都沒辦法驅動馬達,只好重新購買兩顆扭力較強的步進馬

達,才得以順利推動車體。

2.

在一開始做焦電型感測器的電路時,由於是第一次接觸這類感測元件,所以

便覺得不知從何下手,所幸在學校圖書館有這類元件的書籍可以借來閱讀,於是

我們便經由書上的導引來慢慢的研究,漸漸的瞭解了焦電型感測器的特性,於是

我們就開始著手進行放大訊號的工作,一開始我們並沒有在感測器輸出端與放大

器輸入端之間串聯一個電容,所以得到的訊號在尚未有人體接近時有不小的雜

訊,因此我們便加上了一個電容來濾除雜訊,所得到的結果令我們相當的滿意。

然而在決定放大器的放大倍率時,一開始我們是使用10KΩ與15MΩ,所得的放大

倍率對我們來說尚可接受,但是卻會產生延遲時間,人體已經到了感測器的感測

範圍,但是經過放大器的訊號輸出卻慢了大約0.06秒,後來才發現是因為τ=

RC,R=15M、C=0.1μ,而放大器系統要變成穩定狀態需要4τ,以致於會產生

延遲時間,因此我們便將放大器上的決定放大倍率的電阻改成1KΩ與1.5MΩ,便

解決了經過放大器所產生的延遲時間。

33

第四章 結 論

本次專題我們成功的使焦電型感測器能夠偵測到 5 公尺外的人體所在方向,

以及成功的使用 8051 來控制步進馬達來驅動自走車,但唯一的缺點就是,感測

電路的輸出電壓無法正確的傳送到 8051 的輸入 Port(P2),為了解決這個問題我

們先後使用了電子式的方法,以及機械式的方法,還有更換輸入的 Port,但是

都無法使 8051 收到應有的電壓輸入,電子式的方法是利用 PNP 電晶體來當作開

關,而機械式的方法則是使用傳統,卻相當有效的繼電器來當作開關,但令人百

思不解的是電路的設計沒有錯誤,接線也很正確,但不管怎樣 8051 就是無法獲

得正確的電壓輸入,這實在是研究這個專題的組員們心中最大的遺憾。如果以後

有學弟妹們想要作同樣的的專題或類似的題目的話,希望能夠把這個問題解決。

34

參 考 文 獻

[1] 葉明財編譯,步進馬達活用技術,全華科技圖書股份有限公司,1995。

[2] 黃宏彥、余文俊、楊國輝編著,感測器原理與應用電路實習,高立圖書有限

公司,1999。

[3] 蔡朝洋編著,電子學實驗,全華科技圖書股份有限公司,2000。

[4] 鄧錦城編著,8051單晶片實作寶典,益眾資訊有限公司,2000。

35

附錄一 自走車程式

MOTORR REG 20H

MOTORRCOUNT REG 21H

MOTORL REG 22H

MOTORLCOUNT REG 23H

MOTORFLAG REG 24H

TURNFLAG REG 25H

SEARCHCOUNT1 REG 26H

SEARCHCOUNT2 REG 27H

SEARCHSTART REG 28H

ECHOFLAG REG 29H

CODE

ORG 00H

INITIAL:

MOV R0,#MOTORR

MOV @R0,#10001000B

MOV R0,#MOTORL

MOV @R0,#10001000B

MOV R4,#0

MOV R7,#0

MOV P1,#0

CALL INT1

36

CALL INT2

JMP START

INT1:

MOV R0,#TURNFLAG

MOV @R0,#0

MOV R0,#SEARCHCOUNT1

MOV @R0,#0

MOV R0,#SEARCHCOUNT2

MOV @R0,#0

MOV R0,#SEARCHSTART

MOV @R0,#0

RET

INT2:

MOV R0,#MOTORRCOUNT

MOV @R0,#0

MOV R0,#MOTORLCOUNT

MOV @R0,#0

RET

START:

MOV A,P2

JZ SEARCHDELAY

CALL INT1

MOV R5,A

37

MOV R7,A

MOV R0,#ECHOFLAG

MOV @R0,#1

JMP ONESTEP

SEARCHDELAY:

MOV R0,#ECHOFLAG

CJNE @R0,#0,ECHO

JMP START

MOV R0,#SEARCHSTART

MOV A,@R0

JB ACC.0,SEARCHGO1

JB ACC.1,SEARCHGO2

MOV R0,#SEARCHCOUNT1

INC @R0

MOV A,#10

CALL DELAY1

CJNE @R0,#100,START

MOV @R0,#0

MOV R0,#SEARCHCOUNT2

INC @R0

CJNE @R0,#5,START

MOV @R0,#0

MOV R0,#SEARCHSTART

MOV @R0,#00000001B

JMP START

38

SEARCHGO1:

MOV R0,#MOTORRCOUNT

CJNE @R0,#40,RIGHT

MOV R0,#MOTORLCOUNT

CJNE @R0,#80,LEFT

MOV R0,#SEARCHSTART

MOV @R0,#2

CALL INT2

JMP START

SEARCHGO2:

MOV R0,#MOTORRCOUNT

CJNE @R0,#40,RIGHT

MOV R0,#SEARCHSTART

MOV @R0,#0

CALL INT2

JMP START

RIGHT:

INC @R0

MOV A,#00000100B

MOV R5,A

JMP ONESTEP

LEFT:

INC @R0

39

MOV A,#00000001B

MOV R5,A

JMP ONESTEP

ECHO:

MOV R5,7

ONESTEP:

MOV R0,#MOTORFLAG

MOV @R0,#1

MOV A,R5

MOV R0,#MOTORR

CALL STEPSET

ANL A,#0FH

MOV R6,A

MOV R0,#MOTORFLAG

MOV @R0,#2

MOV A,R5

MOV R0,#MOTORL

CALL STEPSET

ANL A,#0F0H

ORL A,R6

MOV P1,A

MOV A,@R0

MOV R0,#TURNFLAG

JB ACC.0,TURNSPEED

MOV A,#10

40

ST1:

CALL DELAY1

JMP START

STEPSET:

JNB ACC.3,STOP

JNB ACC.1,FOWARD

JNB ACC.2,TURNR

JNB ACC.0,TURNL

RET

FOWARD:

MOV A,@R0

RL A

MOV @R0,A

MOV R0,#TURNFLAG

MOV @R0,#2

RET

TURNR:

MOV R1,#MOTORFLAG

MOV A,@R1

JB ACC.0,G2

JMP G1

TURNL:

41

MOV R1,#MOTORFLAG

MOV A,@R1

JB ACC.1,G2

JMP G1

G1:

MOV A,@R0

RR A

MOV @R0,A

MOV R0,#TURNFLAG

MOV @R0,#1

RET

G2:

MOV A,@R0

RL A

MOV @R0,A

MOV R0,#TURNFLAG

MOV @R0,#1

RET

STOP:

MOV R0,#ECHOFLAG

MOV @R0,#0

RET

42

TURNSPEED:

MOV A,#20

JMP ST1

DELAY1:

DL2:

MOV R2,#8

DL1:

MOV R3,#64

DJNZ R3,$

DJNZ R2,DL1

DJNZ A,DL2

RET

END

43

附錄二 印刷電路板

步進馬達驅動電路-1

步進馬達驅動電路-2

44

主感測器電路-1

主感測器電路-2

45

第二感測器電路-1

第二感測器電路-2

46