RCX NXT RCX NXT USB NXT Java C NXT RCX NXT -...
Transcript of RCX NXT RCX NXT USB NXT Java C NXT RCX NXT -...
![Page 1: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/1.jpg)
簡介
樂高機器人可分為 RCX及 NXT,RCX採用了 8位元微處理器,以
紅外線的方式傳輸資料,兩者差異在於 NXT採用 32位元微處理器、
內建 USB和藍芽,可以讓使用者做出藍芽裝置(例如平板或手機、電
腦)控制的機器人。
我們用的教材是 NXT,它具有七個端口,四個用來連接感應器的連接
埠、另外三個用來連接直流馬達;大部分的人都是利用功能較強的
Java程式開發軟體來實作,而我們用 C語言來撰寫程式;NXT的傳輸
方式相較於 RCX方便多了,只需一條傳輸線即可完成傳輸作業,可以
在 NXT主機內存取多個程式檔案及直接覆蓋檔案的功能,這種程式的
傳輸過程比起嵌入式晶片的燒錄來說更為簡易與快速。
1
![Page 2: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/2.jpg)
目錄
簡介 ---------------------------------------------------01
目錄 ---------------------------------------------------02
前言 ---------------------------------------------------04
研究動機 -----------------------------------------------05
研究目的 -----------------------------------------------06
甘特圖 -------------------------------------------------07
第一章 樂高介紹------------------------------------------08
1.1樂高主要元件 --------------------------------------13
1.2 NXT功能說明 --------------------------------------14
1.3 NXT主機規格 --------------------------------------15
1.4 NXT元件說明-直流馬達 -----------------------------16
1.5 NXT元件說明-觸碰感應器 ---------------------------18
1.6 NXT元件說明-顏色感應器 ---------------------------19
1.7 NXT元件說明-超音波感應器 -------------------------20
1.8 NXT各元件基本程式碼 ------------------------------21
第二章 NXT編寫程式簡介 ---------------------------------23
2.1BRICX CC軟體使用介紹 ------------------------------24
2
![Page 3: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/3.jpg)
第三章 場地介紹-----------------------------------------31
3.1 機器人須完成目標-------------------------------33
3.2機器人-堆高機拆解圖 -----------------------------34
3.3樂高-堆高機組裝與說明 ---------------------------36
3.4樂高-堆高機組裝完成圖 ---------------------------37
3.5機器端與控制端程式碼流程圖 ----------------------38
3.6樂高-堆高機控制端程式碼 -------------------------39
3.7樂高-堆高機機器端程式碼 -------------------------40
3.8製作時所面臨問題與解決方式 ----------------------45
第四章 成果展示-----------------------------------------51
第五章 結論 --------------------------------------------55
第六章 參考文獻 ----------------------------------------56
3
![Page 4: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/4.jpg)
前言
智慧型機器人是一種多功能的半自動或是全自動機械裝置,可透過程
式化動作執行各項生產。智慧型機器人是結合機械、自動化、電機、
光學、墊子、資訊軟體、通訊、安全系統、創意內容等相關技術,未
來運用之範圍非常廣泛,應用層面除了產業用機器人外,更可擴展到
服務性機器人和軍事用機器人,機器人也正不斷的在我們的生活周遭
引起新的話題。
發展出許多各式智能化機器人,其功能可分成工業型、服務型兩
種型態。日本、美國與歐洲等國因為汽車工業需求帶動工業機器人蓬
勃發展,目前全世界約有100 萬個這種類型的機器人投注於所謂的
「自動化生產」的行列,未來工業機器人的人口數只會增加不會減少。
服務型機器人至目前先進各國都列為發展得重點項目之一,服務型機
器人未來將用在居家看護、保全、環境清潔、互動學習、醫療服務、
大樓火災救助與防治、製造業搬運、警用或是軍事偵察與農業等用
途。
近年內,有關智能化機器人的理論、技術與應用日趨熱絡。基本
上服務型機器人目前的用途分兩種情況:一為危險環境或是重複無趣
的人力勞務,其二是幫助與輔助人類行為減低因功能喪失所導致的行
為不便性,增加生活環境舒適。
我們這組專題是模擬製造業搬運,不需要人工操作堆高機,用NXT
內建的藍芽來控制我們所組合的NXT機器人,而在工作中的機器人會
有一些警示的聲響,跟後退時防止撞到物品或工作人員的安全裝置,
在較暗空間裡也有顏色來給周遭的工作人員做警示。
4
![Page 5: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/5.jpg)
研究動機
當初為了專題找了幾個同樣對樂高有興趣的朋友,一起投
入樂高機器人的研究,曾經以為過了孩童時期就不會再碰到樂
高機器人了,沒想到長大後還有機會可以接觸,讓我對樂高機
器人一直充滿一種熱情,甚至成為樂高研究者的一份子。剛開
始不懂得從何做起,只好不斷向老師求教,漸漸對於程式撰寫
以及拼裝機器人越來越有概念。
隨著科技的進步,工業與運輸業也逐漸走向自動化。而我
們這組做「樂高堆高機」的動機是看到 DISCOVERY播放製造汽
車的節目,看到目前製造汽車都由機械手臂配合電腦生產,但
是在搬運貨物卻還是依靠人力,所以我們利用樂高模擬自動搬
運的過程。
5
![Page 6: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/6.jpg)
研究目的
自動化是 21世紀的發展方向,在新世紀高科技機器人教育開展
高科技技術。機器人教育的活動,是發展青少年個性的良好途徑。而
機器人教育輔助電腦程式語言教學,為學生聰明才智的發揮提供了一
個絕佳展示的機會。因為機器人技術對現代工業設計、機械、電子、
感測器、電腦軟硬體、人工智慧等諸多領域都有所涉及。
現在所面臨的環境問題,也許人類必須另尋星球居住,在那之前我們
是否能夠奉獻一點力量,用機器人代替人類前往火星或者其他星球勘
查其地理環境,成為全人類的先驅者。
而且機器人所要完成的每一個精確動作都是由程式來控制的,學
生在學習過程中可以運用撰寫程式的方式去控制機器人完成每一項
的機器人任務。因此在學習撰寫程式和實際操作的過程中,會有效地
提高學生的思考邏輯和判斷能力。
6
![Page 7: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/7.jpg)
甘特圖
(圖 1)甘特圖
我們依照甘特圖所排出的行程,來完成這次的專題。
7
![Page 8: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/8.jpg)
第一章 樂高介紹
樂高(LEGO),幾乎是每個孩童都玩過的益智玩具,通常在一個
大箱子裡有許多不同顏色,不同尺寸,呈長方體、正方體或其他立
體形狀的塑膠塊,一面呈構狀,另一面有多個圓柱形的突出物,可
以讓塑膠塊適度的咬合在一起;可架在一塊綠色的底盤上,由下往
上開始建構成品。而創造出各種不同形狀的作品。但是樂高積木不
管組裝的如何逼真、有趣,終究只是一堆靜態的成本,樂高公司並
不以此為滿足。它仍在思考如何能使樂高產品更加活潑生動、更富
有教育意義、甚至要能與時代脈動結合為目標。
於是樂高公司在1984年開始與美國麻省理工學院合作,並由媒
體實驗室的Resnick, M與Papert, S共同主導、希望研發出結合現
代科技與傳統玩具的新世紀教具。經過15年的研發,樂高公司與美
國麻省理工學院終於在1998年推出革命性的樂高微電腦積木,並將
LEGO積木和一種名為Logo Language,適合國小兒童學習的簡單程
式語言結合在一起。學生只要點選簡單的圖形,就能依照想像力,
隨意設計電腦程式。並透過組合好的各式各樣經由電腦積木控制的
機器人,或含有動力裝置的高科技玩具,來啟發孩子無限創作的空
間,且快速建立強大的邏輯概念,因應數位化、電腦化教育的要求。
8
![Page 9: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/9.jpg)
經由樂高公司與麻省理工學院長期的合作開發,終於將樂高積木
與電腦課程相結合,並發展出一系列適合幼稚園、中小學到大學的創
意科學電腦樂高課程。這套課程的教學理論是以建構式教學為主軸,
強調結合日常生活的科學知識,讓教師、家長、及孩童透過實際動手
做的互動過程,建構累積經驗與知識,讓孩子從實驗中進行探索、思
考問題,培養孩子創造及解決問題的能力,以建構自己的知識體系,
並啟發孩童多元的智能。
自從電腦樂高推出後,已引起教育專家及為人父母者廣泛注意並
爭相推薦,於是業者就在1998年推出LEGO MINDSTORMS開始上市發售,
MINDSTORMS一詞來自於Papert於1980年出版之著作
「MINDSTORMS-computers, andpowerful」。而台灣亦在1999年元月
引進此產品(台灣代理商貝登堡公司譯為樂高機器人)上市發售。2006
年樂高公司又推出新一代LEGO MINDSTORMS (NXT),功能更為強大,
操作介面也更容易上手,更適合國小學童使用。只要一組樂高機器人
套件,就能做出好玩、有趣的作品,讓孩子擁有最有效率的學習。剛
開始的學習以模仿為主,經由模仿動物特性、生活中常見機械動作的
原理加以學習。再來則是發現生活中的問題而加以改善。最後則是發
揮自己的想像,將在現實生活中上未能實現的,也許可以在樂高機器
人表現出來。這套產品包含圖形化控制軟體(The LEGO® MINDSTORMS®
9
![Page 10: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/10.jpg)
EducationNXT Software),可程式控制積木(NXT)及零件組。零件組
包含各式各樣的積木組件,例如:齒輪、槓桿、輪胎、關節等,還有
一些輸入、輸出裝置。輸入裝置有碰觸感應器、光源感應器、音源感
應器及超音波感應器;輸出裝置則有馬達及燈泡等。這些輸出、輸入
裝置與可程式控制積木搭配後,可以依據程式的指定及輸入裝置所回
傳的數值,做一些控制的動作。例如:使用者可以在軟體上設計程式,
當聲音的分貝大到某一程度時,馬達就開始運作,操作組裝之機器人
進行動作。
操作樂高機器人的程式語言稱為LOGO程式語言,LOGO程式語言是
美國麻工學院Seymour Papert與其研究夥伴(Bolt,Beranek& Newman
機構的DanielBobrow及Wallace Feurzeig)於1960年代所發展出的程
式語言。目的在提供一種簡易而功能強大的電腦程式語言,幫助兒童
跨出學習撰寫程式語言的第一步。Papert從1984年開始與樂高公司合
作,研發新一代的樂高產品。讓孩子可以按照自己的創意,使用電腦
程式來控制樂高玩具。經過15年的研發,終於在1998年推出ROBOLAB。
這是一套用圖形撰寫程式的軟體,學生可以按照自己的想法,使用滑
鼠來點選圖形,然後把這些圖形串連起來,就可以變成操控可程式控
制積木的程式。
10
![Page 11: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/11.jpg)
樂高公司在2006年所推出的新一代的樂高機器人
(LEGOMINDSTORMSNXT),同時提供兩種視覺化的NXT 程式開發環境:
The LEGO®MINDSTORMS® Education NXT Software與ROBOLAB 2.9。搭
配的操作軟體The LEGO® MINDSTORMS® Education NXT Software也是
使用LabView引擎開發的圖形化編程軟體,該軟體易於操作,具有循
序漸進式的友好使用者介面。整個編程介面只使用43個命令圖示,編
輯程式速度快,功能更為強大,並有39個活動案例可供參考。
11
![Page 12: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/12.jpg)
1.1樂高主要元件
樂高機器人的零件除了基本組裝積木之外,還可以跟元件做結合
完成更具有挑戰性的任務,這裡有幾個比較常用的元件,分別是 NXT
主控制器、直流馬達、聲音感應器、觸碰式感應器、光感應器、超音
波感應器。其中 NXT主控制器為樂高機器人的核心,機器人所有的動
作都必須由使用者事先撰寫程式之後再將程式載入 NXT之內,如此一
來便可驅動機器人,而直流馬達可加上齒輪並連接一些積木當作機器
人活動的架構,同時再搭配上感應器的輔助,便可使機器人具備高度
的智慧型功能。以下便針對這幾個常用到的元件分別作詳細的說明。
12
![Page 13: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/13.jpg)
1.2 NXT功能說明
樂高平台所實作之機器人主要是利用一個可程式化之積木
來控制其機體本身的所有動作,稱為 NXT,此 NXT控制器乃是
由丹麥樂高公司與美國麻省理工學院所開發,外觀如(圖 2)所
示,其核心為 32位元微處理器。在表面部分有 4顆按鈕,左右
兩邊三角形為選擇,中間橘色為(開機/確定),底下灰色則為(關
機/取消)。另外 NXT還具有 3個輸出端與 4個輸入端,輸出端
主要是安裝直流馬達並透過程式來控制其動作,輸入端則是連
接聲音感應器、觸碰感應器、光感應器、超音波感應器,透過
程式來控制其動作。
(圖 2)NXT主機外觀 13
![Page 14: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/14.jpg)
1.3 NXT主機規格 (表 1)NXT主機規格
微處理器:32 位元 ARM7 微處理處
記憶體:256K FLASH , 64K RAM
輔助處理器:8 位元 AVR處理器
記憶體:4Kbytes FLASH; 512 Byte RAM
通訊方式: USB 2.0與藍芽無線傳輸
輸入端: 4 個(可連接感應器,例如:觸碰感應器)
輸出端:3 個(直流馬達)
顯示設備:100 X 64像素液晶顯示面板
電池:充電鋰電池(或 3號電池 X6)
14
![Page 15: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/15.jpg)
1.4 NXT元件說明—直流馬達
直流馬達外觀如(圖 3)所示,乃是樂高機器人運作之核心,
缺少此元件便無法動作,可利用內部程式來控制轉速,而根據
機器人本身安裝的齒輪數量與齒輪大小的不同,其轉速也不盡
相同。每個馬達都有內建角度感應器,它可以讓你精確的控制
機器人的動作,而馬達的指令可分為 4 大類:
(圖 3)直流馬達
1.無控制模式
2.速度控制模式
3.同步模式
4.轉速表模式。
15
![Page 16: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/16.jpg)
1. 無控制模式
簡單來說,就是沒有特別去設定馬達的模式就是無控制模
式了,此模式會使 NXT 不會理會馬達轉動的角度跟我們起
初所設定的目標角度是否有差異。它只會照著給予多少數
值,而下去轉動而已。
2. 速度控制模式
使用速度模式時,即使因摩擦力或者人為使馬達轉速變慢,
將會加大對馬達的電力輸出,來維持當初所設定的速度。
3. 同步模式
如果你想要兩個馬達速度一樣的話,就要用此模式了,只
要兩個馬達的速度有一點差異,就會依據雙方的狀況就調
整,一個快另一個就快,而一個慢另一個也就慢,不論直
走、左右轉或者是原地旋轉都可以保持同步。
4. 轉速表模式
此模式會利用 NXT 裡面的角度感應器,角度感應器可以控
制轉動的角度,讓機體不會因為摩擦力或者外力的影響,
而沒有轉到當初所設定的角度目標。簡單來說,就是你要
它轉幾度,他就會轉到幾度,不會因外力少轉或是多轉。
16
![Page 17: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/17.jpg)
1.5 NXT元件說明—觸碰感應器
有別於光感應器,觸碰式感應器必須要與某物體有所接觸才會
有動作,當觸碰感應器被壓下時,回傳值為真(true); 未按下
的回傳值為假(false),其外觀如(圖 4)所示,此類型感應器可
以作為機械模型的啟動/停止開關。
(圖 4)觸碰感應器
17
![Page 18: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/18.jpg)
1.6 NXT元件說明—顏色感應器
顏色感應器有兩種功能:一、辨識顏色,二、偵測光線的強弱變化(類
似光感應器)。顏色感應器會發出三種顏色光線(紅藍綠)。在顏色辨
識的功能應用,大多都用三種不同顏色的積木,讓感應器辨識,再控
制機器人的動作。外觀如(圖 5)所示。
(圖 5)顏色感應器
18
![Page 19: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/19.jpg)
1.7 NXT元件說明—超音波感應器
超音波感應器是一種數位感應器(圖 6),它具有內建的晶片可以分析
並送出資料,利用這一顆感應器,我們可以讓機器人「看到」物體並
在撞到之前躲開。它會發出一連串的超音波,當物體反射回來的時間,
再轉換成距離回傳給 NXT,預設的距離單位是公分。雖然最遠距離為
200公分,但是因感應器本身的關係,我們實測當距離超過 30公分
以上就會開始不準了。
(圖 6)超音波感應器
19
![Page 20: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/20.jpg)
1.8 NXT各元件基本程式碼
直流馬達基本程式(圖 7):
(圖 7)直流馬達基本程式
觸碰感應器基本程式(圖 8):
(圖 8)觸碰感應器基本程式
顏色感應器基本程式(圖 9):
(圖 9)顏色感應器基本程式
20
![Page 21: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/21.jpg)
超音波應器基本程式(圖 10):
(圖 10)超音波應器基本程式
21
![Page 22: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/22.jpg)
第二章 NXT 編寫程式簡介
LEGO MindStorms Education NXT是用來設計 NXT機器人程式的
軟體,為圖形化程式編輯軟體,NXT-G (G代表 Graphic)的設計
界面和一般視窗軟體相似,操作相當容易。
2001 年 Dave Baum 發表了 NQC(Not Quite C), 是一套給樂
高 RCX 主機使用的類 C 語言,程式環境是RCX Command Center,
之後樂高 NXT機器人發表,John C. Hansen 等人將 NQC 語言延
伸改版為 Bricx Command Center。Bricx Command Center(簡
稱 BricxCC)是一個整合開發環境(IDE),可讓我們用 NXC,類似
C/C++的語法來撰寫程式,並透過 NBC來編譯成 rxe 的 NXT,支
援所有樂高智慧型主機以及眾多的第三方程式語言。
22
![Page 23: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/23.jpg)
2.1 BRICX CC 軟體使用介紹
這次專題我們選擇用 BRICX CC軟體來編寫。以下是介紹 BRICX CC軟
體使用:
第一步驟:
安裝完 BRICX CC會在你的電腦桌面上建立一個捷徑,如(圖 11)
(圖 11)BRICX CC捷徑
23
![Page 24: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/24.jpg)
第二步驟:
將 NXT主機電源打開並以 USB線連接電腦。打開 BricxCC後,電腦會
出現一個「Find Bricx(搜尋主機)」畫面來詢問你主機連接方式與種
類。
我們樂高是用NXT機種同時也是用USB載入程式,所以Port選擇USB、
BRICK Type選擇「NXT」和 Firmware(韌體)選「Standard」。如(圖
12)
(圖 12)輸入選擇
補充:要將程式傳到 NXT主機時,電腦要先安裝「LEGO MINDSTORMS NXT
driver(驅動程式)」,否則無法上傳程式。如(圖 13)
如果 USB線沒有連接也可以啟動 BricxCC,但要載入程式時要重新連
接 NXT,只要執行 Tools裡的「Find Bricx(搜尋主機)」即可。如(圖
14)
24
![Page 25: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/25.jpg)
(圖 13)安裝「LEGO MINDSTORMS NXT driver」
(圖 14)搜尋主機
↑安裝NXT drive驅
動要選第二個選項
25
![Page 26: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/26.jpg)
第三步驟:
進入 BRICX CC常用到的功能介紹。如(圖 15)
(圖 15)功能介紹
1. 為開啟新檔。快速鍵為 Ctrl+N。
2. 為編譯程式。先編譯成功才能上傳,如果編譯有錯誤會在電腦
螢幕上顯示那些地方有錯誤。快速鍵為 F5。
3. 為下載程式。會先自動做編譯動作再正式執行下載,所以也可
直接按下載,快速鍵為 F6。
4. 為執行程式,執行已上傳的程式,也可按 NXT主機的橘色按鈕。
快速鍵為 F7。
5. 為停止執行中的程式,快速鍵為 F8。
26
![Page 27: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/27.jpg)
第四步驟:
偏好設定,點擊 Edit後,選擇 Preferences(圖 16)會跳出 Commom、
Editor、Options等頁面設定功能讓使用者選擇。如(圖 17)
(圖 16)偏好設定
(圖 17)功能介面
27
![Page 28: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/28.jpg)
將 Common頁面下的程式語言改成 NXC。在存檔時,程式的副檔名就
會是「.nxc」。
第五步驟:
「Color標籤」是編輯程式碼所呈現的顏色,預設函數是藍色、數值
是紅色、巨集是紫色;「Editor Font」為設定字體大小。如(圖 18)
(圖 18)顏色標籤
「Line numbers」顯示程式碼行號,程式編譯錯誤時容易清楚是那幾
行有誤。如(圖 18)
28
![Page 29: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/29.jpg)
第六步驟:
「Code completion」:幫助使用者找到程式碼。如(圖 19)
(圖 19)Code completion
NXC的程式可包含好幾個 task(任務),每個程式一定要有一個(並只
能有一個)名為main的task,每個task名稱不可重複。「//」和「/**/」
為 NXC的註解指令,字體用斜體字顯示,不影響程式編譯執行。「//」
只能用一行做註解;「/* */」是用在較長或跨行註解用。如(圖 20)
(圖 20)
29
![Page 30: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/30.jpg)
第三章 場地介紹
場地介紹:
1. 長 100公分,寬 116公分。場地設計共有四個點
2. 車子在場地的中間為起點
3. 兩個載貨區,兩個卸貨區。每個載貨區長 8公分,寬 21公分。每
個卸貨區長 8公分,寬 21公分。(如圖 21、22、23)
4. 每個地區矗立起一面紙板,作為超音波感測距離用
(圖 21)場地空拍
30
![Page 31: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/31.jpg)
(圖 22)場地正面
(圖 23)場地設計圖
31
![Page 32: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/32.jpg)
3.1 機器人須完成目標
1. 控制端與機器端能進行藍芽連線。
2.用一顆觸碰鈕在控制端讓機器端開始執行作業和暫停作業。
3.超音波感應器能判斷遠近距離,能依照所設定的距離範圍,讓顏色
感應器燈個別亮出三種顏色不同的燈。
4.利用超音波感應器在離牆壁約 20公分內時,機器端停止前進並執
行卸載貨。
5.利用聲響高頻來得知機器端在行走;用低頻聲代表制止做卸載貨動
作。
6.機器端會判斷應該是要載貨還是卸貨。
7.機器端往後行走時,觸碰感應器碰到障礙物時,機器端停止行動並
發出重低音警告聲。
32
![Page 33: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/33.jpg)
3.2 機器人-堆高機拆解圖
(圖 24)機器端輸入輸出埠
(圖 25)升降設備與觸碰和顏色感應器
33
![Page 34: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/34.jpg)
(圖 26)行走輪與機台固定和升降設備固定
(圖 27)後輪與底盤
34
![Page 35: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/35.jpg)
3.3 樂高-堆高機組裝與說明
主機共使用了三個輸入端,分別用在超音波感應器、顏色感應器
及觸碰感應器;三個輸出端都使用,分別前輪、後輪、起降馬達。
機器端 2個大輪作前輪、2個小輪作後輪,前輪來控制車的動作
(例如,前進、停止及往右退後)。顏色感應器跟觸碰感應器一起裝在
起降馬達上面。讓警示燈更加明顯。顏色感應器裝置在觸碰感應器的
前面。而顏色感應器不是用來偵測顏色,而是作為 LED使用來告知距
離障礙物的遠近。觸碰感應器做用於堆高機後退時碰到障礙物,透過
此感應器來告知機器端要立即停止目前的工作與發出聲響。不少 NXT
機器人會用到光感應器讓機器人順著地板上的黑線直行走,行走黑線
範圍執行的任務,例如停止、轉彎。光感應器能透過黑白兩色而達到
精準效果。而超音波有偵測上的誤差,所以我們嘗試用超音波感應器
抓住精準距離去執行任務。裝超音波感應器的同時也要考慮到適當的
位置。
35
![Page 36: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/36.jpg)
3.4 樂高-堆高機組裝完成圖
(圖 28)堆高機正面實體照
(圖 29)堆高機後面實體照
(圖 30)控制端實體照
36
![Page 37: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/37.jpg)
3.5 機器端與控制端程式碼流程圖
(圖 31)
1. 進行藍芽連線。
2. 程式開始執行。
3. 遙控端啟動,機器端會接收遙控端訊息。
4. 當遙控端按下觸碰元件(按下是開始,放開則暫停),車子開始行
走。在行走過程中發出高頻聲音來警告周遭的人員,機器行走中。
5. 機器行走中超音波便開始偵測障礙物。
6. 行走與偵測障礙物的同時,顏色感應器也會由遠至近來安排順序
亮燈(順序為 綠→藍→紅)。
7. 離障礙物約 20cm左右,會執行以下三個動作: 37
![Page 38: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/38.jpg)
(1)顏色感應器會亮紅燈,同時機器端也會發出長聲重低音並停止前
進。
(2)若是機器端在裝載區,會將貨物升起。若是機器端在卸貨區,會
將貨物放下。
(3)當機器端升起/下降動作完成時,會向右退後再轉 90度。
(4)當機器端後退若有碰撞到障礙物,便會停止 0.7秒之後往前走,
執行下個動作。
8. 每執行完一次裝貨或卸貨,count和 f1與 f2值各加 1。
9.當遙控端的觸碰器未感應到觸碰,此時機器端所有動作將會結束。
10.結束
38
![Page 39: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/39.jpg)
3.6 樂高-堆高機控制端程式碼
(圖 32)控制端程式碼
←按鈕壓
下或放開
39
![Page 40: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/40.jpg)
3.7 樂高-堆高機機器端程式碼
(圖 33)機器端第一段程式碼
←依照距
離規定而
讓燈改變
指定顏色
←要用在超音波感
應器的巨集
40
![Page 41: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/41.jpg)
(圖 34)機器端第二段程式碼
←車子後
面之觸碰
感應器任
務
←無障
礙物的
正常下
41
![Page 42: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/42.jpg)
(圖 35)機器端第三段程式碼
←第一次遇
到障礙物的
情況下
42
![Page 43: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/43.jpg)
(圖 36)機器端第四段程式碼
←Count 的
值為單數
的情況
下,跟第一
次所偵測
到動作是
一樣的
43
![Page 44: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/44.jpg)
(圖 37)機器端第五段程式碼
←讓在車子的主機顯
示值在螢幕上面
←表示遙控端的
按鈕已放開
44
![Page 45: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/45.jpg)
3.8 製作時所面臨問題與解決方式
第 1個問題:我們製作時想要超音波感應器所偵測到的距離,可依照
距離 40公分、30公分、20公分,顏色感應器能分別亮綠、藍、紅燈。
因此我們在程式碼的子任務 aaa設定兩個條件,就是「if」和「else
if」,寫程式條件順序會關係到邏輯問題。因為程式碼是由上往下的
執行如果第一個條件就寫距離為 40公分大範圍條件的話,那它就只
會執行 40公分的大範圍而不執行 30、20公分較小範圍。
解決方式:因此我們後來發現程式要的條件順序要「由小到大」、「由
近到遠」才正確的程式邏輯。
45
![Page 46: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/46.jpg)
第 2個問題:在關於升降時,我們也遇到問題,就是以「count值(升
降共幾次)」,再「count%2==1(count除以 2餘數為 1表示單數)」與
「count%2==0(表示雙數)」來判斷要升起還是下降。但是發現到只有
兩個條件是不夠的,因為偵測到障礙物距離是第一次的話,相對
count=1,於是 1%2=0而誤以為 1是雙數。
解決方式:需要多加一個「count==1」的條件,執行升起的功能。
第 3個問題:機器端升降的上升功能,寫升降馬達程式有發現到使用
「RotateMotor」指令最多只能讓馬達轉動 360度,使升起高度不夠
高。
解決方式:用「OnFwd(前進)」讓馬達上升到標準的高度。
46
![Page 47: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/47.jpg)
第 4個問題:使用顏色感應器的燈表示機器端是否正在行走之外,另
外我們有再延伸試著要不要再裝一顆「NXT小 LED」(如圖 38)來加已
明顯表示機器端是否正在行走。而這顆「NXT小 LED」(如圖 38)需要
接在輸出埠而配合「OnFwd(前進)」、「OnRev(後退)」的指令就會發亮。
由於三個輸出埠都已使用在前進與後退、升降馬達上,所以試著接在
輸入埠看能不能像輸出埠一樣,至少還能單向執行(只能執行一個作
動),結果是不行的,因此打消這個念頭。
(圖 38)NXT小 LED
47
![Page 48: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/48.jpg)
第 5個問題:關於藍芽傳輸部分,我們曾經有試著看操控端能不能按
一下機器端就開始動作,再按一下機器端就暫停,然後再按一下機器
端開始執行。因此在遙控端程式試著用「int」整數函數看能不能傳
到機器端,後來我們知道 NXT藍芽只能用布林函數傳輸 0或 1的數
值。
解決方式:持續按住觸碰感應紐,讓機器端動作,當放開時就停止動
作。
第 6個問題:關於藍芽傳輸部分,嘗試過要讓遙控端螢幕顯示現在機
器端是在載貨區還是卸貨區(顯示 1表示載貨;顯示 0表示卸貨)。為
何用 0、1數字來替代,因為 NXT藍芽是使用布林函數在傳數。
(圖 39)機器端載貨程式碼
(圖 40)機器端卸貨程式碼
P.S:紅框部分是要將 0或 1傳到控制端,讓控制端螢幕顯示所收到
的布林函數。
48
![Page 49: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/49.jpg)
(圖 41)控制端程式碼
P.S:程式碼的 if和 else,如果收到的 x值等於 1,則顯示 1能知道
現在機器端在載貨;反之顯示 0,表示卸貨。
經過我們嘗試幾次程式編寫和實驗,結果控制端螢幕只會顯示 0數字。
因此打消這個念頭。
接收來自機器端傳的布林
函數,代入布林函數(bool)x
設計布林變數 x,是用來接收訊息用
49
![Page 50: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/50.jpg)
第 7個問題:我們原本是用 360度的圓形底盤(如圖 42紅色框框部分),
實驗後發現會造成機器端直走時方向會偏掉、往右退後無法呈 90
度。
解決方式:用 2個小輪當後輪。
(圖 42) 360度後輪底盤
第 8個問題:升降設備的叉架原本只裝兩根(如圖 43),之後發現有
時載貨時會因為叉架太短造成貨物容易掉落。
解決方式:增加為四根叉架,其中中間用較長的樂高組合零件來降低
貨物掉落的機率。
(圖 43)叉架
50
![Page 51: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/51.jpg)
第四章 成果展示
(圖 44)超音波感應器未感應到物體,顏色感應器亮綠燈
(圖 45)超音波感應器有感應到物體(接近中),顏色感應器亮藍燈
51
![Page 52: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/52.jpg)
(圖 46)超音波感應器感應到物體堆高機停止往前,顏色感應器亮紅
燈
(圖 47)將物體移動到下一個區域
52
![Page 53: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/53.jpg)
(圖 48)將物體移動到下一個區域前,顏色感應器亮綠燈
(圖 49)將物體移動到接近下一個區域前,顏色感應器亮藍燈
53
![Page 54: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/54.jpg)
(圖 50)將物體放在指定區域,顏色感應器亮紅燈
(圖 51)將物體放到定位,往下一個區域繼續執行下個任務
54
![Page 55: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/55.jpg)
第五章 結論
在這次的智慧型機器人實作中,分為組裝及程式兩個部份,兩者
相輔相成,缺一不可。硬體部份,搭配組裝較容易的樂高積木,就能
輕鬆製作出我們想要的智慧型機器人。過程中,不但激發了組員們的
想像力及創意,如何從無到有,從一堆零件中組成一台可以執行任務
的機體,相對的也磨練了組員間的溝通、學習如何虛心接受他人的想
法;程式方面,大部分的人都是利用功能較強大的 Java程式開發軟
體來實作,而我們決定使用較容易編寫的程式語言去撰寫,而我們在
之前修 C語言的課時就有上到這類機器人程式撰寫,也很剛好的它是
用 C語言來撰寫程式,就此我們就用 C語言去撰寫,在編寫程式的過
程中,也是大大的考驗撰寫程式者的耐心。
初期的研究過程中,以網路及手邊資料來進行組裝一些功能簡單
的樂高機器人來增加熟練度,以及寫一些小小的程式測試,也藉此熟
悉一下軟體的使用度。例如:直流馬達與 NXT主機的結合、NXT主機
的結合、重要元件的感應器裝置及運用。
中期的研究重點在於各個功能的結合,到一機多功能的機器人。
例如:加上一顆顏色感應器跟超音波感應器的配合,當超音波感應器
到了多少距離,顏色感應器就要亮什麼顏色。
後期目標規劃場地並將此作品完成,呈現在專題的報告上,讓各
位老師看見我們專題的成果與努力。
55
![Page 56: RCX NXT RCX NXT USB NXT Java C NXT RCX NXT - ir.hust.edu.twir.hust.edu.tw/bitstream/310993100/4332/1/樂高機器.pdf · 樂高機器人可分為rcx及nxt,rcx採用了8位元微處理器,以](https://reader030.fdocuments.net/reader030/viewer/2022040114/5e1b23c3c8664668aa41aac5/html5/thumbnails/56.jpg)
第六章 參考文獻
[1]曾吉弘、謝宗翰、侯俊宇,“機器人新視界 NXC與 NXT(初版)”,
藍海文化事業股份有限公司,2010年 7 月出版
[2]康仕仲、張慰慈、古凱元、紀宏霖,“智慧型機器人程式開發與實
作(初版)”,精誠資訊股份有限公司,2009年 9月出版
[3] 李榮芳、譚孟君、李宜軒、李宜珊,“樂高機器人遊樂園篇:LEGO
MINDSTORMS NXT組裝及圖形化程式”, 碁峰資訊股份有限公司, 2010
年 06月 18日出版
[4] 邱信仁, “NXT 樂高機器人 2e:創意樂趣,隨心所欲!(第二
版)”, 藍海文化, 2011年 09月 01日出版
56