design of an fpga-based automotive robot for the lego...

62
FPGA 為基礎之自主式樂高積木分類機器 人設計 Design of an FPGA-Based Automotive Robot for the LEGO Brick Classifier 別:電機工程學系碩士班 學號姓名:E09701011 廖清桂 指導教授:許 駿 博士 中華民國 九十九 年 七 月

Upload: others

Post on 07-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

中 華 大 學

碩 士 論 文

以 FPGA 為基礎之自主式樂高積木分類機器

人設計

Design of an FPGA-Based Automotive Robot

for the LEGO Brick Classifier

系 所 別電機工程學系碩士班

學號姓名E09701011 廖清桂

指導教授許 駿 飛 博士

中華民國 九十九 年 七 月

i

摘要

機器人產業是結合機械自動化電機電子資訊軟體通訊及創意內容

等相關技術為一高度技術整合且高附加價值的明星產業近年來已經陸續有許

多的服務性機器人被開發出來應用於導覽伴侶娛樂互動等方面這些服

務型機器人與人們在日常生活中互動頻繁可預期的是機器人也即將進入家庭環

境成為一般民眾生活的一部分其中自主式機器人便佔有舉足輕重之地位在本

論文中研製一部用 FPGA 為基礎之自主式樂高積木分類機器人其架構包含了樂

高積木機構兩組直流馬達與顏色感測器與軟體模組等等其中樂高積木機構用

來實現所需之機械架構直流馬達為動力來源提供該機器人產生所需之動作顏

色感測器由一單體鏡頭色感晶片與兩個白色 LED 組成用來辨識積木顏色資

訊最後利用 Verilog HDL 硬體描述語言撰寫所需之控制程式經由實際的實

驗結果可得知本論文所提出之以 FPGA 為基礎之自主式樂高積木分類機器人可

以達到預期目標

關鍵字FPGA機器人樂高積木分類顏色辨識

ii

ABSTRACT

Robot industry is combined with mechanism automation electric machinery

electronic information software communications and originality contents relative

technologyhellipetc It is a star industry of high technique integration and high added value

In recent year it has numerous service robots been made and designed for conduct

companion entertainment and interaction continually The service robots and human

interact frequently in daily life We expected that the robot will go into the family

environment and will become a member of common people Therefore the automotive

robot will become much more important position in this industry Hence my thesis is

made design of an FPGA-based automotive robot for the LEGO brick classifier Its

framework includes LEGO brick structure two sets of DC motor and a color sensor

with software module which the LEGO brick structure is necessary for mechanism and

the robotrsquos power source is came from these two sets of DC motor The color sensor is

ingredients of monomer camera lens color chip and two white LEDs which are used for

color brick identification Finally the Verilog HDL is used to implement the control

program In fact the design of an FPGA-based automotive robot for the LEGO brick

classifier did accomplish the expected target from the experimental results real-time

KeywordsFPGA robot LEGO brick classifier color identification

iii

目錄

摘要 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ

ABSTRACT helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅱ

目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ

圖目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ

第一章 緒論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

11 前言 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

12 樂高機器人介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8

13 FPGA 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12

14 研究目的 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 15

15 章節安排 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip hellip 16

第二章 樂高積木分類機器人之硬體架 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

21 系統架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

22 TCS230-DB 顏色感測器介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20

23 LB1836M 馬達驅動晶片介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 27

24 光學編碼器設計 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30

第三章 樂高積木分類機器人之軟體架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

31 DE0 實驗版介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

iv

32 硬體描述語言 (Verilog HDLVHDL) 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38

33 分類機器人程式流程圖 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39

第四章 實驗結果 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47

第五章 結論與未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

51 結論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

52 未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

參考文獻 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 54

v

圖目錄

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6] 4

圖 12 日本 SONY 公司所發表之機器人[7] 4

圖 13 日本 SONY 新力公司所推出的 AIBO[8] 5

圖 14 鴻海的 PLEO 可愛恐龍[9] 6

圖 16 財團法人精密機械研究發展中心所研發的機器人[11] 7

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12] 8

圖 18 中正大學室內多功能服務型機器人[13] 8

圖 19 教育用 LEGO Mindstorms NXT[14] 9

圖 21 硬體系統架構 18

圖 22 顏色感測器 TCS230-DB[18] 22

圖 23 可程式控制接腳方塊圖[18] 23

圖 24 晶片 TCS230 俯視圖[18] 24

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18] 26

圖 26 馬達驅動晶片俯視圖[19] 29

圖 27 光學編碼器之原理 31

圖 28 光學編碼器做正轉運動時量測訊號 34

圖 29 光學編碼器做反轉運動時量測訊號 34

圖 31 Altera DE0 FPGA 實驗板[20] 36

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 2: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

i

摘要

機器人產業是結合機械自動化電機電子資訊軟體通訊及創意內容

等相關技術為一高度技術整合且高附加價值的明星產業近年來已經陸續有許

多的服務性機器人被開發出來應用於導覽伴侶娛樂互動等方面這些服

務型機器人與人們在日常生活中互動頻繁可預期的是機器人也即將進入家庭環

境成為一般民眾生活的一部分其中自主式機器人便佔有舉足輕重之地位在本

論文中研製一部用 FPGA 為基礎之自主式樂高積木分類機器人其架構包含了樂

高積木機構兩組直流馬達與顏色感測器與軟體模組等等其中樂高積木機構用

來實現所需之機械架構直流馬達為動力來源提供該機器人產生所需之動作顏

色感測器由一單體鏡頭色感晶片與兩個白色 LED 組成用來辨識積木顏色資

訊最後利用 Verilog HDL 硬體描述語言撰寫所需之控制程式經由實際的實

驗結果可得知本論文所提出之以 FPGA 為基礎之自主式樂高積木分類機器人可

以達到預期目標

關鍵字FPGA機器人樂高積木分類顏色辨識

ii

ABSTRACT

Robot industry is combined with mechanism automation electric machinery

electronic information software communications and originality contents relative

technologyhellipetc It is a star industry of high technique integration and high added value

In recent year it has numerous service robots been made and designed for conduct

companion entertainment and interaction continually The service robots and human

interact frequently in daily life We expected that the robot will go into the family

environment and will become a member of common people Therefore the automotive

robot will become much more important position in this industry Hence my thesis is

made design of an FPGA-based automotive robot for the LEGO brick classifier Its

framework includes LEGO brick structure two sets of DC motor and a color sensor

with software module which the LEGO brick structure is necessary for mechanism and

the robotrsquos power source is came from these two sets of DC motor The color sensor is

ingredients of monomer camera lens color chip and two white LEDs which are used for

color brick identification Finally the Verilog HDL is used to implement the control

program In fact the design of an FPGA-based automotive robot for the LEGO brick

classifier did accomplish the expected target from the experimental results real-time

KeywordsFPGA robot LEGO brick classifier color identification

iii

目錄

摘要 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ

ABSTRACT helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅱ

目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ

圖目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ

第一章 緒論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

11 前言 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

12 樂高機器人介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8

13 FPGA 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12

14 研究目的 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 15

15 章節安排 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip hellip 16

第二章 樂高積木分類機器人之硬體架 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

21 系統架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

22 TCS230-DB 顏色感測器介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20

23 LB1836M 馬達驅動晶片介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 27

24 光學編碼器設計 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30

第三章 樂高積木分類機器人之軟體架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

31 DE0 實驗版介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

iv

32 硬體描述語言 (Verilog HDLVHDL) 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38

33 分類機器人程式流程圖 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39

第四章 實驗結果 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47

第五章 結論與未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

51 結論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

52 未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

參考文獻 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 54

v

圖目錄

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6] 4

圖 12 日本 SONY 公司所發表之機器人[7] 4

圖 13 日本 SONY 新力公司所推出的 AIBO[8] 5

圖 14 鴻海的 PLEO 可愛恐龍[9] 6

圖 16 財團法人精密機械研究發展中心所研發的機器人[11] 7

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12] 8

圖 18 中正大學室內多功能服務型機器人[13] 8

圖 19 教育用 LEGO Mindstorms NXT[14] 9

圖 21 硬體系統架構 18

圖 22 顏色感測器 TCS230-DB[18] 22

圖 23 可程式控制接腳方塊圖[18] 23

圖 24 晶片 TCS230 俯視圖[18] 24

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18] 26

圖 26 馬達驅動晶片俯視圖[19] 29

圖 27 光學編碼器之原理 31

圖 28 光學編碼器做正轉運動時量測訊號 34

圖 29 光學編碼器做反轉運動時量測訊號 34

圖 31 Altera DE0 FPGA 實驗板[20] 36

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 3: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

ii

ABSTRACT

Robot industry is combined with mechanism automation electric machinery

electronic information software communications and originality contents relative

technologyhellipetc It is a star industry of high technique integration and high added value

In recent year it has numerous service robots been made and designed for conduct

companion entertainment and interaction continually The service robots and human

interact frequently in daily life We expected that the robot will go into the family

environment and will become a member of common people Therefore the automotive

robot will become much more important position in this industry Hence my thesis is

made design of an FPGA-based automotive robot for the LEGO brick classifier Its

framework includes LEGO brick structure two sets of DC motor and a color sensor

with software module which the LEGO brick structure is necessary for mechanism and

the robotrsquos power source is came from these two sets of DC motor The color sensor is

ingredients of monomer camera lens color chip and two white LEDs which are used for

color brick identification Finally the Verilog HDL is used to implement the control

program In fact the design of an FPGA-based automotive robot for the LEGO brick

classifier did accomplish the expected target from the experimental results real-time

KeywordsFPGA robot LEGO brick classifier color identification

iii

目錄

摘要 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ

ABSTRACT helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅱ

目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ

圖目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ

第一章 緒論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

11 前言 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

12 樂高機器人介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8

13 FPGA 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12

14 研究目的 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 15

15 章節安排 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip hellip 16

第二章 樂高積木分類機器人之硬體架 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

21 系統架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

22 TCS230-DB 顏色感測器介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20

23 LB1836M 馬達驅動晶片介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 27

24 光學編碼器設計 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30

第三章 樂高積木分類機器人之軟體架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

31 DE0 實驗版介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

iv

32 硬體描述語言 (Verilog HDLVHDL) 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38

33 分類機器人程式流程圖 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39

第四章 實驗結果 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47

第五章 結論與未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

51 結論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

52 未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

參考文獻 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 54

v

圖目錄

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6] 4

圖 12 日本 SONY 公司所發表之機器人[7] 4

圖 13 日本 SONY 新力公司所推出的 AIBO[8] 5

圖 14 鴻海的 PLEO 可愛恐龍[9] 6

圖 16 財團法人精密機械研究發展中心所研發的機器人[11] 7

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12] 8

圖 18 中正大學室內多功能服務型機器人[13] 8

圖 19 教育用 LEGO Mindstorms NXT[14] 9

圖 21 硬體系統架構 18

圖 22 顏色感測器 TCS230-DB[18] 22

圖 23 可程式控制接腳方塊圖[18] 23

