48
機器人專製作利基 16 軸智慧型機器人 Robotinno 第 1 頁 、課程說明 課程說明 課程說明 課程說明 元稱 元稱 元稱 元稱 機器人專題 機器人專題 機器人專題 機器人專題製作 製作 製作 製作 元摘要 機器人專題製作---利基 16 軸慧型機器人 Robotinno 利基應科技十六軸身機器人-Robotinno 設計者 楊昭德 教師 (國彰化師大附工機電科) 學習標 1. 瞭解機器人歷簡介,使對機器人歷產興趣。 2. 瞭解機器人設計的基原理,使產對機器人設計興趣。 3. 能瞭解機器人流程圖概念,及何應於解決機器人組裝問題。 4. 起學學習機器人程式 innoBASIC 撰寫的興趣。 5. 培養學使機器人 innoBASIC 程式語言開發工具的基能力。 6. 學習迴圈結構(FOR-NEXT)及控制機器人零組動作。 7. 練習分析問題,括輸入、輸、資料處理式。 8. 學習何使 servo Commander16 控制器製作自動行走機器人。 9. 學習何製作機器人專題製作,小組討論和養成團隊作精神。 1.資訊科技與活 1-1資訊科技與活的關係 1-2 資訊科技的優點與限制 1-3 來的資訊科技 2.電腦硬體基元 2-1處理元 2-1-1處理元能及結構 2-1-2處理元效能 2-1-3指運作週 2-2記憶元 2-2-1記憶元能 2-2-2儲裝置 2-3輸入、輸元 2-3-1輸入、輸裝置 2-3-2輸入、輸元工作原理 3.應軟體 3-1應軟體簡介 3-2 應軟體實作 課綱範 4.電腦解題程序 4-1問題分析 4-2解題法設計 4-3 試與修

酖酖酖酖、、、、課程說明課程說明icerc.tnssh.tn.edu.tw/download/tm/99-1-11.pdf · 第 1 頁 酖酖酖酖、、、、課程說明課程說明 酀元峮稱 機器人專題製作

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 1 頁

壹壹壹壹課程說明課程說明課程說明課程說明

單元名稱單元名稱單元名稱單元名稱 機器人專題機器人專題機器人專題機器人專題製作製作製作製作

單元摘要 機器人專題製作---利基 16 軸智慧型機器人 Robotinno

利基應用科技十六軸全身機器人-Robotinno

設計者 楊昭德 教師 (國立彰化師大附工機電科主任)

學習目標

1 瞭解機器人歷史簡介使對機器人歷史產生興趣

2 瞭解機器人設計的基本原理使產生對機器人設計興趣

3 能瞭解機器人流程圖概念以及如何應用於解決機器人組裝問題

4 引起學生學習機器人程式 innoBASIC 撰寫的興趣

5 培養學生使用機器人 innoBASIC 程式語言開發工具的基本能力

6 學習迴圈結構(FOR-NEXT)以及控制機器人零組件動作

7 練習分析問題包括輸入輸出資料處理方式

8 學習如何使用 servo Commander16 控制器製作自動行走機器人

9 學習如何製作機器人專題製作小組討論和養成團隊合作精神

1資訊科技與生活

1-1資訊科技與生活的關係

1-2 資訊科技的優點與限制

1-3 未來的資訊科技

2電腦硬體基本單元 2-1處理單元

2-1-1處理單元功能及結構

2-1-2處理單元效能

2-1-3指令運作週期

2-2記憶單元

2-2-1記憶單元功能

2-2-2儲存裝置

2-3輸入輸出單元

2-3-1輸入輸出裝置

2-3-2輸入輸出單元工作原理

3應用軟體 3-1應用軟體簡介

3-2 應用軟體實作

課綱範圍

4電腦解題程序 4-1問題分析

4-2解題方法設計

4-3 測試與修正

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 2 頁

5演算法概論

5-1演算法特性

5-2演算法表示方法

5-2-1演算法基本元件

5-2-2 演算法基本元件組合

5-3 演算法與電腦解題

6基礎程式設計

6-1程式設計與電腦解題的關係

6-1-1程式設計的用途與重要性

6-1-2程式設計在各領域的應用

6-2程式設計步驟

6-2-1分析

6-2-2設計

6-2-3實作

6-2-4 測試與修正

教學節數 12 節 (62)

先備知識 具備基本 BASIC 程式語言能力

教學活動

機器人歷史簡介BASIC Commander 系統介紹Education Board 教育版介紹

innoBASIC 程式語言介紹Servo Commander 16 控制器介紹機器人零組件模

組介紹組裝伺服機與機構介紹Robotinno 機器人控制程式介紹機器人專

題製作應用範例簡介

評量方法 1隨堂問答 3機器人專題製作

2課堂觀察 4小組競賽

參考資源

1利基機器人官方網站httpwwwinnovaticomtwwebsiteindexphp

2蘇國嵐羅仁權等機器人原理與實務寶典宏友圖書

3康仕仲等(2009)百變樂高機器人台北悅知文化

4楊旺枝(2007)PIC 單晶片機器人專題製作-使用 Basic台北台科大圖書

5智慧型機器人技術種子教師研習教材(2010)萬能科技大學管理與資訊系

光電工程系

6台灣維基百科全書httpzhwikipediaorgzh-tw搜尋條目機器人

7The LEGO Mindstorms NXT idea book Syngress press

8台灣玉山機器人協會httpwwweraorgtwindexphp

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 3 頁

貳貳貳貳教學活動計畫教學活動計畫教學活動計畫教學活動計畫((((敘述教學活動細節敘述教學活動細節敘述教學活動細節敘述教學活動細節教學工具教學工具教學工具教學工具教學策略等教學策略等教學策略等教學策略等))))

教學活動教學活動教學活動教學活動(第第第第 1 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1111機器人歷史簡介機器人歷史簡介機器人歷史簡介機器人歷史簡介 30 1生活處處有科學生活處處有科學生活處處有科學生活處處有科學生活時時用科學生活時時用科學生活時時用科學生活時時用科學

德國哲學家尼采說德國哲學家尼采說德國哲學家尼采說德國哲學家尼采說「「「「人類因夢想而偉大人類因夢想而偉大人類因夢想而偉大人類因夢想而偉大」」」」所以人類

是一種「先有想法 才有做法」的動物芬蘭芬蘭芬蘭芬蘭 NokiaNokiaNokiaNokia 手機廣手機廣手機廣手機廣

告詞告詞告詞告詞「「「「科技始終來自於人性科技始終來自於人性科技始終來自於人性科技始終來自於人性」」」」人性的特色之一就是好

逸惡勞的「懶惰」所以人類「「「「因懶惰而夢想因懶惰而夢想因懶惰而夢想因懶惰而夢想因夢想而因夢想而因夢想而因夢想而

科技科技科技科技因科技而偉大因科技而偉大因科技而偉大因科技而偉大」」」」

例人類懶得走路所以有車人類懶得開車所以有公

共汽車車子太慢所以有飛機飛機太慢所以有火箭

2詞源詞源詞源詞源機器人(自動控制機器)一詞最早出現在西元

1920年捷克科幻作家恰配克的《羅索姆的萬能機器人》

中原文作「Robota」後來成為西文中通行的「Robot」

1967年日本科學家森政弘與合田周平提出「機器人是一

種具有移動性個體性智能性通用性半機械半人性

自動性奴隸性等7個特徵的柔性機器」

3機器人機器人機器人機器人是是是是自動控制機器自動控制機器自動控制機器自動控制機器(Robot)的俗稱自動控制機

器包括一切模擬人類行為或思想與模擬其他生物的機械

(如機器狗機器狗機器狗機器狗機器貓機器貓機器貓機器貓等)狹義上對機器人的定義還有很

多分類法及爭議有些電腦程序甚至也被稱為機器人在

當代工業中機器人指能自動執行任務的人造機器裝置

用以取代或協助人類工作

理想中的高模擬機器人是高級整合控制論機械電

子計算機與人工智慧材料學和仿生學的產物目前科

學界正在向此方向研究開發有關機器人的話題常見於

科幻作品中

日本 HONDA 機器人原型 ASIMO

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 4 頁

4 機器人的種類與演變機器人的種類與演變機器人的種類與演變機器人的種類與演變

當代應用機器人

今天對人類來說太髒太累太危險太精細太

粗重或太反覆無聊的工作常常由機器人代勞從事製造

業的工廠里的生產線就應用了很多工業機器人其他應用

領域還包括建築業石油鑽探礦石開採太空探索

水下探索毒害物質清理搜救醫學軍事領域等

41 工業機器人工業機器人工業機器人工業機器人

一個工業機器人可以僅包括一個感覺與動作之間的

連結而且這個連結不是由人手動操控的機器人的動作

也許是電動機或是驅動器(也稱效應器)移動一隻手臂

張開或關閉一個夾子的動作此種直接而詳盡的控制跟回

饋也許是由在外部或是嵌入式的電子計算機或是微控制

器上運行的程式提供根據這個定義所有的自動裝置都

算機器人

工業機器人可直接接受人類指令也可以執行預先編

排的程序也可以根據以人工智慧技術制定的原則綱領行

工業機器人

42 寵物寵物寵物寵物玩偶類機器人玩偶類機器人玩偶類機器人玩偶類機器人

機器人也可以僅作玩具用途甚至成為人類生活的寵物和

伴侶日本 Sony 公司推出的「Aibo」機器寵物就是一個

實例

寵物機器狗

43 動漫動漫動漫動漫遊戲的機器人遊戲的機器人遊戲的機器人遊戲的機器人

在青少年流行文化中機器人題材自幾十年前就開始

在世界範圍內盛行《原子小金剛》《變形金剛》《機

動戰士鋼彈》等機器人動畫將此題材推向高峰

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 5 頁

這些作品通常將機器人描畫為具有人類軀幹特徵(甚

至感情)的金屬人並以其強勁的能力作戰

44 模擬和社交機器人模擬和社交機器人模擬和社交機器人模擬和社交機器人

有些機器人被開發出來純粹是以模模擬人作為目的

的這些模仿既可以是外觀與動作行為上的又可以是思

想感情上的理論上講要做出外觀行為思想都非常

接近真人的機器人在目前還有不可跨越的技術難度但

在未來並不是不可能的事而如何利用及控制那類高模擬

機器人它們與人類關係又將如何早已成為科幻界一個

長期話題

在2001年美國麻省理工學院打破歷史傳統研發了

世界上第一個有模擬感情的機器人Kismet

理想中的高模擬機器人是高級整合控制論機械電子計

算機與人工智慧材料學和仿生學的產物目前科學界正

在向此方向研究開發

2005 年日本世界博覽會愛知縣展出的女性模擬機器人

45 醫學醫學醫學醫學上機器人上機器人上機器人上機器人

在一些醫學手術上醫生會使用機械人來切割出一個

長及闊均為百分之一吋開口人類本身是很難準確地遭出

這種切口

46 探險探險探險探險及及及及危險工作危險工作危險工作危險工作機器人機器人機器人機器人

人類去探險的地方如外太空及深海都充滿了危

機探險機器人攜帶著攝影機及各種觀測設備都收集到

的資料傳送回控制基地減少人類冒生命危險的次數

2222 艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫 (((( Isaac Isaac Isaac Isaac

AAAAsimov 1920simov 1920simov 1920simov 1920----1992199219921992))))

機器人三定律機器人三定律機器人三定律機器人三定律

15 機器人三大法則機器人三大法則機器人三大法則機器人三大法則(Three Laws of RoboticsThree Laws of RoboticsThree Laws of RoboticsThree Laws of Robotics)二十世紀

科幻文壇的超級大師也是舉世聞名的全能通俗作家是

公認的「現代機器人小說之父」他於一九四二年所創立

的「機械人三大法則」

第一法則第一法則第一法則第一法則

機器人不得傷害人類或袖手旁觀坐視人類受到傷害

第二法則第二法則第二法則第二法則

除非違背第一法則機器人必須服從人類的命令

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 6 頁

第第第第三法則三法則三法則三法則

在不違背第一及第二法則下機器人必須保護自己

機器人被設計為遵守這些準則違反準則會導致機器

人受到不可恢復的心理損壞

3333機器人的定義機器人的定義機器人的定義機器人的定義 5 聯合國標準化組織採納了美國機器人協會給機器人

下的定義ldquoldquoldquoldquo一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的用來搬運材料用來搬運材料用來搬運材料用來搬運材料零零零零

件件件件工具的操作機工具的操作機工具的操作機工具的操作機或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改

變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統rdquordquordquordquo機器人機器人機器人機器人是靠自身動力自身動力自身動力自身動力和控控控控

制能力制能力制能力制能力來實現各種功能的一種機器

教學活動教學活動教學活動教學活動(第第第第 2 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第一章第一章第一章第一章 BASIC

Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

50 第一章第一章第一章第一章 BASIC Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

電腦解題工具有許多種在此以解決機器人克服難關

問題為例佐以市面上較常見到的利基機器人套件並從

中學得問題解決方法的基本流程

圖 1-1 BASIC Commanderreg 與 and innoBASICtrade

Workshop 系統架構圖

本系統包含了幾個部份轒 innoBASICtrade Workshop

是一個安裝在電腦上的軟體平台提供使用者以

innoBASICtrade程式語言編輯編譯及下載程式終端視窗

(Terminal Window) 是程式執行時的人機介面及除錯平

台完成的程式碼透過 USB 介面下載到 BASIC

Commanderreg 單板電腦(Single Board Computer)這也

是系統的核心部份

BASIC Commanderreg提供三種資源轒第一個是通用

的IO第二個是cmdBUStrade透過它可同時並聯32個利基

科技的週邊模組第三個是DEBUG介面用來讓

innoBASICtrade Workshop 終端視窗對

BASICCommanderreg 上傳或下傳資料DEBUG介面不僅

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 2 頁

5演算法概論

5-1演算法特性

5-2演算法表示方法

5-2-1演算法基本元件

5-2-2 演算法基本元件組合

5-3 演算法與電腦解題

6基礎程式設計

6-1程式設計與電腦解題的關係

6-1-1程式設計的用途與重要性

6-1-2程式設計在各領域的應用

6-2程式設計步驟

6-2-1分析

6-2-2設計

6-2-3實作

6-2-4 測試與修正

教學節數 12 節 (62)

先備知識 具備基本 BASIC 程式語言能力

教學活動

機器人歷史簡介BASIC Commander 系統介紹Education Board 教育版介紹

innoBASIC 程式語言介紹Servo Commander 16 控制器介紹機器人零組件模

組介紹組裝伺服機與機構介紹Robotinno 機器人控制程式介紹機器人專

題製作應用範例簡介

評量方法 1隨堂問答 3機器人專題製作

2課堂觀察 4小組競賽

參考資源

1利基機器人官方網站httpwwwinnovaticomtwwebsiteindexphp

2蘇國嵐羅仁權等機器人原理與實務寶典宏友圖書

3康仕仲等(2009)百變樂高機器人台北悅知文化

4楊旺枝(2007)PIC 單晶片機器人專題製作-使用 Basic台北台科大圖書

5智慧型機器人技術種子教師研習教材(2010)萬能科技大學管理與資訊系

光電工程系

6台灣維基百科全書httpzhwikipediaorgzh-tw搜尋條目機器人

7The LEGO Mindstorms NXT idea book Syngress press

8台灣玉山機器人協會httpwwweraorgtwindexphp

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 3 頁

貳貳貳貳教學活動計畫教學活動計畫教學活動計畫教學活動計畫((((敘述教學活動細節敘述教學活動細節敘述教學活動細節敘述教學活動細節教學工具教學工具教學工具教學工具教學策略等教學策略等教學策略等教學策略等))))

教學活動教學活動教學活動教學活動(第第第第 1 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1111機器人歷史簡介機器人歷史簡介機器人歷史簡介機器人歷史簡介 30 1生活處處有科學生活處處有科學生活處處有科學生活處處有科學生活時時用科學生活時時用科學生活時時用科學生活時時用科學

德國哲學家尼采說德國哲學家尼采說德國哲學家尼采說德國哲學家尼采說「「「「人類因夢想而偉大人類因夢想而偉大人類因夢想而偉大人類因夢想而偉大」」」」所以人類

是一種「先有想法 才有做法」的動物芬蘭芬蘭芬蘭芬蘭 NokiaNokiaNokiaNokia 手機廣手機廣手機廣手機廣

告詞告詞告詞告詞「「「「科技始終來自於人性科技始終來自於人性科技始終來自於人性科技始終來自於人性」」」」人性的特色之一就是好

逸惡勞的「懶惰」所以人類「「「「因懶惰而夢想因懶惰而夢想因懶惰而夢想因懶惰而夢想因夢想而因夢想而因夢想而因夢想而

科技科技科技科技因科技而偉大因科技而偉大因科技而偉大因科技而偉大」」」」

例人類懶得走路所以有車人類懶得開車所以有公

共汽車車子太慢所以有飛機飛機太慢所以有火箭

2詞源詞源詞源詞源機器人(自動控制機器)一詞最早出現在西元

1920年捷克科幻作家恰配克的《羅索姆的萬能機器人》

中原文作「Robota」後來成為西文中通行的「Robot」

1967年日本科學家森政弘與合田周平提出「機器人是一

種具有移動性個體性智能性通用性半機械半人性

自動性奴隸性等7個特徵的柔性機器」

3機器人機器人機器人機器人是是是是自動控制機器自動控制機器自動控制機器自動控制機器(Robot)的俗稱自動控制機

器包括一切模擬人類行為或思想與模擬其他生物的機械

(如機器狗機器狗機器狗機器狗機器貓機器貓機器貓機器貓等)狹義上對機器人的定義還有很

多分類法及爭議有些電腦程序甚至也被稱為機器人在

當代工業中機器人指能自動執行任務的人造機器裝置

用以取代或協助人類工作

理想中的高模擬機器人是高級整合控制論機械電

子計算機與人工智慧材料學和仿生學的產物目前科

學界正在向此方向研究開發有關機器人的話題常見於

科幻作品中

日本 HONDA 機器人原型 ASIMO

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 4 頁

4 機器人的種類與演變機器人的種類與演變機器人的種類與演變機器人的種類與演變

當代應用機器人

今天對人類來說太髒太累太危險太精細太

粗重或太反覆無聊的工作常常由機器人代勞從事製造

業的工廠里的生產線就應用了很多工業機器人其他應用

領域還包括建築業石油鑽探礦石開採太空探索

水下探索毒害物質清理搜救醫學軍事領域等

41 工業機器人工業機器人工業機器人工業機器人

一個工業機器人可以僅包括一個感覺與動作之間的

連結而且這個連結不是由人手動操控的機器人的動作

也許是電動機或是驅動器(也稱效應器)移動一隻手臂

張開或關閉一個夾子的動作此種直接而詳盡的控制跟回

饋也許是由在外部或是嵌入式的電子計算機或是微控制

器上運行的程式提供根據這個定義所有的自動裝置都

算機器人

工業機器人可直接接受人類指令也可以執行預先編

排的程序也可以根據以人工智慧技術制定的原則綱領行

工業機器人

42 寵物寵物寵物寵物玩偶類機器人玩偶類機器人玩偶類機器人玩偶類機器人

機器人也可以僅作玩具用途甚至成為人類生活的寵物和

伴侶日本 Sony 公司推出的「Aibo」機器寵物就是一個

實例

寵物機器狗

43 動漫動漫動漫動漫遊戲的機器人遊戲的機器人遊戲的機器人遊戲的機器人

在青少年流行文化中機器人題材自幾十年前就開始

在世界範圍內盛行《原子小金剛》《變形金剛》《機

動戰士鋼彈》等機器人動畫將此題材推向高峰

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 5 頁

這些作品通常將機器人描畫為具有人類軀幹特徵(甚

至感情)的金屬人並以其強勁的能力作戰

44 模擬和社交機器人模擬和社交機器人模擬和社交機器人模擬和社交機器人

有些機器人被開發出來純粹是以模模擬人作為目的

的這些模仿既可以是外觀與動作行為上的又可以是思

想感情上的理論上講要做出外觀行為思想都非常

接近真人的機器人在目前還有不可跨越的技術難度但

在未來並不是不可能的事而如何利用及控制那類高模擬

機器人它們與人類關係又將如何早已成為科幻界一個

長期話題

在2001年美國麻省理工學院打破歷史傳統研發了

世界上第一個有模擬感情的機器人Kismet

理想中的高模擬機器人是高級整合控制論機械電子計

算機與人工智慧材料學和仿生學的產物目前科學界正

在向此方向研究開發

2005 年日本世界博覽會愛知縣展出的女性模擬機器人

45 醫學醫學醫學醫學上機器人上機器人上機器人上機器人

在一些醫學手術上醫生會使用機械人來切割出一個

長及闊均為百分之一吋開口人類本身是很難準確地遭出

這種切口

46 探險探險探險探險及及及及危險工作危險工作危險工作危險工作機器人機器人機器人機器人

人類去探險的地方如外太空及深海都充滿了危

機探險機器人攜帶著攝影機及各種觀測設備都收集到

的資料傳送回控制基地減少人類冒生命危險的次數

2222 艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫 (((( Isaac Isaac Isaac Isaac

AAAAsimov 1920simov 1920simov 1920simov 1920----1992199219921992))))

機器人三定律機器人三定律機器人三定律機器人三定律

15 機器人三大法則機器人三大法則機器人三大法則機器人三大法則(Three Laws of RoboticsThree Laws of RoboticsThree Laws of RoboticsThree Laws of Robotics)二十世紀

科幻文壇的超級大師也是舉世聞名的全能通俗作家是

公認的「現代機器人小說之父」他於一九四二年所創立

的「機械人三大法則」

第一法則第一法則第一法則第一法則

機器人不得傷害人類或袖手旁觀坐視人類受到傷害

第二法則第二法則第二法則第二法則

除非違背第一法則機器人必須服從人類的命令

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 6 頁

第第第第三法則三法則三法則三法則

在不違背第一及第二法則下機器人必須保護自己

機器人被設計為遵守這些準則違反準則會導致機器

人受到不可恢復的心理損壞

3333機器人的定義機器人的定義機器人的定義機器人的定義 5 聯合國標準化組織採納了美國機器人協會給機器人

下的定義ldquoldquoldquoldquo一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的用來搬運材料用來搬運材料用來搬運材料用來搬運材料零零零零

件件件件工具的操作機工具的操作機工具的操作機工具的操作機或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改

變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統rdquordquordquordquo機器人機器人機器人機器人是靠自身動力自身動力自身動力自身動力和控控控控

制能力制能力制能力制能力來實現各種功能的一種機器

教學活動教學活動教學活動教學活動(第第第第 2 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第一章第一章第一章第一章 BASIC

Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

50 第一章第一章第一章第一章 BASIC Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

電腦解題工具有許多種在此以解決機器人克服難關

問題為例佐以市面上較常見到的利基機器人套件並從

中學得問題解決方法的基本流程

圖 1-1 BASIC Commanderreg 與 and innoBASICtrade

Workshop 系統架構圖

本系統包含了幾個部份轒 innoBASICtrade Workshop

是一個安裝在電腦上的軟體平台提供使用者以

innoBASICtrade程式語言編輯編譯及下載程式終端視窗

(Terminal Window) 是程式執行時的人機介面及除錯平

台完成的程式碼透過 USB 介面下載到 BASIC

Commanderreg 單板電腦(Single Board Computer)這也

是系統的核心部份

BASIC Commanderreg提供三種資源轒第一個是通用

的IO第二個是cmdBUStrade透過它可同時並聯32個利基

科技的週邊模組第三個是DEBUG介面用來讓

innoBASICtrade Workshop 終端視窗對

BASICCommanderreg 上傳或下傳資料DEBUG介面不僅

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 3 頁

貳貳貳貳教學活動計畫教學活動計畫教學活動計畫教學活動計畫((((敘述教學活動細節敘述教學活動細節敘述教學活動細節敘述教學活動細節教學工具教學工具教學工具教學工具教學策略等教學策略等教學策略等教學策略等))))

教學活動教學活動教學活動教學活動(第第第第 1 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1111機器人歷史簡介機器人歷史簡介機器人歷史簡介機器人歷史簡介 30 1生活處處有科學生活處處有科學生活處處有科學生活處處有科學生活時時用科學生活時時用科學生活時時用科學生活時時用科學

德國哲學家尼采說德國哲學家尼采說德國哲學家尼采說德國哲學家尼采說「「「「人類因夢想而偉大人類因夢想而偉大人類因夢想而偉大人類因夢想而偉大」」」」所以人類

是一種「先有想法 才有做法」的動物芬蘭芬蘭芬蘭芬蘭 NokiaNokiaNokiaNokia 手機廣手機廣手機廣手機廣

告詞告詞告詞告詞「「「「科技始終來自於人性科技始終來自於人性科技始終來自於人性科技始終來自於人性」」」」人性的特色之一就是好

逸惡勞的「懶惰」所以人類「「「「因懶惰而夢想因懶惰而夢想因懶惰而夢想因懶惰而夢想因夢想而因夢想而因夢想而因夢想而

科技科技科技科技因科技而偉大因科技而偉大因科技而偉大因科技而偉大」」」」

例人類懶得走路所以有車人類懶得開車所以有公

共汽車車子太慢所以有飛機飛機太慢所以有火箭

2詞源詞源詞源詞源機器人(自動控制機器)一詞最早出現在西元

1920年捷克科幻作家恰配克的《羅索姆的萬能機器人》

中原文作「Robota」後來成為西文中通行的「Robot」

1967年日本科學家森政弘與合田周平提出「機器人是一

種具有移動性個體性智能性通用性半機械半人性

自動性奴隸性等7個特徵的柔性機器」

3機器人機器人機器人機器人是是是是自動控制機器自動控制機器自動控制機器自動控制機器(Robot)的俗稱自動控制機

器包括一切模擬人類行為或思想與模擬其他生物的機械

(如機器狗機器狗機器狗機器狗機器貓機器貓機器貓機器貓等)狹義上對機器人的定義還有很

多分類法及爭議有些電腦程序甚至也被稱為機器人在

當代工業中機器人指能自動執行任務的人造機器裝置

用以取代或協助人類工作

理想中的高模擬機器人是高級整合控制論機械電

子計算機與人工智慧材料學和仿生學的產物目前科

學界正在向此方向研究開發有關機器人的話題常見於

科幻作品中

日本 HONDA 機器人原型 ASIMO

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 4 頁

4 機器人的種類與演變機器人的種類與演變機器人的種類與演變機器人的種類與演變

當代應用機器人

今天對人類來說太髒太累太危險太精細太

粗重或太反覆無聊的工作常常由機器人代勞從事製造

業的工廠里的生產線就應用了很多工業機器人其他應用

領域還包括建築業石油鑽探礦石開採太空探索

水下探索毒害物質清理搜救醫學軍事領域等

41 工業機器人工業機器人工業機器人工業機器人

一個工業機器人可以僅包括一個感覺與動作之間的

連結而且這個連結不是由人手動操控的機器人的動作

也許是電動機或是驅動器(也稱效應器)移動一隻手臂

張開或關閉一個夾子的動作此種直接而詳盡的控制跟回

饋也許是由在外部或是嵌入式的電子計算機或是微控制

器上運行的程式提供根據這個定義所有的自動裝置都

算機器人

工業機器人可直接接受人類指令也可以執行預先編

排的程序也可以根據以人工智慧技術制定的原則綱領行

工業機器人

42 寵物寵物寵物寵物玩偶類機器人玩偶類機器人玩偶類機器人玩偶類機器人

機器人也可以僅作玩具用途甚至成為人類生活的寵物和

伴侶日本 Sony 公司推出的「Aibo」機器寵物就是一個

實例

寵物機器狗

43 動漫動漫動漫動漫遊戲的機器人遊戲的機器人遊戲的機器人遊戲的機器人

在青少年流行文化中機器人題材自幾十年前就開始

在世界範圍內盛行《原子小金剛》《變形金剛》《機

動戰士鋼彈》等機器人動畫將此題材推向高峰

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 5 頁

這些作品通常將機器人描畫為具有人類軀幹特徵(甚

至感情)的金屬人並以其強勁的能力作戰

44 模擬和社交機器人模擬和社交機器人模擬和社交機器人模擬和社交機器人

有些機器人被開發出來純粹是以模模擬人作為目的

的這些模仿既可以是外觀與動作行為上的又可以是思

想感情上的理論上講要做出外觀行為思想都非常

接近真人的機器人在目前還有不可跨越的技術難度但

在未來並不是不可能的事而如何利用及控制那類高模擬

機器人它們與人類關係又將如何早已成為科幻界一個

長期話題

在2001年美國麻省理工學院打破歷史傳統研發了

世界上第一個有模擬感情的機器人Kismet

理想中的高模擬機器人是高級整合控制論機械電子計

算機與人工智慧材料學和仿生學的產物目前科學界正

在向此方向研究開發

2005 年日本世界博覽會愛知縣展出的女性模擬機器人

45 醫學醫學醫學醫學上機器人上機器人上機器人上機器人

在一些醫學手術上醫生會使用機械人來切割出一個

長及闊均為百分之一吋開口人類本身是很難準確地遭出

這種切口

46 探險探險探險探險及及及及危險工作危險工作危險工作危險工作機器人機器人機器人機器人

人類去探險的地方如外太空及深海都充滿了危

機探險機器人攜帶著攝影機及各種觀測設備都收集到

的資料傳送回控制基地減少人類冒生命危險的次數

2222 艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫 (((( Isaac Isaac Isaac Isaac

AAAAsimov 1920simov 1920simov 1920simov 1920----1992199219921992))))

機器人三定律機器人三定律機器人三定律機器人三定律

15 機器人三大法則機器人三大法則機器人三大法則機器人三大法則(Three Laws of RoboticsThree Laws of RoboticsThree Laws of RoboticsThree Laws of Robotics)二十世紀

科幻文壇的超級大師也是舉世聞名的全能通俗作家是

公認的「現代機器人小說之父」他於一九四二年所創立

的「機械人三大法則」

第一法則第一法則第一法則第一法則

機器人不得傷害人類或袖手旁觀坐視人類受到傷害

第二法則第二法則第二法則第二法則

除非違背第一法則機器人必須服從人類的命令

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 6 頁

第第第第三法則三法則三法則三法則

在不違背第一及第二法則下機器人必須保護自己

機器人被設計為遵守這些準則違反準則會導致機器

人受到不可恢復的心理損壞

3333機器人的定義機器人的定義機器人的定義機器人的定義 5 聯合國標準化組織採納了美國機器人協會給機器人

下的定義ldquoldquoldquoldquo一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的用來搬運材料用來搬運材料用來搬運材料用來搬運材料零零零零

件件件件工具的操作機工具的操作機工具的操作機工具的操作機或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改

變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統rdquordquordquordquo機器人機器人機器人機器人是靠自身動力自身動力自身動力自身動力和控控控控

制能力制能力制能力制能力來實現各種功能的一種機器

教學活動教學活動教學活動教學活動(第第第第 2 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第一章第一章第一章第一章 BASIC

Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

50 第一章第一章第一章第一章 BASIC Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

電腦解題工具有許多種在此以解決機器人克服難關

問題為例佐以市面上較常見到的利基機器人套件並從

中學得問題解決方法的基本流程

圖 1-1 BASIC Commanderreg 與 and innoBASICtrade

Workshop 系統架構圖

本系統包含了幾個部份轒 innoBASICtrade Workshop

是一個安裝在電腦上的軟體平台提供使用者以

innoBASICtrade程式語言編輯編譯及下載程式終端視窗

(Terminal Window) 是程式執行時的人機介面及除錯平

台完成的程式碼透過 USB 介面下載到 BASIC

Commanderreg 單板電腦(Single Board Computer)這也

是系統的核心部份

BASIC Commanderreg提供三種資源轒第一個是通用

的IO第二個是cmdBUStrade透過它可同時並聯32個利基

科技的週邊模組第三個是DEBUG介面用來讓

innoBASICtrade Workshop 終端視窗對

BASICCommanderreg 上傳或下傳資料DEBUG介面不僅

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 4 頁

4 機器人的種類與演變機器人的種類與演變機器人的種類與演變機器人的種類與演變

當代應用機器人

今天對人類來說太髒太累太危險太精細太

粗重或太反覆無聊的工作常常由機器人代勞從事製造

業的工廠里的生產線就應用了很多工業機器人其他應用

領域還包括建築業石油鑽探礦石開採太空探索

水下探索毒害物質清理搜救醫學軍事領域等

41 工業機器人工業機器人工業機器人工業機器人

一個工業機器人可以僅包括一個感覺與動作之間的

連結而且這個連結不是由人手動操控的機器人的動作

也許是電動機或是驅動器(也稱效應器)移動一隻手臂

張開或關閉一個夾子的動作此種直接而詳盡的控制跟回

饋也許是由在外部或是嵌入式的電子計算機或是微控制

器上運行的程式提供根據這個定義所有的自動裝置都

算機器人

工業機器人可直接接受人類指令也可以執行預先編

排的程序也可以根據以人工智慧技術制定的原則綱領行

工業機器人

42 寵物寵物寵物寵物玩偶類機器人玩偶類機器人玩偶類機器人玩偶類機器人

機器人也可以僅作玩具用途甚至成為人類生活的寵物和

伴侶日本 Sony 公司推出的「Aibo」機器寵物就是一個

實例

寵物機器狗

43 動漫動漫動漫動漫遊戲的機器人遊戲的機器人遊戲的機器人遊戲的機器人

在青少年流行文化中機器人題材自幾十年前就開始

在世界範圍內盛行《原子小金剛》《變形金剛》《機

動戰士鋼彈》等機器人動畫將此題材推向高峰

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 5 頁

這些作品通常將機器人描畫為具有人類軀幹特徵(甚

至感情)的金屬人並以其強勁的能力作戰

44 模擬和社交機器人模擬和社交機器人模擬和社交機器人模擬和社交機器人

有些機器人被開發出來純粹是以模模擬人作為目的

的這些模仿既可以是外觀與動作行為上的又可以是思

想感情上的理論上講要做出外觀行為思想都非常

接近真人的機器人在目前還有不可跨越的技術難度但

在未來並不是不可能的事而如何利用及控制那類高模擬

機器人它們與人類關係又將如何早已成為科幻界一個

長期話題

在2001年美國麻省理工學院打破歷史傳統研發了

世界上第一個有模擬感情的機器人Kismet

理想中的高模擬機器人是高級整合控制論機械電子計

算機與人工智慧材料學和仿生學的產物目前科學界正

在向此方向研究開發

2005 年日本世界博覽會愛知縣展出的女性模擬機器人

45 醫學醫學醫學醫學上機器人上機器人上機器人上機器人

在一些醫學手術上醫生會使用機械人來切割出一個

長及闊均為百分之一吋開口人類本身是很難準確地遭出

這種切口

46 探險探險探險探險及及及及危險工作危險工作危險工作危險工作機器人機器人機器人機器人

人類去探險的地方如外太空及深海都充滿了危

機探險機器人攜帶著攝影機及各種觀測設備都收集到

的資料傳送回控制基地減少人類冒生命危險的次數

2222 艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫 (((( Isaac Isaac Isaac Isaac

AAAAsimov 1920simov 1920simov 1920simov 1920----1992199219921992))))

機器人三定律機器人三定律機器人三定律機器人三定律

15 機器人三大法則機器人三大法則機器人三大法則機器人三大法則(Three Laws of RoboticsThree Laws of RoboticsThree Laws of RoboticsThree Laws of Robotics)二十世紀

科幻文壇的超級大師也是舉世聞名的全能通俗作家是

公認的「現代機器人小說之父」他於一九四二年所創立

的「機械人三大法則」

第一法則第一法則第一法則第一法則

機器人不得傷害人類或袖手旁觀坐視人類受到傷害

第二法則第二法則第二法則第二法則

除非違背第一法則機器人必須服從人類的命令

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 6 頁

第第第第三法則三法則三法則三法則

在不違背第一及第二法則下機器人必須保護自己

機器人被設計為遵守這些準則違反準則會導致機器

人受到不可恢復的心理損壞

3333機器人的定義機器人的定義機器人的定義機器人的定義 5 聯合國標準化組織採納了美國機器人協會給機器人

下的定義ldquoldquoldquoldquo一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的用來搬運材料用來搬運材料用來搬運材料用來搬運材料零零零零

件件件件工具的操作機工具的操作機工具的操作機工具的操作機或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改

變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統rdquordquordquordquo機器人機器人機器人機器人是靠自身動力自身動力自身動力自身動力和控控控控

制能力制能力制能力制能力來實現各種功能的一種機器

教學活動教學活動教學活動教學活動(第第第第 2 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第一章第一章第一章第一章 BASIC

Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

50 第一章第一章第一章第一章 BASIC Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

電腦解題工具有許多種在此以解決機器人克服難關

問題為例佐以市面上較常見到的利基機器人套件並從

中學得問題解決方法的基本流程

圖 1-1 BASIC Commanderreg 與 and innoBASICtrade

Workshop 系統架構圖

本系統包含了幾個部份轒 innoBASICtrade Workshop

是一個安裝在電腦上的軟體平台提供使用者以

innoBASICtrade程式語言編輯編譯及下載程式終端視窗

(Terminal Window) 是程式執行時的人機介面及除錯平

台完成的程式碼透過 USB 介面下載到 BASIC

Commanderreg 單板電腦(Single Board Computer)這也

是系統的核心部份

BASIC Commanderreg提供三種資源轒第一個是通用

的IO第二個是cmdBUStrade透過它可同時並聯32個利基

科技的週邊模組第三個是DEBUG介面用來讓

innoBASICtrade Workshop 終端視窗對

BASICCommanderreg 上傳或下傳資料DEBUG介面不僅

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 5 頁

這些作品通常將機器人描畫為具有人類軀幹特徵(甚

至感情)的金屬人並以其強勁的能力作戰

44 模擬和社交機器人模擬和社交機器人模擬和社交機器人模擬和社交機器人

有些機器人被開發出來純粹是以模模擬人作為目的

的這些模仿既可以是外觀與動作行為上的又可以是思

想感情上的理論上講要做出外觀行為思想都非常

接近真人的機器人在目前還有不可跨越的技術難度但

在未來並不是不可能的事而如何利用及控制那類高模擬

機器人它們與人類關係又將如何早已成為科幻界一個

長期話題

在2001年美國麻省理工學院打破歷史傳統研發了

世界上第一個有模擬感情的機器人Kismet

理想中的高模擬機器人是高級整合控制論機械電子計

算機與人工智慧材料學和仿生學的產物目前科學界正

在向此方向研究開發

2005 年日本世界博覽會愛知縣展出的女性模擬機器人

45 醫學醫學醫學醫學上機器人上機器人上機器人上機器人

在一些醫學手術上醫生會使用機械人來切割出一個

長及闊均為百分之一吋開口人類本身是很難準確地遭出

這種切口

46 探險探險探險探險及及及及危險工作危險工作危險工作危險工作機器人機器人機器人機器人

人類去探險的地方如外太空及深海都充滿了危

機探險機器人攜帶著攝影機及各種觀測設備都收集到

的資料傳送回控制基地減少人類冒生命危險的次數

2222 艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫艾 西 莫 夫 (((( Isaac Isaac Isaac Isaac

AAAAsimov 1920simov 1920simov 1920simov 1920----1992199219921992))))

機器人三定律機器人三定律機器人三定律機器人三定律

15 機器人三大法則機器人三大法則機器人三大法則機器人三大法則(Three Laws of RoboticsThree Laws of RoboticsThree Laws of RoboticsThree Laws of Robotics)二十世紀

科幻文壇的超級大師也是舉世聞名的全能通俗作家是

公認的「現代機器人小說之父」他於一九四二年所創立

的「機械人三大法則」

第一法則第一法則第一法則第一法則

機器人不得傷害人類或袖手旁觀坐視人類受到傷害

第二法則第二法則第二法則第二法則

除非違背第一法則機器人必須服從人類的命令

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 6 頁

第第第第三法則三法則三法則三法則

在不違背第一及第二法則下機器人必須保護自己

機器人被設計為遵守這些準則違反準則會導致機器

人受到不可恢復的心理損壞

3333機器人的定義機器人的定義機器人的定義機器人的定義 5 聯合國標準化組織採納了美國機器人協會給機器人

下的定義ldquoldquoldquoldquo一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的用來搬運材料用來搬運材料用來搬運材料用來搬運材料零零零零

件件件件工具的操作機工具的操作機工具的操作機工具的操作機或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改

變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統rdquordquordquordquo機器人機器人機器人機器人是靠自身動力自身動力自身動力自身動力和控控控控

制能力制能力制能力制能力來實現各種功能的一種機器

教學活動教學活動教學活動教學活動(第第第第 2 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第一章第一章第一章第一章 BASIC

Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

50 第一章第一章第一章第一章 BASIC Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

電腦解題工具有許多種在此以解決機器人克服難關

問題為例佐以市面上較常見到的利基機器人套件並從

中學得問題解決方法的基本流程

圖 1-1 BASIC Commanderreg 與 and innoBASICtrade

Workshop 系統架構圖

本系統包含了幾個部份轒 innoBASICtrade Workshop

是一個安裝在電腦上的軟體平台提供使用者以

innoBASICtrade程式語言編輯編譯及下載程式終端視窗

(Terminal Window) 是程式執行時的人機介面及除錯平

台完成的程式碼透過 USB 介面下載到 BASIC

Commanderreg 單板電腦(Single Board Computer)這也

是系統的核心部份

BASIC Commanderreg提供三種資源轒第一個是通用

的IO第二個是cmdBUStrade透過它可同時並聯32個利基

科技的週邊模組第三個是DEBUG介面用來讓

innoBASICtrade Workshop 終端視窗對

BASICCommanderreg 上傳或下傳資料DEBUG介面不僅

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 6 頁

第第第第三法則三法則三法則三法則

在不違背第一及第二法則下機器人必須保護自己

機器人被設計為遵守這些準則違反準則會導致機器

人受到不可恢復的心理損壞

3333機器人的定義機器人的定義機器人的定義機器人的定義 5 聯合國標準化組織採納了美國機器人協會給機器人

下的定義ldquoldquoldquoldquo一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的一種可編程和多功能的用來搬運材料用來搬運材料用來搬運材料用來搬運材料零零零零

件件件件工具的操作機工具的操作機工具的操作機工具的操作機或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改或是為了執行不同的任務而具有可改

變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統變和可編程動作的專門系統rdquordquordquordquo機器人機器人機器人機器人是靠自身動力自身動力自身動力自身動力和控控控控

制能力制能力制能力制能力來實現各種功能的一種機器

教學活動教學活動教學活動教學活動(第第第第 2 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第一章第一章第一章第一章 BASIC

Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

50 第一章第一章第一章第一章 BASIC Commander 系統介紹系統介紹系統介紹系統介紹

11 系統環境系統環境系統環境系統環境

電腦解題工具有許多種在此以解決機器人克服難關

問題為例佐以市面上較常見到的利基機器人套件並從

中學得問題解決方法的基本流程

圖 1-1 BASIC Commanderreg 與 and innoBASICtrade

Workshop 系統架構圖

本系統包含了幾個部份轒 innoBASICtrade Workshop

是一個安裝在電腦上的軟體平台提供使用者以

innoBASICtrade程式語言編輯編譯及下載程式終端視窗

(Terminal Window) 是程式執行時的人機介面及除錯平

台完成的程式碼透過 USB 介面下載到 BASIC

Commanderreg 單板電腦(Single Board Computer)這也

是系統的核心部份

BASIC Commanderreg提供三種資源轒第一個是通用

的IO第二個是cmdBUStrade透過它可同時並聯32個利基

科技的週邊模組第三個是DEBUG介面用來讓

innoBASICtrade Workshop 終端視窗對

BASICCommanderreg 上傳或下傳資料DEBUG介面不僅

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 7 頁

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

((((電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元電腦硬體基本單元mdashmdashmdashmdash

基本單元間的關係基本單元間的關係基本單元間的關係基本單元間的關係))))

作為除錯使用它同時也是一個方便的人機介面

12 BASIC Commander 單板電腦單板電腦單板電腦單板電腦

BASIC Commander 是一個完整的單板電腦(Single

Board Computer簡稱 SBC)它是控制整個專案的核心

它上面的主要元件包括有一顆工業等級微控制器一些時

脈電路USB 介面等等它的外觀如附圖 1-11-2 所示

圖 1-1 24 引腳 BASIC Commander

圖 1-2 32 引腳 BASIC Commander

BASIC Commander 有 24-pin 及 32-pin 二種模組形

式接腳與接腳之間的寬度為標準的 01 英吋可相容應

用於標準的PCB插槽和麵包板每支接腳的功能如表1-1

表1-1 腳位功能

當單獨使用BASIC Commanderreg做應用時VIN接腳

必須接上未穩壓的6~12

V直流電源或VCC接腳接上已穩壓的5V直流電源SDL

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 8 頁

13 Education Board教育板教育板教育板教育板

14 電源供給電源供給電源供給電源供給

SDAEVTSYN 連同

VCC和GND接腳組成cmdBUStrade它是一組可共用的訊號

線連接BASIC Commanderreg與多個外接模組所有外

接模組都透過這組cmdBUS與BASIC Commanderreg溝

通一個BASIC Commanderreg最多可同時外掛32個模

組建議6線的cmdBUS線盡量越短越好以避免雜散電

容影響資料傳輸效率

BASIC Commanderreg硬體上有二個LED燈平常操

作時二個燈都被關掉但

當 BASIC Commanderreg與電腦做傳輸時其中的綠燈將

被點亮而當 BASIC Commanderreg與週邊模組做傳輸

時其中的黃燈將被點亮

13 Education Board 教育板教育板教育板教育板

大部分的專案都需要外加一些零件教育板上有一塊

小麵包板可供使用者在上面插上所需的零件例如轒開

關發光二極體電阻電容等等教育板上也提供BASIC

Commanderreg IO腳的插槽方便直接使用BASIC

Commanderreg內建的IO功能它的外觀如附圖1-3所示

圖 1-3 教育板(Education Board)

教育板上有一個32-pin的腳座不論是24-pin或

32-pin的BASICCommanderreg均可直接插在上面使用特

別注意插上BASIC Commanderreg時須依照板子上的方向

提示圖案小心插上避免因方向錯誤造成

BASICCommanderreg損壞

請務必小心注意插上BASIC Commanderreg時的方

向方向錯誤將導致BASIC Commanderreg無法挽回的損

壞建議在關閉電源的情況之下插上BASIC

Commanderreg開啟電源前再次確認方向是否正確

14電源供給電源供給電源供給電源供給

教育板的電力來源有二種選擇轒第一來自USB埠者

稱為VCC其插孔位於麵包板的旁邊當USB線接上

BASIC Commanderreg時 BASICCommanderreg腳座旁邊

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 9 頁

的LED將被點亮但因USB埠最多只能提供500mA的電

力因此對於較大功率的應用就必須使用外加電源第

二就是外加電源VIN使用者可選擇直接以6-12V DC電

源插上板子上的電源插銷或者插上一個6-12V DC電源供

應器或者接上一個9V的鈕扣電池教育板會將VIN穩壓

成5伏特的VDD使用其可提供的最大電流為1安培當使

用VIN電源時教育板中央位置的LED將被點亮

在標記為 X4 的位置有四組伺服馬達的接頭標記分別為

P8P9P10P11可讓使用者接上四個伺服馬達伺

服馬達的電源可在X5的位置利用跳接插銷來選擇VDD或

VIN使用伺服馬達時為了節省 9V 電池的功率消耗可將

滑動開關的位置從 2 切到 1這樣就可關掉對伺服馬達的

電源供應

教育板上的滑動開關是用來切換電源用的切到 0

時VDD 關掉切到 1 時 VDD 打開但 X4 上的 VIN 則關

掉切到 2 時VDD 及 X4 上的 VIN 則均打開只要 VDD

被打開VDD 的指示燈就會被點亮請參考下表

RESET按鍵用來重置BASIC Commanderreg程式重

新開始執行

教育板上有四組cmdBUStrade的接頭可分別接上四

條6線的cmdBUStrade排線用來連接利基科技的周邊模

組下表是教育板上各接頭及開關的簡單說明

教育板上共有 2 個發光二極體( LED )一個在 BASIC

Commanderreg腳座旁邊點亮時表示 USB 接頭已經連上

USB 埠另一個在教育板的中央附近點亮時表示已經接

上外部電源

教學活動教學活動教學活動教學活動(第第第第 3 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

第二章第二章第二章第二章 innoBASIC 程程程程

式語言式語言式語言式語言 (--------基礎程式設基礎程式設基礎程式設基礎程式設

計計計計)

21 簡介簡介簡介簡介

50 第二章第二章第二章第二章 innoBASIC 程式語言程式語言程式語言程式語言

21 簡介簡介簡介簡介

innoBASICtrade是專為利基科技的BASIC

Commanderreg系統開發的高階程式語言它雖然是一套簡

單易學的程式語言但它強大的功能也適合有經驗的使用

者使用以下的例子將引導您開始進入innoBASICtrade 的有

趣世界

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 10 頁

22 敘述敘述敘述敘述

23 註釋註釋註釋註釋

24 識別字識別字識別字識別字

25 關鍵字關鍵字關鍵字關鍵字

26常數常數常數常數資料型態資料型態資料型態資料型態

22 敘述敘述敘述敘述

程式中的敘述(Statements)讓編譯器將命令編譯成可

執行的對應程式碼敘述可以包含常數變數運算子以

及函數用來定義常數宣告變數執行算術及邏輯運算

以及執行程式控制轉換及宣告副程式

通常一個敘述使用一行但如果有許多比較短的敘述

要表示時為了方便閱讀可以將它們組成一行但敘述

之間要用冒號ldquo轒rdquo分開

如果比較長的敘述會超過一行時可用一個底線ldquo_rdquo加上一

個空格來做連接以下是一個參考的例子

23 註釋註釋註釋註釋

以撇號開頭的文字用來代表註釋(Comments)例

除非是字串值否則所有撇號右邊的文字都被視為註釋

不會被編 譯器所編譯請注意註釋不能做行的連接

24 識別字識別字識別字識別字

識別字(Identifiers)是一個名字必須以英文字開頭

後面跟著英文字母數字或底線最大長度為31個沒

有大小寫的區分請注意關鍵字不能當識別字使用

25 關鍵字關鍵字關鍵字關鍵字

關鍵字(Keywords)是一些有特殊意義的保留字不可

以被拿來當識別字使用請參閱附錄B該處列出所有

innoBASICtrade語言的關鍵字

26 常數常數常數常數資料型態資料型態資料型態資料型態

常數是一個固定值它不會因為程式的執行而改變

宣告時須以關鍵字CONST宣告其型式如下

CONST Constname As Type = value

以下是宣告常數的例子

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 11 頁

常數值需符合所給的型態常數隱含有可被整個程式

擷取的意義所以它必須以全域宣告常數亦可宣告為陣

列但其資料型態不可以是其它常數字串或陣列

教學活動教學活動教學活動教學活動(第第第第 4 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno

innoBASICTM 基本指基本指基本指基本指

令令令令

2 innoBASIC 輸出入輸出入輸出入輸出入

命令命令命令命令

3 innoBASIC 數學及數學及數學及數學及

轉換命令轉換命令轉換命令轉換命令

50 1智慧型二足機器人智慧型二足機器人智慧型二足機器人智慧型二足機器人

16 軸機器軸機器軸機器軸機器-Robotinno innoBASICTM 基本指令基本指令基本指令基本指令

innoBASICTM 基本指令基本指令基本指令基本指令

DIM PERIPHERAL ENUM hellip END ENUM IF hellipTHEN hellip ELSE DOhellip LOOP SELECThellip CASE FORhellip NEXT GOTO RETURN CALL SUB hellip END SUB FUNCTIONhellipEND FUNCTION EVENT hellip END EVENT etc 2 innoBASIC 輸出入命令輸出入命令輸出入命令輸出入命令

BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT 3 innoBASIC 數學及轉換命令數學及轉換命令數學及轉換命令數學及轉換命令

PAUSE RANDOM ABS

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 12 頁

4範例範例範例範例-- PWM 命令命令命令命令

SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 4範例範例範例範例-- PWM 命令命令命令命令

PWM Pin Duty Cycles 以 PWM 訊號輸出模擬類比訊號

Pin ndash 常數或變數值(0-23)用來指定產生 PWM

的引腳初始時這個引腳會被設成輸出模式當指令完成

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 13 頁

時會設為輸入模式

Duty ndash 常數或變數值 (0~255)用來定義輸出波

形的工作週期(佔空比)

Cycles ndash 定義 PWM 輸出產生所需的週期數(大約每個循

環 115 ms) 實際上也就是定義 PWM 輸出運作的時間

Cycles 為 0 將不會產生 PWM 輸出它的值可以是常數

變數或是一個表示式而且必須在範圍 0-255 之間

教學活動教學活動教學活動教學活動(第第第第 5 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1控制器控制器控制器控制器- Servo

Commander 16 2 RC Servos of Robotinno 3 Principles of RC Servo Control

50 1控制器控制器控制器控制器- Servo Commander 16

Robotinno 兩足機器人 35 公分高它可以直接使用動

作編輯器將動作以分鏡的方式儲存起來稱之為 frame

透過程式將這些 frame 依指定順序執行機器人即可流暢

連貫所有的動作

16 軸智慧型機器人

2 RC Servos of Robotinno

3 Principles of RC Servo Control

4利基利基利基利基mdashServo Commander 16 控制器控制器控制器控制器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 14 頁

4利基利基利基利基mdash

Servo Commander 16 控控控控

制器制器制器制器(電腦硬體基本單電腦硬體基本單電腦硬體基本單電腦硬體基本單

元元元元--)

5 SC16 Servo Control Board 6 電源供應器電源供應器電源供應器電源供應器

Power Supply amp Charging

十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制十六組伺服機輸出控制模組模組模組模組結合了 BASIC

Commander - BC1 與一個 Servo Runner A使用者能

大幅縮小模組所需要面積減少連接線材並完整保留

Servo Runner A 的所有功能可以一次控制十六個伺服

實際配置圖

5 SC16 Servo Control Board

結合了 BASIC Commander (BC1)與一個 Servo

Runner A使用者能大幅縮小模組所需要面積

SC 16 下載控制程式後將圖中(A)(B)連接起來即

可讓兩足機器人動作其中(A) 伺服機之電源輸入腳位

即下面右圖之 Vser 處(B) 電源供應器之電源線

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 15 頁

7伺服機編號伺服機編號伺服機編號伺服機編號 --Servo

Numbering

7伺服機編號伺服機編號伺服機編號伺服機編號--Servo Numbering

從背後看之後視圖

教學活動教學活動教學活動教學活動(第第第第 6 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

十六軸人形機器人十六軸人形機器人十六軸人形機器人十六軸人形機器人mdash組組組組

裝說明裝說明裝說明裝說明

50 十六軸人形機器人mdash組裝說明

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 16 頁

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

2機器人零機器人零機器人零機器人零組組組組件件件件(2)

1機器人零機器人零機器人零機器人零組組組組件件件件(1))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 17 頁

3機器人零機器人零機器人零機器人零組組組組件件件件(3)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 18 頁

4機器人模組機器人模組機器人模組機器人模組零組零組零組零組

件件件件

5使用工具使用工具使用工具使用工具

4機器人模組機器人模組機器人模組機器人模組零組件零組件零組件零組件

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 19 頁

5使用工具使用工具使用工具使用工具

51 十字螺絲起子(需要使用到 2mm 與 3mm 兩種規格)

52 尖嘴鉗

53 螺絲膠(可選擇性使用在螺帽與鋁板接合處減緩螺帽

鬆脫)

教學活動教學活動教學活動教學活動(第第第第 7 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

50 組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構組裝伺服機與機構

1組裝身體機構組裝身體機構組裝身體機構組裝身體機構

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 20 頁

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 21 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 22 頁

2伺服機配線圖伺服機配線圖伺服機配線圖伺服機配線圖

依照圖示之腳位安裝伺服機線於 Servo Commander 16

此為背面示意圖

教學活動教學活動教學活動教學活動(第第第第 8 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作一一一一 機器人做機器人做機器人做機器人做

體操體操體操體操

25

專題製作專題製作專題製作專題製作一一一一 機器人做體操機器人做體操機器人做體操機器人做體操

專題製作一機器人做體操

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 23 頁

1設計設計設計設計 Frames 建構過建構過建構過建構過

程 步 驟程 步 驟程 步 驟程 步 驟 (Steps to

design Frames) (應用軟體應用軟體應用軟體應用軟體-----電腦解題電腦解題電腦解題電腦解題

程序程序程序程序--)

1設計設計設計設計 Frames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a) 打開動作編輯器 (b) 動作編號及角度

(c) 上步驟之儲存檔案名稱

步驟(b)所設計的動作需分別儲存至模組以便後續機器人

開機後即可使用該 frame或儲存至電腦以便轉寄他人使

用或後續維護重覆此動作直至所有 Frame 皆設計完成

Frame 2 Frame 3

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 24 頁

2控制程式控制程式控制程式控制程式 (基礎程式基礎程式基礎程式基礎程式

設計設計設計設計--)

3程式內容程式內容程式內容程式內容

25

2控制程式控制程式控制程式控制程式

3程式內容程式內容程式內容程式內容

1 Peripheral myser1 As ServoRunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

2 Sub Main () lsquo---主程式

3 myser1LoadFrame(1) lsquo---讀取儲存於 Frame(1)的設定值

4 myser1runallservo() lsquo---啟動伺服機所設定的動作

5 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(1)中讓 Servo()開始動作

6 myser1LoadFrame(2) lsquo---讀取儲存於 Frame(2)的設定值

7 myser1runallservo() lsquo---啟動伺服機所設定的動作

8 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作

存到 Frame(2)中讓 Servo()開始動作

9 myser1LoadFrame(3) lsquo---讀取儲存於 Frame(3)的設定值

10 myser1runallservo() lsquo---啟動伺服機所設定的動作

11 Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動

作存到 Frame(3)中讓 Servo()開始動作

12 myser1LoadFrame(2) 13 myser1runallservo() 14 Pause 1000 15 myser1LoadFrame(1) 16 myser1runallservo() 17 End Sub lsquo---結束副程式

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 25 頁

教學活動教學活動教學活動教學活動(第第第第 9-10 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

70

專題製作專題製作專題製作專題製作二二二二

1機器人前進機器人前進機器人前進機器人前進

步態分析

FRAME 0 (立正)

FRAME 41 (屈膝立正)

FRAME 42(提左腳)

FRAME 43 (左腳向前提)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 26 頁

FRAME 44 (左腳著地)

FRAME 45 (提右腳-在後方)

FRAME 46 (右腳向前提)

FRAME 47 (右腳著地)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 27 頁

2 RoboTinno 機器人機器人機器人機器人

控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分控制程式的下載概略分

為兩大步驟為兩大步驟為兩大步驟為兩大步驟

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1

打開打開打開打開 innoBasic再打再打再打再打

開動作編輯器開動作編輯器開動作編輯器開動作編輯器

FRAME 48 (提左腳-在後方)

2RoboTinno 機器人控制程式的下載概略分為兩大步驟

(1) 先下載已事先存在 Frame(或自行規劃新的 Frame)

(2) 然後下載 innoBASIC 程式

註從事上述下載動作時不要連接電池電源完成上述下

載動作後控制程式已在 SC16 記憶體上可把 USB 傳

輸線從 SC16 拔開再連接電池電源機器人即可動作

啟動動作編輯器前請先確認

(1) 電腦與 Servo Commander 16 SBC 與伺服機模組

是否正確連接(電腦與 SBC 請以 USB 連接SBC 與伺服

機模組請以 cmdBUS 連接)

(2) 請確認伺服機模組提供的電壓在伺服機所能承受的

電壓範圍內

21 前進步行控制前進步行控制前進步行控制前進步行控制

步驟步驟步驟步驟 1打開打開打開打開 innoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

ps 打開動作編輯器後原先儲存的 Frame 會被清除

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 28 頁

22 步驟步驟步驟步驟 2確認確認確認確認 SC16

沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且且且且

使用使用使用使用 USB 傳輸線將傳輸線將傳輸線將傳輸線將

SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找此步驟是找此步驟是找此步驟是找

到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的到 存 於 電 腦 中 的

FRAME 之目錄所在位之目錄所在位之目錄所在位之目錄所在位

置置置置

22 步驟步驟步驟步驟 2確認確認確認確認 SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USB

傳輸線將傳輸線將傳輸線將傳輸線將 SC16 與與與與 pc 連接起來連接起來連接起來連接起來

23 步驟步驟步驟步驟 3此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAME 之目錄之目錄之目錄之目錄

所在位置所在位置所在位置所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 29 頁

24 步驟步驟步驟步驟 4

此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的

Frame 下載到下載到下載到下載到

ServoCommander 的的的的

記憶體中記憶體中記憶體中記憶體中

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟

3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的

FRAME 下 載 至下 載 至下 載 至下 載 至

ServoCommander 記記記記

憶體中憶體中憶體中憶體中

24 步驟步驟步驟步驟 4此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 Frame 下載到下載到下載到下載到

ServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔案中模組 0

中各點選一個 Frame然後按下「gtgt」此時下載後模組

0 中的 Frame 與延伸檔會與動作檔案相同

(a)下載 Frame 步驟

(b)下載後模組 0 之 Frame 名稱

25 步驟步驟步驟步驟 5重複步驟重複步驟重複步驟重複步驟 3將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAME 下載下載下載下載

至至至至 ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 30 頁

26 步驟步驟步驟步驟 6將全部動作將全部動作將全部動作將全部動作

控制程式編譯控制程式編譯控制程式編譯控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步驟步驟步驟步驟 7拔除拔除拔除拔除 sc16

的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接接接接

上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開上伺服機電源後即可開

始動作始動作始動作始動作

26 步驟步驟步驟步驟 6 將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到

ServoCommander 中中中中

27 步步步步驟驟驟驟 7拔除拔除拔除拔除 sc16 的的的的 USB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電接上伺服機電接上伺服機電接上伺服機電

源後即可開始動作源後即可開始動作源後即可開始動作源後即可開始動作

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 31 頁

28 程式二程式二程式二程式二

30

Sub GO_Forward(Byval X As Byte)RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

28 程式二程式二程式二程式二

Peripheral myser1 As ServorunnerA 0 lsquo---設定模組編號為 0注意使用 Servo CommanderA 上的伺服機相關指

令一定要設定編號為 0

Dim I As Byte lsquo---儲存迴圈的判斷值 Sub Main( ) lsquo---主程式

-----設定初始微調值-----------

myser1SetPosOffset(00) lsquo--- 設 定 Servo0 的 微 調 值 為 0

myser1SetPosOffset(10) lsquo---設定 Servo1 的微調值為 0

myser1SetPosOffset(20) myser1SetPosOffset(30) myser1SetPosOffset(40) myser1SetPosOffset(50) myser1SetPosOffset(60) myser1SetPosOffset(70) myser1SetPosOffset(80) myser1SetPosOffset(90) myser1SetPosOffset(100) myser1SetPosOffset(110) myser1SetPosOffset(120) myser1SetPosOffset(130) myser1SetPosOffset(140) myser1SetPosOffset(150) ------------------------------------------------------ RunFrame(0) lsquo---執行動作 Frame(0) Pause 1000 lsquo---暫停一段時間(10001000=1 秒)讓伺服機動作存

到 Frame(0)中讓 Servo()開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 32 頁

GO_Forward(3) lsquo---執行前進 3 次(六步)

End Sub lsquo------------------------------------------------------ Sub GO_Forward(Byval X As Byte) RunFrame(41)lsquo---執行動作 Frame(41)

Pause 800 lsquo---暫停一段時間(8001000=08 秒

RunFrame(42) lsquo---執行動作 Frame(42)

Pause 250 For I = 0 To X lsquo---執行迴圈

RunFrame(43) Pause 180 RunFrame(44) Pause 180 RunFrame(45) Pause 180 RunFrame(46) Pause 180 RunFrame(47) Pause 180 RunFrame(48) Pause 180 Next RunFrame(42) Pause 250 RunFrame(41) Pause 700 End Sub ======執行 ID 指定動作====

Sub RunFrame(Byval ID As Byte) myser1LoadFrame(ID) ---載入 ID 指定動作

myser1runallservo() ---執行動作

End Sub

教學活動教學活動教學活動教學活動(第第第第 11 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

應用範應用範應用範應用範例例例例

1模組使用範例模組使用範例模組使用範例模組使用範例 -LCD

Module

50 應用範例應用範例應用範例應用範例

1模組使用範例模組使用範例模組使用範例模組使用範例-LCD Module

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 33 頁

2應用範例應用範例應用範例應用範例---InnoBot

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

4應用範例應用範例應用範例應用範例---二足機器二足機器二足機器二足機器

人人人人

讓初學者了解使用 LCD 模組來應用程式控制並顯示在

LCD 螢幕可以馬上看到執行結果

2應用範例應用範例應用範例應用範例---InnoBot 機器人自走車機器人自走車機器人自走車機器人自走車

應用 InnoBot 機器人自走車控制行走方向且應用程式

來組合機器人自走車行動方向可以讓使用者自行設計程

式來控制

3應用範例應用範例應用範例應用範例---坦克坦克坦克坦克

這是應用遙控器控制組裝成坦克造型自走車的一種機器

人可以快速驅動坦克車快速行走達到極速坦克車行走動

4應用範例應用範例應用範例應用範例---二足機器人二足機器人二足機器人二足機器人

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 34 頁

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

這是利用二足機器人模仿機器人二足行走的的機器人

學習如何控制機器人行走的動作在應用到全人形機器人

的行走控制

5應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

這是模仿蜘蛛六腳的行動可以由設計程式來控制六隻腳

的行走方向讓使用者知道蜘蛛行走的方向可以應用在

危險的探觸工作上

6瓦力機器人瓦力機器人瓦力機器人瓦力機器人(Wall-E)

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 35 頁

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛

+感測器感測器感測器感測器

這是利用 sensor 感測器模擬瓦力機器人偵測前方之障礙

物而帶動旅帶型輪子行走之機器人

7應用範例應用範例應用範例應用範例---六腳蜘蛛六腳蜘蛛六腳蜘蛛六腳蜘蛛+感測器感測器感測器感測器

這是模擬六腳蜘蛛在加上 sensor 感測器之機器人使機

器人具有感測前方之障礙並控制六隻腳做動作之機器

教學活動教學活動教學活動教學活動(第第第第 12 節節節節) 時時時時間間間間(分分分分) 說說說說 明明明明

1組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討組裝機器人過程與討

論論論論

50 由於組裝過程必須看組裝說明書及小組集體討論讓

學生養成團隊合作精神

組裝機器人過程與討論

1 讓學生看說明書組裝機器人學習小組團隊合作精神

2 使學生在組裝機器人過程中提出組裝機器人困難與

解決之道

3 機器人是由伺服機馬達所組成在組裝過程中是否遇

到問題學習如何解決並互相討論與分享

4 在測試機器人的程式設計中是否遇到困難及如何解

決與設計才能順利完成動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 36 頁

5 在設計機器人程式中是否與教學過程中的程式設計

內容教材設計符合課綱之精神

6 設計在測試機器人程式中是否學到程式設計之教學

目的與目標

7 能在組裝機器人與程式設計中融入資訊科技課程內

容與程式設計單元教學目標讓教學過程中達到教學

目標

8 所有組裝機器人過程中要讓學生互相充分討論並

作成結論與建議並作成報告來分享

本在測試中因為動作太過頻繁以致於伺服機燒壞

掉好幾個這是在購買時要特別注意的伺服機的使用過熱

問題避免造成不必要的損壞---校正二稿編輯完待續

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 37 頁

學習單設計學習單設計學習單設計學習單設計

機器人專題製作機器人專題製作機器人專題製作機器人專題製作 學習單學習單學習單學習單 班級班級班級班級___________ ___________ ___________ ___________ 座號座號座號座號______ ______ ______ ______ 姓名姓名姓名姓名____________________________________________

本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技本單元學習單是利用利基應用科技16161616軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人軸全身智慧型二足機器人RobotinnoRobotinnoRobotinnoRobotinno

讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理讓學生瞭解機器人設計的基本原理使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣使產生對機器人設計興趣並瞭解機器人並瞭解機器人並瞭解機器人並瞭解機器人

流程圖概念流程圖概念流程圖概念流程圖概念以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題以及如何應用於解決機器人組裝的問題然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器然後引起學生學習機器

人程式人程式人程式人程式 innoBASICinnoBASICinnoBASICinnoBASIC 撰寫的興趣撰寫的興趣撰寫的興趣撰寫的興趣並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人並培養學生使用機器人 innoBASICinnoBASICinnoBASICinnoBASIC 程程程程式語言開式語言開式語言開式語言開

發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構發工具的基本能力和學習迴圈控制結構(FOR(FOR(FOR(FOR----NEXT)NEXT)NEXT)NEXT)以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動以及控制機器人零組件動

作作作作並練習分析問題並練習分析問題並練習分析問題並練習分析問題包括輸入包括輸入包括輸入包括輸入輸出輸出輸出輸出資料處理方式資料處理方式資料處理方式資料處理方式最後學習如何使用最後學習如何使用最後學習如何使用最後學習如何使用 servo servo servo servo

Commander16Commander16Commander16Commander16 控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人控制器製作自動行走機器人並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作並學習如何製作機器人專題製作小小小小

組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神組討論和養成團隊合作精神達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教達成機器人專題製作的學習目標以及資訊科技教

育目標和學習目標育目標和學習目標育目標和學習目標育目標和學習目標

機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人專題題製作一機器人做體操機器人做體操機器人做體操機器人做體操

一一一一學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作學習製作機器人做體操的動作第一動作是立正第一動作是立正第一動作是立正第一動作是立正第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往第二動作式機器人手往

前伸前伸前伸前伸第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第三動作是機器人手水平伸直第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸第四動作是機器人手再往前伸練習這練習這練習這練習這

四四四四個動作來回動作個動作來回動作個動作來回動作個動作來回動作

二二二二設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟((((Steps to design FramesSteps to design FramesSteps to design FramesSteps to design Frames))))此乃應用軟體此乃應用軟體此乃應用軟體此乃應用軟體----電電電電

腦解題程序腦解題程序腦解題程序腦解題程序讓學生應用讓學生應用讓學生應用讓學生應用 innoBASICinnoBASICinnoBASICinnoBASIC 的設計程式之應用的設計程式之應用的設計程式之應用的設計程式之應用

1 1 1 1設計設計設計設計 FramesFramesFramesFrames 建構過程步驟建構過程步驟建構過程步驟建構過程步驟

(a)(a)(a)(a) 打開動作編輯器打開動作編輯器打開動作編輯器打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 38 頁

(b) (b) (b) (b) 動作編號及角度動作編號及角度動作編號及角度動作編號及角度

(c) 上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱上步驟之儲存檔案名稱

步驟步驟步驟步驟(b)(b)(b)(b)所設計的動作所設計的動作所設計的動作所設計的動作需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該需分別儲存至模組以便後續機器人開機後即可使用該

frameframeframeframe或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護或儲存至電腦以便轉寄他人使用或後續維護

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 39 頁

Frame2 Frame3 Frame2 Frame3 Frame2 Frame3 Frame2 Frame3

覆此動作直至所有覆此動作直至所有覆此動作直至所有覆此動作直至所有 FrameFrameFrameFrame 皆設計完成皆設計完成皆設計完成皆設計完成

三三三三控制程式控制程式控制程式控制程式----基礎程式設計基礎程式設計基礎程式設計基礎程式設計

四四四四程式設計內容程式設計內容程式設計內容程式設計內容 1111 Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServoervoervoervoRRRRunnerunnerunnerunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

2 2 2 2 Sub Main ()Sub Main ()Sub Main ()Sub Main () lsquolsquolsquolsquo------------主程式主程式主程式主程式

3 3 3 3 myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1)myser1LoadFrame(1) lsquolsquolsquolsquo------------讀讀讀讀取儲存於取儲存於取儲存於取儲存於 Frame(1)Frame(1)Frame(1)Frame(1)的設定值的設定值的設定值的設定值

4 4 4 4 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

5 5 5 5 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到Frame(1)Frame(1)Frame(1)Frame(1)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

6 6 6 6 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(2)Frame(2)Frame(2)Frame(2)的設定值的設定值的設定值的設定值

7 7 7 7 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

8 8 8 8 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1秒秒秒秒))))讓伺服機動作存讓伺服機動作存讓伺服機動作存讓伺服機動作存到到到到Frame(2)Frame(2)Frame(2)Frame(2)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

9 9 9 9 myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3)myser1LoadFrame(3) lsquo lsquo lsquo lsquo------------讀取儲存於讀取儲存於讀取儲存於讀取儲存於 Frame(3)Frame(3)Frame(3)Frame(3)的設定值的設定值的設定值的設定值

10 10 10 10 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo() lsquolsquolsquolsquo------------啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作啟動伺服機所設定的動作

11 11 11 11 Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到

Frame(3)Frame(3)Frame(3)Frame(3)中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 40 頁

12 12 12 12 myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)myser1LoadFrame(2)

13 13 13 13 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

14 14 14 14 Pause 1000Pause 1000Pause 1000Pause 1000

15 15 15 15 myser1Lmyser1Lmyser1Lmyser1LoadFrame(1)oadFrame(1)oadFrame(1)oadFrame(1)

16 16 16 16 myser1runallservo()myser1runallservo()myser1runallservo()myser1runallservo()

17 17 17 17 End SubEnd SubEnd SubEnd Sub lsquolsquolsquolsquo------------結束副程式結束副程式結束副程式結束副程式

機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單機器人專題製作二學習單

一一一一 機器人前進機器人前進機器人前進機器人前進

步態分析步態分析步態分析步態分析第一步驟第一步驟第一步驟第一步驟

FRAME 0 ( FRAME 0 ( FRAME 0 ( FRAME 0 (立正立正立正立正))))

第二步驟第二步驟第二步驟第二步驟FRAME 41 (FRAME 41 (FRAME 41 (FRAME 41 (屈膝立正屈膝立正屈膝立正屈膝立正))))

第三步驟第三步驟第三步驟第三步驟FRAME 42(FRAME 42(FRAME 42(FRAME 42(提左腳提左腳提左腳提左腳))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 41 頁

第四步驟第四步驟第四步驟第四步驟FRAME 43 (FRAME 43 (FRAME 43 (FRAME 43 (左腳向前提左腳向前提左腳向前提左腳向前提))))

第五步驟第五步驟第五步驟第五步驟FRAME 44 (FRAME 44 (FRAME 44 (FRAME 44 (左腳著地左腳著地左腳著地左腳著地))))

第六步驟第六步驟第六步驟第六步驟FRAME 45 (FRAME 45 (FRAME 45 (FRAME 45 (提右腳提右腳提右腳提右腳----在後方在後方在後方在後方))))

第七步驟第七步驟第七步驟第七步驟FRAME 46 (FRAME 46 (FRAME 46 (FRAME 46 (右腳向前提右腳向前提右腳向前提右腳向前提))))

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 42 頁

第八步第八步第八步第八步驟驟驟驟 FRAME 47 ( FRAME 47 ( FRAME 47 ( FRAME 47 (右腳著地右腳著地右腳著地右腳著地))))

第九步驟第九步驟第九步驟第九步驟FRAME 48 (FRAME 48 (FRAME 48 (FRAME 48 (提左腳提左腳提左腳提左腳----在後方在後方在後方在後方))))

二二二二RoboTinnoRoboTinnoRoboTinnoRoboTinno 機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟機器人控制程式的下載分為兩大步驟

(1) (1) (1) (1) 先下載已事先存在先下載已事先存在先下載已事先存在先下載已事先存在 Frame(Frame(Frame(Frame(或自行規劃新的或自行規劃新的或自行規劃新的或自行規劃新的 Frame)Frame)Frame)Frame)

(2) (2) (2) (2) 然後下載然後下載然後下載然後下載 innoBASICinnoBASICinnoBASICinnoBASIC 程式程式程式程式

註註註註從事上述下載動作時從事上述下載動作時從事上述下載動作時從事上述下載動作時不要連接電池電源不要連接電池電源不要連接電池電源不要連接電池電源完成上述下載動作後完成上述下載動作後完成上述下載動作後完成上述下載動作後控制控制控制控制

程式已在程式已在程式已在程式已在 SC16SC16SC16SC16 記憶體上記憶體上記憶體上記憶體上可把可把可把可把 USBUSBUSBUSB 傳輸線從傳輸線從傳輸線從傳輸線從 SC16SC16SC16SC16 拔開拔開拔開拔開再連接電池電源再連接電池電源再連接電池電源再連接電池電源機機機機

器人即可動作器人即可動作器人即可動作器人即可動作

三三三三啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前啟動動作編輯器前請先確認請先確認請先確認請先確認

(1) (1) (1) (1) 電腦與電腦與電腦與電腦與 Servo CommandeServo CommandeServo CommandeServo Commander 16 r 16 r 16 r 16 SBCSBCSBCSBC 與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接與伺服機模組是否正確連接((((電腦與電腦與電腦與電腦與 SBCSBCSBCSBC

請以請以請以請以 USBUSBUSBUSB 連接連接連接連接SBCSBCSBCSBC 與伺服機模組請以與伺服機模組請以與伺服機模組請以與伺服機模組請以 cmdBUScmdBUScmdBUScmdBUS 連接連接連接連接) ) ) )

(2) (2) (2) (2) 請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓請確認伺服機模組提供的電壓在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內在伺服機所能承受的電壓範圍內

四四四四前進步行控制前進步行控制前進步行控制前進步行控制

(1)(1)(1)(1)打開打開打開打開 innoBasicinnoBasicinnoBasicinnoBasic再打開動作編輯器再打開動作編輯器再打開動作編輯器再打開動作編輯器

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 43 頁

ps ps ps ps 打開動作編輯器後打開動作編輯器後打開動作編輯器後打開動作編輯器後原先儲存的原先儲存的原先儲存的原先儲存的 FrameFrameFrameFrame 會被清除會被清除會被清除會被清除

((((2222))))確認確認確認確認 SC16SC16SC16SC16 沒有連接電池電源沒有連接電池電源沒有連接電池電源沒有連接電池電源且使用且使用且使用且使用 USBUSBUSBUSB 傳輸線將傳輸線將傳輸線將傳輸線將 SC16SC16SC16SC16 與與與與 pcpcpcpc 連接起來連接起來連接起來連接起來

((((3333))))此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的此步驟是找到存於電腦中的 FRAMEFRAMEFRAMEFRAME 之目錄所在位置之目錄所在位置之目錄所在位置之目錄所在位置

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 44 頁

((((4444))))此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的此步驟是將檔案中的 FFFFramerameramerame 下載到下載到下載到下載到 ServoCommanderServoCommanderServoCommanderServoCommander 的記憶體中的記憶體中的記憶體中的記憶體中在動作檔在動作檔在動作檔在動作檔

案中案中案中案中模組模組模組模組 0000 中各點選一個中各點選一個中各點選一個中各點選一個 FrameFrameFrameFrame然後按下然後按下然後按下然後按下「「「「gtgtgtgtgtgtgtgt」」」」此時下載後模組此時下載後模組此時下載後模組此時下載後模組 0000 中的中的中的中的 FrameFrameFrameFrame

與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同與延伸檔會與動作檔案相同

(a) (a) (a) (a)下載下載下載下載 FrameFrameFrameFrame 步驟步驟步驟步驟

(b) (b) (b) (b)下載後模組下載後模組下載後模組下載後模組 0000 之之之之 FrameFrameFrameFrame 名稱名稱名稱名稱

((((5555))))重複步驟重複步驟重複步驟重複步驟 3333將所有動作檔案的將所有動作檔案的將所有動作檔案的將所有動作檔案的 FRAMEFRAMEFRAMEFRAME 下載至下載至下載至下載至 ServoCommander ServoCommander ServoCommander ServoCommander 記憶體中記憶體中記憶體中記憶體中

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 45 頁

(6)(6)(6)(6)將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯將全部動作控制程式編譯下載到下載到下載到下載到 ServoCommander ServoCommander ServoCommander ServoCommander 中中中中

(7)(7)(7)(7)拔除拔除拔除拔除 sc16 sc16 sc16 sc16 的的的的 USBUSBUSBUSB 傳輸線後傳輸線後傳輸線後傳輸線後接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作接上伺服機電源後即可開始動作

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 46 頁

Peripheral myser1 As servorunnera 0Dim I As ByteSub Main()-----設定初始微調值-----------

myser1SetPosOffset(00)myser1SetPosOffset(10)myser1SetPosOffset(20)myser1SetPosOffset(30)myser1SetPosOffset(40)myser1SetPosOffset(50)myser1SetPosOffset(60)myser1SetPosOffset(70)myser1SetPosOffset(80)myser1SetPosOffset(90)myser1SetPosOffset(100)myser1SetPosOffset(110)myser1SetPosOffset(120)myser1SetPosOffset(130)myser1SetPosOffset(140)myser1SetPosOffset(150)

-------------------------------RunFrame(0) 執行動作0Pause 1000GO_Forward(3) 執行前進3次(六步)End Sub

Sub GO_Forward(Byval X As Byte)

RunFrame(41)Pause 800RunFrame(42)Pause 250For I = 0 To X

RunFrame(43)Pause 180RunFrame(44)Pause 180RunFrame(45)Pause 180RunFrame(46)Pause 180RunFrame(47)Pause 180RunFrame(48)Pause 180

NextRunFrame(42)Pause 250RunFrame(41)Pause 700

End Sub

======執行 ID 指定動作====Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID) 載入 ID 指定動作myser1runallservo() 執行動作

End Sub

五五五五程式程式程式程式設計設計設計設計

Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As Peripheral myser1 As SSSServorunnerervorunnerervorunnerervorunnerAAAA 0 0 0 0

lsquolsquolsquolsquo------------設定模組編號為設定模組編號為設定模組編號為設定模組編號為 0000注意使用注意使用注意使用注意使用 Servo CommanderAServo CommanderAServo CommanderAServo CommanderA 上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令上的伺服機相關指令一一一一

定要設定編號為定要設定編號為定要設定編號為定要設定編號為 0000

Dim I As ByteDim I As ByteDim I As ByteDim I As Byte lsquolsquolsquolsquo------------儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值儲存迴圈的判斷值

Sub Main(Sub Main(Sub Main(Sub Main( )))) lsquolsquolsquolsquo------------主程式主程式主程式主程式

--------------------設定初始微調值設定初始微調值設定初始微調值設定初始微調值--------------------------------------------

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 47 頁

myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00)myser1SetPosOffset(00) lsquolsquolsquolsquo------------設定設定設定設定 Servo0Servo0Servo0Servo0 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) myser1SetPosOffset(10) lsquolsquolsquolsquo------------設設設設定定定定 Servo1Servo1Servo1Servo1 的微調值為的微調值為的微調值為的微調值為 0000

myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)myser1SetPosOffset(20)

myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)myser1SetPosOffset(30)

myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)myser1SetPosOffset(40)

myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)myser1SetPosOffset(50)

myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)myser1SetPosOffset(60)

myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)myser1SetPosOffset(70)

myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)myser1SetPosOffset(80)

myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)myser1SetPosOffset(90)

myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)myser1SetPosOffset(100)

mysmysmysmyser1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)er1SetPosOffset(110)

myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)myser1SetPosOffset(120)

myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)myser1SetPosOffset(130)

myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)myser1SetPosOffset(140)

myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)myser1SetPosOffset(150)

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

RunFrame(0)RunFrame(0)RunFrame(0)RunFrame(0) lsquolsquolsquolsquo------------執行動作執行動作執行動作執行動作 Frame(Frame(Frame(Frame(0000))))

Pause 1000Pause 1000Pause 1000Pause 1000 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(10001000=1(10001000=1(10001000=1(10001000=1 秒秒秒秒))))讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到讓伺服機動作存到 Frame(0)Frame(0)Frame(0)Frame(0)

中中中中讓讓讓讓 Servo()Servo()Servo()Servo()開始動作開始動作開始動作開始動作

GO_Forward(3)GO_Forward(3)GO_Forward(3)GO_Forward(3) lsquolsquolsquolsquo------------執行前進執行前進執行前進執行前進 3333 次次次次((((六步六步六步六步))))

End SubEnd SubEnd SubEnd Sub

lsquolsquolsquolsquo------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)Sub GO_Forward(Byval X As Byte)

RunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquoRunFrame(41)lsquo------------執行動作執行動作執行動作執行動作 Frame(41)Frame(41)Frame(41)Frame(41)

