Download presentation
Presentation is loading. Please wait.
1
智慧型二足機器人專題製作 主講者: 國立彰化師大附工 機電科主任 楊昭德 jdyang@mail.sivs.chc.edu.tw
2
單元摘要 單元摘要: 機器人專題製作---利基16軸智慧型機器人 Robotinno 利基應用科技十六軸全身機器人-Robotinno 2
3
學習目標 1. 瞭解機器人歷史簡介,使對機器人歷史產生興趣。 2. 瞭解機器人設計的基本原理,使產生對機器人設計興趣。
3. 能瞭解機器人流程圖概念以及如何應用於解決機器人組裝問題。 4. 引起學生學習機器人程式innoBASIC撰寫的興趣。 5. 培養學生使用機器人innoBASIC程式語言開發工具的基本能力。 6. 學習迴圈結構(FOR-NEXT)以及控制機器人零組件動作。 7. 練習分析問題,包括輸入、輸出、資料處理方式。 8. 學習如何使用servo Commander16控制器製作自動行走機器人。 9. 學習如何製作機器人專題製作,小組討論和養成團隊合作精神。
4
機器人歷史簡介 1.生活處處有科學,生活時時用科學:
2.詞源:機器人是一種具有移動性、個體性、智能性、通用性、半機械半人性、自動性、奴隸性等7個特徵的柔性機器。」 3.機器人是自動控制機器(Robot)的俗稱 日本HONDA機器人原型ASIMO
5
機器人歷史簡介(2) 4. 機器人的種類與演變 當代應用機器人: 4.1工業機器人 4.2寵物、玩偶類機器人: 4.3動漫、遊戲的機器人:
4.4模擬和社交機器人: 4.5醫學上機器人: 4.6探險及危險工作機器人: 2005年日本世界博覽會愛知縣展出的女性模擬機器人
6
機器人的定義 自身動力 聯合國標準化組織采納了美國機器人協會給機器人下的定義︰ 控制能力
機器人是靠 自身動力 和 控制能力 來實現各種功能的一種機器 聯合國標準化組織采納了美國機器人協會給機器人下的定義︰ “一種可編程和多功能的,用來搬運材料、零件、工具的操作機; 或是為了執行不同的任務而具有可改變和可編程動作的專門系統。”
7
機器人三大法則 艾西莫夫(Isaac Asimov, )二十世紀科幻文壇的超級大師,也是舉世聞名的全能通俗作家。是公認的「現代機器人小說之父」。他於一九四二年所創立的「機械人三大法則」: 第一法則 : 機器人不得傷害人類,或坐視人類受到傷害而袖手旁觀。 第二法則 : 除非違背第一法則,機器人必須服從人類的命令。 第三法則 : 在不違背第一法則及第二法則的情況下,機器人必須保護自己。
8
智慧型機器人類型 工業機器人 教育機器人 保全機器人 醫療機器人 娛樂機器人 服務機器人 Roomba (iRobot, 丹麥)
R1 (利基, Taiwan) SeQ-1 (新光保全, Taiwan) 智慧型機器人 醫療機器人 娛樂機器人 服務機器人 瓦力 RIBA(東海橡膠, 日本) Roomba (iRobot, 丹麥)
9
機器人開發工具的考量(一) 軟體考量 (程式語言) 硬體考量(含週邊線路) 開發時間 工程專業 可靠度
10
機器人開發工具的考量(二) 單晶片 + 單晶片 控制板 單一主機板 + 單板電腦 模組
11
MSRDS - Microsoft Robotics Developer Studio
台灣大學 土木工程學系 康仕仲 博士
12
BASIC Commander 系統介紹
13
個人單板電腦– PSBC (Personal Single Board Computer)
USB 開發簡單化 -- 非工程人員專用 產品個性化 -- 非大量生產產品 開發極速化 -- 快速完成產品原型 效能極大化 -- 功能模組結合 13
14
利基之SBC-- BASIC Commander
利基應用科技研發之單板電腦 MTP Type MCU inside,可多次重複燒寫程式 USB 介面 On Board 可單獨使用輸出入腳 (16 or 24) 專有cmdBUS與周邊模組通訊 可搭配周邊模組使用(Up to 32個) 14
15
適用對象與用途 初學者 -- 簡易級入門教材 學 生 -- 各項專題實作 教 師 -- 協助研究實驗 嗜好者 -- 個人嗜好 DIY
學 生 -- 各項專題實作 教 師 -- 協助研究實驗 嗜好者 -- 個人嗜好 DIY 設計工程師 -- 快速原型實現 15
16
BASIC Commander 系統架構圖 16
17
2x16 LCD Module Usage Peripheral myLCD As LCD2x16A @ 0 ‘module ID is 1
Sub Main() myLCD.Display(“HOW ARE YOU?”) ‘display message End Sub USB HOW ARE YOU? cmdBUS
18
Keypad Module Usage Peripheral myKeypad As KeypadA @ 1 ‘module ID is 1
Sub Main() Dim keyID As Byte Dim Keystatus As Byte Do keystatus=Mykeypad.GetKeyID(KeyID) If Keystatus = 1 Then Debug "Key ", KeyID, CR Loop End Sub USB cmdBUS
19
Sonar Module Usage Peripheral MySonar As SonarA @ 2 ‘module ID is 2
Sub main() Dim dis As Word Do MySonar.Ranging() ‘start the sonar Pause ‘wait for reflection MySonar.GetDistance(1,dis) ‘read the distance Debug "Distance = ",dis," cm",CR Loop End Sub USB cmdBUS
20
Compass Module Usage Peripheral myComp As CompassA @ 3 ‘module ID is 3
Sub Main() Dim Ang As Word ‘declare variable Do MyComp.GetAngle(Ang) ‘angle to the North Debug "Angle: ", Ang, CR ‘display angle Loop End Sub USB cmdBUS
21
innoBASICTM Workshop Terminal Window File Manager Window Message
Input/Output Window Program Editor Window
22
innoBASICTM Fundamental Commands
DIM PERIPHERAL ENUM … END ENUM IF …THEN … ELSE DO… LOOP SELECT… CASE FOR… NEXT GOTO RETURN CALL SUB … END SUB FUNCTION…END FUNCTION EVENT … END EVENT ...etc.
23
innoBASICTM I/O Commands
BUTTON OUTPUT CHECKMODULE COUNT PULSEIN DEBUG PULESOUT DEBUGIN PWM GETDIRPORT HIGH RCTIME IN READPORT INPUT RESETMODULE LCDCMD REVERSE LCDIN SETDIRPORT LCDOUT TOGGLE LOW WRITEPORT
24
innoBASICTM Math & Conversion Commands
FLOAT2WORD FLOAT2INTEGER FLOAT2DWORD FLOAT2LONG FLOAT2STRING FLOAT2REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE PAUSE RANDOM ABS SGN CEIL FLOOR SQRT EXP EXP10 LOG LOG10 SIN COS ASIN ACOS ATAN ATAN2 BYTE2FLOAT SHORT2FLOAT WORD2FLOAT INTEGER2FLOAT DWORD2FLOAT LONG2FLOAT STRING2FLOAT FLOAT2BYTE FLOAT2SHORT
25
周邊模組 (1) 鍵盤模組 LCD顯示模組 直流馬達模組 (Dual 650mA) 直流馬達(1.5A) 控制模組 直流馬達(30A)
25
26
周邊模組 (2) 計時模組 I/O擴充模組 電子羅盤模組 超音波測距模組 26
27
周邊模組 (3) 二軸搖桿模組 三軸搖桿模組 機器人控制模組 伺服馬達模組 27
28
應用InnoBot機器人自走車,控制行走方向,
個人單板電腦 BASIC Commander 應用InnoBot機器人自走車,控制行走方向, 且應用程式來組合機器人自走車行動方向, 可以讓使用者自行設計程式來控制。 28
29
應用範例 --- 坦克 這是應用遙控器控制組裝成坦克造型自走車的一種機器人, 可以快速驅動坦克車快速行走達到極速坦克車行走動作。
Peripheral MyMotor As 1 Sub main() Do MyMotor.ForwardA(200) MyMotor.ForwardB(200) Pause 1000 MyMotor.BackwardA(200) MyMotor.BackwardB(200) Loop End Sub 個人單板電腦 BASIC Commander 馬達控制模組 這是應用遙控器控制組裝成坦克造型自走車的一種機器人, 可以快速驅動坦克車快速行走達到極速坦克車行走動作。 29
30
應用範例 --- 二足機器人 這是利用二足機器人,模仿機器人二足行走的的機器人,
個人單板電腦 BASIC Commander 伺服機驅動模組 Servo Control Module 鋁材 伺服機 這是利用二足機器人,模仿機器人二足行走的的機器人, 學習如何控制機器人行走的動作,在應用到全人形機器人的行走控制。 30
31
應用範例 --- 六腳蜘蛛 這是模仿蜘蛛六腳的行動,可以由設計程式來控制六隻腳的行走方向,
個人單板電腦 BASIC Commander 伺服機控制模組 x 2 這是模仿蜘蛛六腳的行動,可以由設計程式來控制六隻腳的行走方向, 讓使用者知道蜘蛛行走的方向,可以應用在危險的探觸工作上。 31
32
應用範例---六腳蜘蛛+感測器 這是模擬六腳蜘蛛,在加上sensor感測器之機器人,
使機器人具有感測前方之障礙,並控制六隻腳做動作之機器人。
33
Wall-E瓦力 這是利用sensor感測器模擬瓦力機器人, 偵測前方之障礙物而帶動旅帶型輪子行走之機器人。
34
其他應用範例 超音波避障小蜘蛛 變形金剛 機械蛇 機器人足球賽 機器人格鬥賽 34
35
Education Board 介紹 35
36
電源輸入 電源可以由三組電源接頭中擇一輸入,請根據需求使用所需要的電源接頭,但請不要同時使用兩個以上的電源輸入
變壓器電源輸入接頭,可以連接由市電轉直流的 變壓器,請注意接入電壓必須在6~12V之間 9V鈕扣電池輸入座,可以連接市售9V的電池,請注意接入電壓必須在6~12V之間 直流電源輸入接頭,可以連接直流電源, 請注意接入電壓必須在6~12V之間
37
電源開關 電源開關,有三段 0: 關閉所有電源連接 1: 開啟伺服機線路以外的電源 2: 開啟所有電源
38
重置按鍵 須要重新啟動應用設計動作時,可以按下重置按鍵,BC1/BC2就會由內建程式的第一個動作開始,再從頭執行
重置按鍵,當壓下再放開,就會重新啟動城市,請注意若壓著重置按鍵不放,則系統將停留在重置狀態,不會做任何動作 須要重新啟動應用設計動作時,可以按下重置按鍵,BC1/BC2就會由內建程式的第一個動作開始,再從頭執行 請注意重置按鍵按下後,所有現行的動作都會被取消,參數值都會回覆到初始狀態
39
cmdBUS腳座 Education Board上有四組cmdBUS腳座,如果要連接應用模組,只要以cmdBUS直接連接,請注意cmdBUS有方向性,連接時習慣以紅線連接到VIN,可以在各腳位旁邊,看到該腳位對應的名稱 如果需要連接超過四組應用模組,可以將cmdBUS連接到麵包板,再由麵包板擴充所需要的接腳
40
伺服機腳座 Education Board上有四組伺服機控制腳座,如果要操作伺服機,只要將伺服機的訊號線,連接到此腳座上,請注意伺服機的訊號線有方向性,連接時習慣以白(橘)線連接到W,可以在各腳位旁邊,看到該對應英文字母 預設是使用P10與P11連接兩個伺服機,10與11分別代表BASIC Commander的I/O接腳,輸出做為伺服機的控制訊號
41
伺服機電源選擇 在伺服機腳座的最旁邊,可以看到由x5標示的三個腳位,將最上面的兩個腳位短路,伺服機的電源就會由VDD(5V)提供,若是將下兩個腳位短路,伺服機的電源就會由VIN(6~12V)提供 請用Jumper連接想要使用的腳位,預設為使用VDD
42
BC腳座 BC腳座是用來安裝BASIC Commander,安裝時請注意USB接頭的位置要朝外,而且各腳位要由最內側對齊,如果要更換BASIC Commander,建議使用細長的條狀物,由底端平均施力,以免腳位折損或斷裂
43
I/O腳座 I/O腳座會對應到BASIC Commander的各個通用I/O,連接時請注意,對應的腳位是紅色底板上的白字,而不是麵包板上的數字 用漆包線連接I/O腳座與麵包板,就可以與得BASIC Commander的I/O訊號,可以做輸出或輸入的控制
44
麵包板 白色部分為麵包板,麵包板上的孔位,同一個數字上有兩組孔位,分別為“a, b, c, d, e”為一組,“f, g, h, I, j”為另外一組,在同一組的孔位上,量到的電壓都會是相同的,請注意不要將VIN,VDD,VCC與GND等,接到同一組的孔位中,以免燒毀線路
45
電源腳座 VCC接腳,提供由BASIC Commander轉換的5V電壓源,最多可以提供250mA的電流值
VIN接腳,直接連接到輸入的電壓源,根據輸入電壓源,提供6~12V的電壓值,電流值則是根據輸入電源能提供的電量 VDD接腳,提供由Education Board轉換的5V電壓,最多可提供1 A的電流值
46
實作練習
47
練習 : Debug Command Sub main() Dim Age As Byte Dim Name As String * 10
Debug “Hello, What’s your name?”, CR Debugin Name Debug “Hi “, Name, “ how old are you?” , CR Debugin Age Debug “Good! You are “, Age, “ years old.”, CR End Sub
48
練習 : LCD, Keypad Module
49
練習 : Sonar Module
50
練習 : 使用伺服機 5us x 200 = 1000 us = 1 ms 5us x 400 = 2000us = 2 ms 1.5ms
51
16軸機器人- Robotinno Robotinno兩足機器人35公分高,它可以直接使用動作編輯器將動作以分鏡的方式儲存起來,稱之為frame。透過程式將這些frame依指定順序執行,機器人即可流暢連貫所有的動作。
52
RC Servos of Robotinno 電壓 12V 12V(typ) 10V(min) 扭力 12 kgf-cm 10 kgf-cm
速度 0.15 sec/60 0.18 sec/60 運動範圍 180 材質 金屬齒輪和塑膠本體 祥儀伺服機 SYS
53
Principles of RC Servo Control
2.2 ms 0.8 ms
54
控制器- Servo Commander 16 功能 : 十六組伺服機輸出控制 。結合了BASIC Commander - BC1與一個Servo Runner A,使用者能大幅縮小模組所需要面積,減少連接線材,並完整保留Servo Runner A的所有功能,可以一次控制十六個伺服機 。 實際配置
55
SC16 Servo Control Board 8 - 11號 伺服機 12 -15號 伺服機 4 - 7號 伺服機 0 - 3號 伺服機
結合了BASIC Commander (BC1)與一個Servo Runner A,使用者能大幅縮小模組所需要面積。
56
Power Supply & Charging
SC 16下載控制程式後,將圖中(A),(B)連接起來,即可讓兩足機器人動作。其中:(A) 伺服機之電源輸入腳位,即下面右圖之Vser處,(B) 電源供應器之電源線。
57
Servo Numbering 從背後看之後視圖
58
練習一: 機器人做體操 Frame 1 Frame2 Frame2 Frame3
59
Steps to design Frames Frame1建構過程 (a) 打開動作編輯器 (c) 上步驟之儲存檔案名稱
(b) 動作編號及角度 (c) 上步驟之儲存檔案名稱 步驟(b)所設計的動作,需分別儲存至模組以便後續機器人開機後即可使用該frame;或儲存至電腦以便轉寄他人使用或後續維護。重覆此動作直至所有Frame皆設計完成。
60
Frame 2 Frame 3
61
控制程式 1 Peripheral myser1 As servorunnera @ 0 2 Sub Main () 3
myser1.LoadFrame(1) 4 myser1.runallservo() 5 Pause 1000 6 myser1.LoadFrame(2) 7 8 9 myser1.LoadFrame(3) 10 11 12 13 14 15 16 17 End Sub
62
練習二: 機器人前進 步態分析~ FRAME 0 (立正)
63
FRAME 41 (屈膝立正)
64
FRAME 42 (提左腳)
65
FRAME 43 (左腳向前提)
66
FRAME 44 (左腳著地)
67
FRAME 45 (提右腳-在後方)
68
FRAME 46 (右腳向前提)
69
FRAME 47 (右腳著地)
70
FRAME 48 (提左腳-在後方)
71
RoboTinno機器人控制程式的下載概略分為兩大步驟:
(1) 先下載已事先存在Frame(或自行規劃新的Frame), (2) 然後下載innoBASIC程式 。 註:從事上述下載動作時,不要連接電池電源。完成上述下載動作後,控制程式已在SC16記憶體上,可把USB傳輸線從SC16拔開,再連接電池電源,機器人即可動作。 啟動動作編輯器前,請先確認 (1) 電腦與Servo Commander 16 ,SBC與伺服 機模組是否正確連接(電腦與SBC請以USB連 接,SBC與伺服機模組請以cmdBUS連接) 。 (2) 請確認伺服機模組提供的電壓,在伺服機所 能承受的電壓範圍內。
72
前進步行控制~ 步驟1:打開innoBasic,再打開動作編輯器。 p.s. 打開動作編輯器後,原先儲存的Frame會被清除。
73
步驟2:確認SC16沒有連接電池電源,且使用USB傳輸線將SC16與pc連接起來。
步驟3:此步驟是找到存於電腦中的FRAME之目錄所在位置。
74
(a) 下載Frame步驟 (b) 下載後模組0之Frame名稱 步驟4:此步驟是將檔案中的Frame下載到ServoCommander的記
檔會與動作檔案相同。 (a) 下載Frame步驟 (b) 下載後模組0之Frame名稱
75
步驟5:重複步驟3,將所有動作檔案的FRAME下載至
ServoCommander記憶體中。
76
步驟6:將全部動作控制程式編譯、下載到ServoCommander 中。
步驟7:拔除 sc16的USB傳輸線後,接上伺服機電源後即可開始動作!!
77
Peripheral myser1 As servorunnera @ 0
Dim I As Byte Sub Main() '-----設定初始微調值 myser1.SetPosOffset(0,0) myser1.SetPosOffset(1,0) myser1.SetPosOffset(2,0) myser1.SetPosOffset(3,0) myser1.SetPosOffset(4,0) myser1.SetPosOffset(5,0) myser1.SetPosOffset(6,0) myser1.SetPosOffset(7,0) myser1.SetPosOffset(8,0) myser1.SetPosOffset(9,0) myser1.SetPosOffset(10,0) myser1.SetPosOffset(11,0) myser1.SetPosOffset(12,0) myser1.SetPosOffset(13,0) myser1.SetPosOffset(14,0) myser1.SetPosOffset(15,0) ' RunFrame(0) '執行動作0 Pause 1000 GO_Forward(3) '執行前進3次(六步) End Sub
78
Sub GO_Forward(Byval X As Byte)
RunFrame(41) Pause 800 RunFrame(42) Pause 250 For I = 0 To X RunFrame(43) Pause 180 RunFrame(44) RunFrame(45) RunFrame(46) RunFrame(47) RunFrame(48) Next Pause 700 End Sub
79
'======執行 "ID" 指定動作==== Sub RunFrame(Byval ID As Byte) myser1.LoadFrame(ID) '載入 "ID" 指定動作 myser1.runallservo() '執行動作 End Sub
80
教學活動 組裝機器人過程與討論 由於組裝過程必須看組裝說明書及小組集體討論,讓學生養成團隊合作精神。
在測試中,因為動作太過頻繁,以致於伺服機燒壞掉好幾個,這是在購買時要特別注意的伺服機的使用過熱問題,避免造成不必要的損壞! --編輯完;待續!
81
Passion for Innovation 報告完畢,謝謝欣賞!
81
Similar presentations