• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
62
0
0

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

全文

(1)

中 華 大 學 碩 士 論 文

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

Design of an FPGA-Based Automotive Robot for the LEGO Brick Classifier

系 所 別:電機工程學系碩士班 學號姓名:E09701011 廖清桂 指導教授:許 駿 飛 博士

中華民國 九十九 年 七 月

(2)

摘要

機器人產業是結合機械、自動化、電機、電子、資訊軟體、通訊及創意內容 等相關技術,為一高度技術整合且高附加價值的明星產業,近年來已經陸續有許 多的服務性機器人被開發出來,應用於導覽、伴侶、娛樂、互動等方面。這些服 務型機器人與人們在日常生活中互動頻繁,可預期的是機器人也即將進入家庭環 境成為一般民眾生活的一部分,其中自主式機器人便佔有舉足輕重之地位。在本 論文中研製一部用 FPGA 為基礎之自主式樂高積木分類機器人,其架構包含了樂 高積木機構、兩組直流馬達與顏色感測器與軟體模組等等,其中樂高積木機構用 來實現所需之機械架構,直流馬達為動力來源提供該機器人產生所需之動作,顏 色感測器由一單體鏡頭、色感晶片與兩個白色 LED 組成,用來辨識積木顏色資 訊。最後,利用 Verilog HDL 硬體描述語言撰寫所需之控制程式,經由實際的實 驗結果可得知本論文所提出之以 FPGA 為基礎之自主式樂高積木分類機器人可 以達到預期目標。

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

(3)

ABSTRACT

Robot industry is combined with mechanism, automation, electric machinery, electronic, information software, communications and originality contents relative technology…etc. 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 robot’s 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.

Keywords:FPGA, robot, LEGO brick classifier, color identification

(4)

目錄

摘要 ………....……….. ⅰ

ABSTRACT ………..………. ⅱ 目錄 ……….……….. ⅲ 圖目錄 ……….………….. ⅴ

第一章 緒論 ………...……….. 1

1.1. 前言 …..………..………..………. 1

1.2. 樂高機器人介紹 ………..………. 8

1.3. FPGA 介紹 ...………..……… 12

1.4. 研究目的 ………..……….. 15

1.5. 章節安排 ……… ….. 16

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

2.1. 系統架構 ………..………. 18

2.2. TCS230-DB 顏色感測器介紹 ………. 20

2.3. LB1836M 馬達驅動晶片介紹 ………. 27

2.4. 光學編碼器設計 ………. 30

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

3.1. DE0 實驗版介紹 ……… 35

(5)

3.2. 硬體描述語言 (Verilog HDL/VHDL) 介紹 ……….……….………… 38

3.3. 分類機器人程式流程圖 ……… 39

第四章 實驗結果 ……….……….. 47

第五章 結論與未來研究 ……….……….. 52

5.1. 結論 ……… 52

5.2. 未來研究 ……… 53

參考文獻 ……….……….. 54

(6)

圖目錄

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

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

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

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

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

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

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

圖1.9 教育用 LEGO Mindstorms NXT[14] ... 9 

圖2.1 硬體系統架構 ... 18 

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

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

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

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

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

圖2.7 光學編碼器之原理 ... 31 

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

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

圖3.1 Altera DE0 FPGA 實驗板[20] ... 36 

(7)

圖3.2 擴充槽的 I/O 接腳圖[20] ... 37 

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

圖3.4 分類機器人程式流程圖 ... 41 

圖3.5 馬達旋轉副程式流程圖 ... 43 

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

圖4.1 實際完成組合照片 ... 48 

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

圖4.3 實際實驗結果時序照片 ... 51 

(8)

第一章 緒論 1.1. 前言

在現今講求自動化、電腦化、機器化、智慧化的時代裡,自動化機器設備的 應用與輔助都已經相當普遍受到重視,原因是自動化設備的應用可以減少人們所 需付出的勞動力,因此不但可以增加產量,並且可以從事一些危險性的工作[1-3]。

機器人產業與技術也已是世界歐美各先進國家都已列為前瞻優先發展的新科技產 業,亞洲的日本已將機器人列為新產業創造戰略七大領域之一,韓國也列為十大 新世代成長動力產業之一,並投入大量資金與人力積極發展。機器人可分為工商 產業用機器人、保全用機器人、服務娛樂型機器人、醫療照護機器人、國防安全 用機器人、運動休閒益智機器人等幾大類。機器人的關鍵技術涵蓋機械結構設計、

馬達設計與控制、即時影像/語音處理、感測電路設計與實現、嵌入式系統軟硬體 設計、微處理器應用與 IC 設計、智慧型控制技術、機電整合等等的專業知識,

是一個需要系統整合才能有效發展的研究領域。甚至近代更有人積極的研發模糊 控制,想要加入給機器人,使其互動更趨近於擬人類。繼美學經濟之後,台灣開 始出現「第四級幸福產業」,其目的主要讓消費者有幸福感、親密感、滿足感、被 關懷感,並進而找到歸屬感的產業。為排解心靈空虛、尋求慰藉,寵物市場規模 逐漸擴大;然而有部分族群因受限於居住環境或其他個人因素而無法飼養真實寵 物。所以應運而生的電子寵物因兼具寵物部分功能,如陪伴、撫慰等,又不像真

(9)

實寵物需花費太多精神照顧,因此成為目前最流行的科技玩具;甚至其扮演的已 不只是玩具的角色,而是進一步強調「陪伴」與「互動」的作用,建立友伴關係 已為電子寵物之設計趨勢;如此,互動式機器人的開發更被寄予厚望。尤其歷經 台灣光復後這六十幾年的台灣社會發展,過去和現在的生活型態的變化非常劇 烈,臺灣社會從以農業為主的被殖民社會,轉變成為以工商業為主的社會;人民 的生活水準提高,各項物質生活品質也跟著提升,對於精神生活的重視和需求也 與日俱增。台灣也在 2005年行政院產業科技發展策略會議中,將「智慧型機器人」

列入發展議題。因此得知,機器人在未來將扮演著舉足輕重的角色與地位;甚至 可能成為家庭必備的日常用品之一,像是現在的電視、冰箱或車子等。

目前智慧型機器人產業已是全球矚目的焦點之一,世界先進各國也不斷針對 機器人產業進行各種相關資訊的蒐集與研發,並提出各種的預測數據,做為未來 可行性的評估與參考。而目前的智慧型機器人產業大多集中於保全、清潔、娛樂、

互動和陪伴等上面的應用與開發,未來可以結合更多不同領域的發展與創新。我 國對於機器人產業的研究發展,目前尚屬起步階段,根據經濟部的資料顯示,目 前的智慧型機器人大多於「行政院2005 年產業科技策略會議」中才作出決定,將 智慧型機器人產業發展目標分為三個階段。第Ⅰ階段:期間由西元 2005 至 2008 年,預估產值將達到新台幣 300 億元;第Ⅱ階段:期間由西元 2009 至 2013 年,

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

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

(10)

業該如何積極投入更多更專業的人力與物力在機器人研發上面,致力配合國家政 策,進而達到共同的目標,以造福全人類。由此可知,未來要是誰能發展出擬人 化機器人,誰就能取得領導的地位。

由於電子資訊與通訊科技的進步,近年來已經陸續有許多的服務性機器人被 開發出來,應用於陪伴、導覽、娛樂、清潔、醫療、教學與輔助等方面。這些服 務型的機器人與人們在日常生活中互動頻繁,因此在人機互動的設計上需要更加 的安全、友善並且容易操作;甚至可以用語言互動溝通,使其更趨於人性化。人 機互動的技術,著重於設計開發各種機器人與使用者之間的介面與溝通、硬體及 軟體。根據聯合國歐洲經濟委員會(UNECE)最新報告顯示,隨著科技的進步和 價格的下跌,可能很快在不久的將來即可看到機器人替代人工做許多家事,譬如 自割草、打掃到清潔窗戶、地板等;像吸塵器和除草機都無需人工手動操作,以 程式輸入即可自行工作。

以下分別就國內外相關的研究舉例說明,在國外研究單位之相關成果,以亞 洲鄰近國家為例,日本 HONDA 與 TOYOTA 兩大車廠除了在汽車工業上的競爭 外,在機器人研發領域也較勁個不停。較早推出的 HONDA「ASIMO」機器人,

