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

37
自動控制工程學系專題製作 車型機器人之研製 Car-Like Mobile Robot Design 指導教授:陳杏圓 生:劉宇桓 翁精邦 陳炳福 中華民國九十五年元月

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

  • 逢 甲 大 學

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

    專 題 論 文

    車型機器人之研製

    Car-Like Mobile Robot Design

    指導教授:陳杏圓

    學 生:劉宇桓

    翁精邦

    陳炳福 中 華 民 國 九 十 五 年 元 月

  • 誌謝

    由衷地感謝指導教授陳杏圓老師於兩年來的指導與關懷,不論在專業研究領

    域、待人處事或是生活上提供了寶貴的意見與鼓勵。同時也感謝其它實驗室的

    老師們所給予的指導與提攜在此要特別的感謝實驗室的家延學長,在他的帶領

    與照顧之下,我們的專題研究才得以完成。當然還得感謝勝智學長、智惟學

    長、在我們遇到困難時總是大力相助。感謝所有幫助過我們的人。

    i

  • 摘要

    本論文旨在設計一台以單晶片(PIC16F877)為控制核心的小型自走車(car-

    like robot),以滿足控制需求,進而實驗控制理論。 此自走車不同於一般設計

    沿黑線行走的自走車,而是利用程式作為控制輸入,並由回授訊號做動態調整

    以達到我們所期望的行為。含了車體架構、傳動控制,設計方面的考量主要是

    以實用為原則。直流馬達作為自走車運動所需的動力,其正反轉則透過 PIC 的

    指令來控制;速度控制部分,以 PWM(pulse width modulation)脈波寬度調變

    技術來達成;定位部分,則是利用馬達本身所附的 Encoder 加上 IC 8254 計數

    器來計數回授的脈波數來達到定位的目的。

    ii

  • Abstract

    The paper describes a microprocessor(PIC16F877)based on control kernel for the

    car-like robot, it contains the vehicle structure and the gear with controllability. The

    concept of design is the useful training for this paper. The dc motor is the power of

    the small car-like robot, and we control it forward or backward with the

    microprocessor. On the other hand, the speed control is reached by PWM (pulse width

    modulation). We regular the small car-like robot with the encoder of the dc server

    motor and compute the encoreding signal with IC 8254.

    iii

  • 目錄

    誌謝................................................................i

    中文摘要............................................................ii

    英文摘要...........................................................iii

    目錄...............................................................iv

    圖目錄.............................................................vi

    表目錄.............................................................vii

    符號說明..........................................................viii

    第一章 序論⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1

    1-1 前言⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1

    1-2 文獻回顧⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯1

    第二章 研究方法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3

    2-1 馬達基本原理及構造⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯3

    2-2 直流馬達的轉速控制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4

    2-2-1 電樞電阻控速法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4

    2-2-2 電樞電壓控速法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5

    2-2-3 磁場控速法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5

    2-3 直流馬達驅動電路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯5

    2-4 邏輯閘的功用⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7

    2-5 PWM⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯11

    2-6 單晶片以及週邊部分零件說明⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12

    2-6-1 PIC 系列單晶片⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯12

    2-6-2 PIC 之詳細介紹⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯13

    2-6-3 8254 可程式計數器⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯16

    2-6-4 系統的重置及標準時鐘電路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯17

    iv

  • 第三章 程式流程圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19

    3.1 主程式⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19

    3.2 初始設定⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20

    3.3 速度量測與調整⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20

    3.4 轉向控制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20

    第四章 結論及未來展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23

    4.1 結論⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23

    4.2 未來展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯23

    參考文獻⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯24

    附錄⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯2 6

    v

  • 圖目錄

    圖 2.1 直流馬達基本構造圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯4

    圖 2.2 MOSFET 之 H-BRIDGE⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯6

    圖 2.3(a) 閘極輸入與輸出關係圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7

    圖 2.3(b) H-BRIDGE 的閘極之基本控制電路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8

    圖 2.3(c) 臂間短路預防電路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯9

    圖 2.3(d) 閘極觸發電路⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯10

    圖 2.4 產生 PWM之方塊圖.........................................11

    圖 2.5 16F87X之 PWM動作方圖....................................12

    圖 2.6 PIC 之腳圖...............................................13

    圖 2.7 CPU 及基本 I/O 配製⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯18

    圖 3.1 主程式流程圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯19

    圖 3.2 初始值設定流程圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯20

    圖 3.3 速度量測與調整流程圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯21

    圖 3.4 轉向控制流程圖⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯22

    vi

  • 表目錄

    表 2.1 馬達轉動與電晶體開關之關係表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯7

    表 2.2 修正之邏輯真值表⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯8

    表 2.3 ADCON1暫存器的內容⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯14

    表 2.4 各 TIMER 之間的比較⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯15

    vii

  • 符號說明

    Φ:電樞中的電磁密度 l :導線長度

    aΙ :流過電樞中的電流

    Ν:繞組數

    viii

  • 第一章 緒論

    1-1 前言:

    在現今這個凡事講求科技化的社會,有許多的家電用品都逐漸邁向自動化之方

    向,許多以前須靠人力完成的工作,也悄悄地被自動化的機器所取代。自動化

    之所以用機器取代人力,主要目的是要讓人們可以節省許多時間及體力,而節

    省下來的時間不但可以提高人們的工作效率,並且大幅提升了人類的生活品

    質。一部自動化的機器,利用將不同的系統結合,如機構設計、電機控制、軟

    體設計與其它不同的領域等,而達到人類體能上所無法達到的速率。基於以上

    的基本概念,本論文旨在研究發展一台具有多用途之自走車,透過在其上加裝

    感測器或其它工具,使原本單調的工具成為一個多功能的載具。經由精密的控

    制後,自走車便能依據我們所預期之模式行走,而在其車體上加裝的感測器使

    其能傳回感測到之資料,讓使用者經由遠端控制就可了解自走車所處之環境,

    而不需要人類的到達。最常見的例子有:在危險環境中,像是具毒性或污染性環

    境的清除、爆裂物的清除、海底探勘、採礦、救災等特殊任務,以前沒有自走

    車時,往往需要人員親自接觸,時常造成人員傷亡,有了自走車,那麼風險可

    以降到最低,利用自走車進入此環境,執行必要的工作,則人員的意外傷害就

    可以減少。

    1-2 文獻回顧:

    本節主要是介紹一些有關於自走車的發展概況。一般而言,自走車歸應屬於

    「機器人」之一類。機器人可以說是最佳系統整合的象徵,也是我們最終所要

    達成的目標。在以下自走車的發展裡,將以機器人為範圍來討論。現在所謂的

    機器人主要有兩種形式,一種為「機械手臂」,一般是由機械背景的人所發

    展,因為其所學習的領域著重於機械結構方面,而主要應用在工業用途上。另

    1

  • 一種為「自走車」,一般是由電機背景的人所發展,主要是因為自走車的研究

    著重於機電之整合,其應用的範圍則較為廣泛。之所以會有如此的差別,除了

    應用的需求不同之外,也可能是因為在發展一個機電整合系統時,還是免不了

    由其最熟悉的技術開始著手,但不管是以何種形態做為開始,最終的目的仍是

    達成完整的機電整合系統。若以移動方式來說,機器人除了以車輪帶動外,還

    有其它許多不同的形式,例如:以「足」為移動機構的步行機器人,常見有六

    足機器人[1]、四足機器人[2],另外甚至有雙足機器人。整體來說,步行機器人

    的行進速度較慢,但可以應用在較複雜的地形,如凹凸不平的路面或是跨越階

    梯。至於車形機器人則有速度快的優勢,但通常只適用於平坦的路面。

    在國外機器人的發展,技術上較為成熟,有許多成果的發表,也真正的運用到

    許多不同的用途上,如在日本發展幫助盲人行走的導盲機器人[3];而美國的火

    星探測即是利用「Rover」機器人來收集火星環境資料[4];以及不久前日本本田

    公司推出的雙腿機器人,這台名叫P3的機器人,可以用兩條腿走路,並且有能

    力判斷地面狀況,還能用雙手完成一些簡單的工作。雙腿機器人在國內機器人

    發展方面,工業界由於成本及實用性的考量,主要以購買國外製作的工業用機

    器人為主,並不十分地熱衷於機器人之發展。而在學校則受到教育環境的影

    響,較不易受到重視,不過仍有許多學術單位正在研究發展。

    我們三位組員在還未選專題題目時就都對自走車有著很大的興趣也都希望能在

    自控系畢業之前做出一台比較基本的車型機器人當然我們的專題指導教授也對

    智慧型控制有相當多的研究成果於是乎就決定要坐車型機器人的研究了

    2

  • 第二章 研究方法

    十八世紀以前,人類將電與磁視為毫無相關的現象,直到 1820 年奧斯特在偶

    然的機會下,發現磁針靠近載有電流的導線,會產生偏轉,並由此推知載流導

    體四周會建立磁場。到了 1830 年,法拉第發現了電磁感應現象,磁與電的密切

    關係才慢慢的為人所知。此後,依照電磁的理論,慢慢的發展各種電機機械,

    而成為提供動力的主要來源。雖有直流馬達的發展,但有些應用卻慢慢的被交

    流馬達所取代,但是它的高轉矩、容易控制和利用電池作為電源,使得它可以

    在特殊的環境工作。

    2-1 馬達基本原理及構造:

    直流馬達可分為由定子(Stator)和轉子(Rotor)或稱為電樞兩部份所組成,圖 2.1

    為直流馬達的構造圖。

    其中磁場 為纏繞在定子線圈中的Φ Ι所產生。

    由基本的電磁理論可知:作用在一磁場Φ中,載電流為 aΙ 的完整電路的磁力

    為:

    aF ΙΦ≡ λ

    其中 :電樞中的電磁密度 Φ

    :流過電樞中的電流 aΙ

    :導線長度 λ

    當矩形迴路流過 aΙ 時,依照弗來明左手定則,它會產生一力矩,使回路產生運

    動。

    3

  • 圖 2.1 直流馬達基本構造圖

    為保持力矩永遠在同一方向,因此必須要有一換向裝置,使得回路中每半圈

    方向改變ㄧ次;則轉矩

    ΦΚΙ=Τ a ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯(2.1)

    bλΝ=Κ

    其中: :回路中的電磁密度,Φ aΙ :流過回路的電流, bλ :回路面積

    :繞組數 Ν

    Κ為馬達出廠時就已固定,由公式 2.1 知,可經由控制電樞電流及定子的磁場

    強度來控制馬達轉矩。

    2-2 直流馬達的轉速控制:

    影響直流馬達轉速的因素有:(1)輸入端電壓,(2)電樞電阻,(3)主磁極磁通

    量。只要將上述因素中任一項改變,即可控制馬達的轉速[7]:

    2-2-1 電樞電阻控速法:

    維持外加的電壓及主磁通不變,而插入電阻於電樞電路上已改變 壓降的

    方法,稱為電樞電阻控速法。電樞電阻控制法只能將轉速控制在基本轉速之

    下,否則將會造成不良的轉速調整率;且使用電樞電阻控速法,因所串接的電

    阻器功率損失極大,會使整體效率降低。

    aa RΙ

    4

  • 2-2-2 電樞電壓控速法:

    維持主磁場磁通不變,而改變電樞兩端的外加電壓來達到控制轉速。與電樞

    電阻控速法ㄧ樣只能將轉速控制在基本轉速之下,否則要考慮線圈絕緣問題。

    另外需注意的是,當外加電壓較低時,因電樞電阻的壓降對反電勢的比值,相

    對增大,故轉速調整率較差。

    2-2-3 磁場控速法:

    由直流馬達的轉速公式可知,磁通量越小時則轉速將愈高。磁場控速法只能

    將轉速控制在基本速度之上,並且只能做定功率的運轉。

    2-3 直流馬達驅動電路:

    H-Bridge,這部分在整個自走車的硬體部分,佔有極重大的位置。而就自走

    車整體來說,影響 H-Bridge 的為前ㄧ級輸入(閘極觸發電路),功能為確保臂

    間不會短路。

    而 H-Bridge 的種類繁多,我們選擇以 POWER MOSFET 來快速控制開關

    ON/OFF的切換,原因如下:

    1﹒能夠快速切換。

    2﹒在較高的 之下,具有較低的導通電阻 。 DSV )(ONDSR

    3﹒ 較低,也就是說可以使用較低的閘極電壓觸發。 THV

    5

  • 圖 2.2 MOSFET之 H-BRIDGE[7]

    6

  • 1﹒在 POWER MOSFET 旁邊加裝ㄧ飛輪二極體,以避免 POWER MOSFET 被

    過大的逆電流擊穿。

    2﹒RC網路是用來限制電晶體t

    v

    dd這項參數。

    在表 2.1中 、 和 、 不能同時 ON,否則會造成臂間短路,而使電晶

    體燒毀[6]。

    1Q 2Q 3Q 4Q

    表 2.1 馬達轉動與電晶體開關之關係表

    1Q 2Q 3Q 4Q

    ON OFF ON OFF 順時鐘

    OFF ON OFF ON 逆時鐘

    OFF OFF OFF OFF 停止

    2-4 邏輯閘的功用:

    邏輯閘部份,為 H-Bridge 的前級電路,是以用來避免馬達轉動時產生高頻干

    擾,造成 CPU當機;以及避免 H-Bridge的臂間短路。

    依照 PWM的的驅動方法,這個單元應具有圖 2.3(a)的輸出與輸入的關係,

    圖 2.3(a) 閘極輸入與輸出關係圖[9]

    7

  • 其中 F:順時針旋轉控制信號 R:逆時針旋轉控制信號。

    PWM:脈寬調變的信號。

    G1~G4:控制單元的輸出信號,用以控制電晶體的閘極。

    按照以上的關係圖可繪出圖 2.3(b)的基本電路,並可經由 F、R與 PWM的作用

    來控制輸出狀態。

    圖 2.3(b) H-BRIDGE的閘極之基本控制電路

    但這個單元的 F和 R有可能同時為 Hi,所以必須經過以下的修正,否則會產

    生臂間短路。依照表 2.2 之真值表在修改的電路,而完成的臂間短路預防電

    路,如圖 2.3(c)。

    表 2.2 修正之邏輯真值表

    F R 1F 1R

    0 0 0 0

    1 0 1 0

    0 1 0 1

    1 1 0 0

    8

  • 圖 2.3(c) 臂間短路預防電路[10]

    雖然依照上面的電路,可以滿足閘極的電氣規格需求,但電晶體的閘極仍是

    電力元件的一部份,當馬達轉動時會產生高頻干擾,這種高頻干擾假如沒消除

    掉,則會造成 CPU 的當機。所以在閘極之前加入一光耦合器 (PHOTO-

    COUPLE) ,來改善上述問題。

    為 4N25 的順向電流,但流出 74LS08 的FΙ OLΙ 電流為 ,無法直接推動

    4N25,因此加入 74LS07作為輸出緩衝,它可承受 的電流。

    mA4

    mA30

    ( )mAR

    VVV OLDCCF 23150

    4.02.15

    1

    ≅−−

    =−−

    9

  • 圖 2.3(d) 閘極觸發電路[10]

    10

  • 2-5 PWM(Pulse Width Modulation):

    PWM 是一種利用脈波控制轉速的方法,當輸入馬達的電源為 high 時,馬達

    受到電壓供應而轉動;當輸入為 low 時,則沒有電源供應給馬達,此時馬達藉

    著本身的慣性轉動,轉速會逐漸減慢最後停止。因此 PWM 是一種利用電源

    high、low 的切換來控制馬達轉速的方法。所以脈波週期必須固定,然後再藉

    由改變脈波的波寬比(Duty Cycle:脈波寬與週期之比)達到改變速度的目的。

    當波寬比發生變化時,供給馬達的平均電流發生變化,於是轉速即產生改變。

    圖2-4 產生PWM之方塊圖[9]

    圖2-4為利用數位電路產生PWM之方塊圖。在此電路中,先由LM555接成產

    生方波之非穩態電路後,提供一個方波震盪器的功能,再將之輸出接至counter

    (型號:74HC4040),以提供此計數器的clock。其中74HC4040是一顆負緣觸

    發的二進位漣波計數器。圖2-4為產生PWM的最基本方法,不過考慮到電力的

    消耗問題,就決定以單晶片內所含的PWM產生器來作為PWM輸出。

    而PIC單晶片的PWM,基本上,可以看成為兩個Compare所組成,如圖2-5所

    示,其中,有一個Compare負責管理輸出脈波寬度(Duty Cycle),由暫存器

    CCPRx和計時器(Timer)分工合作來達成;而另一個Compare則負責管理輸出

    脈波的週期(Period),由暫存器PR和計時器(Timer)共同完成。因此,只要

    事先設定好圖中的CCPRx與PR等暫存器,則在啟動Timer之後,微處理器就可

    11

  • 以完全不管,由PWM自行一個接著一個的產生一系列的脈波信號。

    圖2-5 16F87X之PWM動作方塊圖[16]

    2-6 單晶以及週邊零件說明:

    2-6-1 PIC系列單晶片:

    PIC16F87X 系列的單晶片是 Microchip 公司所推出的產品,它是ㄧ顆 RISI 的

    八位元微電腦的控制晶片,搭配高達 8K 的 Flash 形式的程式記憶體及 5 組的

    I/O PORT,和支援 14個中斷[12]:

    PIC16F877的特性如下所述:

    採用高性能的 RISI CPU核心。

    8位元微電腦控制晶片。

    8K×14的程式記憶體(Flash) 。

    368 Bytes資料記憶體和 256 Bytes的 EEPROM資料記憶體。

    5組 I/O PORT(A、B、C、D、E)。

    2組 8位元的 TIMER/ COUNTER(TIMER0、TIMER2)以及 1組 16位元的

    TIMER/ COUNTER(TIMER1)。

    支援 14個中斷處理。

    12

  • 圖 2-6 PIC之腳位圖

    2-6-2 PIC之詳細介紹:

    2-6-2-1 I/O PORT簡介:

    輸入輸出埠是單晶片最基本的界面,透過這個界面,單晶片可以用數位的方式

    和單晶片外的週邊電路連接,而進行電路的控制和信號的檢測。大部分的單晶

    片接腳都可以同時具備雙向輸入輸出的功能,基本上要作為一個輸入接腳或是

    輸出接腳只是接腳的阻抗特性不同,在單晶片接腳內部,提供不同的兩條阻抗

    的路徑,就可以做為雙向輸入輸出接腳了,不過此時會需要另外一個選擇,即

    接腳是要作為輸入或輸出的選擇位元,通常稱之為「方向位元」;另外還有一

    個位元,在作為輸入接腳時是用來存取接腳的狀態值,作為輸出接腳時是用來

    讀取接腳的狀態值。

    I/O埠除了基本的輸入輸出功能外,為了節省單晶片的接腳數目,I/O接腳通常

    都會和一些週邊模組共用接腳,以多工方式來共存,因此當一支接腳是讓週邊

    模組功能使用時,通常就不能作為標準的I/O接腳了,反之,當接腳是用來作為

    標準I/O界面時,週邊模組就無法使用該接腳了。

    接下來進一步的介紹論文中之一般I/O接腳或是週邊模組接腳。

    13

  • a、PORTA:是一個六位元的輸入輸出埠。與PORTA共用接腳的週邊模組,有

    A/D轉換器的轉換通道及類比參考電壓、Timer0的外部時脈輸

    入、SSP的從屬選擇接腳。因此若要將PORTA作為一般的I/O使

    用,由於PORTA在未做任何的設定時,無法做單位元(bit)的輸

    出輸入,只能做整個埠的輸出輸入。所以必需要先設定ADCON1

    暫存器之內容,其如表2.3 所示,如此才可以做為各別位元的輸出

    輸入方式。

    b、PORTE: 僅有三支接腳,可作為雙向的I/O埠,它也有自己的RE和TRISE暫

    存器,不過只有位元0到位元2有用,在作為I/O埠的輸入接腳時,

    內部為史密特觸發緩衝器。和PORTE共用的週邊模組,包括了A/D

    轉換通道接腳和平行從屬埠控制位元。因此若要將PORTE做為一

    般的I/O使用時,需將ADCON1暫存器的內容設定為其I/O狀態,

    表2.3所示。

    表2.3 ADCON1暫存器的內容[13]

    14

  • 2-6-2-2 計時器模組:

    計時器是大部分單晶片都有內建的一項重要功能,計時器以固定的時間間隔累

    計次數,因此可以提供一個不受軟體流程影響的固定時間間格,這是計時器在

    單晶片中所扮最重要角色。計時器的累計是由時脈來驅動的,這個時脈可以是

    單晶片本身的工作時脈,也可以是另外由外部接腳輸入的時脈,通常使用內部

    時脈者稱之為「計時器」,若是使用外部時脈則稱之為「計數器」(Counter)。

    不論是使用那個時脈,計時器的累計是靠時脈來觸發的,觸發的方法有的是以

    時脈的下降邊緣(Falling Edge)來觸發,有的則是靠上升邊緣(Rising Edge)來觸

    發,或是這兩個邊緣都會引起觸發。用何種觸發方式,要看計時器的設計為

    何。此外,PIC 之累計方式是遞增,沒有遞減的方式。

    計時器也有位元數的區別,因此累計的次數範圍會有一個上限值,累計到上限

    值時,就會發生溢位的的情形。當TIMER0 與TIMER1產生溢位時,會有溢位中

    斷產生。而TIMER2的中斷則是當其累計到與PR2 暫存器的值相等時產生。PR2

    稱為週期暫存器(PeriodRegister),這個暫存器可以由使用者填入適當的值。

    表 2.4 各 TIMER之間的比較[16]

    15

  • 2-6-3 8254可程式計數器:

    8254 為一顆可規劃的計時/計數晶片,8254 的最大工作頻率為 8MHz。每顆

    8254 具有三個各自獨立的計數器,每個計數器各有 3支接腳,分別為時脈輸入

    端(CLK),閘控制輸入端(GATE),信號輸出端(OUT)。每個計數器為

    16 位元,可將一個計數器的 OUT 串接到另一個計數器的 CLK,如此可擴充到

    32位元[14]。其特性如下所述:

    其工作頻率為 8MHz。

    8254具有回讀功能,讓使用者可以鎖住計數器讀取狀態及計數值。

    8254 利用一個控制字元來設定每個計數器的工作模式及計數值,8254 共有

    六種工作模式:

    模式0:Interrupt on Terminal Count

    模式1:Hardware Retriggerable One-Shot

    模式2:Rate Generator

    模式3:Square Wave Mode

    模式4:Software Triggered Strobe

    模式5:Hardware Triggered Strobe

    在此僅使用模式0,當作純粹的計數器使用。

    以下介紹模式0的動作:

    1、當設定為模式0 之後,計數器的OUT 為L。

    2、當載入新的計數值時,若GATE為H,則當CLK 由H變為L時,計數值減1,

    若GATE為L,則暫停計數。

    3、當計數終了,則OUT 變為H,且一直保持,除非載入新的計數值。若在計數

    中載入新計數值,則由新的計數值重新計數。由於8254 計數器是16 位元,在設

    定計數值必須先寫入低位元組,再寫入高位元組,而在讀取計數值前必須用控

    制位元將計數器鎖住,如此所讀的值較為正確。

    16

  • 2-6-4 系統的重置及標準時鐘電路:

    圖 2.7中的 和 組成了簡單的充放電路提供 CPU系統開機時所需要的系統

    重置信號。雖然 PIC的工作頻率可高達 20MHz,但為了方便計算指令週期,因

    此選擇 4MHz的石英震盪器來作為 CPU的震盪電路,以提供電路工作的基本時

    鐘脈波信號。

    1R 3C

    17

  • 圖 2.7 CPU及基本 I/O配製圖[9] [16]

    18

  • 第三章 程式流程圖

    本系統使用 PIC16F877 單晶片做為控制器的核心,組成系統的相關硬體部分

    已在前面敘述。在軟體方面,系統的監督程式使用組合語言來撰寫,本章將列

    出程式設計流程圖,以方便後續發展與維護。

    3-1 主程式:

    系統初值

    圖 3.1 主程式流程圖

    速度量測

    轉向控制

    初始值設定

    如圖 3.1所示,其共分為系統初始設定、速度量測、轉向控制及速度調

    整,這 4個副程式所組成的架構。

    速度調整

    19

  • 3-2 初始值設定:

    初始值設定

    定義常數和變數

    記憶體宣告

    中斷向量設定

    清除工作記憶體

    設定 I/O 狀態 設定 CPU TIMER0中

    斷週期為 3s 設定 8254的工作模式

    設定 PWM

    END

    圖 3.2 初始值設定流程圖

    3-3 速度量測與調整:

    設定 8254工作在 Modeα,利用 8254的 COUNTER0和 COUNTER1 來

    計數由馬達所回授的脈波[8]。並由:

    Tnf =

    60×=KfRPM

    n:單位時間T內所產生的派波數。

    K:馬達轉一圈所產生的脈波數。

    20

  • 速度量測

    與調整

    圖 3.3 速度量測與調整流程圖

    在 CPU內部計時 3秒後,進入中斷副程式,去執行速度的比較,假如右輪的

    速度大於左輪的話,則將調高左輪的 PWM;反之,則調高右輪的 PWM。但 2

    輪的 DUTY CYCLE 不會超過某一定值,以避免 2 輪的速度相差太大。

    V V≅左 固 ?

    NO計時三秒中斷?

    END

    YES

    增加或減少左

    輪的 DUTY

    CYCLE Y

    ES

    V V≅右 固 ?增加或減少右

    輪的 DUTY

    CYCLE

    YES

    21

  • 3-4 轉向控制:

    轉向控制

    是否達到設定位

    置?

    圖 3.4 轉向控制流程圖

    藉由設定一固定值給 CPU,然後藉由 8254 來計數馬達回授,如接近該固定

    值,則進行轉向。

    煞車

    令 CCP1的 DUTY CYCLE=200

    CCP2的 DUTY CYCLE=0

    NO

    YES

    END

    22

  • 第四章 結論

    4-1 結論:

    本專題研製一微電腦自動控制的自走車,但透過這次專題的訓練,在技術層

    面,相信對軟硬體的實務已有相當的了解,更提升對系統整合及研究的能力,

    對於未來的持續研究有相當大的助益。在硬體層面,控制電路除了搭配使用類

    比控制電路及數位控制電路,同時在程式設計及驅動機構上也有高度的整合

    性。

    4-2 建議:

    本車功能以定位功能為主,是屬於區域性的自走行進;另一種是以全域性的

    定位、行進控制,二者若能完成整合應用,自走車的功能將趨於完善。自走車

    可視為發展機器人的基礎,有很多應用的遠景,假如能結合影像辨識、雷射導

    航、機械手臂、FUZZY SYSTEM⋯⋯等,將會使人類的生活更加舒適、安全。

    23

  • 參考文獻

    [1]Weidemann H. J., Pfeiffer F. and Eltze J., "The Six-Legged TUM WalkingRobot" ,

    Proceedings of the IEEE/RSJ/GI International Conference on Intelligent Robots

    andSystems, Vol.2, pp.1026~1033, 1994.

    [2]Bajd T. and Karcnik T., "Unstable States in Four-legged Locomotion",Proceedings

    of the IEEE/RSJ/GI International Conference on Intelligent Robots and Systems,

    Vol.2,pp.1019~1025, 1994.

    [3]Mori H., Kotani S. and Kiyohiro N., "A Robotic Travel Aid

    HITOMI" ,Proceedings of the IEEE/RSJ/GI International Conference on Intelligent

    Robots and Systems, Vol.3,pp.1716~1723, 1994.

    [4]Hayati S., "The Rocky 7 Rover:A Mars Sciencecraft Prototype", JetPropilision

    Laboratory, California Institute of Technology, International conference on

    Robotics and Automation, April 1997.

    [5]Martinez M. A., Gonzalez J.F. and Martinez J.L., "The DSP Frequency

    SonarConfiguration of the RAM-2 Mobile Robot", IEEE International Conference

    on Robotic andAutomation, Vol.10, pp.113~119, 1997.

    [6]白中和編譯,DC馬達控制電路設計,建興出版社,1986。

    [7]陳文耀,電動機控制工程,復文書局,2003。

    [8]陳添智,潘曉林,"應用量測脈波波寬方法於馬達轉速量測",技術學刊,第

    十一卷,第三期,pp.417~422,1996。

    [9]柯政昌,自走車動力驅動系統之研究與設計,國立成功大學工程科學研究所

    碩士論文,2001。

    [10]廖啟仲,自走車控制介面之研究,國立成功大學工程科學研究所碩士論

    文,2002。

    24

  • [11]National Semiconductor Corporation, Linear Data book 1, 2, 3,開發圖,1998。

    [12]National Semiconductor Corporation, Data Conversion/Acquisition Data Book,

    開發圖書,1984。

    [13]何信龍、李雪銀 編著,PIC16F87X 快速上手,全華科技圖書股份有限公

    司,2000。

    [14]Intel, 8254 Programmable Interval Timer, 1993.

    [15]湯貴土編著,I/O 介面實習,全華科技圖書股份有限公司,pp.49~129,1989

    年9月。

    [16]盧春林編著,PIC16F87X微處理器技術精解,國科出版社,2001年

    25

  • 附錄

    圖A 邏輯觸發電路

    圖B H電橋

    26

  • 圖C 整合電路

    圖D 車體(側視圖)

    27