• 沒有找到結果。

運用BASIC Stamp 2於自走車避障之設計

N/A
N/A
Protected

Academic year: 2021

Share "運用BASIC Stamp 2於自走車避障之設計"

Copied!
54
0
0

加載中.... (立即查看全文)

全文

(1)

運用 BASIC Stamp 2 於自走車避障之設計

Design of the Obstacle Avoiding for Automatic Mobile

Robot by Using BASIC Stamp 2

作者:王光翔 系級:航太四乙 學號:D9370093 開課老師:陳啟川 老師 開課系所:航太與系統工程學系 開課學年: 九十五 學年度 第 二 學期

(2)

誌謝

在實驗室這半年製作專題的學習中,在生活還是學業上都受到大 家的關心、鼓勵、以及協助。我要特別感謝我的指導教授 陳啟川博 士在專題製作的過程中不斷給予意見及評論,並引導出更為寬廣及嚴 謹的方向,讓學生有更多的思考空間;另外也感謝張嘉義博士不時的 給予寶貴的建議及關心,讓學生可以學習到更多經驗,也對以後生活 及待人處世上皆有幫助。 在專題製作做的過程中,特別要感謝幸其學長、羅威學長在專題 上給予意見與協助,並不斷的給予鼓勵。也感謝學長明博、宗基、秉 呈、胡俊、項真在各個方面都給予照顧,以及同學康裕、思安、雙源、 婉伶、佩蒨、瑋琦在課業上的切磋與勉勵,在此一併至上謝意。 最後,獻給父母親和家人、好友這份專題,感謝他們的支持與關 懷才得以讓專題順利完成,特別感謝好友雨桐、茂翔的關心與陪伴, 在此獻上十二萬分的敬意

(3)

中文摘要

在現在的生活之中,周圍的各項電器中都包含了 microcontroller, 藉著這種小型電腦,讓人們與機械溝通更加便利。本文旨在利用單晶 片 BASIC Stamp 2 來控制一台可以避障的無人自走車,藉由超音波感 測器來判斷有無障礙物,以 BASIC Stamp 2 為核心來整合感測器及控 制器,並利用程式語言 PBASIC 來設計控制程式,最後透過電路來達 到其自走、避障之功能。本文已完成可以獨立自走與避障的系統。

(4)

Abstract

There are all kinds of electrical appliances which most probably contain the microprocessor inside them to be utilized in our daily life. It’s become more convenient for the communication between human and machine by using this kind of microcomputer (microchip).

The purpose of this project is to construct and control an unmanned autonomous ground vehicle with obstacle avoidance by using the

single-chip “BASIC Stamp 2” microcontroller. The microcontroller will serve as the kernel for the whole control task, while the ultrasonic sensors are to be used as the obstacle prediction devices. The control system is developed by writing computer code with the PBASIC program. After the hardware/software integration, this autonomous vehicle with obstacle avoidance function has been accomplished. The goal of current work has been fulfilled with some successful road tests, and will be

(5)

目 錄

誌謝……….……….….. I 中文摘要……….…….……. II Abstract……….……… III 目錄………... IV 圖目錄………. VI 表目錄………. IX 第一章 緒論 ……….……. 1 1.1 前言…..……….……. 1 1.2 研究動機……….………2 1.3 內容概述……… 2 第二章 設備與軟體介紹……….. 4 2.1 Microcontroller 介紹..………. 4 2.1.1BASIC Stamp 2 介紹..……….. 5 2.1.2 PBASIC 介紹..………...……….. 7 2.2 伺服機介紹..………...………... 8 2.3 超音波感測器介紹..………...……….. 11 2.3.1 超音波感測器原理 ..………...………. 11 2.3.2 超音波感測器規格..………...………... 12

(6)

2.4 車體介紹....………...……….. 13 第三章 系統設計與整合..………...………... 14 3.1 RS-232 配置 ..………...………... 14 3.2 超音波感測器設計..………...……… 16 3.3 伺服機控制設計..………...……….... 18 3.4 電源供應系統設計..………...……… 20 3.5 編碼器設計..………...………... 20 3.6 直流馬達控制器設計..………...………….……. 22 3.7 BASIC Stamp 2 配置 ..………...………….….… 26 3.8 硬體配置..………...………... 27 3.9 系統整合..………...………... 28 3.10 程式設計..………...………... 29 第四章 系統測試與結論………....…….………... …….…... 32 4.1 系統測試..………...………... 32 4.1.1 超音波測試..………...………..…... 32 4.1.2 伺服機轉向測試..………...…………..…... 33 4.1.3 馬達測試..………...……….…... 33 4.2 實地運作..………...………... 34 4.3 結論...………...………..…... 35

(7)

4.4 未來展望………...………...…..…... 36

參考文獻..………...………... 37

附錄..………...………... 39

(8)

圖 目 錄

圖 2-1 BASIC Stamp 2 ..………...………... 6 圖 2-2 其他模組..………...………... 7 圖 2-3 PBASIC 作業環境..………...……….. 8 圖 2-4 CS-60 SERVO 實體圖..………...……….... 9 圖 2-5 伺服機示意圖..………...………... 9 圖 2-6 轉向示意圖..………...………... 10 圖 2-6 超音波感測器..………...………... 12 圖 2-8 超音波感測器..………...………... 12 圖 2-9 UTT4016/UTR4016..………...………... 12 圖 2-10 車體圖..………...………... 13 圖 3-1 接線示意圖..………...………... 15 圖 3-2 NE555..………...………... 16 圖 3-3 超音波發射電路圖..………...………. 17 圖 3-4 超音波接收電路圖..………...………. 18 圖 3-5 超音波收發電路板成品圖..………... 18 圖 3-6 伺服機控制電路圖..………...………. 19 圖 3-7 降壓電路圖..………...………... 20 圖 3-8 編碼器作用示意圖..………...……….. 21

(9)