如圖 1.1 之左圖所示,目前擁有可跑步 6KM/H 的性能機器人,他們持續在提升 腳部的行動力。後起之秀的 TOYOTA「PARTNER ROBOT」機器人則專攻樂器演 奏等手部的動作,上一代可吹奏喇叭機器人,最近推展出的最新機型會拉小提琴 機器人,分別如圖 1.1 之中間圖和右圖所示。

(11)

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

然而,不落人後的日本SONY 公司也開發出一種整合動作控制技術,它能夠 使其擬人化的機器人 QRIO 將一般的行走動作與新的跑跳動作平穩地結合在一 起,如圖1.2 所示。QRIO 不僅可以跳舞、唱歌、踢足球,更可以經過感測器後判 斷地面的類型,並進而即時反應調整相對應的姿勢和步行的姿態,來適應各種環 境的變化。QRIO 還有更引人入勝的地方,那就是能夠與人們進行很多豐富的互動 與交流溝通。

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

AIBO 是日本 SONY 新力公司於 1999 年首次推出的電子機器寵物,目前已研 發推展到第五代,如圖1.3 所示。AIBO 的出現不僅代表了一具機器寵物的誕生,

(12)

更重要的是 AIBO 結合了人工智慧的科技,朝著提供生活娛樂的方向發展,將來 在陪伴與醫療方面會有莫大的貢獻。在 AIBO 的體內,有一片極小的晶片,就是 它賦予機器狗智慧,使它會像真狗一樣做出各種有趣的動作,並與主人互動進而 達到陪伴的效果;同時也設定了它的成長過程,主人要是和它相處久了,它會記 得你的聲音、你的動作,還有你的容貌。這也就是仿真狗的誕生。

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

另外,在國內研究單位之相關成果,近年來機器人領域的發展一日千里,有 許多新的突破;例如:機器人的行走能力已經由靜態平衡延伸到動態平衡的研究,

機器人走入人群似乎已經指日可待。研究機器人近30 年的台大終身特聘教授羅仁 權直言:「別等機器人發展到成熟期才踏入,那只會跟上衰敗期!」。羅教授更指 出,台灣技術雖與日、韓並駕齊驅,但此產業卻相差韓國 4~5 年,相差日本更是 遙遠。歐、美、日、韓政府每年都投入超過20 億台幣以上,但台灣每年卻投入不 到 4 億台幣在機器人研發上,如果政府都沒有決心,怎麼帶動此產業前進推展?

真是讓人憂心忡忡。

(13)

它是全球第一款具有喜怒哀樂等擬人化情緒的電子寵物,內建感應器可與人互動 且模樣可愛。只要主人回到家,PLEO 會對主人搖頭擺尾,順著小恐龍的頭部撫摸 時,它會高興的搖起尾巴,會打噴嚏、打哈欠;搔它的背部時,它還會一百八十 度回過頭來,看是誰在跟它玩。

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

微星科技「雙輪式智慧型影音互動導覽機器人」TGR-W1 機器人,TGR-W1 是以雙輪方式行進,內建紅外線與超音波偵測系統,能精確地偵測出行進路徑中 的障礙物位置,並自主性地避開,使用者無須再給予任何指示,且當機器人偵測 到周圍環境較狹窄時,會主動降低移動速度,以確保自身及旁人的安全,如圖1.5 所示。

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

(14)

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

是全台灣第一也是目前唯一,可以廣泛應用在商業活動的導覽機器人,如圖1.6 所 示,整合了MP3 多媒體功能、數位相框功能,除了兼具高音質的音樂播放功能,

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

並正式進入「國立台灣美術館」為群眾導覽藝術作品。另外,「UPITOR-S」是一 台 17 公分高的娛樂型音樂機器人,它不但具備了與前者有一模一樣基本的功能 外。使用者還可以於機器人頭部直接操作所有選單,還可利用遙控器或語音來操 控它。機器人會隨著旋律產生相對應之舞蹈動作,為欣賞音樂帶來全新的體驗和 樂趣。

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

台灣大學在黃漢邦教授帶領下成功研發全自動智慧型導覽機器人「小美」,如 圖1.7 所示,先是自動辨識人臉、判斷觀眾所在位置,接著自動偵測路線,清楚帶 領觀眾逐一導覽台大校史館館藏,還會表現「好開心」、「好生氣」等八種表情與 情緒音調。

(15)

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

中正大學羅仁權教授的研究團隊所研發設計的「室內多功能服務智慧型機器 人」,如圖1.8 所示,機器人設計以居家和企業保全為用途,以多重感測理論為基 礎,機械手臂可以端茶水、攙扶老人,並具備有比對資料庫的五官擷取影像建檔,

作以辨識入侵者的功能。

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

1.2. 樂高機器人介紹

丹麥樂高 (LEGO) 於 2006 年 9 月推出樂高公司和美國麻省理工學院共同開 發出的LEGO 機器人套件之新款教育用的 “LEGO Mindstorms NXT”。Mindstorms 是由配備微處理器的 LEGO 公司的塑料積木組裝起來,再透過個人電腦編輯的程

(16)

式軟體製作的程序控制的機器人。其最大的優點就是只要有一組機器人套件,你 就可以自由發揮自己天馬行空與浩瀚無垠的想像,也就能輕鬆地做出有趣、好玩 的組合作品。以下就是針對樂高機器人 (LEGO NXT) 的主架構核心和主要被動元 件所做的簡介與舉例,如圖 1.9 所示。NXT 是個組裝玩具套件,它可以組裝成機 器人、汽車、怪獸、各種機器與動物等;它還有應用電子的模組:如核心NXT (類 似中央處理器)、觸碰感應器、音源感應器、光源感應器、超音波距離感測器以及 NXT 軟體等;它還可以使用藍芽遙控。如圖 1.9 所示,中間是 NXT 所使用的是中 央控制器積木,周邊的電子元件由左上角那個長的像雞腿的零件開始,順時針依 序是步進馬達、步進馬達、步進馬達、超音波距離感測器、光源感測器、音源感 應器以及觸碰感應器。

圖1.9  教育用 LEGO Mindstorms NXT[14] 

中央控制器積木就跟另一 RCX 那一大塊黃色的積木功能是一樣的,程式設 計師將寫好的程式灌入到此中央控制器積木,然後再由該中央控制器積木去控制 與他連結的I/O 電子元件去執行程式。步進馬達可以說是 NXT 的主要輸出元件,

步進馬達

步進馬達

步進馬達

超音波距離感測器 光源感測器

音源感應器 觸碰感應器

(17)

機器人需要運動的部分就必須要交給馬達去執行;NXT 除了這個輸出方式外,還 可以藉由中央控制器積木的螢幕和喇叭來輸出,所以你也可以編寫一首簡單的歌 曲交給NXT 來播放。NXT 用的步進馬達是高扭力的,與另一 RCX 主機所使用的 高馬力馬達是不同的;裝上步進馬達以後,樂高機器人就可以自由移動或執行某 個動作。因為 NXT 步進馬達內建有「角度感應器」,也就是俗稱的光學編碼器,

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

達順時針旋轉30 度,或是逆時針旋轉 5 圈,再讓 B馬達或C 馬達逆時針旋轉100 度,或是順時針旋轉2.5 圈等自由的控制。

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

然後再接收由自己發射出去碰到物體反射回來的超音波,得到兩者之間所需的時 間來計算與物體的距離;NXT 超音波感測器酷似人類的眼睛,可以偵測距離的遠 近(有效範圍約255 公分),其測量單位為英吋(inch)或公分(cm),可惜超音波距

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

光源感測器:有兩種模式,一種是由自己發射出光波,然後測量反射回來的 光波;另一種是接收來自外界的紅外線,這感測器可以在NXT 的程式編譯環境下 控制並作校正,所以只要在需要的場地預先校正完畢,就不用在現場時還需要重 新測量特定區域的光源;此種感測器可以偵測反射物體的明暗度。顏色較暗淡的 物體,光源感測器的回傳值較低;顏色較明亮的物體,光源感測器的回傳值較高。

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

(18)

軌跡車如何前進。

音源感應器: 簡單來說,就是收音器,接收來自外界的聲音;音源感應器可 以偵測機器人周遭的聲音大小,其測量單位可以為分貝(dB)或調整分貝(dBA)。

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

觸碰感應器:可以偵測該感應器是被壓住、鬆開或按一下;當觸碰感應器被 壓下時,回傳值為1;未按下的回傳值為 0。此類型感應器可以做為機械模型的啟 動/停止開關。舉例來說,在機械手臂前端可利用觸碰感應器偵測是否碰觸到物 品;如果有,則將它抓起來。

