*目次 [#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出力のモータを正回転 する OnRev(OUT_C); //C出力のモータを逆回転する Wait(250); OnFwd(OUT_C); // C出力のモータを正回転する Wait(50); OnFwd(OUT_A); A出力のモータを正回転する OnRev(OUT_C); C出力のモータを逆回転する Wait(220); OnFwd(OUT_C); C出力のモータを正回転する Wait(30); OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する Wait(20); OnFwd(OUT_A); A出力のモータを正回転する OnRev(OUT_B); B出力のモータを逆回転する Wait(10); Off(OUT_B); OnRev(OUT_C); C出力のモータを逆回転する Wait(100); OnFwd(OUT_C); Wait(100); OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する Wait(130); Off(OUT_A+OUT_B+OUT_C); 止まった状態にする Wait(50); OnFwd(OUT_B); B出力のモータを正回転する Wait(100); OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する Wait(20); OnRev(OUT_B); B出力のモータを逆回転する Wait(30); Off(OUT_A+OUT_B+OUT_C); 止まった状態にする Wait(50); OnFwd(OUT_B); B出力のモータを正回転する Wait(100); OnRev(OUT_A+OUT_C); AとC出力のモータを逆回転する Wait(20); OnRev(OUT_B); B出力のモータを逆回転する Wait(30); Off(OUT_B); OnFwd(OUT_A); A出力のモータを正回転する Wait(100); OnFwd(OUT_C); Wait(120); OnRev(OUT_A); Wait(80); OnFwd(OUT_B); Wait(30); OnFwd(OUT_A+OUT_C); Wait(90); OnRev(OUT_B); Wait(5); OnRev(OUT_C); Wait(100); OnRev(OUT_A+OUT_C); Wait(100); OnFwd(OUT_B); Wait(60); Float(OUT_A+OUT_B+OUT_C); } *苦労した点 [#r54c77c7] **問題点 [#c04fe2d7] ◦ペンを持てない ◦ペンの上げ下げ ◦ペンがひっかかってロボットが宙に浮く ◦おもいどうりにロボットが動かない ◦ロボットの曲がる角度がうまくいかない ** [#c2d99e58] ◦ペンの構造を利用してブロックで挟み込んだ ◦タイヤの回転を利用した ◦ペンが一定以上動かないようにつっかえ棒をつけた ◦何度も試行しました *コメントをどうぞ [#i454ceb3] - プログラム中のコメントについて、モータを正回転する、逆回転する、というのはコマンドを見れば分かることなので、むしろ正回転や逆回転すればどういう動作をするのか、という説明を書いておきましょう。 -- [[松本]] &new{2008-07-23 (水) 13:11:51}; #comment プログラムの説明を書いてください。あと、後半の方はうまく表示できていないようです F.I.