圖 3-9 光遮斷器電路圖..………...………. 22 圖 3-10 光遮斷器實物圖..………...………... 22 圖 3-11 直流馬達 H 型驅動示意圖(1) ..………...……… 23 圖 3-12 直流馬達 H 型驅動示意圖(2) ..………...……… 24 圖 3-13 控制器電路圖..………...………. 25 圖 3-14 緩衝器電路圖..………...………... 25 圖 3-15 BASIC Stamp 2 電路圖..………...……….. 26 圖 3-16 BASIC Stamp 2、降壓器、伺服機電路實物圖.……… 27 圖 3-17 控制器電路實物圖..………...………... 27 圖 3-18 緩衝器電路實物圖..………...………... 28 圖 3-19 系統架構圖..………...………... 29 圖 3-20 自走車完成圖..………...………... 29 圖 3-21 系統運作流程圖..………...………... 30 圖 4-1 超音波調校..………...………. 32 圖 4-2 轉向測試..………...………. 33 圖 4-4 馬達運作測試..………...………... 33 圖 4-5 實地測試..………...………. 34

(10)

表 目 錄

表 2-1 CS-61 特性規格表..………...………... 9

表 2-2 超音波感測器規格..………...………. 13

表 3-1 RS-232 接腳表..………...………. 15

(11)

第一章

緒論

1.1 前言 在現在的生活之中,許多的生活用品中都內建了 microcontroller, microcontroller 為一種小型的電腦,舉凡有數位顯示及按鈕的用品,可 能就是由 microcontroller 的程式所控制的。人們平常接觸的手機、遙 控器、計算機…等等,許多的電子產品都裝置著 microcontroller 在裡 面。 在工業方面,隨著產業自動化的趨勢,無人的機械也都由這些 microcontroller 來控制,為了使人們遠離危險的工作環境、避免人為疏 失及取代人力降低成本,各種自走車與智慧型機械人不斷地被人們研 究。 在目前自走車的研究領域上,依照控制的方法不同可分為接觸式 和非接觸式。接觸式主要是在地面設有軌道,使自走車可以沿著軌道

(12)

前進;非接觸式的則是沒有使用軌道,運用紅外線、雷射、超音波… 等方式來行進。本文使用的是非接觸式控制來進行自走車之設計。 1.2 研究動機 現在,世界上依然有著許多地方是人類無法涉足的,此類地點可 能位於深海、地底、火山、外星球…等等,因為其環境不適合人們前 往,而需要使用機械人來進行探查,藉由其自動探測與遠端操控,使 人們可以在安全的場所對這些區域進行勘查。 本文主要目的是希望可以藉由微處理器來控制一台自走車,使其 能夠自主行走,在遇到障礙物時能夠判斷並轉向。 1.3 內容概述 本文旨在運用 BASIC Stamp 2 去控制一台自走車,並整合感測 器、馬達驅動、伺服機轉向…等,使其達到自主行走與避障的目標。 本節針對本文之各章節進行重點性說明,期使讀者能先對本文有初步 的了解。其內容如下: 第一章 緒論:首先說明本文之研究範圍及動機,並簡述全文。 第二章 設備與軟體介紹:此章節為介紹所使用之各種硬體、軟體設 備。

(13)

第三章 系統設計與整合:本章節主要說明各個系統的設計與製作, 並闡述整個控制系統的架構和控制的流程。

第四章 系統測試與結論:本章對整體的系統來進行測試,以確認每 個系統皆可運作,並探討最後實驗的結果。最後,對本文做一 個總結與建議及探討未來還可以研究的方向。

(14)

第二章

設備與軟體介紹

2.1 Microcontroller 介紹

Microcontroller(微控制器)為一種單晶片系統(System on a Chip),也 被稱為單晶片微電腦(single chip microcomputer),其為一種把微電腦系 統所有單元製造在一片晶片上(chip),其組成有中央處理元(CPU),記 憶體單元(Memory)及輸入/輸出單元(I/O)三大部分所組成。在分類上主 要可分為 4 位元、8 位元、16 位元、32 位元、64 位元…等,其優點 為驅動和控制些簡單直接、體積小、硬體架構簡單便於使用及學習、 擴充容易、成本低,所以常被應用於自動控制上。【10】 傳統的崁入式系統以 8 位元為主,因為 8 位元的架構較簡單,處 理程序也比較沒那麼複雜,且可以把軟體模組化,能在短時間內就完 成一個成品,日後的應用也較方便。本文所使用之微控制器為 Parall ax, Inc.所製造的 BASIC Stsmp 2(於 1992 年所提創)。跟其他的微控器

(15)

不同處為其 ROM 記憶體內建一套小型的 BASIC 程式語言直譯器(Inte rpreter),稱為:PBASIC。如想要開發、撰寫此微控制器之應用,只要 學會、具備 BASIC 程式語言的撰寫基礎,就能夠使用 Parallax, Inc.公 司所開發出之崁入式系統所用的控制應用程式,大幅降低崁入式設計 的技能學習門檻。【13】

2.1.1 BASIC Stamp 2 介紹【13】【16】

BASIC Stamp 2 是由Parallax, Inc.公司所製造最受歡迎的產品之 一,就外觀來看,BASIC Stamp如同一個以DIP型態封裝的積體電路, 不過實際上它卻是用一片小型的印刷電路板,並在電路板上建立一個 嬌小的控制系統,如圖2-1所示,這個系統內包括了以下的組件: 一顆微控制器晶片 一顆串列式傳輸介面的 EEPROM 晶片 一顆時脈產生晶片 一個電源供應晶片 外部輸入與輸出 在 BASIC Stamp 的程式語言內已備齊了一般微控制器的功效函式,包 括:脈寬調變(PWM)輸出、I2C 的串列通訊、LCD 驅動等,此外也

(16)

能產生馬達伺服控制之用的脈波、假充(pseudo)的正弦波頻率、以 及用 RC 電路(RC circuit)來偵測一個類比數值等。

BASIC Stamp 也能與 PC 連線,從 PC 端將軟體程式上載傳輸到 BASIC Stamp 內,並且存放到電路板上的 EEPROM 中,如此即便系統斷電後 程式依然能夠持留而不會消失,且日後也能反覆多次地載入新版、新 修改的程式到 EEPROM 中。

(17)

目前 BASIC Stamp 可區分為先後兩種類型的直譯器:BASIC Stamp 1 與 BASIC Stamp 2,其中較後期推出的 BASIC Stamp 2 有延伸發展出 七種不同的模組(如圖 2-2):BS2 、BS2e 、BS2sx 、BS2p24 、BS2p40 、 BS2pe 、BS2px 。

圖 2-2 其他模組【1】

此外,許多公司運用虛擬性相容(virtual clone)的手法為 BASIC Stamp 加添更多的功效機制與特性功能,例如更快速的控制執行、硬 體式的類比數位轉換(ADC)、硬體式的脈寬調變輸出(PWM), 使 ADC、PWM 工作可以在背景運作,不用耗費軟體運算執行的資源。 更重要的是,這些功能增添仍能與 BASIC Stamp 在接腳組態上維持相 容,這表示原有已運用 BASIC Stamp 來進行控制的應用不需要變更設 計,也能夠享用新添功能的特性益處。 2.1.2 PBASIC 介紹【5】 程式編輯器主要是提供一個可以撰寫(Edit)與編譯(Compile)的整

(18)

合環境,以 BASIC Stamp Editor 系列而言,這個整合環境的指令與操 作,與 Microsoft Visual Basic 的環境相當類似,但因為某些指令集為 Parallax 公司專為 BASIC Stamp 晶片所開發,所以該套程式語法稱為 PBASIC。美國 Parallax 公司在其公告的網站上,免費的程式供人下 載。 其作業環境如圖 2-3 所示,所使用之指令在 help 中皆有說明。 圖 2-3 PBASIC 作業環境【5】 2.2 伺服機介紹 伺服機現在已廣泛的運用於遙控飛機各操縱面的控制,遙控車的 轉向,以及機器人的關節上。在控制上不需要複雜的程式與電路,只 要能給予脈波的變化便能控制其轉向,而不同型號的伺服機其規格與

(19)

特性也不同。本文所使用的伺服機為 Hobbico 所生產的 CS-60 SERV O,實體圖如下圖 2-4 所示,其規格為下表 2-1 所示。

圖 2-4 CS-60 SERVO 實體圖

Dimensions 1.6 x 0.8 x 1.4 ( in.) Weight 1.57 (oz.) Gear Type Resin

Speed 0.19 (sec/60)[4.8V] 0.16(sec/60)[6V] Torque 42(oz.-in.)[4.7v] 49(oz.-in.)[6v]

表2-1 CS-61 特性規格表【15】

(20)

圖2-5 為一伺服機之示意圖,纜線部分是用來傳遞訊號及電源給 予伺服機,轉盤是伺服機的主要的控制面,當伺服機運作時,轉盤會 藉由脈波的寬度來控制進行移動。黑箱子部分裝載著伺服機的控制迴 路、直流電馬達和齒輪〃這些零件會把微控制器傳送的高低訊號,轉 換成轉盤的位置。 在控制上,伺服機會由脈波的寬度來進行轉向,當寬度為2ms時, 伺服機會轉向二點鐘方向;寬度為1ms時,伺服機會轉向為十點鐘方 向;寬度為1.5ms時,伺服機會轉至十二點鐘方向,如圖2-6所示。在 本文中,感測器部位的伺服機的控制的範圍為0.5ms至2.5ms,使其轉 動範圍為±90度,而車輪的部位因本體構造,只能轉動±45度,固控制 範圍在1ms至2ms間。 圖2-6 轉向示意圖 【1】

(21)

2.3 超音波感測器介紹 2.3.1 超音波感測器原理 人耳可聽見的音波其頻率約在 16Hz 至 20KHz 之間,而高於此範 圍的頻率人類則無法聽見,稱為超音波。 超音波產生的原理有很多種,最常見的利用壓電材料。將壓電材 料製成晶體薄片,當外加一正負交變的電壓訊號時,則晶體薄片會形 成厚薄變化而產生壓縮震盪的現象,便形成超音波。接受器是接收超 音波的脈波使壓電材料震盪,而產生電壓訊號。 一般超音波感測器依照其應用方式分為三大類: (1) 單一發射型:此類型僅使用超音波發射器來完成,通常被使 用於利用音波震動來達到效果的設備,例如:洗衣機、驅蚊器、美容 儀器…等。如圖 2-7 (1)。 (2)分離反射型:將超音波發射器與接收器擺在同一方向,藉由發 射出去遇到障礙物反射到接收器,利用其音波所經歷的時間作為距離 遠近的計算,如汽車倒車雷達…等。如圖 2-7 (2) 。 (3)對射型:將超音波發射器與接收器置於相對方向,如果有物體 介入,接收器就收不到訊號,依此判定是否有障礙物出現【6】。如圖 2-8。本文中所使用的為第二類。

(22)

超音波發射 (1)單一發射型 發 射 電 路 發 射 電 路 接 收 電 路 (2)分離反射型 超音 波接 收 超音 波發 圖 2-7 超音波感測器【9】 (3)對射型 接 收 電 路 發 射 電 路 發射 接收判定 圖 2-8 超音波感測器【9】 2.3.2 超音波感測器規格 本文所使用之超音波感測器型號為 UTT4016/UTR4016,其實體 如圖 2-9,其主要規格如表 2-2 所示 圖 2-9 UTT4016/UTR4016【17】

(23)

PARTS NUNBER UTT4016 UTR4016 Center frequency (kHz) 40.01.0kHz 40.01.0kHz

Sound pressure levelAt 10V 30cm

≧120dB --- Sensitivity min. --- ≦-63dB Capacitance (pF) 250030% 250030% Housing material/mesh

color Aluminum/black Aluminum/black 表 2-2 超音波感測器規格【17】 2.4 車體介紹 車體上本人沿用林泰宏學長所使用的車體,其原為「大腳遙控 車」,車殼、遙控器接收模組等零件皆已被拆除,唯留下車體與電池 作為部分硬體,圖 2-10 為拆除後的車體。 圖 2-10 車體圖 車體大小為 50*30*18cm,本人沿用學長所留下之壓克力板做為此 自走車之控制平台,其尺寸為 40*25*0.3cm。控制電路板接以銅柱架 於其上並重疊架高,而後方空間可便於擴充其他硬體。

