專利申請書裡的插圖 |
ROSA 的多工同步無等待控制系統,可以多顆伺服馬達 (多工) 同時 (同步) 轉動,並且操作程式不必安插多餘等待指令 (無等待),為了實踐這樣想法,將這些功能寫入 ROSA 系統程式中,這一切動作控制細節皆由 ROSA 處理,這個 的多工同步無等待控制概念,已先申請發明專利。
或許有人可能會疑問,直接寫 Arduino 的 C 程式不就好了,還要 ROSA 做什麼?使用 ROSA 主要可以簡化你的控制程式,因為想寫一個多工同步無等待的機器人程式,蠻複雜的,簡單說 ROSA 可以讓你撰寫機器人高階控制的部分,其餘控制細節則交由 ROSA 處理。這裡用三顆馬達程式舉例說明
# ROSA Profile Example
# 專利申請證號 (台)104112947、(陸)PAT. PENDING No. 201510217500.5
# 未經授權,禁止任何商業使用
# (C) 2015, Bridan, CC BY-NC-SA 3.0 TW
#
CONF 2,0,0,0 # 預設 pin 2 ~ 4 為伺服馬達
CONF 13,20 # 預設 pin 13 為數位輸出
SET 2,90,90,90 # 設定馬達角度 90 度
#
:MAIN
CALL SHOULDER # 呼叫肩部馬達控制
CALL ELBOW # 呼叫肘部馬達控制
CALL CLIP # 呼叫夾子馬達控制
GOTO MAIN # 跳到主迴圈起頭
#
:SHOULDER # 馬達3 為肩部馬達
SERVO 3,30,20,0,1 # 30 ~ 160 度,慢速來回擺動 20%電力
WAIT 0.8 # 中間再停頓 0.8 秒
SERVO 3,160,20,0,1 # 停頓期間仍有電力維持
WAIT 0.8
RETURN
#
:ELBOW # 馬達2 為肘部馬達
SERVO 2,60,50,0,0 # 60 ~ 170 度,中速來回擺動 50%電力
SERVO 2,170,50,0,0
RETURN
#
:CLIP # 馬達4 為夾子馬達
SET 13,1 # pin 13 接一 LED 亮滅顯示
SERVO 4,90,100,0,0 # 90 ~ 160 度,快速開夾擺動 100% 電力
SET 13,0
SERVO 4,160,100,0,0
RETURN
#
這三顆馬達可以不同速度獨立運轉,並且機器人的控制程式看不到條件式,亦無需安插不必要的等待指令,接續...
# ROSA Profile Example
# 專利申請證號 (台)104112947、(陸)PAT. PENDING No. 201510217500.5
# 未經授權,禁止任何商業使用
# (C) 2015, Bridan, CC BY-NC-SA 3.0 TW
#
CONF 2,0,0,0 # 預設 pin 2 ~ 4 為伺服馬達
CONF 13,20 # 預設 pin 13 為數位輸出
SET 2,90,90,90 # 設定馬達角度 90 度
#
:MAIN
CALL SHOULDER # 呼叫肩部馬達控制
CALL ELBOW # 呼叫肘部馬達控制
CALL CLIP # 呼叫夾子馬達控制
GOTO MAIN # 跳到主迴圈起頭
#
:SHOULDER # 馬達3 為肩部馬達
SERVO 3,30,20,0,1 # 30 ~ 160 度,慢速來回擺動 20%電力
WAIT 0.8 # 中間再停頓 0.8 秒
SERVO 3,160,20,0,1 # 停頓期間仍有電力維持
WAIT 0.8
RETURN
#
:ELBOW # 馬達2 為肘部馬達
SERVO 2,60,50,0,0 # 60 ~ 170 度,中速來回擺動 50%電力
SERVO 2,170,50,0,0
RETURN
#
:CLIP # 馬達4 為夾子馬達
SET 13,1 # pin 13 接一 LED 亮滅顯示
SERVO 4,90,100,0,0 # 90 ~ 160 度,快速開夾擺動 100% 電力
SET 13,0
SERVO 4,160,100,0,0
RETURN
#
這三顆馬達可以不同速度獨立運轉,並且機器人的控制程式看不到條件式,亦無需安插不必要的等待指令,接續...
沒有留言:
張貼留言