酖酖酖酖、、、、課程說明課程說明icerc.tnssh.tn.edu.tw/download/tm/99-1-11.pdf ·...
TRANSCRIPT
機器人專題製作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所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中所有組裝機器人過程中要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論要讓學生互相充分討論並作成結論與建議並作成結論與建議並作成結論與建議並作成結論與建議並作並作並作並作
成報告來分享成報告來分享成報告來分享成報告來分享