軟體方面也是以舊版的程式編輯軟體再做提升,一方面是配合一些新的硬體 功能,一方面也盡量將整體的圖像編輯變得更漂亮,操作更簡單、人性化,還有 豐富的教學系統;此外,還加入了許多支援系統,例如線上更新,可直接連結到 官網下載新的元件。這次除了透過 USB 來下載程式到 NXT 主機上面,還支援了 藍芽無線傳輸功能,可以透過電腦上的藍芽收發器來將程式直接下載到NXT 主機 上;也因此,還可以透過手機就可以接收或發送訊息給NXT 主機或者發展成透過 手機來遙控樂高機器人等等。如果肯花時間學,樂高在軟體上提供了一個很好學 習和編輯的環境!! NXT 真的是一套很棒的寓教於樂的樂高商品,想寫寫簡單的程 式也可以玩得很開心。如果想寫很複雜的程式搭配複雜的機械結構,也絕對可以 透過NXT 來實現的。

(19)

1.3. FPGA 介紹

目前來說特殊應用的積體電路ASIC(Application-specific integrated circuit)依 然是市場上產品的主流,它是指依特定用途而設計的特殊規格 IC,它相當省電且 特別適用於具有特殊需求的應用中,但ASIC 不能重新設置,故其功能在產品開發 過程中無法任意修正或改善;因此任何線路或功能的改變都必須重新設計與製 造,如此不僅使得開發成本增加,甚至會影響產品的上市時間。目前ASIC 雖仍主 宰了主流的高效能晶片設計,但是隨著 FPGA 架構的演進,其可自訂的功能架構 將可以滿足更多設計上的需求,這對於只能進行固定功能的ASIC 晶片而言,FPGA 晶片將具有相當大的競爭優勢[15-17]。

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

但這只是其中的冰山一角而已,經市場調查數據統計來估算的話,生產一顆ASIC 總成本估計達2,500 萬美元,其中有大半成本主要來自驗證工具。但遺憾的是,現 今還是有大量的ASIC 設計要面臨重做的命運。無論客戶是需要 10 顆測試用晶片,

或是量產100 萬顆晶片,100 萬美元的光罩費用都無法避免。因此若非是 100 萬顆 以上的量產計畫,晶片設計業者通常不願意投資時間與金錢來開發ASIC;因為對 他們而言,重要的是減少產品量產失敗之風險與縮短產品開發上市之時間,畢竟 在這個產業裡「時間就是金錢」。在應用方面來說,FPGA 工作速度雖然比 ASIC 來得慢,且功耗方面也較ASIC 來得高;但在整體設計上 FPGA 較 ASIC 來的精簡。

FPGA 主要優點在於可以快速的完成成品,所以 ASIC 在初期開發時往往採用 FPGA 來做初步的設計,直到完成整個設計與驗證的過程之後再將之轉移到ASIC 上,為 的就是縮短ASIC進行驗證時的時間與避免金額高昂的光罩費用。

(20)

簡而言之,FPGA (Field Programmable Gate Array) 即為可再程式化的晶片。透 過預先建立的邏輯區塊與可程式化路由資源,不需要更改麵包板或焊錫焊接的部 分,即可設定這些晶片以建置客制化的硬體功能。FPGA 整合了 ASIC 與處理器 架構系統的最佳部分,使 FPGA 晶片可應用於所有產業。FPGA 具有硬體時脈的 速度與可靠性,且其僅需要少數量即可進行製造生產;如此便可降低比客制化 ASIC 設計的昂貴費用少得很多。可重新程式化設計的晶片,具有與軟體相同的彈 性,卻又不受限於處理核心的數量。與處理器不同的是,FPGA 為實際的平行架 構,因此不同的處理作業並不會佔用相同的資源。每個獨立的處理作業均將指派 至專屬的晶片區塊,不會影響其他邏輯區塊即可自動產生功能。因此,當新增其 他處理作業時,應用某部分的效能亦不會受到影響。

針對上市時間而言,FPGA 技術具有彈性與快速原型 (prototype) 製作的功 能。使用者不需進行客制化 ASIC 設計的冗長建構過程,即可於硬體中測試或驗 證某個概念。並僅需數個小時即可建置其他變更作業,或替換 FPGA 設計。現成 的硬體 (COTS)亦可搭配使用不同種類的 I/O,並連接至使用者設定的 FPGA 晶 片。高階軟體工具正不斷提升其適用性,縮短了抽象層 (Layer of abstraction) 的學 習時間,並針對進階控制與訊號處理使用預先建立的函式 (IP cores)。

客制化 ASIC 設計的非重置研發一次性工程費用 (NRE),遠遠超過 FPGA 架構硬體解決方案的費用。ASIC 的大型初始投資,可認列於 OEM 每年所出貨 的數千組晶片,但是許多末端使用者更需要客制化硬體功能,以用於開發過程中 的數百組系統。所以可程式化晶片的特性,即代表低成本的架構作業,或冗長的 前置組裝作業時間。由於系統需求隨時在變化,因此若與 ASIC 的龐大修改費用 相較,FPGA 設計的成本實在微不足道。

(21)

網路產品、通訊設備以及工業系統等等,都已經普遍採用 FPGA 做為前期研 發測試與驗證的選擇,FPGA 晶片它是可程式化之邏輯閘陣列元件,由於這種類型 的晶片在實際應用時具有高度的靈活性,同時在佈局時可以輕易的完成重新設 置;故可以輕易的結合各種應用,是一個可供使用者程式化的邏輯元件。因此近 年來 FPGA 已成為上述各種電子相關產品所不可或缺的基本元件,而且利用硬體 描述語言 (Verilog HDL / VHDL) 所完成的電路設計,就可以經由開發工具做簡單 的結合與電路佈局,使之快速的燒錄至 FPGA 晶片上進行測試,故是現代 IC 設 計做為測試與驗證的技術主流[15]。

現今 FPGA 正朝向高密度的方向發展,除了有助於系統的縮小,同時也能提 高產品的穩定性,除了能夠大幅縮減設計開發的工作週期之外,同時也能有效的 提升其設計效率。另外在整體架構方面,除了 FPGA 原本具備的可程式化邏輯閘 之外,FPGA 架構也不斷地朝向整合更多的內建專用電路,由於在功能輸入方面全 面採用標準的硬體描述語言 (Verilog HDL / VHDL),因此當使用FPGA 來進行專 案設計研發時,可以完全不用管實作時硬體邏輯閘的處理,因為晶片開發商所提 供的工具已為使用者進行了眾多的處理程序囉,所以硬體設計者將可以更專心於 進行功能描述方面的設計工作。今後,在任何功能複雜或性能多樣的研發設計中,

或完成原型成品前的前置作業,我們不但可以加以選擇應用這個成本低廉、功能 多樣、信賴性高且可程式化重新設置的 FPGA 作為開發設計使用,他還擁有高延 展性且可自由擴充的搭配結合與研發設計者的電路基板應用外,以及外加容易學 習撰寫的硬體描述語言 (Verilog HDL / VHDL) 即可測試與驗證並實現結果。然而 更可將其當作是初步的構思,並延伸發揮創新未來的研究,開發實現無限的可能。

(22)

1.4. 研究目的

由於現在的經濟型態已進入全球化的活動經濟時代,使得人與人之間的互動 更加的頻繁與密切,進而使得人際關係更加的忙碌與複雜;在加上社會型態的極 速變化,使得人們的生活日趨緊張與倍感壓力,進而造成「少子化」與「年老化」

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

寄託感、滿足感、被關懷感,進而找到歸屬感的使命,也為排解心靈空虛與尋求 慰藉;甚至還會有部分族群因受限於居住環境或其他個人因素而無法飼養寵物;

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

因此,這個使命儼然成為當前最重要的課題之一,甚至其扮演的已不僅是玩具的 角色而已,而是進階的強調「陪伴、撫慰」與「互動、娛樂」的作用,建立友伴 關係之機器人已成為設計趨勢了。如此,自主式與互動式之陪伴機器人的被開發 就更被寄予厚望呢。

根據統計台灣三大都會區的寂寞人口已高達 107 萬,社會的生活型態也已趨 向「單身化」與「老人化」,再加上快節奏的都市生活步調、緊張的社會關係,使 得生活的感受產生更多壓力,「寂寞」因而變成為都市男女的共同感傷;還有「奉 養」也變成為都市男女的集體負擔。所以機器人具備智慧、互動、陪伴與情感的 科技特性,其整合應用語音辨識、影像辨識、語意分析、學習成長智能、情緒建 模、情意認知互動與感知計算等技術,再配合知覺或環境感測器(視覺、聽覺、觸 覺、嗅覺、光源、溫度、距離、壓力、速度、紅外線、超音波等),並具備聲音、

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

