■
左前:1→2→2→2→1
右後:2→1→1→1→2
右前:2→2→1→2→2
左後:1→1→2→1→1
こっち
左前:1→1→2→2→1
右後:2→1→1→2→2
右前:2→2→1→1→2
左後:1→2→2→1→1
V-Servoサンプル内容
// スイング動作
// バーストモードでSID=0からSID=29までを同時に操作
case 5:
{
int t;
for(t=0; t<300; t++) {
int tpos = (int)(0x800 + 0x400 * sin(3.1416*2*t/50));
int k = 0, i;
// 30個分の指示+syncをバッファして、一度に書き込む
for(i=0; i<30; i++)
{
buf[k++] = 0xc0 | i; // burst 0xc0:BurstAccessMode
buf[k++] = (tpos>>0) & 0x7f; // 0x7f:1111111 7bit分のマスク V-Servoでは1byteが7bit リトルエンディアン(最下位バイトから書き込む)
buf[k++] = (tpos>>7) & 0x7f;
buf[k++] = 1; //BurstAddress FB_TPOS 下位バイト
buf[k++] = 0; //BurstAddress FB_TPOS+1 上位バイト
}
buf[k++] = 0x80 | 0x3f; // write broadcast 0x80:RandomAccessMode 0x3f:BroadcastMode すべてのモーターに同じ設定を適用
buf[k++] = 0x40 | 1; //0x40:メモリ書き込みあり 0x00:メモリ書き込みなし
buf[k++] = 0x4f; //アドレス BST_SYNバースト同期
buf[k++] = 1; //ON
WriteFile(hCom, buf, k, &bytes, NULL);
Sleep(20);
}
}
break;