[[2005/B1]]

*練習問題 [#hed12ed1]
*練習問題1 [#hed12ed1]
-書道ロボット

 #define MOVE_TIME 2
 #define MATE 1
 #define MATE
 #define taiya OUT_A+OUT_C
 #define a OUT_A
 #define c OUT_C
 #define b OUT_B

 
 task main()
 {OnFwd(OUT_B);
 Wait(150);                     //pen orosi
 Wait(150);                     //ペン上げ
 OnFwd(OUT_A);
 OnFwd(OUT_C);
 
 
 repeat(50){
 Wait(MOVE_TIME);
 Off(OUT_A);
 Wait(MATE);
 OnFwd(OUT_A);}              //1kakume owari
 OnFwd(OUT_A);}              //1画目終わり
 
 Off(OUT_A+OUT_B+OUT_C);
 
 OnRev(OUT_B);
 Wait(100);                
 Off(OUT_B);                    //pen ageru
 Off(OUT_B);                    //ペン上げ
 
 OnFwd(OUT_A);
 Wait(MOVE_TIME*50-MATE*50);
 
 
 Off(OUT_A+OUT_C);
 
 
 OnFwd(taiya);
 Wait(20);
 Off(taiya);
 OnRev(OUT_C);
 Wait(240);
 Off(OUT_C);  
 OnFwd(OUT_A+OUT_C);
 Off(taiya);                            
 
 OnRev(taiya);
 Wait(30);
 Off(taiya);                     //2kakume iti  
 Off(taiya);                     //2画目の位置  
 
 
 OnFwd(OUT_B);
 Wait(150);
 
 
 OnFwd(OUT_A+OUT_B+OUT_C);
 Wait(130);
 Off(taiya);                     //2kakume owari
 Off(taiya);                     //2画目終わり
 OnRev(OUT_B);
 Wait(100);
 Off(OUT_B);
 
 OnFwd(OUT_C);
 OnRev(OUT_A);
 Wait(250);                     //rei no kaiten
 Wait(250);                     
 
 OnFwd(taiya);
 Wait(10);
 Off(taiya);
 
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(127);
 Off(OUT_C);

 
 OnRev(taiya);
 Wait(40);
 Off(taiya);
 
 OnFwd(OUT_B);                //3kakume hairu
 OnFwd(OUT_B);                //3画目の位置
 Wait(150);
 
 OnFwd(taiya);
 Wait(60);
 Off(taiya);
 OnRev(OUT_B);
 Wait(100);
 Off(OUT_B);                //3kakume owari
 Off(OUT_B);                //3画目終わり
 
 OnFwd(taiya);
 Wait(25);
 OnFwd(OUT_A);
 OnRev(OUT_C);
 Wait(125);
 OnRev(taiya);
 Wait(87);
 Off(taiya);              //4kakume hairu
 Off(taiya);              //4画目の位置
 
 OnFwd(OUT_B);
 Wait(150);
 OnFwd(taiya);
 Wait(80);
                            //4kakume no kado
                            //4画目の角
 repeat(15){
 
 repeat(15){

 OnFwd(c);
 OnRev(a);
 Wait(1);
 Off(c);
 OnRev(a);
 Wait(1);
 Off(a+c);
 OnFwd(a+c);
 Wait(1); 
 Off(OUT_A+OUT_C);
 }
 repeat(10){
 OnFwd(c);
 OnRev(a);
 Wait(1);
 Off(a);
 OnFwd(c);
 Wait(1);
 Off(a+c);
 }
 OnRev(OUT_B);
 Wait(100);                    //4kakume owari
 Wait(100);                    //4画目の終わり
 Off(OUT_B);
 
 repeat(10){
 OnRev(c);
 OnFwd(a);
 Wait(1);
 Off(a);
 OnRev(c);
 Wait(1);
 Off(a+c);
 }
 
 repeat(15){

 
 OnRev(c);
 OnFwd(a);
 Wait(1);
 Off(c);
 OnFwd(a);
 Wait(1);
 Off(a+c);
 OnRev(a+c);
 Wait(1); 
 Off(OUT_A+OUT_C);
 }                               //moto ni modoru

 }
 
 OnRev(taiya);
 Wait(80);
 Off(taiya);
 OnRev(a);
 Wait(243);
 OnFwd(taiya);
 Wait(59);
 Off(taiya);
 OnFwd(a);
 Wait(243);                    //5kakume iti
 Wait(243);                    //5画目の位置
 Off(taiya);
 OnFwd(taiya);
 Wait(10);
 Off(taiya);
 
 OnFwd(b);
 Wait(150);
 OnFwd(taiya);
 Wait(83);
 Off(a+b+c);
 OnRev(b);
 Wait(100);
 Off(b);}

-長くてすみません。ロボットの構造がタイヤの中心よりもペンが前に出ていたのでいろいろ微調整が大変でした。
-自分ながら「4画目の角」からの直線をアレンジしてみました。結果は、うねうねの直線(?)になってしまいました。
-ロボットの工夫は、キャタピラだとキャタピラのでこぼこの位置によって微少にずれが生じてしまうと思ったのでタイヤにしました。また、4輪にすると回転しにくいとおもったので3輪車にしました。
-関数やサブルーチンを使ってもう少しプログラムを整理してみよう。 -- [[まいける(TA)]] &new{2005-12-02 (金) 17:00:30};

#comment

*練習問題5 [#jc0789da]
-曲ロボット



#comment


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