(23)

與知識代理等關係。基於這樣的目地,本研究提出了一自主式樂高積木分類機器 人,它可以隨時陪伴人們玩耍,來達到娛樂的效果;同時還兼具了自主辨識顏色 積木分類的功能。

為了減低研發成本,所以本研究採用由樂高公司所開發之NXT 中的科技積木 組合而成所需之機構件,再搭配顏色感測器來製作一顏色積木分類機器人,藉由 顏色感測器讀取輸出之色度,經由程式比對判斷來辨別出顏色積木之顏色,再由 直流步進馬達轉動籃框轉盤,使得各種不同顏色之積木放入各自不同的當然相對 應的位置,以達到顏色積木分類之目地。

1.5. 章節安排

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

第一章為緒論,先概要敘述一下現在我國與亞洲鄰近國家韓國、日本以及歐 美國家對機器人的研究與發展,接著對樂高機器人、FPGA 作一下介紹,再接續著 說明研究的目的。

第二章為樂高積木分類機器人之硬體架構,系統架構說明,TSC230-DB 顏色 感測器介紹,LB1836M 馬達驅動晶片介紹,光學編碼器原理說明。

第三章為樂高積木分類機器人之軟體架構,DE0 實驗版介紹,硬體描述語言 (Verilog HDL/VHDL) 介紹,分類機器人程式流程圖。

(24)

第四章為實驗結果,用科技樂高積木組合成的機器人加兩個步進馬達與FPGA 實驗板、馬達驅動電路板以及本人撰寫的程式成功完成的實驗結果。

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

(25)

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

圖2.1  硬體系統架構  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

馬達程式(2) M Altera FPGA Chip

Cyclone III EP3C16F484C

R G B

(26)

本論文研究之自主式樂高積木分類機器人,其基本的硬體系統架構,如圖2.1 所示。除了科技樂高積木的機構外,還包含了Althera 的 DE0 實驗板(內含 FPGA 晶片)、馬達驅動電路板(內含 LB1836M 晶片) 以及顏色感測器基板(TCS230-DB) 和樂高NXT 套件中的兩顆步進馬達;其中 Althera 的 DE0 實驗板內,又含有分類 積木控制序向電路以及被載入的主要編輯程式和編碼控制馬達副程式,另外再搭 配了一個顏色感測器基板和驅動電路板的介面副程式;再接著連結光學編碼驅動 電路、步進馬達驅動電路和光感測器驅動電路,如此才算完成了自主式樂高積木 分類機器人之完整硬體系統架構。

接續闡述整個自主式樂高積木分類機器人之硬體架構運作說明。首先,將步 進馬達歸定位,再開啟電源;此時預先撰寫好的 Verilog HDL / VHDL 程式已經 由電腦被載入 FPGA 內而開始初始化將所有元件重置,並開始運轉動作。第一個 動作是分類積木控制序向電路開始運作,送一個訊號給馬達程式(1)去運作馬達驅 動電路(1)讓步進馬達(1)動作兩圈半;此時,由於擺放顏色積木的籃框受到機構連 動的關係而上下搖擺;之後,在擺動中應該會有顏色積木隨機的滑入了積木機構 軌道中,接續著是顏色感測器與 SPI 介面程式運作,把隨機落入積木機構軌道中 的顏色積木,開始做顏色辨識分析(此時,在顏色感測器旁的兩個白色 LED 也會 亮起輔助讓顏色感應器的辨識分析,更加清晰且容易而準確),待顏色辨識完成 後;再接著傳送一個訊號給馬達程式(2)去運作馬達驅動電路(2)讓步進馬達(2)動作 接收籃框轉盤旋轉,旋轉到當然相對應的相同顏色積木要擺放的位置固定做停止

(27)

等待;然後,再傳送一個訊號給馬達程式(1)去運作馬達驅動電路(1)讓步進馬達(1) 再動作半圈,將已在積木機構軌道中被偵測辨識完畢的顏色積木放下,而落入了 當然相對應的相同顏色積木接收籃框中。就這樣,完成了一個顏色積木分類的完 整流程。如此,周而復始一直重覆循環以上的程序,直到預先擺放在籃框中的紅 色、綠色、藍色和黃色等所有的顏色積木一一辨識分類完成後放下,完全落入了 當然相對應的正確相同顏色積木的籃框中為止。

2.2. TCS230-DB 顏色感測器介紹

隨著現代工業生產邁向高速化、自動化方向的發展,生產過程中長久以來一 直由人眼來主導顏色辨識的工作,現在與未來將越來越多的被類似的或類似人眼 的顏色感測器所取代。例如:傳統生產線上,對產品的種類或顏色進行分類,如 此便能夠大大的提高了生產與管理和識別與統計等工作;還有在科技業上,對產 品外殼的顏色或零件的包裝來做辨識是否瑕疵或完整等等諸如此類的應用。目前 此顏色感測器通常是在獨立的光電二極體上覆蓋一個經過修正的紅、綠、藍的濾 光片,然後對輸出信號進行相對應的處理,才能將顏色信號識別出來;有的將兩 者集合起來,但是輸出類比信號,需要一個類比/數位 (A/D) 的轉換電路進行採 樣,對該信號進一步處理,才能進行識別,增加了電路的複雜性,並且存在有較 大的識別誤差,進而影響了識別的效果與結果。

本研究所使用的顏色感測器是由美國 TAOS (Texas Advanced Optoelectronic Solutions) 最新推出的顏色感測器 TCS230-DB [18],它是一個可編輯程式控制的彩

(28)

色光到頻率的轉換器。它把配置的矽光電二極體與電流頻率轉換器集成在一個單 一的CMOS 電路上,同時在單一晶片上還集成了紅(R)、綠(G)、藍(B) 三種顏色的 濾光器,是業界第一個有數位相容介面的 RGB 彩色的顏色感測器。TCS230 的輸 出信號是數位化,可以驅動標準的TTL 或 CMOS 元件之邏輯輸入,因此可以直接 與微處理器或其他邏輯電路相連接。由於輸出的是數位化,並且能夠實現每個彩 色通道 10 位元以上的轉換精度,因而不再需要類比/數位 (A/D) 的轉換電路,使 電路變得更簡單。它不僅能夠實現顏色的識別與檢測,與以前的顏色感測器相比,

還具有更多優良的新特性。該顏色感測器具有高解析度、可編輯程式控制的顏色 選擇與輸出目標的距離設定,還有單一電源供給等特點。本研究最主要就是應用 它來做為顏色積木的檢視並辨識,進而自動加以顏色分類,來達到本研究所需求 的結果。

以下是它的原理和應用,這個顏色感測器 TCS230-DB (如圖 2.2 所示) 是由一 個基板 (TCS230-DB) 所構成,其上有一顏色感測器晶片(TAOS TCS230)、一個可 變焦距的鏡頭和兩個可電流調整的白色 LED,因此便可以發揮辨識與感測所有可 見的顏色或色彩的功能。還有包含四個一英吋的鋁製圓腳柱和四個3/4 英吋的螺絲 配 件 組 成 。 這 塊 基 板(TCS230-DB) 是 跟 所 有 的 Parallax 母 版 相 容 的 , 包 含 MoBoStamp-pe。它可配合程式編輯的功能,顏色感測檢取,色彩辨識等許多應用,

它是可以工作在2.7 伏特~5.5 伏特之間的任何電壓。然而,無論如何兩個白色 LED 供應 5 伏特的基準電壓是需要的,母板則可以自行供給。這樣,可以讓顏色感測

(29)

器辨識顏色的能力會更加準確。假如沒有和母板一起使用,也可與教學用的Parallax 基板、一條延長電纜線以及SIP 轉接器搭配使用;TCS230-DB 是可以分別作兩個 平行並列電流頻率轉換輸出的,而兩厘米的鏡頭基座也是可以做平行並列調整,

設定感測目標的距離,範圍為0.1 英吋的空間。這個顏色感測器 TCS230-DB 最佳 的工作感測距離是從目標物被感測到位於印刷電路板前的 1~1.0625 英吋之間。因 此,所內含鋁製墊片,它可以被固定於腳柱上。假如使用顏色感測器 TCS230-DB 與Parallax 母版搭配使用,就必須移除在基板兩邊的所有螺絲末端上的墊片,並且 更換含蓋在此套件中3/4 英吋的螺絲。

下一步,連接母板到電腦並執行它附加的程式,確定已輸入,此時會發生兩 個狀況: 1.在感應器的基板上有兩個白色 LED 燈會亮起;2.在除錯視窗會出現一個 輸出畫面如R123、G065、B200、R120、G060、B187 等,這些數字就如同我們與 顏色感測器上看到的紅色、綠色、藍色的物體是一樣的,以一張白紙放於顏色感

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

(30)

測器的底部,兩個白色LED 應該在鏡頭前出現一個亮點,若沒有則需要調整 LED 的高度使之聚焦為一個亮點為止。

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

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

可以過濾出顏色中含有上述三種 (RGB) 顏色的色度,均勻的分佈上述顏色,再透 過內部裝置的振盪器產生方波輸出,方波頻率與外部光源成正比。此方波連續且 對稱,是顏色密度(色彩飽和度)的呈現;當撰寫程式時,S2、S3 接腳從振盪器被 讀取的數值就代表一個顏色,而S0、S1 接腳從振盪器被讀取的數值則代表鏡頭檢 視目標物的距離比例。

這個顏色感測器 (TCS230-DB) 可以完全的辨識 RGB 的顏色,可用來偵測判 別顏色並作儲存。顏色感測器晶片會產生出一定頻率的方波,頻率大小與色彩強 度成正比;藉由取樣時間內讀取方波的脈波數(例如: 50ms),即可得到該色彩的強 度數值,如圖2.3 所示。此基板內建 TAOS TCS230 晶片並整合電子電路在 PCB 板上,使用者只需要直接連接控制器即可使用。顏色感測器晶片 (TCS230) 的輸

圖2.3 可程式控制接腳方塊圖 電流/頻率

轉換器 光電二極體

光源 陣列

輸出

方波(脈衝)

(31)

電位 (Low) 的 /OE 輸出外;另外,S0 和 S1 兩者皆透過電源 (Vdd) 的電阻拉 升為高電位 (Hi) 時,那是程式化 TCS230 最大的輸出頻率。因此,當使用這個 設定時,即不是 S0 也不是 S1 是需要被連接的;同樣也有一些短路夾在這塊基 板 (TCS230-DB) 上可以使用,不是 S0 就是 S1,或兩者皆可能被限制在低電位 (Low)。

當操作這塊基板 (TCS230-DB) 時,需要使用 SIP 轉接器 (DB-Expander) 代 替 Parallax 母板,這些訊號需要和 SIP 腳位的標記符合一致。當運作在此情況 時,LED 可以正5伏特 (+5V) 的電源電壓腳位提供的給予,並且4.5至7.5伏特之間 是最佳的電壓供給與電流調整狀況。腳位 Vdd 可在2.7伏特至5.5伏特的範圍內提 供電源給其餘的基板。不管怎樣,LED 至少要2.0伏特的電壓輸入才可以被啟動。

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

TCS230 採用 8 支接腳的 SOIC 表面嵌入式封裝,在單一晶片上集成有 64 個光 電二極體。這些二極體共分為四種類型。其中16 個光電二極體帶有紅色濾光器,

16 個光電二極體帶有綠色濾光器,16 個光電二極體帶有藍色濾光器,其餘 16 個 不帶有任何濾光器,他們可以透過全部的光的訊號。這些光電二極體在晶片內是

圖2.4  晶片 TCS230 俯視圖[18] 

(32)

交叉排列的,能夠最大限度地減少入射光幅射的不均勻性,從而增加顏色識別的 精確度;另一方面,相同顏色的16 個光電二極體是並聯相連接的,均勻分佈在二 極體陣列中,並可以消除顏色的位置誤差。運作應用時,透過兩個可程式化控制 的接腳來做動態選擇所需要的RGB 或透明濾光器。該顏色感測器的典型輸出頻率 範圍從 2Hz~500kHz,還可以透過兩個可程式化控制的 S0、S1 接腳來選擇 100%

(1:1)、20% (1:5)或 2% (1:50) 的檢視目標物距離比例輸出,或切斷電源模式(節電 裝置)。檢視目標物距離比例輸出可使感測器的輸出能夠適應不同的測量範圍,可 更提高了它準確的辨識能力。例如,當使用低速的頻率計數器時,就可以選擇小 的設定值,使TCS230 的輸出頻率和計數器相匹配。當光源投射到 TCS230 上時,

透過光電二極體控制接腳S2、S3 的不同組合,可以選擇不同的濾光器;例如:紅

(0,0)、藍 (0,1)、綠 (1,1)或無色(Clear / no filter)(1,0)來取得確認。經過電流/

頻率轉換器後輸出不同頻率的方波(脈衝),不同的顏色和光的強度對應會有不同頻 率的方波輸出;還可以透過程式設定控制接腳 S0、S1,而選擇不同的檢視目標物 距離比例輸出,對輸出頻率的範圍進行調整,以適應不同的需求。然而,/OE 是頻 率輸出狀態接腳,可以控制輸出的狀態,當有多個晶片接腳共用微處理器的輸入 接腳時,也可以作為篩選信號用;OUT 是頻率輸出接腳,GND 是晶片的接地接腳,

VDD為晶片提供工作電壓。

這塊電路板前面的表面上提供有一個可偵測到約 1 英吋 (25 釐米) 距離的目 標物的 5.6 釐米大小的鏡頭座,這個感測器模組將可看到一個面積約為 9/64 英吋 (3.5 釐米) 範圍內的物體。任何物體的顏色變化只要在此範圍內觀測都可被這個感 測器模組辨別判讀。任何顏色感測系統對光譜的反應是一個不僅是作用於感測器 裝置本身的反應而已,同時也包含光學與照度;這個感測器模組的反應需考慮到

(33)

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

由上面的 RGB 三原色感應原理可得知,如果知道構成各種顏色的三原色的 數值,就能夠知道所感測物體的顏色。對於 TCS230 晶片來說,當選定一個顏色 濾光器時,它只允許某種特定的原色通過,阻擋其他原色的通過。例如:當選擇 紅色濾光器時,入射光中只有紅色可以通過,藍色和綠色都被阻擋,這樣就可以 得到紅色光的光波;同理可證,如果選擇是藍色或綠色的濾光器,就可以得到藍 色光或綠色光的光波。透過這三個數值,就可以分析投射到 TCS230 顏色感測器 晶片上的光的顏色。根據以上瞭解得知,所以本研究事前也是先以顏色感測器去 測得顏色的光的頻譜,而得知個別的頻率響應範圍,進而再去撰寫程式時做比較,

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

再搭配硬體的電路設計和軟體程式的撰寫配合;因此該顏色感測器和本論文中介 紹的方法對進行其他方面的應用的顏色識別,必然也有很大的幫助。

波長 - nm

相對應頻率響應

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

(34)

2.3. LB1836M 馬達驅動晶片介紹

本研究在此實驗中運用了一個馬達驅動晶片 (LB1836M),作為擺放顏色積木 籃框與接放顏色積木籃框轉盤的馬達驅動器;如此,步進馬達才能夠有足夠的力 量讓擺放顏色積木的籃框搖動將顏色積木導入固定的軌道,然而也才能準確將接 放顏色積木籃框的轉盤轉至當然相對應的位置固定等待接收顏色積木。以下是針 對這個馬達驅動晶片的應用與原理加以敘述說明;這個驅動馬達晶片 (LB1836M) 它是一個低飽和、兩個頻道的雙向驅動馬達晶片(亦即有 4 個 IN 和 4 個 OUT),它 還是一個可工作在低電壓的驅動晶片[19]。LB1836M 也是一個兩極(正/反轉)馬 達的驅動晶片,他可應用於印表機、磁碟機、照相機等,甚至其他可攜帶式的裝 置設備上,因為它可以控制步進馬達正/反轉,且可以自由並精準的停止在正確需 要的位置。

這個 LB1836M 馬達驅動晶片,擁有著很多的優點,例如:它是可以平行連 接、分別有邏輯電源供給和馬達電源供給,還有它有剎車的功能(將馬達強制停止 的功能),它並有內建抑制火花的二極體,也就是避免瞬間產生的火花造成馬達的 損害(尤其是當電源啟動時、馬達正/反轉改變時),如此也可以延長馬達的壽命,

