2018年7月13日 星期五

ROSA 系統開發 59 ─ OTTO like 跳舞控制

https://4rdp.blogspot.com/2018/07/rosa-59-otto-like.html?m=0

const byte RUN_4[] PROGMEM = {
//   0, 1,   2, 3, 4,   5, 6,
_TEMPO,  23, idl, idl, idl, idl, idl,    //   23 x 10 ms
_FAST2, LMD, LSD, RMD, RD3, idl, idl,    //
_FAST2, LMD, LSD, RMD, RSD, idl, idl,    //
_JUMP,    1,
};
const byte RUN_5[] PROGMEM = {            // 快腳 15"
//   0, 1,   2, 3, 4,   5, 6,
_GOTO,   18, idl, idl, idl, idl, idl,
_STOP,
};
const byte RUN_6[] PROGMEM = {
//   0, 1,   2, 3, 4,   5, 6,
 _GOSUB,   3, idl, idl, idl, idl, idl,   // 無限重複 極樂淨土
 _LOOP,   58, idl, idl, idl, idl, idl,
 _DANCE, LMD, LSD, RMD, RSD, idl, idl,
 _DANCE, LMD, LSD, RMD, RSD, idl, idl,
 _NEXT,    2, idl, idl, idl, idl, idl,
 _JUMP,    0,
};
const byte RUN_8[] PROGMEM = {                // OTTO speed normal
//   0, 1,   2, 3, 4,   5, 6,
_SPEED,   1, 1, 1,   1, 1, 1, //0
   _RETURN,                                 //1
};


_TEMPO, 23, idl, idl, idl, idl, idl,      一拍節奏 230 ms
_FAST4,       k = 1/4
_FAST2,       k = 1/2
_DANCE,       k = 1
_SLOW2,       k = 2
_SLOW3,       k = 3
_SLOW4,       k = 4
_SLOW8,       k = 8
使用 _FAST4, _FAST2, _DANCE, _SLOW2, _SLOW3, _SLOW4, _SLOW8 程序每行動作所花費的時間 Tempo time = _TEMPO 設定值 * 10 ms * k,因此使用 _DANCE 等指令可以很精準在固定時間 (Tempo time)內轉動到特定的角度。而 _SERVO 指令只控制馬達角度,沒有控制時間,時間是由 _SPEED 控制,-1 慢速,1 常速,2 快速。


_JUMP, 1,     跳到第 1 行程序
_STOP,        程序停止
_GOSUB, 3,    跳到第 3 號動作程序,程序結束後跳回來繼續執行

_RETURN,      執行完畢後,跳回原來呼叫的程序

沒有留言:

張貼留言