圖片引用自維基百科 |
續前文,接下來介紹 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
| |
33 ~ 255
|
XXXX
|
連續輸出設定時,不想更動中間某一腳的設定,這時可用它表示不更改這隻腳設定。
|
解釋這麼多,如果還不清楚,來看看例子,
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
請注意,開機時預設 pin 0 USB-RX,pin 1 USB-TX 給 USB 傳送指令用,若無特殊需求,請勿變更設定以免造成通訊不良。
ROSA 系統設好腳位型態,也可以反向查詢,一般在原指令後加一個「?」,這裡的指令為
CONF? pin
CONF? pin
指定 pin 就可以查詢該 pin 的設定,例如
CONF? 2
查詢 pin 2 的設定
CONF? 202
目前 ROSA 程式開發以 MCU ATmega328 系列為主,未來視需求再擴充到其它 MCU。CONF? 2
查詢 pin 2 的設定
CONF? 202
查詢 pin A2 的設定
所有指令,無論設定或是詢問型,每一筆指令傳送 ROSA 都會有回應,
接續 .....
沒有留言:
張貼留言