甚至它還有內建溫度停機控制電路,避免在長時間運作時因溫度過熱而造成晶片 燒毀;一般如果沒有溫度停機控制電路,驅動晶片在長時間運作下,很容易就會 因為溫度過熱而燒毀;所以內建有溫度停機控制電路是一個非常棒的優點。

假如有大量的電流停留在電源端 (Vs) 與接地端 (GND) 之間,會由於某些應 用和電路設計的電路振盪而造成錯誤的運作。而這些可能的大電流會出現在:(1) 當直流 (DC) 馬達啟動時、或改變轉向 (順向轉逆向 / 逆向轉順向) 時的電流會

(35)

激增;(2)當馬達從順向或逆向要剎車停止時、或改變轉向 (順向轉逆向 / 逆向轉 順向) 時也會產生過電流在晶片內部;或反之亦然(當馬達從剎車停止要順向或逆 向啟動時)。所以切記在電路佈局設計時:(1)為了減少電感效應在電源端 (Vs) 與 接地端 (GND) 之間,電路中的線路需保持是短且粗的設計;(2)記得還要嵌入一 個過電流電容在晶片附近(被嵌入的過電流電容在電源端 (Vs) 與接地端 (GND / Pin 腳 7 ) 之間,需盡可能安裝在最小的距離空間,如此才可以獲得最大的效應作 用);(3)假如 CPU 和 LB1836M 是被安置在個別不同的基板上,且個別的基板的 接地電位之間的差異是很大的,那就必須在 CPU 和 LB1836M 之間的輸入端串連 一個大約 10KΩ 的電阻。要特別提醒注意的是: 只要所有電壓適用於 VCC、Vs1、

Vs2,且 IN1 到 IN4 是被限定於絕對的最大額定電壓之間,這樣在每個電壓的準位 相較於其他相關的電壓就沒有限制了(不管哪一個是比較高或比較低) ;例如: VCC

= 3 V,Vs1、 2 = 2 V, IN1 ~ IN4 = 5 V。晶片的 Vcont 接腳輸出的基納二極體的 頻寬間隙的電壓是VZ+ VF ( =1.93V )。一般這支接腳是保留不接的狀態(開路)。

這個驅動電流 ID會隨著 Vcont 的電壓改變。因為已被基納二極體的頻寬間隙分壓 了;它的功能就像是一座橋樑。

在使用這個LB1836M 馬達驅動晶片時,必須注意到: (1)兩個接地 (GND) 是 必須被連接的;(2)而輸出 OUT 2 和 OUT 4 的 P-GND 以及控制部份的 S-GND 是必 須被連接到晶片中的接腳Pin 7 的接地位置;還有輸出 OUT 1 和 OUT 3 的 P-GND 是必須被連接到接腳Pin 14 的接地位置,如圖 2.6 所示。

(36)

此晶片總共有四個可個別程式控制的輸入與輸出,所以它可以同時控制四個 馬達運作。當把輸入 IN 1、3 接高電位(Hi),而輸入 IN 2、4 接低電位 (Low),

另外輸出 OUT 1、3 接高電位 (Hi),且輸出 OUT 2、4 接低電位 (Low);此時,

就可以控制驅動馬達順向正轉。反之,如果要控制驅動馬達逆向反轉時,就必須 將輸入 IN 1、3 接低電位 (Low),而輸入 IN 2、4 接高電位 (Hi);另外輸出 OUT 1、3 接低電位 (Low),且輸出 OUT 2、4 接高電位 (Hi)。然而,若有要讓馬達 作剎車的動作,就必須在輸入 IN 1、3 的接腳接高電位 (Hi),輸入 IN 2、4 的接 腳也是接高電位 (Hi),而輸出 OUT 1、3 的接腳接低電位 (Low),輸出 OUT 2、

4 的接腳也接低電位 (Low)。於是當輸入 IN 1、3 的接腳處於低電位 (Low);而 輸入 IN 2、4 的接腳也是處於低電位 (Low),輸出 OUT 1、3 的接腳與輸出 OUT 2、4 的接腳是 OFF 狀態時,就表示現在是待機狀態,馬達還沒有開始運轉。

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

(37)

2.4. 光學編碼器設計

在本研究中,即然是自動化設計,當然無可避免的也要用到步進馬達;而步 進馬達是否能準確的停止在我們需要的適當位置是一大挑戰,不過有了光學編碼 器的設計,真是為本實驗解決了一大問題。光學編碼器是一種角度(角速度)檢測裝 置,以光源透過光柵轉盤連結馬達的軸承而得知角度量,它將輸入給軸承的位置 角度量,利用光電轉換原理轉換成相對應的電的脈衝訊號或數字量化之後,得以 控制步進馬達的角度。它具有體積小、精確度高、工作可靠以及輸出數字化等優 點。所以非常重要的也要介紹一下它的原理與應用。其實它的應用範圍是非常廣 泛的;例如:數位照相機的鏡頭、生產線上的飲料裝瓶、CNC 車床的XYZ軸定位、

雷射雕刻、大型圖稿繪圖機、印表機、影印機、伺服傳動、機器人、雷達以及軍 事目標測定等需要檢測角度的裝置和設備中。

光學編碼器是一種透過光電轉換將輸出軸上的機械幾何位移量轉換成脈衝或 數字量化的檢測器;也是一種感測元件,用以監視物體的運動狀態或位置。光學 編碼器是由一個有許多等距光柵的圓形轉盤和光電檢測裝置組合而成。一個標準 的編碼器通常使用光學感測的方式是將位置的運動轉換成為一連串的脈衝訊號。

光學編碼器的工作原理主要是利用發光二極體 (LED) 或是其他的光源來發光,並 使用光電晶體來接收偵測。介於光源與光電晶體之間有一個許多等距光柵的圓形 轉盤,通常與馬達的轉軸連接在一起。由於圓轉盤上刻有透明與不透明的等距區 段,當馬達帶動轉盤轉動時,LED 光源就會透過圓轉盤上的柵孔,有光與無光斷 斷續續的讓光電晶體偵測動作。換句話說,圓轉盤是在一定直徑的圓盤上刻有等 距大小相同的若干個長方形的柵孔。由於圓轉盤與馬達同軸,馬達旋轉時,圓轉

(38)

盤與馬達同速旋轉,經過發光二極體與光電晶體等電子元件組成的檢測裝置,而 發射光在透過柵孔檢測接收,然後輸出若干脈衝信號;經過計算後光學編碼器每 秒輸出脈衝的個數就能反映出當前馬達的轉速;其原理示意圖,如圖2.7 所示。此 外,為了判斷馬達旋轉方向(正/反轉),圓轉盤上還刻有兩排相位相差 90 度的 A 與 B 前後的柵孔作為相位差辨識。

當圓轉盤上的柵孔與 LED 光源對正時,透過的光線強度如果較強,即可使 光電晶體進入飽和狀態,於是在輸出端即可產生脈波的電性訊號。假設圓轉盤中 的柵孔等距排列,其透光的部份和不透光的部份應該呈現50% 對50% 的比例;當 圓轉盤轉動時,光電晶體端就可以偵測到脈波的訊號,偵測到脈波的頻率,即是 相對應於圓轉盤的轉動頻率,也就是轉速。而偵測到脈波的個數即對應於圓轉盤 轉過的柵孔數,也就是轉動的相對角度。

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

增量型與混合型。(1)增量型:將指示刻度組合後即可獲得正弦脈波輸出,同時進 行變位量量測。其圓轉盤為等間距的柵孔及基準柵孔,每轉一個脈衝(柵孔),都是 用於基準點定位。其優點是原理構造簡單易於製造,機械平均壽命可在幾萬小時

圖2.7  光學編碼器之原理  轉軸

0 t

V(t)

脈波輸出 光電晶體偵測

發光二極體 透明 區段

轉盤

不透明 區段

電壓

時間

(39)

以上,價格便宜,零點(原點)可設定任意的角度位置。在圓轉盤的柵孔上,有著等 距的間隙,在檢出間隙亦有相同間隔的間隙,兩側配置有光源、透鏡、光偵測器 元件以檢測信號。增量型計數的方式是可在任何點設立原點,然後再以數位的方 式表示從該原點算起之位移或角度之變化量。因此增量型之編碼器當中切斷電源 訊號時,是不能恢復原來的數值的,這大概是唯一的缺點吧。

(2)絕對型:最常見之圓轉盤編碼器就是屬於絕對型,它是用數位編碼的方式 來表示從原點為起始的變化位量,亦即在刻度尺刻上尺度記號,當刻度尺停止移 動後,用讀取符號測訂刻度的位置。