圖 24 晶片 TCS230 俯視圖[18] 24

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18] 26

圖 26 馬達驅動晶片俯視圖[19] 29

圖 27 光學編碼器之原理 31

圖 28 光學編碼器做正轉運動時量測訊號 34

圖 29 光學編碼器做反轉運動時量測訊號 34

圖 31 Altera DE0 FPGA 實驗板[20] 36

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 4: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

iii

目錄

摘要 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅰ

ABSTRACT helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅱ

目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅲ

圖目錄 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip ⅴ

第一章 緒論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

11 前言 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 1

12 樂高機器人介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 8

13 FPGA 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 12

14 研究目的 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 15

15 章節安排 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip hellip 16

第二章 樂高積木分類機器人之硬體架 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

21 系統架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 18

22 TCS230-DB 顏色感測器介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 20

23 LB1836M 馬達驅動晶片介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 27

24 光學編碼器設計 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 30

第三章 樂高積木分類機器人之軟體架構 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

31 DE0 實驗版介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 35

iv

32 硬體描述語言 (Verilog HDLVHDL) 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38

33 分類機器人程式流程圖 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39

第四章 實驗結果 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47

第五章 結論與未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

51 結論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

52 未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

參考文獻 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 54

v

圖目錄

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6] 4

圖 12 日本 SONY 公司所發表之機器人[7] 4

圖 13 日本 SONY 新力公司所推出的 AIBO[8] 5

圖 14 鴻海的 PLEO 可愛恐龍[9] 6

圖 16 財團法人精密機械研究發展中心所研發的機器人[11] 7

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12] 8

圖 18 中正大學室內多功能服務型機器人[13] 8

圖 19 教育用 LEGO Mindstorms NXT[14] 9

圖 21 硬體系統架構 18

圖 22 顏色感測器 TCS230-DB[18] 22

圖 23 可程式控制接腳方塊圖[18] 23

圖 24 晶片 TCS230 俯視圖[18] 24

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18] 26

圖 26 馬達驅動晶片俯視圖[19] 29

圖 27 光學編碼器之原理 31

圖 28 光學編碼器做正轉運動時量測訊號 34

圖 29 光學編碼器做反轉運動時量測訊號 34

圖 31 Altera DE0 FPGA 實驗板[20] 36

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 5: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

iv

32 硬體描述語言 (Verilog HDLVHDL) 介紹 helliphelliphelliphelliphelliphelliphelliphelliphelliphellip 38

33 分類機器人程式流程圖 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 39

第四章 實驗結果 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 47

第五章 結論與未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

51 結論 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 52

52 未來研究 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 53

參考文獻 helliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphelliphellip 54

v

圖目錄

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6] 4

圖 12 日本 SONY 公司所發表之機器人[7] 4

圖 13 日本 SONY 新力公司所推出的 AIBO[8] 5

圖 14 鴻海的 PLEO 可愛恐龍[9] 6

圖 16 財團法人精密機械研究發展中心所研發的機器人[11] 7

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12] 8

圖 18 中正大學室內多功能服務型機器人[13] 8

圖 19 教育用 LEGO Mindstorms NXT[14] 9

圖 21 硬體系統架構 18

圖 22 顏色感測器 TCS230-DB[18] 22

圖 23 可程式控制接腳方塊圖[18] 23

圖 24 晶片 TCS230 俯視圖[18] 24

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18] 26

圖 26 馬達驅動晶片俯視圖[19] 29

圖 27 光學編碼器之原理 31

圖 28 光學編碼器做正轉運動時量測訊號 34

圖 29 光學編碼器做反轉運動時量測訊號 34

圖 31 Altera DE0 FPGA 實驗板[20] 36

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 6: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

v

圖目錄

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6] 4

圖 12 日本 SONY 公司所發表之機器人[7] 4

圖 13 日本 SONY 新力公司所推出的 AIBO[8] 5

圖 14 鴻海的 PLEO 可愛恐龍[9] 6

圖 16 財團法人精密機械研究發展中心所研發的機器人[11] 7

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12] 8

圖 18 中正大學室內多功能服務型機器人[13] 8

圖 19 教育用 LEGO Mindstorms NXT[14] 9

圖 21 硬體系統架構 18

圖 22 顏色感測器 TCS230-DB[18] 22

圖 23 可程式控制接腳方塊圖[18] 23

圖 24 晶片 TCS230 俯視圖[18] 24

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18] 26

圖 26 馬達驅動晶片俯視圖[19] 29

圖 27 光學編碼器之原理 31

圖 28 光學編碼器做正轉運動時量測訊號 34

圖 29 光學編碼器做反轉運動時量測訊號 34

圖 31 Altera DE0 FPGA 實驗板[20] 36

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 7: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

vi

圖 32 擴充槽的 IO 接腳圖[20] 37

圖 33 Quartus II 應用軟體主畫面[21] 39

圖 34 分類機器人程式流程圖 41

圖 35 馬達旋轉副程式流程圖 43

圖 36 顏色感測器讀值副程式流程圖 46

圖 41 實際完成組合照片 48

圖 42 接收顏色積木的籃框轉盤角度的運轉說明 49

圖 43 實際實驗結果時序照片 51

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 8: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

1

第一章 緒論

11 前言

在現今講求自動化電腦化機器化智慧化的時代裡自動化機器設備的

應用與輔助都已經相當普遍受到重視原因是自動化設備的應用可以減少人們所

需付出的勞動力因此不但可以增加產量並且可以從事一些危險性的工作[1-3]

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產

業亞洲的日本已將機器人列為新產業創造戰略七大領域之一韓國也列為十大

新世代成長動力產業之一並投入大量資金與人力積極發展機器人可分為工商

產業用機器人保全用機器人服務娛樂型機器人醫療照護機器人國防安全

用機器人運動休閒益智機器人等幾大類機器人的關鍵技術涵蓋機械結構設計

馬達設計與控制即時影像語音處理感測電路設計與實現嵌入式系統軟硬體

設計微處理器應用與 IC 設計智慧型控制技術機電整合等等的專業知識

是一個需要系統整合才能有效發展的研究領域甚至近代更有人積極的研發模糊

控制想要加入給機器人使其互動更趨近於擬人類繼美學經濟之後台灣開

始出現「第四級幸福產業」其目的主要讓消費者有幸福感親密感滿足感被

關懷感並進而找到歸屬感的產業為排解心靈空虛尋求慰藉寵物市場規模

逐漸擴大然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵

物所以應運而生的電子寵物因兼具寵物部分功能如陪伴撫慰等又不像真

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 9: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

2

實寵物需花費太多精神照顧因此成為目前最流行的科技玩具甚至其扮演的已

不只是玩具的角色而是進一步強調「陪伴」與「互動」的作用建立友伴關係

已為電子寵物之設計趨勢如此互動式機器人的開發更被寄予厚望尤其歷經

台灣光復後這六十幾年的台灣社會發展過去和現在的生活型態的變化非常劇

烈臺灣社會從以農業為主的被殖民社會轉變成為以工商業為主的社會人民

的生活水準提高各項物質生活品質也跟著提升對於精神生活的重視和需求也

與日俱增台灣也在 2005年行政院產業科技發展策略會議中將「智慧型機器人」

列入發展議題因此得知機器人在未來將扮演著舉足輕重的角色與地位甚至

可能成為家庭必備的日常用品之一像是現在的電視冰箱或車子等

目前智慧型機器人產業已是全球矚目的焦點之一世界先進各國也不斷針對

機器人產業進行各種相關資訊的蒐集與研發並提出各種的預測數據做為未來

可行性的評估與參考而目前的智慧型機器人產業大多集中於保全清潔娛樂

互動和陪伴等上面的應用與開發未來可以結合更多不同領域的發展與創新我

國對於機器人產業的研究發展目前尚屬起步階段根據經濟部的資料顯示目

前的智慧型機器人大多於「行政院 2005 年產業科技策略會議」中才作出決定將

智慧型機器人產業發展目標分為三個階段第Ⅰ階段期間由西元 2005 至 2008

年預估產值將達到新台幣 300 億元第Ⅱ階段期間由西元 2009 至 2013 年

預估產值將達到新台幣 900 億元以上第Ⅲ階段期間由西元 2014 至 2020 年

我國將成為智慧型機器人主要製造國[4]這也正說明了未來的產業方向以及產

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 10: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

3

業該如何積極投入更多更專業的人力與物力在機器人研發上面致力配合國家政

策進而達到共同的目標以造福全人類由此可知未來要是誰能發展出擬人

化機器人誰就能取得領導的地位

由於電子資訊與通訊科技的進步近年來已經陸續有許多的服務性機器人被

開發出來應用於陪伴導覽娛樂清潔醫療教學與輔助等方面這些服

務型的機器人與人們在日常生活中互動頻繁因此在人機互動的設計上需要更加

的安全友善並且容易操作甚至可以用語言互動溝通使其更趨於人性化人

機互動的技術著重於設計開發各種機器人與使用者之間的介面與溝通硬體及

軟體根據聯合國歐洲經濟委員會(UNECE)最新報告顯示隨著科技的進步和

價格的下跌可能很快在不久的將來即可看到機器人替代人工做許多家事譬如

自割草打掃到清潔窗戶地板等像吸塵器和除草機都無需人工手動操作以

程式輸入即可自行工作

以下分別就國內外相關的研究舉例說明在國外研究單位之相關成果以亞

洲鄰近國家為例日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭

外在機器人研發領域也較勁個不停較早推出的 HONDA「ASIMO」機器人

如圖 11 之左圖所示目前擁有可跑步 6KMH 的性能機器人他們持續在提升

腳部的行動力後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演

奏等手部的動作上一代可吹奏喇叭機器人最近推展出的最新機型會拉小提琴

機器人分別如圖 11 之中間圖和右圖所示

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 11: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

4

圖 11 日本 HONDA 與 TOYOTA 兩大車廠分別所發表之機器人[5 6]

然而不落人後的日本 SONY 公司也開發出一種整合動作控制技術它能夠

使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一

起如圖 12 所示QRIO 不僅可以跳舞唱歌踢足球更可以經過感測器後判

斷地面的類型並進而即時反應調整相對應的姿勢和步行的姿態來適應各種環

境的變化QRIO 還有更引人入勝的地方那就是能夠與人們進行很多豐富的互動

與交流溝通

圖 12 日本 SONY 公司所發表之機器人[7]

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物目前已研

發推展到第五代如圖 13 所示AIBO 的出現不僅代表了一具機器寵物的誕生

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 12: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

5

更重要的是 AIBO 結合了人工智慧的科技朝著提供生活娛樂的方向發展將來

在陪伴與醫療方面會有莫大的貢獻在 AIBO 的體內有一片極小的晶片就是

它賦予機器狗智慧使它會像真狗一樣做出各種有趣的動作並與主人互動進而

達到陪伴的效果同時也設定了它的成長過程主人要是和它相處久了它會記

得你的聲音你的動作還有你的容貌這也就是仿真狗的誕生

圖 13 日本 SONY 新力公司所推出的 AIBO[8]

