【正文】
符(位操作): 在roboBASIC中,變量可按位操作,使用點操作符(.)。 一個變量是程序使用的一片內存的名字。常量定義時根據數范圍自動的確定類型。Oamp。在roboBASIC可以使用二進制(Bin),八進制(Oct),十進制(Dec)和十六進制(Hex)。其范圍如下表所示:數據類型大小范圍Byte1byte(8bit)0255INTEGER2Byte(16bit)065535roboBASIC不支持復數。對與一個位運算有位或,位與運算。輸出用來在IF語句中控制程序流向。數字符號??文本符號??字符串:標志=相等或替換不相等不相等左移一位右移一位表達式和運算符:表達式由常量,變量和運算符號組成,在roboBASIC中,運算符分類如下表所示:分類功能算數運算符執(zhí)行數學運算關系運算符比較數值大小邏輯運算符比較組合條件或執(zhí)行位操作位運算符操作位或執(zhí)行位運算算數運算符:算數運算符是執(zhí)行計算的標識符。 文中②符號表示該命令只適用于MRC2000系列控制器。在翻譯中參考了部分前者的譯文,但是由于本人英語水平有限,不對手冊的正確程度做保證。如果有任何問題可以給我發(fā)郵件,郵箱519040866。 文中③符號表示該命令只適用于MRC3000系列控制器。和basic語言一樣,加減乘除和取余。運算符關系表達式=等于X = Y不等于X Y小于X Y大于X Y=小于等于X = Y=大于等于X = Y 當算數運算符和邏輯運算符在一個表達式里的時候,算數運算符優(yōu)先于邏輯運算符。roboBASIC中,、。所以當一個數據前有+或號時會產生錯誤。真數聲明例子Binamp。O75DecN/A61Hexamp。一個常量被定義,其不能被重新定義。在minirobot控制中,一個變量是范圍是有限的,所以在變量聲明時要去合適的占用內存最小的類型。07,015 例: DIM A AS INTEGER CONST BIT_2 = 2 = 1 = 0 = IN(1) ‘從端口1讀數據并賦給A的第三位(?應該是第四位吧) OUT 2, ‘將A的第一位傳給端口2(?應該是第二位吧)注釋說明: 程序中合理的代碼注釋能提高代碼的編寫和維護效率。使用等號(=),值在左邊,變量,字符串,計算公式在右邊(從右向左賦值)。(2) 行標記符后跟冒號(:)(3) 0 ~65535的數字可以作為行標記的名字,后面不需要冒號(:)(4) 行標記符不能重復,不區(qū)分大小寫。 變量用來處理傳感器的值或者模擬信號轉換的值。MRC3000可用的變量大小為256字節(jié)。 在roboBASIC中end必須大于start。例子:控制0口的led燈閃5次DIM A AS BYTE FOR A = 1 TO 5 OUT 0, 0 DELAY 100 OUT 0, 1 DELAY 100 NEXTGOTO:語句結構: GOTO [Line label]命令說明: GOTO語句用于是控制流跳轉到特定的代碼段。 該命令可以使用嵌套調用。例子:(1) 在一段代碼執(zhí)行完成后DIM A AS BY TE START: A = IN(0) IF A = 1 THEN END ........... GOTO START(2) 一個主程序結束后DIM A AS BYTE A = BYTEIN(0) IF A = 1 THEN GOSUB L1 ELSEIF A = 3 THEN GOSUB L2 ELSEIF A = 4 THEN GOSUB L3 ELSE GOSUB L4 ENDIF END L1: .............. RETURN L2: ............. RETURN L3: ............ RETURN L4: ........... RETURNSTOP/RUN:語法結構: STOP/RUN命令說明: 使用stop停止程序,使用run來從新開始程序WAIT:語法結構: WAIT命令說明: 機器人控制器中的操作系統(tǒng)有最新的實時控制程序。例子:在MRC2000系統(tǒng)中: DELAY 10 39。 該指令在MRC3000中沒有用,該系統(tǒng)可以直接進入軟件調試模式。IN ( ):語法結構: IN(端口名)命令說明: 將一個端口輸入的數字信號保存為到一個變量中。輸出值可以是0或常量或者是變量。Read the cond ition of the button 39。Otherwi se, OU T 3 , 1 39。 0~ 7端口的信號同時給 ABYTEOUT:語法結構: BYTEOUT [字節(jié)端口名] , [輸出值]命令說明: 輸出信號以字節(jié)為單位,字節(jié)端口名可以是數字,常量和變量,輸出值可以是0255的數字,常量和字節(jié)型的變量。Send 1 valu e(5v ) to 1, 3 ,5,7 ports ’Send 0 valu e(0v ) to 0, 2 ,4,6 portsI NK EY:語法結構: INKEY ([端口名] )命令說明: 按下開關時,實際上在電氣上和機械上被按了很多次。(難道是按鍵消抖)例子: 把連在端口0的開關的狀態(tài)保存在變量A DIM A AS BYTE A = INKEY(0)S TATE ( ): 語法結構: STATE ([端口名]命令說明: 如果需要知道一個端口在輸出信號后的狀態(tài)值,使用STATE,不能使用IN。為外部設備提供信號。Revese the signal of port 3.KEYIN( ):語法結構: KEYIN( [模擬端口名], [鍵值] )命令說明: 該指令是在MRC3000系統(tǒng)中從AD轉換器的端口(模擬端口)讀取16個鍵值。外部寄存器通常是EEPROM(電可擦除只讀存儲器),通常用來儲存用戶代碼。在MRC2000系統(tǒng)提供了30字節(jié)空間用于儲存變量的空間。MRC2000系統(tǒng)有4k,MRC3000系統(tǒng)有12k,32k和64k模式可供選擇。在MRC2000系統(tǒng)中,0255的數字,常量和變量都可以作為[RAM存儲器](應該是作為地址)。ROMPEEK或ROMPOKE可以對外部存儲器進行操作。ROMPOKE:語法結構: ROMPOKE [ROM 存儲器], [data]命令說明: 向外部存儲器的某個地址寫入數據。液晶顯示模塊連接到MRC2000系列控制器的6號端口。當液晶模塊初始化成功后,所有字符將被擦出,光標將顯示在左上角。但LCDINIT命令是刪除包括內部變量在內的所有信息。數字,常量和變量可以用x和y坐標,但它必須從0開始。Send the cursor to the coordinates (4, 1) of the LCD module. PRINT: 輸出字符到LCD模塊語法結構: PRINT “[字符串]”, [數字]/ “[字符串]]” , ....命令說明:輸出一個字符到光標當前所在位置,使用PRINT命令,字符串需要加“”來區(qū)分。格式命令必須緊跟PRINT之后。使用cont命令,可以調整顏色的深淺。例子:LCDINIT CONT 10 PRINT miniR OBOT第八章 ROBOBASIC電機控制指令說明 機器人控制器可以控制直流電機和伺服電機。 ZERO:語法結構: MRc2000中: ZERO [電機0標準位置], [電機1標準位置], ..., [電機5標準位置] MRc3000中: ZERO [電機組], [電機n標準位置], .....命令說明: 各伺服電機的0位置由自身決定。 在MRc2000中設置0位置:(1) 將所有的伺服電機的0位置設置為100用于代替原來的0位置。(5) 使用ZERO命令保存這個0位置。例子: MRc2000中:EX1: 消除舊的0位置 ZERO 100,100,100,100,100,100 DIR 1,1,1,1,1,1 39。設置電機號為6 如果沒有對應的電機號,這個電機將不能被操作。數字,常量和變量可以用來作為電機號。servo group 6C (1 2~17) will be used. Ex 3) MOTOR G8A 39。39。MOVE: 同時操作多個伺服電機。這個過程要用 到伺服電機的同步運行控制。例子: 在MRC2000中:MOVE 100, 5 0, 140, 120, 80, 40 MOVE 120, , , 160 MOVE , 70, 100 MOVE , , , , , 100 在MRC3000中:EX 1) M O VE G6A, 85 , 113, 72 , 117, 115 , 100 M O VE G6C, 75 , , 96, 123, , 122 M O VE G8A, 85 , 113, 72 , 117, 115 , 100, 95, 45 EX 2) M O VE G24 ,85 , 113, 72, 117, 115, 100 Is the same as。正常使用的是3,對于機器人來說,設置較高的速度是一件危險的事。Set the STEP_ SPEED (Variable) as 15 SPEED STEP_ SPEED 39。最好使用ACCEL和SPEED命令。語法結構: 在MRC2000中: PTP [設定值] 在MRC3000中: PTP [SETON/SETOFF/ALLON/ALLOFF]命令說明: 對于多個運動和不同角度的運動,運動完成的時間是不同的。 在MRC2000中: 當有兩個伺服電機時,[設定值]使用常量或者數字,0(取消)或1(同步)。例子: 在MRC2000中:PTP 0 MOVE 100, 1 00 MOVE 110, 1 20說明:電機1轉動10個角度電機2轉動20個角度。兩臺電機一起開始移動,一起停止移動。在控制中[角度]是10190,使用數字,常量和字節(jié)型變量。則伺服控制將被取消。 PWM output of 50% duty rate at motor port PWM 0, 120 39。Send motor to an angle of 190 as fast as possible.HIGHSPEED: 設置一個電機到高速模式語法結構: HIGHSPEED [SETON/SETOFF]命令說明: 在MRC3000系統(tǒng)中該命令設置或取消一個伺服電機的高速模式。語法結構: MOVEPOS [line label] ………… [line label]: POS [電機組], [電機n角度], …命令說明: 該命令只適用于MRC3000系列控制器。對于16到24電機的機器人是很好用的。例子: INIT G8A, 100, 45, 67, 44, 132, 122, 76, 81MOTORIN( ):語法結構: MOTORIN ( [電機號])命令說明: MRC3000中使用這個命令,它可以讀取當前位置值的任何機器人伺服(HSR series)電機的數據(角度)。AI電動機控制的MRC系列控制器以同樣的方式作為一個正常的伺服電機。當使用一個AI電動機,宣稱“使用人工智能電動機”是必要的,但不是必需的其他伺服系統(tǒng)。例子:AIMO TO RO FF 0 39。在MRC3000中它可以讀取當前位置值數字機器人 伺服電機的值(HSR series)。開啟電源,然后開始 執(zhí)行“移動”命令。例子:GETMOTORSET G8A, 1, 1, 1, 1, 0, 0, 0, 0 ‘No. 0 ?, 1, 2, 3 servo motors maintain the present value at power on. ‘No. 4, 5, 6, 7 servo motors move to initial value of 100 at power on .第九章 ROBOBASIC 語音控制指令說明 MRC系統(tǒng)有能力播放警告音和音樂。 MRC2000系統(tǒng)中: 蜂鳴器接在MRC2000系統(tǒng)控制器的8端口上。 注:The MRC3024 系統(tǒng)控制器內部有一個蜂鳴器。例子:BEEPSOUND: 使用蜂鳴器發(fā)出聲音語法結構: SOUND [pitch], [length], [pitch], [length] , .... [頻率][時長]命令說明: 在MRC2000系統(tǒng)中,可以設置蜂鳴器信號的頻率和延時時間。