Paprika:基本制御ライブラリ

説明

PCNより発売されているロボット「Paprika」を制御するための基本ライブラリです。Paprikaはout()、pwm()で手軽に制御できます。このライブラリを使えばより手軽にロボットを制御することができます。
ライブラリは以下のメソッドがあります。ミリ秒とあるのは、その処理を行う時間です。forward(2000)とした場合、2秒間前進します。時間で-1を指定した場合は無限にその行為を繰り返します。
アーム(腕)の制御ではその処理を終えるまでの時間を指定します。だいたい500を指定してください。2000だと腕を動かす時間+停止時間が2秒ということになります。
関数名説明
stop()移動を停止します。
forward(ミリ秒)指定した時間だけ前進します。-1を指定すると無限に移動します。
back(ミリ秒)指定した時間だけ後ろに進みます。-1を指定すると無限に移動します。
Lturn(ミリ秒)指定した時間だけ左に旋回します。-1を指定すると無限に旋回します。
Lturn2(ミリ秒)指定した時間だけ左に高速に旋回します。-1を指定すると無限に旋回します。
Rturn(ミリ秒)指定した時間だけ右に旋回します。-1を指定すると無限に旋回します。
Rturn2(ミリ秒)指定した時間だけ右に高速に旋回します。-1を指定すると無限に旋回します。
LarmF(ミリ秒)左腕を前に動かします。ミリ秒は、だいたい500を指定してください。
LarmC(ミリ秒)左腕を下に動かします。ミリ秒は、だいたい500を指定してください。
LarmB(ミリ秒)左腕を後ろに動かします。ミリ秒は、だいたい500を指定してください。
RarmF(ミリ秒)右腕を前に動かします。ミリ秒は、だいたい500を指定してください。
RarmC(ミリ秒)右腕を下に動かします。ミリ秒は、だいたい500を指定してください。
RarmB(ミリ秒)右腕を後ろに動かします。ミリ秒は、だいたい500を指定してください。
armF(ミリ秒)両腕を前に動かします。ミリ秒は、だいたい500を指定してください。
armC(ミリ秒)両腕を下に動かします。ミリ秒は、だいたい500を指定してください。
armB(ミリ秒)両腕を後ろに動かします。ミリ秒は、だいたい500を指定してください。
armX1(ミリ秒)左腕を前、右腕を後ろに動かします。ミリ秒は、だいたい500を指定してください。
armX2(ミリ秒)右腕を前、左腕を後ろに動かします。ミリ秒は、だいたい500を指定してください。

[以下のJavaScriptプログラムをダウンロード]

// Paprika Basic Control Library
function stop(){out(0);}
function forward(s){out(33);if(s>0){sleep(s);out(0);}}
function back(s){out(18);if(s>0){sleep(s);out(0);}}
function Lturn(s){out(32);if(s>0){sleep(s);out(0);}}
function Lturn2(s){out(34);if(s>0){sleep(s);out(0);}}
function Rturn(s){out(1);if(s>0){sleep(s);out(0);}}
function Rturn2(s){out(17);if(s>0){sleep(s);out(0);}}
function LarmF(s){pwm(3,500);sleep(s);}
function LarmC(s){pwm(3,1450);sleep(s);}
function LarmB(s){pwm(3,2400);sleep(s);}
function RarmF(s){pwm(4,2400);sleep(s);}
function RarmC(s){pwm(4,1450);sleep(s);}
function RarmB(s){pwm(4,500);sleep(s);}
function armC(s){pwm(3,1450);pwm(4,1450);sleep(s);}
function armF(s){pwm(3,500);pwm(4,2400);sleep(s);}
function armB(s){pwm(3,2400);pwm(4,500);sleep(s);}
function armX1(s){pwm(3,500);pwm(4,500);sleep(s);}
function armX2(s){pwm(3,2400);pwm(4,2400);sleep(s);}
// Main Control
stop();
LarmC(500);
RarmC(500);
armF(900);
armB(900);
armC(900);
log("Init OK\n");
forward(1500);
LarmF(1000);
LarmB(1000);
stop();
Lturn2(500);
sleep(2000);
RarmF(1000);
RarmB(1000);
Rturn(500);
log("Repeat\n");
back(-1);
while(1){
armX1(500);
armX2(500);
}

目次に戻る