(24)

第三章

系統設計與整合

3.1 RS-232 配置

要讓 BASIC Stamp 2 與電腦通訊頇透過 RS-232 或 USB 來連接,本文 所使用的為 9 針腳接頭的 RS-232 來傳輸,表 3-1 為 RS-232 接腳表。

FEMALE MALE

Signal Pin Signal Pin

1 DCD 1 DCD 2 RxD 2 TxD 3 TxD 3 RxD 4 DTR 4 DTR 5 GND 5 GND 6 DSR 6 DSR 7 RTS 7 RTS 8 CTS 8 CTS 9 RI 9 RI 表 3-1 RS-232 接腳表【2】 BASIC Stamp 2 之針腳 1~4 分別與 RS-232 之母頭 2~5 相連其接線示意 圖如圖 3-1 所示,將其連接上電腦後便可與 PBASIC 通訊傳輸,而 BASIC Stamp 2 之針腳的說明如表 3-2 所示。

(25)

圖 3-1 接線示意圖【5】

Pin 名稱 說明

1 SOUT 串列輸出:連接至 PC 串列埠 RX pin (DB9 pin 2 / DB25 pin 3 接腳)供程式編輯 2 SIN 串列輸入: 連接至 PC 串列埠 TX pin (DB9 pin 3 /DB25 pin 2 接腳)供程式編輯

3 ATN Attention: 連接至 PC 串列埠 DTR pin (DB9 pin 4 / DB25 pin 20 接腳)供程式編輯 4 VSS 系統接地: (同 pin 23) 連接至 PC 串列埠 GND pin (DB9 pin 5 / DB25 pin 7 接腳)供程式編輯

5-20 P0-P15

一般用途 I/O 點: 可接受(sink) 25mA 和送出 (source) 20mA; 但若使用內部的 5V 穩壓器, 全部 I/O 點的接收(sink)不可超過 50mA 和輸出

(source)40mA 21 VDD

5V 直流輸出/輸入:, 若使用未經調整的電壓輸入 VIN pin, 則通過此 pin 都會轉成 5V 輸出; 當無電 壓從 VIN 輸入時, VDD 輸出 4.5~5.5V

22 RES 輸出/輸入重置: 當電壓低於約 4.2V 時, 使BSAIC Stamp IC 重新啟動 23 VSS 系統接地: (同 pin 4)連接至電源供應器的接地(GND)端 24 VIN 外部未經調整的電壓: 可接受 5.5 – 15VDC, 輸入後內部電路會將之調整為 5V

表 3-2 BASIC Stamp 2 針腳說明【5】

另外,還可以選擇其中兩個「一般用途 I/O 點」連接另外一個 RS-232 使 BASIC Stamp 2 所傳出的訊息,可讓其他的終端機接收,如 PDA 等。

(26)

3.2 超音波感測器設計 本文中所製作的自走車,其最主要的避障功能便是透過超音波感 測器來感測前方是否有障礙物,其所發射的頻率為 40KHz,感測的距 離約 30cm。在超音波的發射端是由 NE555 震盪器來產生脈波,如下 圖 3-2 所示。 圖 3-2 NE555 【14】 配合一電阻、一可變電阻,及一電容組成一不穩態多諧震盪器,由第 三腳產生脈波,透過可變電阻電阻調整其輸出為 40KHz。第五腳接一 0.01μ 電容來過濾雜訊。透過從 BASIC Stamp 2 所給予第四腳的電位 差來控制其脈波的發送,給予高電位時產生脈波,給予低電位時停止 脈波。圖 3-3 為所設計之電路圖。

(27)

圖 3-3 超音波發射電路圖 發射出去的超音波,碰到障礙物後反射,由接受器收到脈波,經 由諧振器的振動產生電位差,再將電位差訊號傳回 BASIC Stamp 2 來 判斷。由於所得到的電位差訊號非常的微弱,無法直接被 BASIC Stamp 2 來取得,所以為了要方便訊號的讀取,本文使用了 OP AMP 放大器 來放大,所使用的放大器為 LM393,將其所收到的訊號放到約 60 db, 再利用電容及可變電阻來調整其輸出的電流量,達到過濾雜訊的目 的。由於所輸出的電流過小,所以使用一 3KΩ 電阻來提高其所輸出 的電流。圖 3-4 為接收電路圖,圖 3-5 為超音波收發電路板成品圖。

(28)

圖 3-4 超音波接收電路圖

圖 3-5 超音波收發電路板成品圖

3.3 伺服機控制設計

在本文中一共用到兩個伺服機,一個設在車子底座用來使車子轉 向,另外一個裝在最前方用來使超音波感測器轉向,使其可以朝其他

(29)

方向來進行感測。

由於 BASIC Stamp 2 所發出來的訊號太小了,使得伺服機無法直 接取得其訊號,所以使用電晶體來放大電流,使訊號放大。在伺服機 控制上是直接使用程式調整其脈波長來控制其轉的角度,在 PBASIC 裡面有可以直接輸出脈波的指令,其語法為:

PULSOUT PIN, Duration

其中,PIN 為所輸出之訊號端的針腳代號,而 Duration 則使維持的時 間,其單位為 2 微秒(μ s),所以如果要使伺服機向右轉到兩點鐘方向, 則其 Duration 要輸入 1000,讓其產生的脈波為 2 ms。圖 3-6 為其電路 圖。

(30)