另外在國內研究單位之相關成果近年來機器人領域的發展一日千里有

許多新的突破例如機器人的行走能力已經由靜態平衡延伸到動態平衡的研究

機器人走入人群似乎已經指日可待研究機器人近 30 年的台大終身特聘教授羅仁

權直言「別等機器人發展到成熟期才踏入那只會跟上衰敗期」羅教授更指

出台灣技術雖與日韓並駕齊驅但此產業卻相差韓國 4~5 年相差日本更是

遙遠歐美日韓政府每年都投入超過 20 億台幣以上但台灣每年卻投入不

到 4 億台幣在機器人研發上如果政府都沒有決心怎麼帶動此產業前進推展

真是讓人憂心忡忡

鴻海的 PLEO 可愛恐龍如圖 14 所示PLEO 小恐龍之所以備受期待因為

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 13: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

6

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物內建感應器可與人互動

且模樣可愛只要主人回到家PLEO 會對主人搖頭擺尾順著小恐龍的頭部撫摸

時它會高興的搖起尾巴會打噴嚏打哈欠搔它的背部時它還會一百八十

度回過頭來看是誰在跟它玩

圖 14 鴻海的 PLEO 可愛恐龍[9]

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人TGR-W1

是以雙輪方式行進內建紅外線與超音波偵測系統能精確地偵測出行進路徑中

的障礙物位置並自主性地避開使用者無須再給予任何指示且當機器人偵測

到周圍環境較狹窄時會主動降低移動速度以確保自身及旁人的安全如圖 15

所示

圖 15 微星科技 TGR-W1 機器人[10]

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 14: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

7

財團法人精密機械研究發展中心所研發的導覽機器人「UPITOR」(優彼得)

是全台灣第一也是目前唯一可以廣泛應用在商業活動的導覽機器人如圖 16 所

示整合了 MP3 多媒體功能數位相框功能除了兼具高音質的音樂播放功能

並可透過藍芽與其他音樂機器人互相溝通自去年誕生至今已導覽了九場活動

並正式進入「國立台灣美術館」為群眾導覽藝術作品另外「UPITOR-S」是一

台 17 公分高的娛樂型音樂機器人它不但具備了與前者有一模一樣基本的功能

外使用者還可以於機器人頭部直接操作所有選單還可利用遙控器或語音來操

控它機器人會隨著旋律產生相對應之舞蹈動作為欣賞音樂帶來全新的體驗和

樂趣

圖 16 財團法人精密機械研究發展中心所研發的機器人[11]

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」如

圖 17 所示先是自動辨識人臉判斷觀眾所在位置接著自動偵測路線清楚帶

領觀眾逐一導覽台大校史館館藏還會表現「好開心」「好生氣」等八種表情與

情緒音調

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 15: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

8

圖 17 台灣大學全自動智慧型導覽機器人「小美」[12]

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器

人」如圖 18 所示機器人設計以居家和企業保全為用途以多重感測理論為基

礎機械手臂可以端茶水攙扶老人並具備有比對資料庫的五官擷取影像建檔

作以辨識入侵者的功能

圖 18 中正大學室內多功能服務型機器人[13]

12 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開

發出的 LEGO 機器人套件之新款教育用的 ldquoLEGO Mindstorms NXTrdquoMindstorms

是由配備微處理器的 LEGO 公司的塑料積木組裝起來再透過個人電腦編輯的程

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 16: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

9

式軟體製作的程序控制的機器人其最大的優點就是只要有一組機器人套件你

就可以自由發揮自己天馬行空與浩瀚無垠的想像也就能輕鬆地做出有趣好玩

的組合作品以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元

件所做的簡介與舉例如圖 19 所示NXT 是個組裝玩具套件它可以組裝成機

器人汽車怪獸各種機器與動物等它還有應用電子的模組如核心 NXT (類

似中央處理器)觸碰感應器音源感應器光源感應器超音波距離感測器以及

NXT 軟體等它還可以使用藍芽遙控如圖 19 所示中間是 NXT 所使用的是中

央控制器積木周邊的電子元件由左上角那個長的像雞腿的零件開始順時針依

序是步進馬達步進馬達步進馬達超音波距離感測器光源感測器音源感

應器以及觸碰感應器

圖 19 教育用 LEGO Mindstorms NXT[14]

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的程式設

計師將寫好的程式灌入到此中央控制器積木然後再由該中央控制器積木去控制

與他連結的 IO 電子元件去執行程式步進馬達可以說是 NXT 的主要輸出元件

步進馬達

步進馬達

步進馬達

超音波距離感測器

光源感測器

音源感應器

觸碰感應器

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 17: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

10

機器人需要運動的部分就必須要交給馬達去執行NXT 除了這個輸出方式外還

可以藉由中央控制器積木的螢幕和喇叭來輸出所以你也可以編寫一首簡單的歌

曲交給 NXT 來播放NXT 用的步進馬達是高扭力的與另一 RCX 主機所使用的

高馬力馬達是不同的裝上步進馬達以後樂高機器人就可以自由移動或執行某

個動作因為 NXT 步進馬達內建有「角度感應器」也就是俗稱的光學編碼器

這才使得我們可以更精確地控制馬達運轉的方向前進後退或停止例如讓 A 馬

達順時針旋轉 30 度或是逆時針旋轉 5 圈再讓 B 馬達或 C 馬達逆時針旋轉 100

度或是順時針旋轉 25 圈等自由的控制

至於 NXT 的輸入部分如超音波距離感測器藉由自己發射出去的超音波

然後再接收由自己發射出去碰到物體反射回來的超音波得到兩者之間所需的時

間來計算與物體的距離NXT 超音波感測器酷似人類的眼睛可以偵測距離的遠

近(有效範圍約 255 公分)其測量單位為英吋(inch)或公分(cm)可惜超音波距

離感測器的缺點是只適用於大型物體且容易受到不明物源的干擾

光源感測器有兩種模式一種是由自己發射出光波然後測量反射回來的

光波另一種是接收來自外界的紅外線這感測器可以在 NXT 的程式編譯環境下

控制並作校正所以只要在需要的場地預先校正完畢就不用在現場時還需要重

新測量特定區域的光源此種感測器可以偵測反射物體的明暗度顏色較暗淡的

物體光源感測器的回傳值較低顏色較明亮的物體光源感測器的回傳值較高

在國際奧林匹克機器人競賽中經常出現的軌跡賽就可以利用光源感測器來控制

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 18: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

11

軌跡車如何前進

音源感應器 簡單來說就是收音器接收來自外界的聲音音源感應器可

以偵測機器人周遭的聲音大小其測量單位可以為分貝(dB)或調整分貝(dBA)

透過音源感應器你可以藉由聲音大小的變化來改變機器人的行為

觸碰感應器可以偵測該感應器是被壓住鬆開或按一下當觸碰感應器被

壓下時回傳值為 1未按下的回傳值為 0此類型感應器可以做為機械模型的啟

動停止開關舉例來說在機械手臂前端可利用觸碰感應器偵測是否碰觸到物

品如果有則將它抓起來

軟體方面也是以舊版的程式編輯軟體再做提升一方面是配合一些新的硬體

功能一方面也盡量將整體的圖像編輯變得更漂亮操作更簡單人性化還有

豐富的教學系統此外還加入了許多支援系統例如線上更新可直接連結到

官網下載新的元件這次除了透過 USB 來下載程式到 NXT 主機上面還支援了

藍芽無線傳輸功能可以透過電腦上的藍芽收發器來將程式直接下載到 NXT 主機

上也因此還可以透過手機就可以接收或發送訊息給 NXT 主機或者發展成透過

手機來遙控樂高機器人等等如果肯花時間學樂高在軟體上提供了一個很好學

習和編輯的環境 NXT 真的是一套很棒的寓教於樂的樂高商品想寫寫簡單的程

式也可以玩得很開心如果想寫很複雜的程式搭配複雜的機械結構也絕對可以

透過 NXT 來實現的

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 19: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

12

13 FPGA 介紹

目前來說特殊應用的積體電路 ASIC(Application-specific integrated circuit)依

然是市場上產品的主流它是指依特定用途而設計的特殊規格 IC它相當省電且

特別適用於具有特殊需求的應用中但 ASIC 不能重新設置故其功能在產品開發

過程中無法任意修正或改善因此任何線路或功能的改變都必須重新設計與製

造如此不僅使得開發成本增加甚至會影響產品的上市時間目前 ASIC 雖仍主

宰了主流的高效能晶片設計但是隨著 FPGA 架構的演進其可自訂的功能架構

將可以滿足更多設計上的需求這對於只能進行固定功能的 ASIC 晶片而言FPGA

晶片將具有相當大的競爭優勢[15-17]

就開發所需的金額而言ASIC 的 90 奈米光罩費用就高達 100 萬美元左右

但這只是其中的冰山一角而已經市場調查數據統計來估算的話生產一顆 ASIC

總成本估計達 2500 萬美元其中有大半成本主要來自驗證工具但遺憾的是現

今還是有大量的 ASIC 設計要面臨重做的命運無論客戶是需要 10 顆測試用晶片

或是量產 100 萬顆晶片100 萬美元的光罩費用都無法避免因此若非是 100 萬顆

以上的量產計畫晶片設計業者通常不願意投資時間與金錢來開發 ASIC因為對

他們而言重要的是減少產品量產失敗之風險與縮短產品開發上市之時間畢竟

在這個產業裡「時間就是金錢」在應用方面來說FPGA 工作速度雖然比 ASIC

來得慢且功耗方面也較 ASIC 來得高但在整體設計上 FPGA 較 ASIC 來的精簡

FPGA主要優點在於可以快速的完成成品所以ASIC在初期開發時往往採用FPGA

來做初步的設計直到完成整個設計與驗證的過程之後再將之轉移到 ASIC 上為

的就是縮短 ASIC 進行驗證時的時間與避免金額高昂的光罩費用

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 20: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

13

簡而言之FPGA (Field Programmable Gate Array) 即為可再程式化的晶片透

過預先建立的邏輯區塊與可程式化路由資源不需要更改麵包板或焊錫焊接的部

分即可設定這些晶片以建置客制化的硬體功能FPGA 整合了 ASIC 與處理器

架構系統的最佳部分使 FPGA 晶片可應用於所有產業FPGA 具有硬體時脈的

速度與可靠性且其僅需要少數量即可進行製造生產如此便可降低比客制化

ASIC 設計的昂貴費用少得很多可重新程式化設計的晶片具有與軟體相同的彈

性卻又不受限於處理核心的數量與處理器不同的是FPGA 為實際的平行架

構因此不同的處理作業並不會佔用相同的資源每個獨立的處理作業均將指派

至專屬的晶片區塊不會影響其他邏輯區塊即可自動產生功能因此當新增其

他處理作業時應用某部分的效能亦不會受到影響

針對上市時間而言FPGA 技術具有彈性與快速原型 (prototype) 製作的功

能使用者不需進行客制化 ASIC 設計的冗長建構過程即可於硬體中測試或驗

