*目次 [#w91c8231]
#contents
*課題 [#k98f4d7c]
**似顔絵ロボット [#h74c91dc]
・A3用紙に相方の似顔絵を書くロボットの製作 
**ロボットの写真 [#maf6813a]
#ref(080521_205353.JPG) [#g00e7b96]
**課題を行うために必要な機能 [#s992e38d]
・前進後進が可能~
・左右に方向転換、及びその場での回転が可能~
・ペンを装着し固定できる~
・モーターによってペンを上げ下げできる~
・ペンと紙との摩擦でペンがずれない~
・動作中に分解しない耐久性がある~
~
以上の点を満たすロボットを制作した~
** [#sf90fdf0]

**ロボットの説明 [#k2612e85]
*プログラム [#p36e7bca]
**A [#ca9b6df2]
**B  08T1035A[#ca9b6df2]
task main()
{
    OnFwd(OUT_A+OUT_B); // A と B 出力のモータを正回転
    OnRev(OUT_C);
     Wait(250);
    OnRev(OUT_C);    //C出力のモータを逆回転
     Wait(250);      
    OnFwd(OUT_C);       // C 出力のモータを正回転
    Wait(50);          // 再び前進
    OnFwd(OUT_A);
    OnRev(OUT_C);
    OnFwd(OUT_A);  //A出力のモータを正回転
    OnRev(OUT_C);  //C出力のモータを逆回転
    Wait(250);
    OnRev(OUT_B); 
    OnFwd(OUT_C);   
    OnRev(OUT_B);   //B出力のモータを逆回転
    OnFwd(OUT_C);    //C出力のモータを正回転
    Wait(20);
    Off(OUT_A+OUT_B+OUT_C);
    Off(OUT_A+OUT_B+OUT_C);  //止まった状態にする
    Wait(2);
    OnFwd(OUT_B);
    OnFwd(OUT_B);    //B出力のモータを正回転
    Wait(70);
    OnRev(OUT_B);
    OnRev(OUT_B);    //B出力のモータを逆回転
    Wait(30);
    OnFwd(OUT_A);
    OnRev(OUT_C);
    OnFwd(OUT_A);   //A出力のモータを正回転
    OnRev(OUT_C);   //C出力のモータを逆回転
    Wait(20);
    OnFwd(OUT_B);
    OnFwd(OUT_B);   //B出力のモータを正回転
    Wait(30);
    OnRev(OUT_B);
    OnRev(OUT_B);   //B出力のモータを逆回転
    Wait(100);
    OnFwd(OUT_B);
    OnFwd(OUT_B);   //B出力のモータを正回転
    Wait(100);
    Float(OUT_A+OUT_C); // Off より滑らかに止まる
}
 
**B [#ucdf6ccb]
 
*苦労した点 [#r54c77c7]
**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);              //C出力のモータを正回転する
   Wait(120);
   OnRev(OUT_A);    //A出力のモータを逆回転する
   Wait(80);
   OnFwd(OUT_B);    //B出力のモータを正回転する
   Wait(30);
   OnFwd(OUT_A+OUT_C);   //AとC出力のモータを正回転する
   Wait(90);
      OnRev(OUT_B);      //B出力のモータを逆回転する
      Wait(5);
      OnRev(OUT_C);      //C出力のモータを逆回転する
      Wait(100);
      OnRev(OUT_A+OUT_C);   //AとC出力のモータを逆回転する
      Wait(100);
      OnFwd(OUT_B);      //B出力のモータを正回転する
      Wait(60);
   Float(OUT_A+OUT_B+OUT_C);   //Offよりなめらかに止まる
}   *苦労した点 [#r54c77c7]
**問題点 [#c04fe2d7]
◦ペンを持てない
◦ペンの上げ下げ
◦ペンがひっかかってロボットが宙に浮く
◦おもいどうりにロボットが動かない

◦ロボットの曲がる角度がうまくいかない
** [#c2d99e58]
◦ペンの構造を利用してブロックで挟み込んだ
◦タイヤの回転を利用した
◦ペンが一定以上動かないようにつっかえ棒をつけた
◦何度も試行しました




*コメントをどうぞ [#i454ceb3]
- プログラム中のコメントについて、モータを正回転する、逆回転する、というのはコマンドを見れば分かることなので、むしろ正回転や逆回転すればどういう動作をするのか、という説明を書いておきましょう。 -- [[松本]] &new{2008-07-23 (水) 13:11:51};

#comment

プログラムの説明を書いてください。あと、後半の方はうまく表示できていないようです F.I.


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS