BASIC Commander 12 BASIC Commander 16 2 x
BASIC Commander 系統介紹 12
BASIC Commander 系統架構圖 16
2 x 16 LCD Module Usage Peripheral my. LCD As LCD 2 x 16 A @ 0 ‘module ID is 1 Sub Main() my. LCD. Display(“HOW ARE YOU? ”) End Sub cmd. BUS ‘display message USB HOW ARE YOU? 17
Keypad Module Usage Peripheral my. Keypad As Keypad. A @ 1 ‘module ID is 1 Sub Main() Dim key. ID As Byte Dim Keystatus As Byte Do keystatus=Mykeypad. Get. Key. ID(Key. ID) If Keystatus = 1 Then Debug "Key ", Key. ID, CR Loop End Sub cmd. BUS USB 18
Sonar Module Usage Peripheral My. Sonar As Sonar. A @ 2 ‘module ID is 2 Sub main() Dim dis As Word Do My. Sonar. Ranging() ‘start the sonar Pause 100 ‘wait for reflection My. Sonar. Get. Distance(1, dis) ‘read the distance Debug "Distance = ", dis, " cm", CR Loop End Sub cmd. BUS USB 19
Compass Module Usage Peripheral my. Comp As Compass. A @ 3 Sub Main() Dim Ang As Word Do My. Comp. Get. Angle(Ang) the North Debug "Angle: ", Ang, CR Loop End Sub cmd. BUS ‘module ID is 3 ‘declare variable ‘angle to ‘display angle USB 20
inno. BASICTM Workshop Terminal Window File Manager Window Message Input/Output Window Program Editor Window 21
inno. BASICTM 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
inno. BASICTM 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
inno. BASICTM Math & Conversion Commands • • • • PAUSE RANDOM ABS SGN CEIL FLOOR SQRT EXP 10 LOG 10 SIN COS • • • • ASIN ACOS ATAN 2 BYTE 2 FLOAT SHORT 2 FLOAT WORD 2 FLOAT INTEGER 2 FLOAT DWORD 2 FLOAT LONG 2 FLOAT STRING 2 FLOAT 2 BYTE FLOAT 2 SHORT • • • • FLOAT 2 WORD FLOAT 2 INTEGER FLOAT 2 DWORD FLOAT 2 LONG FLOAT 2 STRING FLOAT 2 REALSTRING LCASE UCASE RIGHT MID LEFT LEN STRREVERSE 24
應用範例 --- 坦克 Peripheral My. Motor As Motor. Runner. B @ 1 個人單板電腦 BASIC Commander Sub main() Do My. Motor. Forward. A(200) My. Motor. Forward. B(200) Pause 1000 My. Motor. Backward. A(200) My. Motor. Backward. B(200) Pause 1000 Loop 馬達控制模組 End Sub 這是應用遙控器控制組裝成坦克造型自走車的一種機器人, 可以快速驅動坦克車快速行走達到極速坦克車行走動作。 29
Education Board 介紹 35
練習 : 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. 5 ms 5 us x 200 = 1000 us = 1 ms 20 ms 5 us x 400 = 2000 us = 2 ms 50
RC Servos of Robotinno 12 V 電壓 12 V(typ) 10 V(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 Numbering 從背後看之後視圖 57
練習一: 機器人做體操 Frame 1 Frame 2 Frame 3 58
Frame 2 Frame 3 60
控制程式 1 Peripheral myser 1 As servorunnera @ 0 2 Sub Main () 3 myser 1. Load. Frame(1) 4 myser 1. runallservo() 5 Pause 1000 6 myser 1. Load. Frame(2) 7 myser 1. runallservo() 8 Pause 1000 9 myser 1. Load. Frame(3) 10 myser 1. runallservo() 11 Pause 1000 12 myser 1. Load. Frame(2) 13 myser 1. runallservo() 14 Pause 1000 15 myser 1. Load. Frame(1) 16 myser 1. runallservo() 17 End Sub 61
FRAME 41 (屈膝立正) 63
FRAME 42 (提左腳) 64
FRAME 44 (左腳著地) 66
FRAME 47 (右腳著地) 69
Peripheral myser 1 As servorunnera @ 0 Dim I As Byte Sub Main() '-----設定初始微調值-----myser 1. Set. Pos. Offset(0, 0) myser 1. Set. Pos. Offset(1, 0) myser 1. Set. Pos. Offset(2, 0) myser 1. Set. Pos. Offset(3, 0) myser 1. Set. Pos. Offset(4, 0) myser 1. Set. Pos. Offset(5, 0) myser 1. Set. Pos. Offset(6, 0) myser 1. Set. Pos. Offset(7, 0) myser 1. Set. Pos. Offset(8, 0) myser 1. Set. Pos. Offset(9, 0) myser 1. Set. Pos. Offset(10, 0) myser 1. Set. Pos. Offset(11, 0) myser 1. Set. Pos. Offset(12, 0) myser 1. Set. Pos. Offset(13, 0) myser 1. Set. Pos. Offset(14, 0) myser 1. Set. Pos. Offset(15, 0) '---------------Run. Frame(0) '執行動作 0 Pause 1000 GO_Forward(3) '執行前進 3次(六步) End Sub 77
Sub GO_Forward(Byval X As Byte) Run. Frame(41) Pause 800 Run. Frame(42) Pause 250 For I = 0 To X Run. Frame(43) Pause 180 Run. Frame(44) Pause 180 Run. Frame(45) Pause 180 Run. Frame(46) Pause 180 Run. Frame(47) Pause 180 Run. Frame(48) Pause 180 Next Run. Frame(42) Pause 250 Run. Frame(41) Pause 700 End Sub 78
'======執行 "ID" 指定動作==== Sub Run. Frame(Byval ID As Byte) myser 1. Load. Frame(ID) '載入 "ID" 指定動作 myser 1. runallservo() '執行動作 End Sub 79
Passion for Innovation 報告完畢,謝謝欣賞! 81
- Slides: 81