證某個概念並僅需數個小時即可建置其他變更作業或替換 FPGA 設計現成

的硬體 (COTS)亦可搭配使用不同種類的 IO並連接至使用者設定的 FPGA 晶

片高階軟體工具正不斷提升其適用性縮短了抽象層 (Layer of abstraction) 的學

習時間並針對進階控制與訊號處理使用預先建立的函式 (IP cores)

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE)遠遠超過 FPGA

架構硬體解決方案的費用ASIC 的大型初始投資可認列於 OEM 每年所出貨

的數千組晶片但是許多末端使用者更需要客制化硬體功能以用於開發過程中

的數百組系統所以可程式化晶片的特性即代表低成本的架構作業或冗長的

前置組裝作業時間由於系統需求隨時在變化因此若與 ASIC 的龐大修改費用

相較FPGA 設計的成本實在微不足道

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 21: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

14

網路產品通訊設備以及工業系統等等都已經普遍採用 FPGA 做為前期研

發測試與驗證的選擇FPGA 晶片它是可程式化之邏輯閘陣列元件由於這種類型

的晶片在實際應用時具有高度的靈活性同時在佈局時可以輕易的完成重新設

置故可以輕易的結合各種應用是一個可供使用者程式化的邏輯元件因此近

年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件而且利用硬體

描述語言 (Verilog HDL VHDL) 所完成的電路設計就可以經由開發工具做簡單

的結合與電路佈局使之快速的燒錄至 FPGA 晶片上進行測試故是現代 IC 設

計做為測試與驗證的技術主流[15]

現今 FPGA 正朝向高密度的方向發展除了有助於系統的縮小同時也能提

高產品的穩定性除了能夠大幅縮減設計開發的工作週期之外同時也能有效的

提升其設計效率另外在整體架構方面除了 FPGA 原本具備的可程式化邏輯閘

之外FPGA 架構也不斷地朝向整合更多的內建專用電路由於在功能輸入方面全

面採用標準的硬體描述語言 (Verilog HDL VHDL)因此當使用 FPGA 來進行專

案設計研發時可以完全不用管實作時硬體邏輯閘的處理因為晶片開發商所提

供的工具已為使用者進行了眾多的處理程序囉所以硬體設計者將可以更專心於

進行功能描述方面的設計工作今後在任何功能複雜或性能多樣的研發設計中

或完成原型成品前的前置作業我們不但可以加以選擇應用這個成本低廉功能

多樣信賴性高且可程式化重新設置的 FPGA 作為開發設計使用他還擁有高延

展性且可自由擴充的搭配結合與研發設計者的電路基板應用外以及外加容易學

習撰寫的硬體描述語言 (Verilog HDL VHDL) 即可測試與驗證並實現結果然而

更可將其當作是初步的構思並延伸發揮創新未來的研究開發實現無限的可能

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 22: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

15

14 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代使得人與人之間的互動

更加的頻繁與密切進而使得人際關係更加的忙碌與複雜在加上社會型態的極

速變化使得人們的生活日趨緊張與倍感壓力進而造成「少子化」與「年老化」

到未來的「單身化」與「老人化」的社會型態所以要讓未來消費者有幸福感

寄託感滿足感被關懷感進而找到歸屬感的使命也為排解心靈空虛與尋求

慰藉甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物

如陪伴互動撫慰以及娛樂等又不像真實寵物需花費太多時間與精神去照顧

因此這個使命儼然成為當前最重要的課題之一甚至其扮演的已不僅是玩具的

角色而已而是進階的強調「陪伴撫慰」與「互動娛樂」的作用建立友伴

關係之機器人已成為設計趨勢了如此自主式與互動式之陪伴機器人的被開發

就更被寄予厚望呢

根據統計台灣三大都會區的寂寞人口已高達 107 萬社會的生活型態也已趨

向「單身化」與「老人化」再加上快節奏的都市生活步調緊張的社會關係使

得生活的感受產生更多壓力「寂寞」因而變成為都市男女的共同感傷還有「奉

養」也變成為都市男女的集體負擔所以機器人具備智慧互動陪伴與情感的

科技特性其整合應用語音辨識影像辨識語意分析學習成長智能情緒建

模情意認知互動與感知計算等技術再配合知覺或環境感測器(視覺聽覺觸

覺嗅覺光源溫度距離壓力速度紅外線超音波等)並具備聲音

動作表情情緒表達等特性提供休閒娛樂歸屬撫慰陪伴照護互動溝通

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 23: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

16

與知識代理等關係基於這樣的目地本研究提出了一自主式樂高積木分類機器

人它可以隨時陪伴人們玩耍來達到娛樂的效果同時還兼具了自主辨識顏色

積木分類的功能

為了減低研發成本所以本研究採用由樂高公司所開發之 NXT 中的科技積木

組合而成所需之機構件再搭配顏色感測器來製作一顏色積木分類機器人藉由

顏色感測器讀取輸出之色度經由程式比對判斷來辨別出顏色積木之顏色再由

直流步進馬達轉動籃框轉盤使得各種不同顏色之積木放入各自不同的當然相對

應的位置以達到顏色積木分類之目地

15 章節安排

本論文依章節安排分為五個章節其內容簡單描述依序如下

第一章為緒論先概要敘述一下現在我國與亞洲鄰近國家韓國日本以及歐

美國家對機器人的研究與發展接著對樂高機器人FPGA 作一下介紹再接續著

說明研究的目的

第二章為樂高積木分類機器人之硬體架構系統架構說明TSC230-DB 顏色

感測器介紹LB1836M 馬達驅動晶片介紹光學編碼器原理說明

第三章為樂高積木分類機器人之軟體架構DE0 實驗版介紹硬體描述語言

(Verilog HDLVHDL) 介紹分類機器人程式流程圖

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 24: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

17

第四章為實驗結果用科技樂高積木組合成的機器人加兩個步進馬達與 FPGA

實驗板馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果

第五章為結論與未來研究亦即對本研究論文作一個總結以及對未來研究的

一個期許

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 25: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

18

第二章 樂高積木分類機器人之硬體架構

21 系統架構

圖 21 硬體系統架構

PHA

PHB

pwma

pwmb

pwma

pwmb

PHA

PHB

S3

S0

S2

Sout

S1

16

Count

16

Count

n

Speed

12

p

n

Speed

12

p

3

Color

Busy

編碼程式(1)

馬達程式(1)

編碼程式(2)

顏色感測器

SPI 介面程式

光學編碼

驅動電路(1)

馬達驅動電路(1)

光學編碼

驅動電路(2)

光感測器

驅動電路

分類積木

控制序向電路

馬達驅動電路(2)

M

M馬達程式(2)

Altera FPGA Chip

Cyclone III EP3C16F484C

RG B

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 26: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

19

本論文研究之自主式樂高積木分類機器人其基本的硬體系統架構如圖 21

所示除了科技樂高積木的機構外還包含了 Althera 的 DE0 實驗板(內含 FPGA

晶片)馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB)

和樂高 NXT 套件中的兩顆步進馬達其中 Althera 的 DE0 實驗板內又含有分類

積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式另外再搭

配了一個顏色感測器基板和驅動電路板的介面副程式再接著連結光學編碼驅動

電路步進馬達驅動電路和光感測器驅動電路如此才算完成了自主式樂高積木

分類機器人之完整硬體系統架構

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明首先將步

進馬達歸定位再開啟電源此時預先撰寫好的 Verilog HDL VHDL 程式已經

由電腦被載入 FPGA 內而開始初始化將所有元件重置並開始運轉動作第一個

動作是分類積木控制序向電路開始運作送一個訊號給馬達程式(1)去運作馬達驅

動電路(1)讓步進馬達(1)動作兩圈半此時由於擺放顏色積木的籃框受到機構連

動的關係而上下搖擺之後在擺動中應該會有顏色積木隨機的滑入了積木機構

軌道中接續著是顏色感測器與 SPI 介面程式運作把隨機落入積木機構軌道中

的顏色積木開始做顏色辨識分析(此時在顏色感測器旁的兩個白色 LED 也會

亮起輔助讓顏色感應器的辨識分析更加清晰且容易而準確)待顏色辨識完成

後再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作

接收籃框轉盤旋轉旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 27: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

20

等待然後再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1)

再動作半圈將已在積木機構軌道中被偵測辨識完畢的顏色積木放下而落入了

當然相對應的相同顏色積木接收籃框中就這樣完成了一個顏色積木分類的完

整流程如此周而復始一直重覆循環以上的程序直到預先擺放在籃框中的紅

色綠色藍色和黃色等所有的顏色積木一一辨識分類完成後放下完全落入了

當然相對應的正確相同顏色積木的籃框中為止

22 TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化自動化方向的發展生產過程中長久以來一

直由人眼來主導顏色辨識的工作現在與未來將越來越多的被類似的或類似人眼

的顏色感測器所取代例如傳統生產線上對產品的種類或顏色進行分類如

此便能夠大大的提高了生產與管理和識別與統計等工作還有在科技業上對產

品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用目前

此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅綠藍的濾

光片然後對輸出信號進行相對應的處理才能將顏色信號識別出來有的將兩

者集合起來但是輸出類比信號需要一個類比數位 (AD) 的轉換電路進行採

樣對該信號進一步處理才能進行識別增加了電路的複雜性並且存在有較

大的識別誤差進而影響了識別的效果與結果

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic

Solutions) 最新推出的顏色感測器 TCS230-DB [18]它是一個可編輯程式控制的彩

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 28: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

21

色光到頻率的轉換器它把配置的矽光電二極體與電流頻率轉換器集成在一個單

一的 CMOS 電路上同時在單一晶片上還集成了紅(R)綠(G)藍(B) 三種顏色的

濾光器是業界第一個有數位相容介面的 RGB 彩色的顏色感測器TCS230 的輸

出信號是數位化可以驅動標準的 TTL 或 CMOS 元件之邏輯輸入因此可以直接

與微處理器或其他邏輯電路相連接由於輸出的是數位化並且能夠實現每個彩

色通道 10 位元以上的轉換精度因而不再需要類比數位 (AD) 的轉換電路使

電路變得更簡單它不僅能夠實現顏色的識別與檢測與以前的顏色感測器相比

還具有更多優良的新特性該顏色感測器具有高解析度可編輯程式控制的顏色

選擇與輸出目標的距離設定還有單一電源供給等特點本研究最主要就是應用

它來做為顏色積木的檢視並辨識進而自動加以顏色分類來達到本研究所需求

的結果

以下是它的原理和應用這個顏色感測器 TCS230-DB (如圖 22 所示) 是由一

個基板 (TCS230-DB) 所構成其上有一顏色感測器晶片(TAOS TCS230)一個可

變焦距的鏡頭和兩個可電流調整的白色 LED因此便可以發揮辨識與感測所有可

見的顏色或色彩的功能還有包含四個一英吋的鋁製圓腳柱和四個 34 英吋的螺絲

配件組成這塊基板 (TCS230-DB)是跟所有的 Parallax 母版相容的包含