Pause 800Pause 800Pause 800Pause 800 lsquolsquolsquolsquo------------暫停一段時間暫停一段時間暫停一段時間暫停一段時間(8001000=08(8001000=08(8001000=08(8001000=08 秒秒秒秒

RunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquoRunFrame(42) lsquo------------執行動作執行動作執行動作執行動作 Frame(4Frame(4Frame(4Frame(42)2)2)2)

Pause 250Pause 250Pause 250Pause 250

For I = 0 To XFor I = 0 To XFor I = 0 To XFor I = 0 To X lsquolsquolsquolsquo------------執行迴圈執行迴圈執行迴圈執行迴圈

RunFrame(43)RunFrame(43)RunFrame(43)RunFrame(43)

Pause 180Pause 180Pause 180Pause 180

RunFrame(44)RunFrame(44)RunFrame(44)RunFrame(44)

Pause 180Pause 180Pause 180Pause 180

RunFrame(45)RunFrame(45)RunFrame(45)RunFrame(45)

Pause 180Pause 180Pause 180Pause 180

RunFrame(46)RunFrame(46)RunFrame(46)RunFrame(46)

Pause 180Pause 180Pause 180Pause 180

RunFrame(47)RunFrame(47)RunFrame(47)RunFrame(47)

Pause 180Pause 180Pause 180Pause 180

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享

機器人專題製作mdash利基 16 軸智慧型機器人 Robotinno

第 48 頁

RunFrame(48)RunFrame(48)RunFrame(48)RunFrame(48)

Pause 180Pause 180Pause 180Pause 180

NextNextNextNext

RunFrame(42)RunFrame(42)RunFrame(42)RunFrame(42)

Pause 250Pause 250Pause 250Pause 250

RunFrame(41)RunFrame(41)RunFrame(41)RunFrame(41)

Pause 700Pause 700Pause 700Pause 700

End SubEnd SubEnd SubEnd Sub

========================執行執行執行執行 ID ID ID ID 指定動作指定動作指定動作指定動作================

Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)Sub RunFrame(Byval ID As Byte)

myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID)myser1LoadFrame(ID) ------------載入載入載入載入 ID ID ID ID 指定動作指定動作指定動作指定動作

myser1runallservo() myser1runallservo() myser1runallservo() myser1runallservo() ------------執行動作執行動作執行動作執行動作

End SubEnd SubEnd SubEnd Sub

六六六六由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論由於組裝過程必須看組裝說明書及小組集體討論讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作讓學生養成團隊合作

精神精神精神精神組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論組裝機器人過程與討論

1111讓學生看讓學生看讓學生看讓學生看說明書組裝機器人說明書組裝機器人說明書組裝機器人說明書組裝機器人學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神學習小組團隊合作精神

2222使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中使學生在組裝機器人過程中提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道提出組裝機器人困難與解決之道

3333機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成機器人是由伺服機馬達所組成在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題在組裝過程中是否遇到問題學習如何解決學習如何解決學習如何解決學習如何解決

並互相討論與分享並互相討論與分享並互相討論與分享並互相討論與分享

4444在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中在測試機器人的程式設計中是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計是否遇到困難及如何解決與設計才能順利完才能順利完才能順利完才能順利完

成動作成動作成動作成動作

5555 在設計機器人程式中在設計機器人程式中在設計機器人程式中在設計機器人程式中是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱是否與教學過程中的程式設計內容教材設計符合課綱

之精神之精神之精神之精神

6666設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中設計在測試機器人程式中是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標是否學到程式設計之教學目的與目標

7777能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中能在組裝機器人與程式設計中融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學融入資訊科技課程內容與程式設計單元教學

目標目標目標目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標讓教學過程中達到教學目標

8888所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作

成報告來分享成報告來分享成報告來分享成報告來分享