3.4 電源供應系統設計 電源為整台車的動力來源,如果電源供應不當的話,輕則無法使 其運作;重則其各項電子零件或 IC 被燒毀。為了配合各個零件所限 制的電源,本文提供了兩種電壓,分別為 5V 以及 11V。本文的電源 供應來自一個 11.1V / 2200 mAh 的鋰電池供應,在電路中利用型號為 7805 之 Regulator IC 讓其電壓降為 5V。而為了不讓 IC 的負擔太大, 所以使用了兩組,一組為供應超音波感測器及光遮斷器使用,另一組 則是供應 BASIC Stamp 2 及伺服機使用。圖 3-7 為降壓電路圖。 圖 3-7 降壓電路圖 3.5 編碼器設計 編碼器是用來量測物體的旋轉速度和角度變化的一種感測器。編 碼器的工作原理為利用車輪的轉軸帶動一外面有細長凹槽之圓盤旋

(31)

轉,再利用光遮斷器的特性來作量測。光遮斷器的組成是由一發光二 極體及一光電晶體組成的,當連接電路時發光二極體發出光線傳到光 電晶體上,光電晶體即會造成高電位,而如過中間有物體阻隔則會使 光線傳不過去,光電晶體沒收到光線則會形成低電位,藉由這種高低 電位的時間差來判斷所旋轉的角度或圈數,如果間隔的時間越短,即 圓盤上的凹槽越密集,所量測到的也就越精確。本文中所使用的圓盤 是由林泰宏學長之前論文時製作所留下的,主要是來測量車子所行走 的距離,在圓盤上分成十等份,所以收到十個訊息代表其旋轉一周, 而車輪之圓周長約為 44cm,所以在程式設計上將讀取到的十次訊號 轉成一圈,在乘以 44cm 即為車子的行走距離。下圖為編碼器作用的 示意圖與光遮斷器的讀取電路。 圖 3-8 編碼器作用示意圖【4】

(32)

圖 3-9 光遮斷器電路圖

圖 3-10 光遮斷器實物圖

3.6 直流馬達控制器設計

直流馬達為使車子前進的主要驅動裝置,但光是微處理器是沒辦 法直接對其進行控制,所以要使用控制器來驅動直流馬達。一般在控 制直流馬達時都是使用 PWM,PWM 為 Pulse Width Modulation,中文 為脈衝寬度調節,利用從輸出端得到的連續幅值相等但寬度不同的脈

(33)

波來進行控制,其可藉著改變脈波的寬度來改變電路輸出電壓的大小 及頻率。 一般驅動直流馬達的方式可以分為兩類,一種是 T 型,另一種為 H 型,在使用上 T 型用到兩的功率電晶體,而 H 型需用到四個,但 T 型的需具有正負電源供應,而 H 型只需要正極電源即可,在設計上來 說比較方便。H 型的原理以圖 3-11、3-12 來表示,(1)為當 1 與 4 被導 通而 2 和 3 被截斷時,馬達為順時針轉;而當 1 與 4 被截斷而 2 和 3 被導通時,馬達為逆時針轉如(2)所示【8】。 圖 3-11 直流馬達 H 型驅動示意圖(1)【8】

(34)

圖 3-12 直流馬達 H 型驅動示意圖(2)【8】

本文中所使用的功率電晶體為 540N,並配合四個光耦合器所組 成的控制器。光耦合器(photo coupler)也稱光隔離器(photo isolator),是 把發光元件和受光元件組起來,用來傳送訊號,發光部分使用高效率 的 LED,受光的部分為光電晶體,來轉換兩端的信號,達到電信的隔 離,使其碰到馬達有異常燒毀時,電流不會逆流而使微處理器燒毀 【8】。在超音波的電路裡也有用到光耦合器,避免超音波有異常時, 電流不會回傳到微處理器使其燒毀。吾人所使用的控制器為劉協政學 長在論文中用來控制搖桿時所用的,所以有兩組控制器,但在使用上 只用到其中一組。圖 3-13 為控制器電路圖。

(35)

圖 3-13 控制器電路圖 由於控制器在設計上有所疏失,必需一開始就提供其高電位的狀 態,否則會造成短路,所以吾人另外使用一 IC 來進行緩衝,其是利 用 IC 在沒有訊號輸入時,所輸出的為高電位,讓控制器一接上電源 即有高電位輸入,所使用的 IC 為 DM74LS244。圖 3-14 為緩衝器電路 圖。 圖 3-14 緩衝器電路圖

(36)

3.7 BASIC Stamp 2 配置 本文中作為核心之處理器 BASIC Stamp 2,除了前面提過的與 RS-232 針腳以及其電源供應的針腳外,其他還有 18 隻針腳,第 22、 23 針腳在本文中並沒有使用到,其餘的 16 之針腳則都為 I/O 點其編 號為 0~15。第 0、1 針腳為用來連接另一組 RS-232 給予 PDA 訊息; 第 2~7 以兩個為一組,給予超音波發射器電位來產生脈波及接收超音 波接受器所傳回來的訊號;第 8~11 則是用來給予控制器訊號來控制 直流馬達的轉動,本文在設計上為給予第 8、11 高電位第 9、10 低電 位時,直流馬達為正轉(順時針轉)使車子前進,給予第 8、11 低電位 第 9、10 高電位時,直流馬達反轉(逆時針轉)使車子後退;第 12、13 針腳為控制伺服機用,第 12 為控制輪子轉向的伺服機,第 13 為控制 超音波轉向的伺服機;最後的第 14、15 針腳則沒被使用。其電路圖 如下圖,在其旁邊裝有一個 LED 來顯示是否有電。 圖 3-15 BASIC_Stamp 2 電路圖

(37)

3.8 硬體配置 在設計完所有的系統後,要將其製成電路板來使用,超音波的部 分做成兩塊板子,而控制器則是直接使用學長所留下的。降壓器及伺 服機控制的部分使用到的面積並不大,所以與 BASIC_Stamp 2 製作在 同一塊電路板上,而光遮斷器與緩衝器的則是另外使用一小塊板子。 組成上,利用銅柱架設在壓克力板上,最下層為控制器電路板,第二 層為超音波電路板,第三層為超音波電路板及 BASIC_Stamp 2 與降壓 器、伺服機的電路板,最上層為光遮斷器與緩衝器。電源由一顆 11.1V/2200mAh 的鋰電池供應,但直流馬達的部分則是另外由一顆 7.4V/2200mAh 的鋰電池供應,因為直接由 11.1V 的電源降壓到 7.4V 再供給直流馬達,在起步會有力量不足的情況,使車子在停止後要再 啟動會經過一段時間才開始作動,所以才另外使用別的電源來供應直 流馬達的驅動。圖 3-16、3-17 為各個電路板的圖片以及配置。 圖 3-16 BASIC Stamp2、降壓器、伺服機電路實物圖(左) 圖 3-17 控制器電路實物圖(右)