MoBoStamp-pe它可配合程式編輯的功能顏色感測檢取色彩辨識等許多應用

它是可以工作在 27 伏特~55 伏特之間的任何電壓然而無論如何兩個白色 LED

供應 5 伏特的基準電壓是需要的母板則可以自行供給這樣可以讓顏色感測

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 29: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

22

器辨識顏色的能力會更加準確假如沒有和母板一起使用也可與教學用的Parallax

基板一條延長電纜線以及 SIP 轉接器搭配使用TCS230-DB 是可以分別作兩個

平行並列電流頻率轉換輸出的而兩厘米的鏡頭基座也是可以做平行並列調整

設定感測目標的距離範圍為 01 英吋的空間這個顏色感測器 TCS230-DB 最佳

的工作感測距離是從目標物被感測到位於印刷電路板前的 1~10625 英吋之間因

此所內含鋁製墊片它可以被固定於腳柱上假如使用顏色感測器 TCS230-DB

與 Parallax 母版搭配使用就必須移除在基板兩邊的所有螺絲末端上的墊片並且

更換含蓋在此套件中 34 英吋的螺絲

下一步連接母板到電腦並執行它附加的程式確定已輸入此時會發生兩

個狀況 1在感應器的基板上有兩個白色 LED 燈會亮起2在除錯視窗會出現一個

輸出畫面如 R123G065B200R120G060B187 等這些數字就如同我們與

顏色感測器上看到的紅色綠色藍色的物體是一樣的以一張白紙放於顏色感

圖 22 顏色感測器 TCS230-DB[18]

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 30: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

23

測器的底部兩個白色 LED 應該在鏡頭前出現一個亮點若沒有則需要調整 LED

的高度使之聚焦為一個亮點為止

這塊基板上的模組有一個光電二極體感應偵測器陣列其中各有一個紅綠

藍或透明的濾光器每個顏色的濾光器會平均遍佈在陣列中來偵測顏色的偏壓

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度均勻的分佈上述顏色再透

過內部裝置的振盪器產生方波輸出方波頻率與外部光源成正比此方波連續且

對稱是顏色密度(色彩飽和度)的呈現當撰寫程式時S2S3 接腳從振盪器被

讀取的數值就代表一個顏色而 S0S1 接腳從振盪器被讀取的數值則代表鏡頭檢

視目標物的距離比例

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色可用來偵測判

別顏色並作儲存顏色感測器晶片會產生出一定頻率的方波頻率大小與色彩強

度成正比藉由取樣時間內讀取方波的脈波數(例如 50ms)即可得到該色彩的強

度數值如圖23 所示此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB

板上使用者只需要直接連接控制器即可使用顏色感測器晶片 (TCS230) 的輸

出可以透過母板的介面或其他的系統即可控制兩厘米的鏡頭座除了永遠在低

圖 23 可程式控制接腳方塊圖

電流頻率

轉換器

光電二極體

陣列 光源

輸出

方波(脈衝)

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 31: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

24

電位 (Low) 的 OE 輸出外另外S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉

升為高電位 (Hi) 時那是程式化 TCS230 最大的輸出頻率因此當使用這個

設定時即不是 S0 也不是 S1 是需要被連接的同樣也有一些短路夾在這塊基

板 (TCS230-DB) 上可以使用不是 S0 就是 S1或兩者皆可能被限制在低電位

(Low)

當操作這塊基板 (TCS230-DB) 時需要使用 SIP 轉接器 (DB-Expander) 代

替 Parallax 母板這些訊號需要和 SIP 腳位的標記符合一致當運作在此情況

時LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予並且45至75伏特之間

是最佳的電壓供給與電流調整狀況腳位 Vdd 可在27伏特至55伏特的範圍內提

供電源給其餘的基板不管怎樣LED 至少要20伏特的電壓輸入才可以被啟動

其他腳位的訊號位準涵蓋需求如圖24 所示

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝在單一晶片上集成有 64 個光

電二極體這些二極體共分為四種類型其中 16 個光電二極體帶有紅色濾光器

16 個光電二極體帶有綠色濾光器16 個光電二極體帶有藍色濾光器其餘 16 個

不帶有任何濾光器他們可以透過全部的光的訊號這些光電二極體在晶片內是

圖 24 晶片 TCS230 俯視圖[18]

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 32: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

25

交叉排列的能夠最大限度地減少入射光幅射的不均勻性從而增加顏色識別的

精確度另一方面相同顏色的 16 個光電二極體是並聯相連接的均勻分佈在二

極體陣列中並可以消除顏色的位置誤差運作應用時透過兩個可程式化控制

的接腳來做動態選擇所需要的 RGB 或透明濾光器該顏色感測器的典型輸出頻率

範圍從 2Hz~500kHz還可以透過兩個可程式化控制的 S0S1 接腳來選擇 100

(11)20 (15)或 2 (150) 的檢視目標物距離比例輸出或切斷電源模式(節電

裝置)檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍可

更提高了它準確的辨識能力例如當使用低速的頻率計數器時就可以選擇小

的設定值使 TCS230 的輸出頻率和計數器相匹配當光源投射到 TCS230 上時

透過光電二極體控制接腳 S2S3 的不同組合可以選擇不同的濾光器例如紅

(00)藍 (01)綠 (11)或無色(Clear no filter)(10)來取得確認經過電流

頻率轉換器後輸出不同頻率的方波(脈衝)不同的顏色和光的強度對應會有不同頻

率的方波輸出還可以透過程式設定控制接腳 S0S1而選擇不同的檢視目標物

距離比例輸出對輸出頻率的範圍進行調整以適應不同的需求然而OE 是頻

率輸出狀態接腳可以控制輸出的狀態當有多個晶片接腳共用微處理器的輸入

接腳時也可以作為篩選信號用OUT 是頻率輸出接腳GND 是晶片的接地接腳

VDD為晶片提供工作電壓

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目

標物的 56 釐米大小的鏡頭座這個感測器模組將可看到一個面積約為 964 英吋

(35 釐米) 範圍內的物體任何物體的顏色變化只要在此範圍內觀測都可被這個感

測器模組辨別判讀任何顏色感測系統對光譜的反應是一個不僅是作用於感測器

裝置本身的反應而已同時也包含光學與照度這個感測器模組的反應需考慮到

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 33: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

26

鏡頭的 IR 濾光器和 LED 的放射曲線如圖 25 所示

由上面的 RGB 三原色感應原理可得知如果知道構成各種顏色的三原色的

數值就能夠知道所感測物體的顏色對於 TCS230 晶片來說當選定一個顏色

濾光器時它只允許某種特定的原色通過阻擋其他原色的通過例如當選擇

紅色濾光器時入射光中只有紅色可以通過藍色和綠色都被阻擋這樣就可以

得到紅色光的光波同理可證如果選擇是藍色或綠色的濾光器就可以得到藍

色光或綠色光的光波透過這三個數值就可以分析投射到 TCS230 顏色感測器

晶片上的光的顏色根據以上瞭解得知所以本研究事前也是先以顏色感測器去

測得顏色的光的頻譜而得知個別的頻率響應範圍進而再去撰寫程式時做比較

再判別辨識出正確的顏色加以做分類所以只要結合一個具體可行的應用元件

再搭配硬體的電路設計和軟體程式的撰寫配合因此該顏色感測器和本論文中介

紹的方法對進行其他方面的應用的顏色識別必然也有很大的幫助

波長 - nm

相對應頻率響應

圖 25 RGB 三原色與無色(透明)頻率響應與波長圖[18]

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 34: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

27

23 LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M)作為擺放顏色積木

籃框與接放顏色積木籃框轉盤的馬達驅動器如此步進馬達才能夠有足夠的力

量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道然而也才能準確將接

放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木以下是針

對這個馬達驅動晶片的應用與原理加以敘述說明這個驅動馬達晶片 (LB1836M)

它是一個低飽和兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT)它

還是一個可工作在低電壓的驅動晶片[19]LB1836M 也是一個兩極(正反轉)馬

達的驅動晶片他可應用於印表機磁碟機照相機等甚至其他可攜帶式的裝

置設備上因為它可以控制步進馬達正反轉且可以自由並精準的停止在正確需

要的位置

這個 LB1836M 馬達驅動晶片擁有著很多的優點例如它是可以平行連

接分別有邏輯電源供給和馬達電源供給還有它有剎車的功能(將馬達強制停止

的功能)它並有內建抑制火花的二極體也就是避免瞬間產生的火花造成馬達的

損害(尤其是當電源啟動時馬達正反轉改變時)如此也可以延長馬達的壽命

甚至它還有內建溫度停機控制電路避免在長時間運作時因溫度過熱而造成晶片

燒毀一般如果沒有溫度停機控制電路驅動晶片在長時間運作下很容易就會

因為溫度過熱而燒毀所以內建有溫度停機控制電路是一個非常棒的優點

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間會由於某些應

用和電路設計的電路振盪而造成錯誤的運作而這些可能的大電流會出現在(1)

當直流 (DC) 馬達啟動時或改變轉向 (順向轉逆向 逆向轉順向) 時的電流會

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 35: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

28

激增(2)當馬達從順向或逆向要剎車停止時或改變轉向 (順向轉逆向 逆向轉

順向) 時也會產生過電流在晶片內部或反之亦然(當馬達從剎車停止要順向或逆

向啟動時)所以切記在電路佈局設計時(1)為了減少電感效應在電源端 (Vs) 與

接地端 (GND) 之間電路中的線路需保持是短且粗的設計(2)記得還要嵌入一

個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND

Pin 腳 7 ) 之間需盡可能安裝在最小的距離空間如此才可以獲得最大的效應作

用)(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上且個別的基板的

接地電位之間的差異是很大的那就必須在 CPU 和 LB1836M 之間的輸入端串連

一個大約 10KΩ 的電阻要特別提醒注意的是 只要所有電壓適用於 VCCVs1

Vs2且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間這樣在每個電壓的準位

相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) 例如 VCC

= 3 VVs1 2 = 2 V IN1 ~ IN4 = 5 V晶片的 Vcont 接腳輸出的基納二極體的

頻寬間隙的電壓是 VZ + VF ( =193V )一般這支接腳是保留不接的狀態(開路)

這個驅動電流 ID 會隨著 Vcont 的電壓改變因為已被基納二極體的頻寬間隙分壓

了它的功能就像是一座橋樑

在使用這個 LB1836M 馬達驅動晶片時必須注意到 (1)兩個接地 (GND) 是

