- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#w91c8231]
#contents
*課題 [#k98f4d7c]
**似顔絵ロボット [#h74c91dc]
・A3用紙に相方の似顔絵を書くロボットの製作
**ロボットの写真 [#maf6813a]
#ref(080521_205353.JPG) [#g00e7b96]
**課題を行うために必要な機能 [#s992e38d]
・前進後進が可能~
・左右に方向転換、及びその場での回転が可能~
・ペンを装着し固定できる~
・モーターによってペンを上げ下げできる~
・ペンと紙との摩擦でペンがずれない~
・動作中に分解しない耐久性がある~
~
以上の点を満たすロボットを制作した~
** [#sf90fdf0]
**ロボットの説明 [#k2612e85]
*プログラム [#p36e7bca]
**B 08T1035A[#ca9b6df2]
task main()
{
OnFwd(OUT_A+OUT_B); // A と B 出力のモータを正回転
OnRev(OUT_C); //C出力のモータを逆回転
Wait(250);
OnFwd(OUT_C); // C 出力のモータを正回転
Wait(50); // 再び前進
OnFwd(OUT_A); //A出力のモータを正回転
OnRev(OUT_C); //C出力のモータを逆回転
Wait(250);
OnRev(OUT_B); //B出力のモータを逆回転
OnFwd(OUT_C); //C出力のモータを正回転
Wait(20);
Off(OUT_A+OUT_B+OUT_C); //止まった状態にする
Wait(2);
OnFwd(OUT_B); //B出力のモータを正回転
Wait(70);
OnRev(OUT_B); //B出力のモータを逆回転
Wait(30);
OnFwd(OUT_A); //A出力のモータを正回転
OnRev(OUT_C); //C出力のモータを逆回転
Wait(20);
OnFwd(OUT_B); //B出力のモータを正回転
Wait(30);
OnRev(OUT_B); //B出力のモータを逆回転
Wait(100);
OnFwd(OUT_B); //B出力のモータを正回転
Wait(100);
Float(OUT_A+OUT_C); // Off より滑らかに止まる
}
**A [#ucdf6ccb]08A3007A [#da38d57b]
task main() {
SetPower(OUT_B,4);
OnFwd(OUT_A+OUT_B); //AとB出力のモータを正回転 する
OnFwd(OUT_A+OUT_B); //AとB出力のモータを正回転する
OnRev(OUT_C); //C出力のモータを逆回転する
Wait(250);
OnFwd(OUT_C); // C出力のモータを正回転する
Wait(50);
OnFwd(OUT_A); A出力のモータを正回転する
OnRev(OUT_C); C出力のモータを逆回転する
OnFwd(OUT_A); //A出力のモータを正回転する
OnRev(OUT_C); //C出力のモータを逆回転する
Wait(220);
OnFwd(OUT_C); C出力のモータを正回転する
OnFwd(OUT_C); //C出力のモータを正回転する
Wait(30);
OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する
OnRev(OUT_A+OUT_C); //AとC出力のモータを逆回転する
Wait(20);
OnFwd(OUT_A); A出力のモータを正回転する
OnRev(OUT_B); B出力のモータを逆回転する
OnFwd(OUT_A); //A出力のモータを正回転する
OnRev(OUT_B); //B出力のモータを逆回転する
Wait(10);
Off(OUT_B);
OnRev(OUT_C); C出力のモータを逆回転する
OnRev(OUT_C); //C出力のモータを逆回転する
Wait(100);
OnFwd(OUT_C);
Wait(100);
OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する
OnRev(OUT_A+OUT_C); //AとC出力のモータを逆回転する
Wait(130);
Off(OUT_A+OUT_B+OUT_C); 止まった状態にする
Off(OUT_A+OUT_B+OUT_C); //止まった状態にする
Wait(50);
OnFwd(OUT_B); B出力のモータを正回転する
OnFwd(OUT_B); //B出力のモータを正回転する
Wait(100);
OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する
OnRev(OUT_A+OUT_C); //AとC出力のモータを逆回転する
Wait(20);
OnRev(OUT_B); B出力のモータを逆回転する
OnRev(OUT_B); //B出力のモータを逆回転する
Wait(30);
Off(OUT_A+OUT_B+OUT_C); 止まった状態にする
Off(OUT_A+OUT_B+OUT_C); //止まった状態にする
Wait(50);
OnFwd(OUT_B); B出力のモータを正回転する
OnFwd(OUT_B); //B出力のモータを正回転する
Wait(100);
OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する
OnRev(OUT_A+OUT_C); //AとC出力のモータを逆回転する
Wait(20);
OnRev(OUT_B); B出力のモータを逆回転する
OnRev(OUT_B); //B出力のモータを逆回転する
Wait(30);
Off(OUT_B);
OnFwd(OUT_A); A出力のモータを正回転する
OnFwd(OUT_A); //A出力のモータを正回転する
Wait(100);
OnFwd(OUT_C);
OnFwd(OUT_C); //C出力のモータを正回転する
Wait(120);
OnRev(OUT_A);
OnRev(OUT_A); //A出力のモータを逆回転する
Wait(80);
OnFwd(OUT_B);
OnFwd(OUT_B); //B出力のモータを正回転する
Wait(30);
OnFwd(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //AとC出力のモータを正回転する
Wait(90);
OnRev(OUT_B);
OnRev(OUT_B); //B出力のモータを逆回転する
Wait(5);
OnRev(OUT_C);
OnRev(OUT_C); //C出力のモータを逆回転する
Wait(100);
OnRev(OUT_A+OUT_C);
OnRev(OUT_A+OUT_C); //AとC出力のモータを逆回転する
Wait(100);
OnFwd(OUT_B);
OnFwd(OUT_B); //B出力のモータを正回転する
Wait(60);
Float(OUT_A+OUT_B+OUT_C);
Float(OUT_A+OUT_B+OUT_C); //Offよりなめらかに止まる
} *苦労した点 [#r54c77c7]
**問題点 [#c04fe2d7]
◦ペンを持てない
◦ペンの上げ下げ
◦ペンがひっかかってロボットが宙に浮く
◦おもいどうりにロボットが動かない
◦ロボットの曲がる角度がうまくいかない
** [#c2d99e58]
◦ペンの構造を利用してブロックで挟み込んだ
◦タイヤの回転を利用した
◦ペンが一定以上動かないようにつっかえ棒をつけた
◦何度も試行しました
*コメントをどうぞ [#i454ceb3]
- プログラム中のコメントについて、モータを正回転する、逆回転する、というのはコマンドを見れば分かることなので、むしろ正回転や逆回転すればどういう動作をするのか、という説明を書いておきましょう。 -- [[松本]] &new{2008-07-23 (水) 13:11:51};
#comment
プログラムの説明を書いてください。あと、後半の方はうまく表示できていないようです F.I.