(38)

圖 3-18 緩衝器電路實物圖 3.9 系統整合 在整合的部分,全部的控制與判斷皆由 BASIC Stamp 2 一個微處 理器來處理,由超音波接受器所接收之訊號傳回 BASIC Stamp 2,由 其判斷是否前方有障礙物,再控制伺服機的轉向及直流馬達的運作。 本文旨在設計一能自行避障的自走車,而要達成其目的必頇要整合下 面幾個系統,讓系統間能相互通訊使車子能達到自走與避障的功能。 其主要的系統有(1)感測器系統(2)轉向控制系統(3)馬達驅動系統(4)電 源供應系統,其整個系統的架構如圖 3-19 所示。

(39)

BASIC Stamp 2 超音波收 發器-左 超音波收 發器-右 超音波收 發器-前 轉向伺服 機 超音波伺 服機 PDA 直流馬達 電腦 RS-232 圖 3-19 系統架構圖 圖 3-20 自走車完成圖 3.10 程式設計

本文中所使用的程式編輯器為 Parallax 公司專為 BASIC Stamp 晶 片所開發 PBASIC,其類似 Microsoft Visual Basic 的環境。

(40)

統流程如圖 3-21 所示,再以此流程來設計程式。 開始 驅動直流馬達 前進,發射 前、左、右超 音波訊號 接受超音波 傳回支脈波 訊號 判斷前方 超音波波長是否 有障礙物 停止直流馬 達及超音波 接收 控制前方 伺服機向 左向右選 轉,並發 射超音波 比較左右兩 邊所接收的 超音波訊號 判斷左右兩 邊哪邊有障礙物 傳送給終端機,由終 端機判斷下一步如何 前進 控制直流馬 達後退一段 路,在控制 方向伺服機 轉向一段時 間 轉彎後控制 方向司服機 回正 判斷左右超 音波波長是否障 礙物 降低直流馬 轉速,在控 制方向伺服 機轉向 YES NO 其中一邊符合 兩邊都不符合 或兩邊都符合 兩邊都在範圍內 任一邊在範圍內 圖 3-21 系統運作流程圖 首先,在開啟電源後,程式會立刻開始運作,所以吾人先設計 5

(41)

秒停滯時間,使其可以有段時間緩衝,讓使用者可以重新輸入新的程 式或將車子放到指定位置後才啟動。停滯過後先啟動直流馬達使車子 前進,此點在程式撰寫部分有些許的問題,由於直接給予直流馬達高 電位時,如果不是以迴圈的語法撰寫,而直接給予高低電位,BASIC Stamp 2 會每固定一段時間就掉到低電位一瞬間再恢復,此情況會造 成控制器瞬間短路,所以在撰寫時,先用一個迴圈來進行馬達控制, 接著在裡面再給予一個迴圈去控制其他系統。馬達啟動後,接著啟動 超音波感測器並接收超音波訊號,以前方的超音波感測器判斷為主, 當前方超音波感測器判斷到有障礙物時,車子會停止前進,左右兩邊 之超音波感測器會先停止以防止雜訊的干擾,接著前方的超音波感測 器下方的伺服機會開始轉動,其分別轉向左邊 90 度、左邊 45 度、右 邊 45 度、右邊 90 度,並接收超音波訊號,判斷左右是否有障礙物, 如果前、左、右皆有障礙物,則程式便會將訊息傳送至終端機,由終 端機判斷下一步要如何前進;如判斷到左右其中一方有障礙物,則車 子會倒退,在朝反方向轉彎。 而在前方感測器都沒感測到障礙物的情況下,程式會判斷左右超 音波感測到的訊號,如左右邊任一方向有感測到障礙物的話,程式會 控制轉向伺服機來進行調整,使其避開障礙;如果兩方感測器皆感測 到障礙物時,車子會比直前進,在此過程中車子是一直在前進的狀態。

(42)

第四章

系統測試、結論與未來展望

4.1 系統測試 4.1.1 超音波測試 超音波測試時利用示波器來顯示其頻率,給予電路高電位讓其發 出穩定的脈波,再調整可變電阻使其於示波器上顯示頻率為 40KHz, 並測試接受器使其確定可接收到超音波訊號。 圖 4-1 超音波調校

(43)

4.1.2 伺服機轉向測試 利用程式語法直接給予伺服機脈波迴圈,如「PULSOUT 14, 1000」給予 2ms 的脈波使伺服機轉至 2 點鐘方向,以此測試其車子的 伺服機轉向角度是否正確。 圖 4-2 轉向測試 4.1.3 馬達測試 讓馬達進行運轉並測試編譯器訊號是否正確,直接讓車子運作來 測試馬達是否運作正常。 圖 4-4 馬達運作測試

(44)

4.2 實地運作 本文中所設計之自走車具備了基本行進、轉向、即避障之能力, 將其放在室內讓其自行行走來測試。本文使用三個超音波感測器即可 以達到避障之效果。 從圖 4-5 (1)開始在超音波偵測到障礙物後,車子馬達停止運作, (2)~(4)超音波先往左邊 90 度轉向偵測、接著是左邊 45 度、右邊 45 度、最後是右邊 90 度來偵測是否有障礙物,(5)偵測完後,超音波回 復到向前偵測的狀態,(6)偵測到右邊有障礙物後,車子先向後退一 段,並靜止一會兒,因為馬達控制器無法直接切換正反轉,需一段停 滯時間,(7)~(10)車子向左轉 90 度,並前進。(11)~(12)車子以 45 度向 牆壁前進,右方超音波感測到後,控制伺服機向左轉,微調前進方向 使其不會碰撞牆壁。 (1) (2) (3) (4) (5) (6)