必須被連接的(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必

須被連接到晶片中的接腳 Pin 7 的接地位置還有輸出 OUT 1 和 OUT 3 的 P-GND

是必須被連接到接腳 Pin 14 的接地位置如圖 26 所示

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 36: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

29

此晶片總共有四個可個別程式控制的輸入與輸出所以它可以同時控制四個

馬達運作當把輸入 IN 13 接高電位(Hi)而輸入 IN 24 接低電位 (Low)

另外輸出 OUT 13 接高電位 (Hi)且輸出 OUT 24 接低電位 (Low)此時

就可以控制驅動馬達順向正轉反之如果要控制驅動馬達逆向反轉時就必須

將輸入 IN 13 接低電位 (Low)而輸入 IN 24 接高電位 (Hi)另外輸出 OUT

13 接低電位 (Low)且輸出 OUT 24 接高電位 (Hi)然而若有要讓馬達

作剎車的動作就必須在輸入 IN 13 的接腳接高電位 (Hi)輸入 IN 24 的接

腳也是接高電位 (Hi)而輸出 OUT 13 的接腳接低電位 (Low)輸出 OUT 2

4 的接腳也接低電位 (Low)於是當輸入 IN 13 的接腳處於低電位 (Low)而

輸入 IN 24 的接腳也是處於低電位 (Low)輸出 OUT 13 的接腳與輸出 OUT

24 的接腳是 OFF 狀態時就表示現在是待機狀態馬達還沒有開始運轉

俯視圖

圖 26 馬達驅動晶片俯視圖[19]

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 37: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

30

24 光學編碼器設計

在本研究中即然是自動化設計當然無可避免的也要用到步進馬達而步

進馬達是否能準確的停止在我們需要的適當位置是一大挑戰不過有了光學編碼

器的設計真是為本實驗解決了一大問題光學編碼器是一種角度(角速度)檢測裝

置以光源透過光柵轉盤連結馬達的軸承而得知角度量它將輸入給軸承的位置

角度量利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後得以

控制步進馬達的角度它具有體積小精確度高工作可靠以及輸出數字化等優

點所以非常重要的也要介紹一下它的原理與應用其實它的應用範圍是非常廣

泛的例如數位照相機的鏡頭生產線上的飲料裝瓶CNC 車床的XYZ軸定位

雷射雕刻大型圖稿繪圖機印表機影印機伺服傳動機器人雷達以及軍

事目標測定等需要檢測角度的裝置和設備中

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或

數字量化的檢測器也是一種感測元件用以監視物體的運動狀態或位置光學

編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成一個標準

的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光並

使用光電晶體來接收偵測介於光源與光電晶體之間有一個許多等距光柵的圓形

轉盤通常與馬達的轉軸連接在一起由於圓轉盤上刻有透明與不透明的等距區

段當馬達帶動轉盤轉動時LED 光源就會透過圓轉盤上的柵孔有光與無光斷

斷續續的讓光電晶體偵測動作換句話說圓轉盤是在一定直徑的圓盤上刻有等

距大小相同的若干個長方形的柵孔由於圓轉盤與馬達同軸馬達旋轉時圓轉

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 38: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

31

盤與馬達同速旋轉經過發光二極體與光電晶體等電子元件組成的檢測裝置而

發射光在透過柵孔檢測接收然後輸出若干脈衝信號經過計算後光學編碼器每

秒輸出脈衝的個數就能反映出當前馬達的轉速其原理示意圖如圖 27 所示此

外為了判斷馬達旋轉方向(正反轉)圓轉盤上還刻有兩排相位相差 90 度的 A 與

B 前後的柵孔作為相位差辨識

當圓轉盤上的柵孔與 LED 光源對正時透過的光線強度如果較強即可使

光電晶體進入飽和狀態於是在輸出端即可產生脈波的電性訊號假設圓轉盤中

的柵孔等距排列其透光的部份和不透光的部份應該呈現50 對50 的比例當

圓轉盤轉動時光電晶體端就可以偵測到脈波的訊號偵測到脈波的頻率即是

相對應於圓轉盤的轉動頻率也就是轉速而偵測到脈波的個數即對應於圓轉盤

轉過的柵孔數也就是轉動的相對角度

一般光學編碼器以硬體型態分類的話大致上可分為三種分別為絕對型

增量型與混合型(1)增量型將指示刻度組合後即可獲得正弦脈波輸出同時進

行變位量量測其圓轉盤為等間距的柵孔及基準柵孔每轉一個脈衝(柵孔)都是

用於基準點定位其優點是原理構造簡單易於製造機械平均壽命可在幾萬小時

圖 27 光學編碼器之原理

轉軸

0 t

V(t)

脈波輸出

光電晶體偵測 發光二極體 透明

區段

轉盤

不透明

區段

電壓

時間

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 39: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

32

以上價格便宜零點(原點)可設定任意的角度位置在圓轉盤的柵孔上有著等

距的間隙在檢出間隙亦有相同間隔的間隙兩側配置有光源透鏡光偵測器

元件以檢測信號增量型計數的方式是可在任何點設立原點然後再以數位的方

式表示從該原點算起之位移或角度之變化量因此增量型之編碼器當中切斷電源

訊號時是不能恢復原來的數值的這大概是唯一的缺點吧

(2)絕對型最常見之圓轉盤編碼器就是屬於絕對型它是用數位編碼的方式

來表示從原點為起始的變化位量亦即在刻度尺刻上尺度記號當刻度尺停止移

動後用讀取符號測訂刻度的位置

絕對型編碼器是直接輸出數字量的感測器在它的圓轉盤上的圖形孔有若干

同心孔道每條孔道上由透光和不透光的扇形圖區相間組成相鄰孔道的扇形圖

區數目是雙倍關係圓轉盤上的孔道數就是它的二進制數碼的位數在圓轉盤的

一側是光源另一側對應每一孔道有一光耦合元件當圓轉盤處於不同位置時

各光耦合元件根據受光照與否轉換出相對應的電位訊號形成二進制數這種編

碼器的特點是不要計數電路在轉軸的任意位置都可讀出一個固定的與位置相對

應的數字碼顯然孔道越多分辨率就越高對於一個具有若干個二進制分辨

率的編碼器其圓轉盤必須有若干個孔道目前國內已有 16 位數的絕對型編碼器

產品絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的

線條圖形絕對型編碼器可有若干編碼根據讀出圓轉盤上的訊號編碼檢測出

絕對位置編碼的設計可採用二進制碼循環碼二進制補碼等它的特點是可

以直接讀出角度坐標的絕對值且沒有累積誤差但是分辨率是由二進制的位數來

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 40: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

33

決定的也就是說其精確度取決於位數目前有 10 位14 位等多種絕對型編碼

器之優點是讀取座標值計數不會產生累積誤差高速旋轉時不必考慮光偵測器

及電路之響應時間可靠性高此外因為機械的晃動或振動所造成的不穩現象

開關等承受到的電氣干擾等也不會因而中斷之影響啟動時也不需要調整因

此穩定性也很高而且在高速旋轉下無法讀取訊號時再降低旋轉速度或因

停電等而斷電後再打開電源時仍然可以讀取正確的旋轉角度適合於長距離傳

輸其缺點是無法輸出軸轉動的絕對位置信息還有價格高昂如欲提高解析能

力外徑也須相對的增加變大光偵測器數量也須增加自然成本也就會跟著提

高許多(3)混合型絕對值編碼器它會輸出兩組訊息一組訊息用於檢測磁極位

置帶有絕對訊息的功能另一組則完全同增量型編碼器的輸出訊息

光學編碼器在做雙向的量測時主要是利用它來分辨圓轉盤的正反轉運動

在做法上是利用在受感測端裝上第二組的光電晶體將原來的孔距定義成 360 度

並且讓兩者的排列相位相差成 90 度當圓轉盤轉動時就會造成相位相差 90 度

的兩個脈波訊號其中 A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波且其

相位之超前或落後與正反轉有關當光學編碼器做正轉量測時A 脈波訊號將超

前 B 脈波訊號 90 度如圖 28 所示當光學編碼器做反轉量測時A 脈波訊號將

落後 B 脈波訊號 90 度如圖 29 所示經由上述光學編碼器之偵測編碼後產生出

兩個相位相差 90 度的 A 與 B 兩脈波訊號此訊號將被送入解碼電路中利用計數

電路來計算上下兩個的脈波數使 FPGA 晶片可以得知目前馬達的角度位置來進

行控制器的設計

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 41: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

34

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

轉動速度較慢時 轉動速度較快時

A脈波

B脈波

相位差 90 度

原點 1 間隔360 度

圖 28 光學編碼器做正轉運動時量測訊號

圖 29 光學編碼器做反轉運動時量測訊號

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 42: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

35

第三章 樂高積木分類機器人之軟體架構

31 DE0 實驗版介紹

本研究中最核心的部分就是使用了這塊稱呼為 DE0 的 FPGA 實驗板

[20]有了它的誕生存在本實驗才得以開發順利與研究成功因為它的功能多樣

性與完備性相容性和擴充性都非常高並且可以廉價取得所以本研究就使用

它來取代較昂貴的樂高 NXT 的核心而以較廉價的 DE0 FPGA 實驗板來加以實

現因此一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板但必要的開發工具參考

設計和相關配件均一應俱全相當簡單容易上手非常適合初學者用來學習 FPGA

的邏輯設計與計算機架構[20]DE0 實驗板搭載了 Altera Cyclone III 系列中的

EP3C16F484 FPGA 核心可提供 15408 邏輯單元(Logic Elements) 以及 346 個 IO

接腳內建 56 個 M9K 記憶體區塊隨取記憶體 504K內建 56 個乘法器4 個鎖

相迴路(Phase-Locked Loops)記憶體(SDRAM One 8-Mbyte Single Data Rate

Synchronous Dynamic RAM memory chip)快閃記憶體(4-Mbyte NOR Flash) 支援

Byte (8-bits) 以及 Word (16-bits) 模式SD 記憶卡插槽支援 SPI 以及 SD 1-bit 兩種

SD Card讀取模式內建USB Blaster電路使用於FPAG程式下載或控制使用Altera

EPM240 CPLDAltera 序列配置器 EPCS4 序列 EEPROM按鈕 3 個與滑動開關

10 個人機介面 General User Interfaces10 個綠色 LEDs4 個七段顯示器16x2

LCD 介面(Not include LCD module)Clock 輸入50-MHz 振盪器4-bit 電阻式

數位類比轉換 (DAC)VGA 輸出(15-pin D 型接頭最高可支援 1280x1024 每秒

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 43: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

36

60 幅)序列埠一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS2 埠(若要

同時接滑鼠與鍵盤可使用 PS2 Y Cable 來擴充)兩組 40-pin 擴充槽 72 個 IO 接腳

以及 8 個電源與接地接腳用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin

排線如圖 31 所示此外DE0 實驗板還搭配了豐富的週邊裝置可適用於學校

的教學課程並可足以供給開發研究更複雜的數位系統

因此我們知道這塊 DE0 實驗板它的應用是非常廣泛的而且它的擴充性

十足這也是為什麼它會普遍受到學校實驗室及科技產業先期的開發研究的喜

愛與使用而當要啟動使用這塊 DE0 實驗板時只要經由 USB 接口連接到電腦

將已撰寫編輯好的硬體描述語言 Verilog HDL VHDL 程式載入到 DE0 實驗中的記

憶體 (EEPROM)中即可然後供應電源FPGA 即會自行執行程式就可以得到

七段顯示器(4)

電源輸入

快閃記憶體(4M)

USB 插座 VGA 插座 PS2 接口 SD 插槽

電源開關

ONOFF

Altera EPCS 4

周邊裝置

16x2 LCD 介面

SDRAM (8M)

USB 電路

開啟程式開關

(JTAGAS模式)

滑動開關(10) 發光二極體(10) 按鍵開關(3)

RS-232 介面

50MHz 振盪器

擴充槽(2)

Cyclone III

EP3C16F484

圖 31 Altera DE0 FPGA 實驗板[20]

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 44: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

37

預期的實驗結果當選擇 AS (而非 JTAG 模式) 的模式載入程式時記憶體

(EEPROM) 中的程式是可以被保存著每一次當電源開起時程式就會自動地載

入到 Cyclone III FPGA 晶片執行運作假如選擇 JTAG (而非 AS 模式) 的模式載

入程式時記憶體(EEPROM) 中的程式便會隨著電源的關閉而消失若要使用

時就必須重新由電腦載入程式才可以執行運作最後要介紹的即是本論文研究

中所需應用到的它的擴充介面兩個 40-pin 接腳的擴充用接頭如圖 32 所示

本研究就是應用它與馬達驅動電路板做連接如此才能達到完成使擺放顏色

積木的籃框能順利將顏色積木導入軌道並放下顏色積木並且還有可以讓接放顏

色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木

如此周而復始的重複循環將顏色積木成功分類完成為止藉此達到本研究所預期

的結果

圖 32 擴充槽的 IO 接腳圖[20]

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 45: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

38

32 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品它所提供的 EDA Tool 可提供執行硬體

描述語言 Verilog HDL VHDL 的撰寫編輯模擬合成FPGA 佈局與 Netlist

Download 到 CPLD在執行 Verilog HDL VHDL 的撰寫編輯時Quartus II 模組

編輯器中而建立 Verilog HDL VHDL 的設計在 QuartusII 純文字編輯器中利用

AHDLVerilog HDL 或者 VHDL 硬體描述語言來建立設計撰寫編輯皆可Verilog

HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]它還有