絕對型編碼器是直接輸出數字量的感測器,在它的圓轉盤上的圖形孔有若干 同心孔道,每條孔道上由透光和不透光的扇形圖區相間組成,相鄰孔道的扇形圖 區數目是雙倍關係,圓轉盤上的孔道數就是它的二進制數碼的位數,在圓轉盤的 一側是光源,另一側對應每一孔道有一光耦合元件;當圓轉盤處於不同位置時,

各光耦合元件根據受光照與否轉換出相對應的電位訊號,形成二進制數。這種編 碼器的特點是不要計數電路,在轉軸的任意位置都可讀出一個固定的與位置相對 應的數字碼。顯然,孔道越多,分辨率就越高,對於一個具有若干個二進制分辨 率的編碼器,其圓轉盤必須有若干個孔道。目前國內已有16 位數的絕對型編碼器 產品。絕對型編碼器是利用自然二進制或循環二進制(葛萊碼)的方式進行光電轉換 的。

絕對型編碼器與增量型編碼器最大不同之處在於圓轉盤上的透光與不透光的 線條圖形,絕對型編碼器可有若干編碼,根據讀出圓轉盤上的訊號編碼,檢測出 絕對位置。編碼的設計可採用二進制碼、循環碼、二進制補碼等。它的特點是可 以直接讀出角度坐標的絕對值且沒有累積誤差,但是分辨率是由二進制的位數來

(40)

決定的,也就是說其精確度取決於位數,目前有10 位、14 位等多種。絕對型編碼 器之優點是讀取座標值,計數不會產生累積誤差,高速旋轉時不必考慮光偵測器 及電路之響應時間,可靠性高;此外,因為機械的晃動或振動所造成的不穩現象、

開關等承受到的電氣干擾等,也不會因而中斷之影響,啟動時也不需要調整;因 此,穩定性也很高,而且,在高速旋轉下無法讀取訊號時、再降低旋轉速度或因 停電等而斷電後再打開電源時,仍然可以讀取正確的旋轉角度,適合於長距離傳 輸。其缺點是無法輸出軸轉動的絕對位置信息,還有價格高昂,如欲提高解析能 力,外徑也須相對的增加變大,光偵測器數量也須增加,自然成本也就會跟著提 高許多。(3)混合型絕對值編碼器,它會輸出兩組訊息:一組訊息用於檢測磁極位 置,帶有絕對訊息的功能;另一組則完全同增量型編碼器的輸出訊息。

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

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

並且讓兩者的排列相位相差成 90 度。當圓轉盤轉動時,就會造成相位相差 90 度 的兩個脈波訊號,其中A 脈波與 B 脈波兩個訊號為互成 90 度相位差的脈波,且其 相位之超前或落後與正/反轉有關,當光學編碼器做正轉量測時,A 脈波訊號將超 前B 脈波訊號 90 度,如圖 2.8 所示;當光學編碼器做反轉量測時,A 脈波訊號將 落後B 脈波訊號 90 度,如圖 2.9 所示。經由上述光學編碼器之偵測編碼後產生出 兩個相位相差90 度的 A 與 B 兩脈波訊號,此訊號將被送入解碼電路中,利用計數 電路來計算上下兩個的脈波數,使 FPGA 晶片可以得知目前馬達的角度位置來進 行控制器的設計。

(41)

轉 動 速 度 較 慢 時 轉 動 速 度 較 快 時 A 脈 波

B 脈 波

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

A 脈 波

B 脈 波

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

A 脈 波 B 脈 波

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

A 脈 波 B 脈 波

相位差 90 度

原點 1 間隔/360 度

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

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

(42)

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

3.1. DE0 實驗版介紹

本研究中最核心的部分,就是使用了這塊稱呼為 DE0 的 FPGA 實驗板 [20],有了它的誕生存在,本實驗才得以開發順利與研究成功。因為它的功能多樣 性與完備性、相容性和擴充性都非常高,並且可以廉價取得,所以本研究就使用 它來取代較昂貴的樂高 NXT 的核心,而以較廉價的 DE0 FPGA 實驗板來加以實 現。因此,一定不可或缺的要介紹一下這塊實驗板 DE0 FPGA 的基本架構與功用。

DE0 FPGA 實驗板是一套輕薄短小型的開發實驗板,但必要的開發工具、參考 設計和相關配件均一應俱全,相當簡單、容易上手,非常適合初學者用來學習FPGA 的邏輯設計與計算機架構[20]。DE0 實驗板搭載了 Altera Cyclone III 系列中的 EP3C16F484 FPGA 核心,可提供 15,408 邏輯單元(Logic Elements) 以及 346 個 I/O 接腳、內建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 CPLD、Altera 序列配置器 EPCS4 序列 EEPROM、按鈕 3 個與滑動開關 10 個、人機介面 General User Interfaces、10 個綠色 LEDs、4 個七段顯示器、16x2 LCD 介面(Not include LCD module)、Clock 輸入、50-MHz 振盪器、4-bit 電阻式 數位類比轉換 (DAC)、VGA 輸出(15-pin D 型接頭,最高可支援 1280x1024 每秒

(43)

60 幅)、序列埠,一組 RS-232 訊號接腳(不含 DB-9 連接器) 與一組 PS/2 埠(若要 同時接滑鼠與鍵盤可使用PS/2 Y Cable 來擴充)、兩組 40-pin 擴充槽 72 個 I/O 接腳 以及8 個電源與接地接腳,用於 40-pin 擴充槽的排線可利用 IDE 硬碟專用的 40-pin 排線,如圖3.1 所示。此外,DE0 實驗板還搭配了豐富的週邊裝置,可適用於學校 的教學課程,並可足以供給開發研究更複雜的數位系統。

因此,我們知道這塊DE0 實驗板,它的應用是非常廣泛的,而且它的擴充性 十足,這也是為什麼它會普遍受到學校、實驗室及科技產業先期的開發研究的喜 愛與使用。而當要啟動使用這塊DE0 實驗板時,只要經由 USB 接口連接到電腦,

將已撰寫編輯好的硬體描述語言Verilog HDL / VHDL 程式載入到 DE0 實驗中的記 憶體 (EEPROM)中即可,然後供應電源,FPGA 即會自行執行程式,就可以得到 七段顯示器(4)

電源輸入

快閃記憶體(4M) USB 插座 VGA 插座 PS/2 接口 SD 插槽

電源開關 ON/OFF Altera EPCS 4

周邊裝置 16x2 LCD 介面

SDRAM (8M) USB 電路

開啟程式開關 (JTAG/AS 模式)

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

RS-232 介面 50MHz 振盪器 擴充槽(2) Cyclone III EP3C16F484

圖3.1 Altera DE0 FPGA  實驗板[20] 

(44)

預期的實驗結果。當選擇 AS (而非 JTAG 模式) 的模式載入程式時,記憶體 (EEPROM) 中的程式是可以被保存著,每一次當電源開起時,程式就會自動地載 入到Cyclone III FPGA 晶片執行運作。假如,選擇 JTAG (而非 AS 模式) 的模式載 入程式時,記憶體(EEPROM) 中的程式,便會隨著電源的關閉而消失;若要使用 時,就必須重新由電腦載入程式才可以執行運作。最後要介紹的即是本論文研究 中,所需應用到的它的擴充介面兩個40-pin 接腳的擴充用接頭,如圖 3.2 所示。

本研究就是應用它與馬達驅動電路板做連接,如此才能達到完成使擺放顏色 積木的籃框能順利將顏色積木導入軌道並放下顏色積木,並且還有可以讓接放顏 色積木的籃框可以轉到當然相對應顏色積木正確的固定位置等待接收顏色積木。

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

圖3.2 擴充槽的 I/O 接腳圖[20] 

(45)

3.2. 硬體描述語言介紹

Quartus II 是其為 Altera 所專有的產品,它所提供的 EDA Tool 可提供執行硬體 描述語言 Verilog HDL / VHDL 的撰寫編輯、模擬、合成、FPGA 佈局與 Netlist Download 到 CPLD。在執行 Verilog HDL / VHDL 的撰寫編輯時,Quartus II 模組 編輯器中而建立Verilog HDL / VHDL 的設計。在 QuartusII 純文字編輯器中,利用 AHDL、Verilog HDL 或者 VHDL 硬體描述語言,來建立設計撰寫編輯皆可。Verilog HDL 和 VHDL 設計檔可以包含在 Quartus II 所支援的構造的任意組合[15]。它還有 包含Altera 提供的邏輯功能,使用 QuartusII Simulator 工具可模擬任何設計。根據 所需的資訊類型,可以進行功能模擬以測試設計的邏輯功能是否正確可行,也可 以進行時序 (Timing) 的模擬,可在最快的元件速率等級上模擬盡可能快的時序條 件,實為一套非常實用的硬體描述語言的撰寫編輯工具。