(45)

(7) (8) (9) (10) (11) (12) 圖 4-5 實地測試 4.3 結論 本文利用微處理器 BASIC Stamp 2 設計出一台能自行行走、避障 之自走車。在實際測試時,超音波感測器在接收部分並不穩定,偶爾 接收到雜訊或是沒接收到訊號,使車子行進時不穩定,這一點是還要 再繼續改進的地方,可以藉著改良電路或配合其他感測器來改進。在 本次專題的製作中,學到了很多之前沒接觸過的機電系統與整合,也 將之前所學的理論,實際的運用在實物上,對於軟硬體技術也從專題 製作過程中有進一步了解,對於本人以後想朝控制領域繼續研究有很 大幫助。

(46)

4.4 未來展望 在未來的發展上可以有朝以下幾個方向前進: (1) 可以加裝定位系統,來確認車子所在位置並進行導航的工作。 (2) 連接 PDA 做為終端機來進行路徑記錄,當車子行進到盡頭時利用 PDA 所記錄之路徑來進行的行走及避障。 (3) 加裝視訊系統及無線傳輸系統,使車子能透過無線傳輸的方式來 進行控制,並利用視訊系統即時觀察行走時的狀況。 (4) 增加感測元件,使車子的避障能更加完善,並提升控制能力。

(47)

參考文獻

【1】 什麼是微處理器。Parallax, Inc 。 http://www.parallax.com/dl/docs/books/edu/WAMv2.2-CHS-v1.0.pdf 【2】 冷玉琦 (2005)。「運用 LabVIEW 於小型機械手臂之人機界面建 構」。逢甲大學圖書館優質學期報告,台中。 【3】 吳鴻源 (2007)。電子實習。台北:全華圖書。 【4】 林泰宏 (2005)。「自走車避障與導航性能之分析與設計」。逢甲 大學航太與系統工程學系碩士論文,台中。 【5】 使用 BASIC Stamp 微處理器。 http://www.playrobot.com/menu05_c1_stamp_howto.htm 【6】 陳勇增、鄧惠源 (主編) (2005)。非破壞檢測。台北:全華圖書。 【7】 曾威凱 (2002)。「無人自走車軟硬體系統設計與製作」。逢甲大 學航太與系統工程學系碩士論文,台中。 【8】 劉協政 (2007)。「應用 LabVIEW 於虛擬訓練平台之建構」。逢 甲大學航太與系統工程學系碩士論文,台中。 【9】 超音波發射接收原理簡介。 http://jsjk.cn.nctu.edu.tw/college/Liao_J_Y/04-chap2.doc 【10】 楊明豐 (主編) (2005)。8051 單晶片 C 語言設計實務。台北: 碁峯資訊。

(48)

【11】 蕭勝議 (2003)。「無人自走車系統設計與行為反應控制」。逢 甲大學航太與系統工程學系碩士論文,台中。

【12】 盧明智、陳政傳 (2003) 。感測器原理與應用實習。台北:台

科大圖書。

【13】 BASIC Stamp。http://zh.wikipedia.org/wiki/BASIC_Stamp

【14】 George Liao.。NE5555 震盪器、計時器 IC 說明及運用。

http://member.giga.net.tw/georgeliao/Circuit/NE555-Function.pdf

【15】 HOBBICO。http://hobbico.com

【16】 Parallax, Inc。http://www.parallax.com/

【17】 Ultrasonic Ceramic Sensor 超音波陶瓷感測器。廣華電子。

(49)

附錄

附錄一 自走車控制程式 ' {$STAMP BS2}

' {$PBASIC 2.5} sign1 VAR Word sign2 VAR Word sign3 VAR Word sign4 VAR Word sign5 VAR Word obstacle1 VAR Bit obstacle2 VAR Bit obstacle3 VAR Bit obstacle4 VAR Bit counter VAR Byte right VAR Word left VAR Word time VAR Word circ VAR Word length VAR Word HIGH 8 HIGH 9 HIGH 10 HIGH 11 PAUSE 5000 '啟動後先靜止五秒 time = 0 circ = 0 main: DO GOSUB ninth_sub '讓馬達最高速運轉 DO HIGH 3 '給中間超音波訊號 HIGH 5 '給右邊超音波訊號 HIGH 7 '給左邊超音波訊號 FOR counter = 1 TO 5 DEBUG ?counter,CR PULSOUT 12,650 '車子向右轉 NEXT INPUT 14 '接收光遮斷器訊號 sign5 = IN14 IF (sign5=0)THEN '紀錄所收到的訊號 IF (time=10)THEN '每收到十次輪胎轉一周 time = 0 circ = circ + 1 ELSE time = time + 1

(50)

ENDIF ELSE time = time ENDIF PULSIN 2,1,sign1 '接收中間超音波訊號 PULSIN 4,1,sign2 '接收右邊超音波訊號 PULSIN 6,1,sign3 '接收左邊超音波訊號 GOSUB first_sub '執行副程式 GOSUB second_sub GOSUB third_sub IF (obstacle1 = 0)THEN '判斷前方有無障礙物,無障 GOSUB fourth_sub 礙物執行第四副程式,有障 ELSE 礙物執行第六副程式 GOSUB sixth_sub ENDIF LOOP LOOP END first_sub: IF (sign1>0)THEN '判斷接收到的訊號,有無 obstacle1=1 障礙物為 1,無障礙物為 0 ELSE obstacle1=0 ENDIF RETURN second_sub: IF (sign2>0)THEN '判斷接收到的訊號,有無障 obstacle2=1 礙物為 1,無障礙物為 0 ELSE obstacle2=0 ENDIF RETURN third_sub: IF (sign3>0)THEN '判斷接收到的訊號,有無障 obstacle3=1 礙物為 1,無障礙物為 0 ELSE obstacle3=0 ENDIF RETURN fourth_sub: IF (obstacle2=obstacle3)THEN '判斷左右兩邊超音波所接收的訊號

(51)