包含 Altera 提供的邏輯功能使用 QuartusII Simulator 工具可模擬任何設計根據

所需的資訊類型可以進行功能模擬以測試設計的邏輯功能是否正確可行也可

以進行時序 (Timing) 的模擬可在最快的元件速率等級上模擬盡可能快的時序條

件實為一套非常實用的硬體描述語言的撰寫編輯工具

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計

[21-23]Verilog HDL 最大的優點是一種非常容易掌握學習的硬體描述語言只

要有 C 語言的撰寫編輯的基礎用 Verilog HDL 語言有更高的優越性及強大的系統

描述能力與規範的設計結構簡潔和靈活的編輯風格使其能用來完成大數字系

統或超大規模數字系統都幾乎全部可以完成設計任務如圖 33 所示

使用 Analysis amp Synthesis 分析工具並合成 Verilog HDL 或 VHDL 設計

Analysis amp Synthesis 包括 Quartus II 整合合成它完全支援 VHDL 和 Verilog HDL

的硬體描述語言並提供控制合成過程的選項在Quartus II軟體中的過濾器 (Fitter)

對設計進行佈局使用由 Analysis amp Synthesis 建立的資料庫將專案的邏輯和時

序要求與元件的可用資源相匹配它將每個邏輯功能分配給最佳邏輯單元位置

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 46: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

39

進行佈線和時序分析並選定相應的互相連接路徑和接腳分配在 Quartus II 使用

工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對

Quartus II 軟體支援的所有 Altera 元件進行編輯或配置可以將 Programmer 與

Altera 編輯的硬體配合使用例如 MasterBlastertrade ByteBlasterMVtrade

ByteBlastertradeII 或 USBBlastertrade 下載纜線將 Netlist 下載至 CPLD 中

33 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人內部包含有 所需要的編輯程式硬體描

述語言 (Verilog HDL)也就是本人所撰寫的程式用來下達指令給自主式樂高積

木分類機器人做所需要完成的動作以成功達成預期的結果其程式流程圖如

圖 34 所示

當開啟電源時首先是主程式會讓系統初始化也就是系統會先自我偵測檢

查從頭到尾全部運作一遍若有任何環節發生問題時系統將自動停止運作

圖 33 Quartus II 應用軟體主畫面[21]

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 47: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

40

若沒有問題則進入待機狀態接下來完成系統初始化的主程式會呼叫馬達控

制程式然後再由馬達控制程式下達指令給步進馬達(1)動作使得步進馬達(1)旋

轉兩圈半後此時因受到樂高積木機構連桿的作用擺放顏色積木的籃框開始上

下搖晃隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固

定位置等待被判讀識別而後放下此時等待放有顏色積木的籃框穩定後接著

安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値開始辨識分

析在隨機被導入軌道中定位等待放下的顏色積木的顏色同時發光二極體 (LED)

也會被啟動 (ON) 點亮做為輔助辨識分析在隨機被導入軌道中定位等待放下的

顏色積木的顏色讀值可以更精確隨後馬上判讀出正確的顏色積木的顏色數值

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式再下達指令

給馬達控制程式運作接續再由馬達控制程式下達指令給步進馬達(2)動作使得

步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木

