控制模組

Download Report

Transcript 控制模組

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