本研究論文所使用的是 Verilog HDL 硬體描述語言來進行主運算核心的設計 [21-23];Verilog HDL 最大的優點:是一種非常容易掌握學習的硬體描述語言,只 要有C 語言的撰寫編輯的基礎,用 Verilog HDL 語言有更高的優越性及強大的系統 描述能力與規範的設計結構、簡潔和靈活的編輯風格,使其能用來完成大數字系 統或超大規模數字系統都幾乎全部可以完成設計任務,如圖3.3 所示。

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

Analysis & Synthesis 包括 Quartus II 整合合成,它完全支援 VHDL 和 Verilog HDL 的硬體描述語言,並提供控制合成過程的選項。在Quartus II 軟體中的過濾器 (Fitter) 對設計進行佈局,使用由Analysis & Synthesis 建立的資料庫,將專案的邏輯和時 序要求與元件的可用資源相匹配。它將每個邏輯功能分配給最佳邏輯單元位置,

(46)

進行佈線和時序分析,並選定相應的互相連接路徑和接腳分配。在Quartus II 使用 工具 Programmer Assembler 產生的 Programmer Object 檔和 SRAM Object 檔對 Quartus II 軟體支援的所有 Altera 元件進行編輯或配置。可以將 Programmer 與 Altera 編 輯 的 硬 體 配 合 使 用 ; 例 如 : MasterBlaster™ 、 ByteBlasterMV™ 、 ByteBlaster™II 或 USBBlaster™ 下載纜線,將 Netlist 下載至 CPLD 中。

3.3. 分類機器人程式流程圖

本研究之自主式樂高積木分類機器人,內部包含有: 所需要的編輯程式硬體描 述語言 (Verilog HDL),也就是本人所撰寫的程式,用來下達指令給自主式樂高積 木分類機器人做所需要完成的動作,以成功達成預期的結果,其程式流程圖,如 圖3.4 所示。

當開啟電源時,首先是主程式會讓系統初始化,也就是系統會先自我偵測檢 查,從頭到尾全部運作一遍,若有任何環節發生問題時,系統將自動停止運作;

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

(47)

若沒有問題,則進入待機狀態。接下來,完成系統初始化的主程式會呼叫馬達控 制程式,然後再由馬達控制程式下達指令給步進馬達(1)動作,使得步進馬達(1)旋 轉兩圈半後,此時因受到樂高積木機構連桿的作用,擺放顏色積木的籃框開始上 下搖晃,隨後將預先擺放有顏色積木的籃框中的任一顏色積木隨機導入軌道中固 定位置等待被判讀識別而後放下。此時,等待放有顏色積木的籃框穩定後,接著 安裝在放有顏色積木的籃框的軌道上方的顏色感測器開始運作讀値,開始辨識分 析在隨機被導入軌道中定位等待放下的顏色積木的顏色;同時發光二極體 (LED) 也會被啟動 (ON) 點亮,做為輔助辨識分析在隨機被導入軌道中定位等待放下的 顏色積木的顏色讀值可以更精確。隨後,馬上判讀出正確的顏色積木的顏色數值,

經由這個判讀出的正確顏色積木的顏色數值比對後再去呼叫主程式,再下達指令 給馬達控制程式運作,接續再由馬達控制程式下達指令給步進馬達(2)動作,使得 步進馬達(2)旋轉接放顏色積木的籃框轉盤轉到顏色積木被判讀後的相同顏色積木 (在隨機被導入軌道中定位等待放下的顏色積木的顏色)的當然相對應(1)的位置等 待接收顏色積木;等待接收顏色積木的籃框轉盤穩定後,再由馬達控制程式下達 指令給步進馬達(1)動作,使得步進馬達(1)再旋轉半圈,將在隨機被導入軌道中定 位等待放下的顏色積木放下,這樣顏色積木便會落入了等待接收顏色積木籃框轉 盤正確的當然相對應(1)的位置中。倘若,顏色積木沒有被導入軌道中固定位置等 待被判讀識別,亦或被導入軌道中的顏色積木沒有被辨識分析成功,這表示顏色 積木分類目地沒有完成;這個時候主程式會再呼叫馬達程式,馬達程式會再下達 指令給步進馬達(1)或(2)動作;如此周而復始的反覆運作,一直到所有擺放在籃框 中的顏色積木有被導入軌道中固定位置等待被判讀識別,亦或被導入軌道中的顏 色積木有被辨識分析成功完成為止,而停止運作。就以上敘述說明,這樣的運作

(48)

模式會一直被重覆循環,直到所有被預先放在籃框中的顏色積木都被導入軌道中 且被辨識成功並放下到當然相對應的正確位置的接收藍框中而完成分類為止,再 關閉電源停止運作。

顏色感測器讀值 (辨識分析顏色積木)

顏色判讀 (比對數值) 啟動

系統初始化 (主程式)

Delay (等轉盤穩定) 馬達(1)旋轉兩圈半 (將顏色積木導入軌道中)

馬達(1)旋轉半圈 (放下,

被導入軌道中顏色積木)

馬達(2)旋轉到顏色 積木相對應(1)位置

Delay (等轉盤穩定)

(49)

接下來,對步進馬達在運作時的副程式做進一步更詳盡的解析,其程式流程 圖如圖3.5 所示。當馬達旋轉副程式接收到來至主程式的呼叫後,馬達旋轉副程式 會開始做馬達角度值讀取;接著,開始計算判斷讀取的馬達角度值是否等於預先 設定的角度值;如果被讀取的馬達角度值之誤差值大於零時,則下達指令給步進 馬達,使得步進馬達正轉;反之,若被讀取的馬達角度值之誤差值小於零時,則 下達指令給步進馬達,使得步進馬達反轉;當然,當被讀取的馬達角度值之誤差 值等於零時,則下達指令給步進馬達,使得步進馬達停止轉動(結束馬達運作)。步 進馬達在接收到指令運作時,步進馬達旋轉(正轉/反轉)速度的快、慢或停止,則 取決於被讀取的馬達角度值相對於誤差值;被讀取的馬達角度值相對於誤差值愈 大,則步進馬達旋轉(正轉/反轉)的速度就愈快。反之,被讀取的馬達角度值相對 於誤差值愈小,則步進馬達旋轉(正轉/反轉)的速度就愈慢。如此,一直反覆上述 的運作,直到步進馬達停止旋轉;即表示被讀取的馬達角度值相等於誤差值。否 則,再一直重複上述動作,一直到被讀取的馬達角度值相等於誤差值時,步進馬 達才停止運作。

(50)

馬達角度讀取

誤差 > 0 馬達旋轉副程式

誤差 = 設定角度- 讀取角度值

反轉 正轉

轉速相對於誤差

結束

誤差 < 0

Yes No

No Yes

參考文獻

相關文件

3.丙級:包括應用作業系統、安裝軟體與使用電腦週邊設 備、設定繪圖環境、控制圖形螢幕、輸出圖形與 管理圖面等基本工作及繪製單件立體圖、立體剖

™ 經由 PPP 取得網路IP、Gateway與DNS 等 設定後,並更動 Routing Table,將Default Gateway 設為由 PPP取得的 Gateway

‡網路作業系統( network operating system). ‡網路作業系統( network

本校目前已完工啟用的建築物為行政、理工、教學、宿舍、設

張庭瑄 華夏技術學院 數位媒體設計系 廖怡安 華夏技術學院 化妝品應用系 胡智發 華夏技術學院 資訊工程系 李志明 華夏技術學院 電子工程系 李柏叡 德霖技術學院

如考生在網上 報名系統 已填報「活動」或「獎 項」等欄位(可自行選擇是否填報),則須帶同

針對 WPAN 802.15.3 系統之適應性柵狀碼調變/解調,我們以此 DSP/FPGA 硬體實現與模擬測試平台進行效能模擬、以及硬體電路設計、實現與測試,其測 試平台如圖 5.1、圖

無線感測網路是個人區域網路中的一種應用,其中最常採用 Zigbee 無線通訊協 定做為主要架構。而 Zigbee 以 IEEE802.15.4 標準規範做為運用基礎,在下一小節將 會針對 IEEE