(在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等

待接收顏色積木等待接收顏色積木的籃框轉盤穩定後再由馬達控制程式下達

指令給步進馬達(1)動作使得步進馬達(1)再旋轉半圈將在隨機被導入軌道中定

位等待放下的顏色積木放下這樣顏色積木便會落入了等待接收顏色積木籃框轉

盤正確的當然相對應(1)的位置中倘若顏色積木沒有被導入軌道中固定位置等

待被判讀識別亦或被導入軌道中的顏色積木沒有被辨識分析成功這表示顏色

積木分類目地沒有完成這個時候主程式會再呼叫馬達程式馬達程式會再下達

指令給步進馬達(1)或(2)動作如此周而復始的反覆運作一直到所有擺放在籃框

中的顏色積木有被導入軌道中固定位置等待被判讀識別亦或被導入軌道中的顏

色積木有被辨識分析成功完成為止而停止運作就以上敘述說明這樣的運作

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 48: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

41

模式會一直被重覆循環直到所有被預先放在籃框中的顏色積木都被導入軌道中

且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止再

關閉電源停止運作

圖 34 分類機器人程式流程圖

顏色感測器讀值

(辨識分析顏色積木)

顏色判讀

(比對數值)

啟動

系統初始化

(主程式)

Delay

(等轉盤穩定)

馬達(1)旋轉兩圈半

(將顏色積木導入軌道中)

馬達(1)旋轉半圈

(放下

被導入軌道中顏色積木)

馬達(2)旋轉到顏色

積木相對應(1)位置

Delay

(等轉盤穩定)

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 49: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

42

接下來對步進馬達在運作時的副程式做進一步更詳盡的解析其程式流程

圖如圖 35 所示當馬達旋轉副程式接收到來至主程式的呼叫後馬達旋轉副程式

會開始做馬達角度值讀取接著開始計算判斷讀取的馬達角度值是否等於預先

設定的角度值如果被讀取的馬達角度值之誤差值大於零時則下達指令給步進

馬達使得步進馬達正轉反之若被讀取的馬達角度值之誤差值小於零時則

下達指令給步進馬達使得步進馬達反轉當然當被讀取的馬達角度值之誤差

值等於零時則下達指令給步進馬達使得步進馬達停止轉動(結束馬達運作)步

進馬達在接收到指令運作時步進馬達旋轉(正轉反轉)速度的快慢或停止則

取決於被讀取的馬達角度值相對於誤差值被讀取的馬達角度值相對於誤差值愈

大則步進馬達旋轉(正轉反轉)的速度就愈快反之被讀取的馬達角度值相對

於誤差值愈小則步進馬達旋轉(正轉反轉)的速度就愈慢如此一直反覆上述

的運作直到步進馬達停止旋轉即表示被讀取的馬達角度值相等於誤差值否

則再一直重複上述動作一直到被讀取的馬達角度值相等於誤差值時步進馬

達才停止運作

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 50: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

43

馬達角度讀取

誤差 gt 0

馬達旋轉副程式

誤差 = 設定角度-

讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 lt 0

Yes No

No

Yes

圖 35 馬達旋轉副程式流程圖

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 51: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

44

另外當步進馬達在運轉時如何得知接收顏色積木的籃框轉盤需要旋轉到

哪一個當然相對應的正確位置等待接收被隨機導入軌道的顏色積木呢 而被隨

機導入軌道的顏色積木何時要被放下呢 這些都是要靠顏色感測器副程式來達

成這個目標做一個顏色辨識判別與讀值分析而判斷完成的其程式流程圖如

圖 36 所示

當電源開啟後感測器元件開始先初始化全部元件歸零重置等待接收由

主程式呼叫而下達的指令亦即馬達程式會回應主程式是否已經有顏色積木隨機

被導入於軌道中了 當接收到由主程式呼叫而下達的指令後表示軌道中已經有

了顏色積木所以首先讀取的是被設定的紅色模式假如接收到讀取的是紅色

模式設定值的正緣訊號時即表示在隨機被導入於軌道中的顏色積木是紅色的積

木否則(即表示 可能是藍色或綠色)返回重新讀取紅色模式設定值的正緣訊

號此時若是讀取到紅色模式設定值的正緣訊號即開始進入計數紅色周期(脈波

頻率)接著自動將紅色周期(脈波頻率)的數值記錄作比對若數值相等則判定

為紅色的積木如此才完成紅色的積木分類若感測器元件不是讀取到紅色模式

的設定值的正緣訊號則重複上述動作倘若在隨機被導入於軌道中的顏色積木

是綠色的積木否則(即表示 可能是藍色或紅色)顏色感測器讀值副程式會進

入綠色模式讀值設定接著判斷綠色訊號讀值是否為正緣訊號是正緣訊號則進

入計數綠色周期再接著將綠色周期數值自動作記錄比對相符合則做放下顏色

積木的動作而接收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位

置等著接收顏色積木假如在隨機被導入於軌道中的顏色積木是藍色的積木否

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 52: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

45

則(即表示 可能是紅色或綠色)顏色感測器讀值副程式會進入藍色模式讀值設

定接著判斷藍色訊號讀值是否為正緣訊號是正緣訊號則進入計數藍色周期

再接著將藍色周期數值自動作記錄比對相符合則做放下顏色積木的動作而接

收顏色積木籃框轉盤也已待命在正確當然相對應顏色積木的位置等著接收顏色積

木就這樣如此重覆動作周而復始的由紅綠和藍色的積木都放下而落入了當

然相對應顏色積木的接收籃框內一直到全部的顏色積木成功的完成分類為止

在此要特別加以說明的是為何皆隻字未提到黃色的顏色積木的分類運作呢 這

是因為本研究設定若非紅色綠色或藍色即為黃色的顏色積木(因為黃色是由

RGB 三原色之中的顏色組合而成的顏色)所以在本研究就應用排除法將之歸類

為黃色的顏色積木再加以重覆上述非紅色綠色和藍色之外的讀值而完成黃

色的顏色積木分類的運作即可

在上一段提到感測元件在初始化後在讀取顏色模式設定時會同時讀取

紅色綠色和藍色模式設定值進而判斷讀取顏色積木的訊號是否符合該顏色的

正緣訊號若沒有符合該顏色的正緣訊號則繼續重新讀取直到讀取該顏色的

正緣訊號為止再接著繼續進入計數該顏色周期(脈波頻率)然後將該顏色周期

(脈波頻率)的數值記錄作比對若數值相等則判定為該顏色積木才算完成該顏色

積木的分類運作如圖 36 所示

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 53: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

46

顏色感測器

讀值副程式

感測器元

件初始化

訊號正緣

Yes

No

No

讀取紅色

模式設定

訊號正緣

計數紅色

周期 結束 計數綠色

周期

綠色數值

記錄

讀取藍色

模式設定

計數藍色

周期

藍色數值

記錄

Yes

紅色數值

記錄

讀取綠色

模式設定

訊號正緣

Yes

No

圖 36 顏色感測器讀值副程式流程圖

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 54: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

47

第四章 實驗結果

以下分解圖為本論文之設計開發的自主式樂高積木分類機器人之研究的實驗

結果之樂高積木的機構與 FPGA 實驗板另外結合了顏色感應器與馬達驅動電路

以及連接排線之連結之實際圖片展示

首先先將樂高科技積木組合成本研究所需的機構形狀一個擺放顏色積木

的籃框(擺放顏色積木的籃框有機構連桿連接到步進馬達(1)它是可以做上下搖擺

的動作)外加一個軌道讓顏色積木可以隨機滑入定位的與一個接收顏色積木的籃

框(接收顏色積木的籃框有機構連桿連接到步進馬達(2)它是有分格且可以做旋轉

的動作)再以齒輪軸承作為傳動兩個個別的擺放與接收顏色積木的籃框再分別

各與一個步進馬達作連結使得它們(放入接收顏色積木的籃框的動作)可以個別

運作來達到顏色積木做顏色分類的效果機構組裝完成後再接著將 FPGA 實驗

板與馬達驅動電路板疊架在一起再用 40-pin 接腳之排線將其連接在一起來運作

還有再來把顏色感測器基板裝置在要將擺放顏色積木籃框中的顏色積木隨機的導

入的軌道上方架設好以便讓顏色感測器把顏色積木做判讀識別再將讀值送給

FPGA 的事前載入撰寫編輯好的 Verilog HDL 程式做比對分析判斷再進行顏色積

木的顏色分類接著再用 6-pin 接腳的連接線與兩個步進馬達(1)與步進馬達(2)做

連結分別使用這個連接線連接到馬達驅動電路板的第一埠(Port 1) 與第二埠(Port

2)最後即可再接著連接顏色感測器基板上的 VDDGNDS3 與 S2S0 與 S1

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 55: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

48

LED 以及供給電壓+5V 的接腳接到馬達驅動電路基板上的 IO 插槽接腳(這些接腳

已經事先被用 40-pin 接腳的排線連接到 FPGA 實驗板做溝通連結了)接著再把

FPGA 實驗板與馬達驅動電路板各別的電源接上如此即完成整個自主式樂高積木

分類機器人的組合 如圖 41 所示

圖 41 實際完成組合照片

然而接收顏色積木的籃框轉盤如何作角度的運轉確認呢以下如圖 42 所示作

說明接收顏色積木的籃框轉盤是以逆時針作旋轉運動的而顏色積木的籃框位

置則依序設定為藍色 (BLUE) 是 0360 度紅色 (RED) 是 90 度黃色 (YELLOW)

是 180 度以及綠色 (GREEN) 是 270 度依此旋轉的運作模式將顏色積木一一的

接收到正確的位置做分類

接收顏色積

木籃框轉盤

放下顏色

積木軌道

馬達驅動

電路板

擺放顏色

積木籃框

FPGA

實驗板

顏色感測

器基板

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 56: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

49

圖 42 接收顏色積木的籃框轉盤角度的運轉說明

接下來就是要展示說明本實驗結果之實際運作的操作與步驟如圖 41 之實際

實驗結果的時序照片在整個架設好的機構中包括連接好的 FPGA 實驗板與馬達

驅動電路板以及顏色感測器基板當然已撰寫編輯好的程式也已被載入到 FPGA

實驗板完畢了接著開始接上兩個+5V 電源整流器(AC110V to DC+5V) 分別給

FPGA 實驗板與馬達驅動電路板的電源接著再把步進馬達(1)與步進馬達(2)側邊

的平口把手(黑色)轉到向上的位置定位(歸於啟始位置)然後打開馬達驅動電路

板電源開關最後打開 FPGA 實驗板的電源開關此時步進馬達(1)會開始運作旋

轉兩圈半之後致使擺放顏色積木的籃框上下搖動此時會有顏色積木隨機的

被導入軌道中固定於此位置讓顏色感測器可以辨識判別顏色積木的顏色接著

傳送訊號呼叫步進馬達(2)開始運作旋轉讓接收顏色積木的籃框轉盤旋轉到當然

GREEN

(270 度)

RED

(90 度)

YELLOW

(180 度)

BLUE

(0 度)

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 57: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

50

相對應的顏色積木的位置固定隨後再送回一個訊號呼叫步進馬達(1)又開始運作

旋轉半圈讓被偵測到經過辨識的顏色積木放下而落入了當然相對應的顏色積

木位置的接收籃框中而成功完成了顏色積木的顏色分類的預期結果如圖 41 之

(a)(b)(c) 所示綠色的顏色積木已落入了當然相對應之顏色積木位置的接收籃

框中

如此周而復始的重覆上述的運作過程接著完成了紅色的顏色積木的接收

圖 41 之(d) 所示又接著重覆上述的運作過程再接收到一個紅色的顏色積木落

入了當然相對應之顏色積木的接收籃框中如圖 41 之 (e) 所示接下來是一個黃

色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖 41 之 (f) 所示

接著又是一個黃色的顏色積木落入了當然相對應之顏色積木的接收籃框中如圖

41 之 (g) 所示再接著接收到了一個藍色的顏色積木落入了當然相對應之顏色積

木的接收籃框的位置如圖 41 之 (h)所示就這樣一直重覆循環運作一直到所

有擺放在籃框中的顏色積木全部被導入軌道中並被偵測辨識完畢且都被放下

而落入了當然相對應之顏色積木的接收籃框正確的位置中為止如此本研究才算

圓滿成功完成樂高積木分類

最後得知本論文的研究設計皆如預期的結果成功的完成以 FPGA 為基礎

之自主式樂高積木分類機器人之設計

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 58: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

51

(a) (b)

(c) (d)

(e) (f)

(g) (h)

圖 43 實際實驗結果時序照片

Gx1 Rx1 Gx1

Gx1Rx2

Gx1

Yx1

Rx2

Rx2

Yx2

Rx2

Gx1

Yx2Bx1

Gx1

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 59: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

52

第五章 結論與未來研究

51 結論

本論文依據研究目的得知以 FPGA 為基礎之自主式樂高積木分類機器人是可

以實現的透過應用樂高科技積木組成的機器人架構在搭配 FPGA 的實驗板

顏色感測器以及使用馬達驅動晶片設計的電路板和兩個步進馬達與光學編碼器

再加入自己撰寫的 Verilog HDL 之硬體描述語言程式使整個架構得以運作最後

用以達到自主式樂高積木分類的功能因為 FPGA 實驗板的普及化延展性高

應用容易與廉價所以本研究才將此實驗板作為基礎核心用以實驗之藉由本研

究我們也可以得知其實 FPGA 實驗板是可以做更多樣及廣泛且深入的研究應用

來實現其他各種的可能性

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 60: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

53

52 未來研究

運用樂高科技積木與顏色感測器結合只是本研究的其中一環我們可以將研

究更深入化與複雜化將其添加其他原素期望延伸出不同的效果以製造出各種

不同功能的機器人譬如我們可將樂高積木任意組合的特性再搭配超音波距離感

測器光源感測器音源感測器以及觸碰感測器等等來改變其功能變數以達研

究者希望實現的目的

由於科技的進步日新月異以及人類的需求也是與日俱增所以不管就農漁

牧工商業藝術交通醫護互動或陪伴等的觀點多樣化與精密度已是不

可或缺的因素造就了機器人研究的蓬勃發展機器人運用的範圍如此廣泛未

來我們可以朝更簡易操作更輕量化以及更多樣化的方向研究發展譬如用於

農漁牧的耕作與收穫定位並捕撈看養和收成用於工商業的製造與生產安

全和清潔用於藝術的表演與模仿用於交通的導航與摯動用於醫護的手術與

看護用於互動的教學與遊戲用於陪伴的療癒系寵物等等反觀沒有機器人的

年代我們無法工作於高溫酷寒真空缺氧高壓等危及人類生命安全的極

端危險環境中至今可以輕而易舉的辦到又好比近年來發展出信賴度甚高的防

爆機器人代替人類解除引爆可能的爆裂物避免人類本身造成傷亡於此

可以預測未來機器人的研究將會朝向有「互動」與「陪伴」兩大主軸的功能發展

所以研究必須向著這個目標邁進精進技術並且創新研發更多未來的可能性

來創造人類最大的幸福共勉之

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 61: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

54

參考文獻

[1] httpcnncnnctuedutwIMLabctrl_tech

[2] httpwwwroboatorgtw

[3] httpwwwrstorgtw

[4] httpwwwmoigovtwstatindexaspx

[5] httpworldhondacomASIMO

[6] httpwwwtoyotacojpenspecialrobot

[7] httpwwwsonynetSonyInfoNewsPress_Archive20031203-060E

[8] httpsupportsony-europecomaiboindexasp

[9] httpwwwugobecompleoindexhtml

[10] httptwmsicomhtmlpopuprobottgr_w1indexhtml

[11] httpupitorpmcorgtw

[12] http1401121470tchotnewshtm

[13] httpiralabeentuedutwrcluo

[14] httpwwwlegocomen-USdefaultaspx

[15] httpwwwalteracom

[16] 廖裕評和陸瑞強系統晶片設計-使用 Nios Ⅱ全華圖書2006

[17] 莊慧仁FPGACPLD 數位電路設計入門與實務應用-使用 Quartus II全華圖

書2006

[18] httpwwwtaosinccomproductdetailaspxproduct=3

[19] httpsemiconsanyocomensearchpropertyphpclcd=29ampprod=LB1836M

[20] httpwwwterasiccomtwtw

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008

Page 62: Design of an FPGA-Based Automotive Robot for the LEGO ...chur.chu.edu.tw/bitstream/987654321/2741/1/GE097010110.pdf · 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係

55

[21] 鄭信源Verilog 硬體描述語言數位電路-設計實務儒林圖書2007

[22] 林灶生Verilog FPGA 晶片設計全華圖書2008

[23] 林灶生和劉紹漢Verilog 驅動晶片設計實務全華圖書2008