FOR counter=1 TO 5 '所接受到的訊號一樣,控制 DEBUG ?counter,CR 伺服機保持正中使車子為向 PULSOUT 12,650 前行走

SEROUT 1, 16468, ["go",",01",",00,",?circ] '傳訊息給 PDA NEXT ELSE GOSUB fifth_sub '所接收的訊號不一樣則執行第五副程式 ENDIF RETURN fifth_sub: IF (obstacle2>obstacle3)THEN '右邊有障礙物,使伺服機左轉 FOR counter=1 TO 5 DEBUG ?counter,CR PULSOUT 12,800 SEROUT 1, 16468, ["go",",01",",03,",?circ] NEXT ELSE FOR counter=1 TO 5 '左邊有障礙物,使伺服機右轉 DEBUG ?counter,CR PULSOUT 12,475

SEROUT 1, 16468, ["go",",01",",04,",?circ] '傳訊息給 PDA NEXT ENDIF RETURN sixth_sub: LOW 3 LOW 5 LOW 7 HIGH 8 HIGH 9 HIGH 10 HIGH 11 '將超音波和馬達停止 FOR counter = 1 TO 10 '前方司服機左轉 90 度 DEBUG ?counter,CR PULSOUT 13, 400

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT FOR counter = 1 TO 10 '發送接收超音波訊號 DEBUG ?counter,CR HIGH 3 PULSIN 2,1,sign1 DEBUG ?sign1 ,CR GOSUB first_sub DEBUG ?obstacle1 ,CR

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT

FOR counter = 1 TO 10 '前方司服機左轉 45 度 DEBUG ?counter,CR

PULSOUT 13, 550

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT

(52)

DEBUG ?counter,CR HIGH 3 PULSIN 2,1,sign2 DEBUG ?sign2 ,CR GOSUB second_sub DEBUG ?obstacle2 ,CR

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT

FOR counter = 1 TO 10 '前方司服機右轉 45 度 DEBUG ?counter,CR

PULSOUT 13, 1000

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT FOR counter = 1 TO 10 '發送接收超音波訊號 DEBUG ?counter,CR HIGH 3 PULSIN 2,1,sign3 DEBUG ?sign3 ,CR GOSUB third_sub DEBUG ?obstacle3 ,CR

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT

FOR counter = 1 TO 10 '前方司服機右轉 90 度 DEBUG ?counter,CR

PULSOUT 13, 1200

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT FOR counter = 1 TO 10 DEBUG ?counter,CR HIGH 3 '發送接收超音波訊號 PULSIN 2,1,sign4 DEBUG ?sign4 ,CR GOSUB seventh_sub DEBUG ?obstacle4 ,CR NEXT FOR counter = 1 TO 10 DEBUG ?counter,CR LOW 3 '前方司服機轉正並關掉超音波 PULSOUT 13, 800

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT

right = obstacle3 + obstacle4 left = obstacle1 + obstacle2

IF (right=left)THEN '判斷左右哪邊有障礙物 HIGH 8 '前左右三方都有障礙物,停止程式 HIGH 9 傳送訊息給終端機,由終端機判斷 HIGH 10 下一步如何前進 HIGH 11 SEROUT 1, 16468, ["stop",",00",",00,",?circ] SERIN 1, 16468, [sData] ELSE

(53)

GOSUB eighth_sub ENDIF RETURN seventh_sub: IF (sign4>0)THEN '判斷接收到的訊號,有無 obstacle4=1 障礙物為 1,無障礙物為 0 ELSE obstacle4=0 ENDIF RETURN eighth_sub: IF (right > left)THEN '右邊有障礙物 FOR counter = 1 TO 30 DEBUG ?counter,CR LOW 8 HIGH 9 HIGH 10 LOW 11 '倒車

SEROUT 1, 16468, ["go",",02",",00,",?circ] '傳訊息給 PDA NEXT GOSUB tenth_sub FOR counter = 1 TO 30 DEBUG ?counter,CR PULSOUT 12,800 '車子向左轉 GOSUB ninth_sub

SEROUT 1, 16468, ["go",",01",",03,",?circ] '傳訊息給 PDA NEXT GOTO main ELSE FOR counter = 1 TO 30 DEBUG ?counter,CR LOW 8 HIGH 9 HIGH 10 LOW 11 '倒車

SEROUT 1, 16468, ["go",",02",",00,",?circ] '傳訊息給 PDA NEXT GOSUB tenth_sub FOR counter = 1 TO 30 DEBUG ?counter,CR PULSOUT 12,475 '車子向右轉 GOSUB ninth_sub

SEROUT 1, 16468, ["go",",01",",04,",?circ] '傳訊息給 PDA NEXT

(54)

GOTO main ENDIF RETURN ninth_sub: HIGH 8 LOW 9 LOW 10 HIGH 11 RETURN tenth_sub: FOR counter = 1 TO 20 DEBUG ?counter,CR '暫停一下 HIGH 8 HIGH 9 HIGH 10 HIGH 11

SEROUT 1, 16468, ["go",",00",",00,",?circ] '傳訊息給 PDA NEXT

數據

圖 2-1 BASIC Stamp 2【5】
圖 2-2  其他模組【1】
圖 2-4 CS-60 SERVO 實體圖
圖 3-1  接線示意圖【5】
+7

參考文獻

相關文件

合流(confluence)或混淆 :自我與環境的 分化,無法有清楚的知覺,導致內在經驗與外在

締約國同意在環保、保育(包括天然資源)方面共同合作。環境 合作機制(Environmental Cooperation

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

集熱器總熱損係數定義為:集熱器中吸熱板 與周圍環境的平均傳熱係數。只要集熱器的吸熱

使用校園環境及設施 (發光簾)..

Step 3: : : :模擬環境設定 模擬環境設定 模擬環境設定 模擬環境設定、 、 、 、存檔與執行模擬 存檔與執行模擬

• 人生在世的一個主要課題,便是了解事物間的 因果關係以及行為對周圍造成的影響,從而學

校園環境品質除是永續校園 重要的指標之一,其優劣與否更 是攸關教職員生的身體安全與健