2015年8月1日 星期六

ROSA 的指令概述 (2015.8.1 版)

http://4rdp.blogspot.com/2015/08/rosa-201581.html?m=0

圖片引用自維基百科
為了減少 RAM 記憶空間需求,原第一版 ROSA 的指令概述作廢,此文改版重發。

續前文,接下來介紹 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
DOUT
數位腳輸出
1
DIN
數位腳輸入
2
DIN_UP
數位腳輸入並加上一個提升電阻
3
ADIN
類比腳輸入 (For mBot, Light Sensor or Button)
4
ADIN_UP
類比腳輸入並加上一個提升電阻
5
PWM
脈波寬度調變輸出,目前不支援變更頻率,採 Arduino 內定頻率
pin 5, 6 為 976.5625 Hz (約 1 kHz),
pin 3, 9, 10, 11 為 490.196 Hz (約 500 Hz)
6

保留,未設計
7
LED
可接串聯式 RBG LED (WS2812, For mBot)
8
TONE
蜂鳴器
9
SERVO
伺服馬達 SG90
10
I2C
保留給兩線式通訊,ATmega328 MCU 類型 Arduino 腳位限定在 A4 (SDA) 及 A5 (SLC) 兩腳
11
SER_RX
UART 接收端,第一組預設 baud rate 115200 bps
                         第二組預設 baud rate 9600 bps
12
SER_TX
UART 傳送端,第一組預設 baud rate 115200 bps
                         第二組預設 baud rate 9600 bps
13
IR_RX
紅外線接收輸入
14
IR_TX
紅外線傳送輸出
15
XXXX
連續輸出設定時,不想更動中間某一腳的設定,這時可用它表示不更改這隻腳設定。


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

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

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

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

CONF 11,5,12,0,3
設定 Arduino 第 11 腳 PWM 輸出,第 12 腳 SER_TX,第 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。

接續 .....

沒有留言:

張貼留言