2015年4月4日 星期六

ROSA 的指令概述

http://4rdp.blogspot.com/2015/04/rosa_4.html

圖片引用自維基百科
此文作廢,改版內容請見 ROSA 的指令概述 (2015.8.1)

續前文,接下來介紹 ROSA 的指令系統,因為 Arduino 控制器沒有任何鍵盤及螢幕,因此靠通訊的指令來傳達控制的訊息比較適當,所以採用前文所提的原則,使用簡單易懂的明碼文字指令,所有的英文大小寫字母都接受,為了便於說明 ROSA 相關指令語法,後面的說明解釋以大寫字母表示命令,小寫字母為該指令的參數項目,例如,

CONF pin,type1,type2,.....
CONF 是 configure 的縮寫,這指令用於設定控制器 pin 腳的用途,ROSA 對控制器 pin 代號定義與 Arduino 是一致的,也是以數字來編號,從號碼 0 開始,以 Uno 為例,上排 0 到 13 是數位的 pin,下排 A0 到 A5 是類比的 pin,ROSA 把編號訂在 200 到 205,也可以用 14 到 19,簡單說類比的腳位排在數位腳之後。(mBot 有 A6、A7)

這指令可以一次設定多隻 pin 腳,只要指定第一腳後,其它就接續設定,最多可連續設定 8 隻 pin 腳。type1 是開頭第一腳的型態,type2 就是相鄰第二腳的型態,type 也是以數字表示,型態定義為


type數值
意  義
說  明
0~19
SERVO
保留二十個號碼的目的,是保留給伺服馬達分群組時使用,目前並無區分,0 ~ 19之間可任意填寫,目前皆視為同一群組。
20
DOUT
數位腳輸出
21
DIN
數位腳輸入
22
DIN_UP
數位腳輸入並加上一個提升電阻
23
ADIN
類比腳輸入 (For mBot, Light Sensor or Button)
24
ADIN_UP
類比腳輸入並加上一個提升電阻
25
SER_RX
UART 接收端,第二組預設 baud rate 9600 bps
26
SER_TX
UART 傳送端,第二組預設 baud rate 9600 bps
27
PWM
脈波寬度調變輸出,目前不支援變更頻率,採 Arduino 內定頻率
pin 5, 6 為 976.5625 Hz (約 1 kHz),
pin 3, 9, 10, 11 為 490.196 Hz (約 500 Hz)
28
I2C
保留給兩線式通訊,ATmega328 MCU 類型 Arduino 腳位限定在 A4 (SDA) 及 A5 (SLC) 兩腳
29
IR_RX
紅外線接收輸入
30
IR_TX
紅外線傳送輸出
31
TONE
蜂鳴器
32
LED
可接串聯式 RBG LED (WS2812, For mBot)
33 ~ 255
XXXX
連續輸出設定時,不想更動中間某一腳的設定,這時可用它表示不更改這隻腳設定。
2015/7/12 updated,追加 mBot

解釋這麼多,如果還不清楚,來看看例子,

CONF 8,21  
設定 Arduino 第 8 腳為數位輸入

CONF 2,0,0,0,0,0,0,250,0  
設定 Arduino 第 2 ~ 7 及 9 腳為 SERVO 輸出,不更動原來第 8 腳設定

CONF 204,23,24,20  
設定 Arduino A4 腳為類比輸入,A5 腳為加上提升電阻的類比輸入,UNO 沒有 A6 這支腳,設定會無效

CONF 11,27,26,20,23
設定 Arduino 第 11 腳 PWM 輸出,第 12 腳 TX2,第 13 腳數位輸出,第 14 腳 (A0) 類比輸入



請注意,開機時預設 pin 0 USB-RX,pin 1 USB-TX 給 USB 傳送指令用,若無特殊需求,請勿變更設定以免造成通訊不良。

ROSA 系統設好腳位型態,也可以反向查詢,一般在原指令後加一個「?」,這裡的指令為
CONF? pin
指定 pin 就可以查詢該 pin 的設定,例如

CONF? 2
查詢 pin 2 的設定

CONF? 202 
查詢 pin A2 的設定


所有指令,無論設定或是詢問型,每一筆指令傳送 ROSA 都會有回應,


目前 ROSA 程式開發以 MCU ATmega328 系列為主,未來視需求再擴充到其它 MCU。
接續 .....

沒有留言:

張貼留言