[[2005/B5/課題1]] 目次 #contents *プログラム [#md38017d] 作成日:11月9日 作成者:Dezz #define turn_TIME 104 //回転時間(変更可能) sub turn_left() //左 { OnRev(OUT_A);OnFwd(OUT_C); Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50); } sub turn_right() //右 { OnFwd(OUT_A);OnRev(OUT_C); Wait(turn_TIME);Off(OUT_A+OUT_C);Wait(50); } sub Lgo_straight() //Long直線 { OnFwd(OUT_A);OnFwd(OUT_C); Wait(80);Off(OUT_A+OUT_C);Wait(50); } sub Sgo_straight() //Short直線 { OnFwd(OUT_A);OnFwd(OUT_C); Wait(60);Off(OUT_A+OUT_C);Wait(50); } sub up() //上げ { OnRev(OUT_B); Wait(10);Off(OUT_B);Wait(50); } sub down() //下げ { OnFwd(OUT_B); Wait(15);Off(OUT_B);Wait(50); //下げる時間を上げる時間より長く } //することで確実に地面につく task main() { up(); //ペンを取り込む down(); //ペンを降ろす SetPower(OUT_A,7); //パワーを変更 OnFwd(OUT_A); SetPower(OUT_C,0); //パワーを変更 OnFwd(OUT_C); Wait(180); Off(OUT_A+OUT_C);Wait(50);up();//曲線を描く SetPower(OUT_A,7); //パワーを戻す SetPower(OUT_C,7); //パワーを戻す OnFwd(OUT_A);OnRev(OUT_C); Wait(180);Off(OUT_A+OUT_C); OnFwd(OUT_A);OnFwd(OUT_C);Wait(100);Off(OUT_A+OUT_C); turn_right(); down(); OnFwd(OUT_A);OnFwd(OUT_C);Wait(150);Off(OUT_A+OUT_C); up(); turn_right(); OnFwd(OUT_A);OnFwd(OUT_C);Wait(50);Off(OUT_A+OUT_C); turn_right(); OnFwd(OUT_A);OnFwd(OUT_C); Wait(120);Off(OUT_A+OUT_C);Wait(50); turn_left(); OnRev(OUT_A);OnRev(OUT_C); //微調整 Wait(10);Off(OUT_A+OUT_C); down();Sgo_straight();up(); OnRev(OUT_A);OnRev(OUT_C);Wait(60); Off(OUT_A+OUT_C);Wait(50); turn_left(); down(); Lgo_straight();turn_right();Sgo_straight(); up(); turn_right();Lgo_straight(); down(); OnRev(OUT_A);OnRev(OUT_C);Wait(80);Off(OUT_A+OUT_C); up(); } [[戻る>2005/B5/課題1]] *ロボについて [#a9eb0760] コメントをどうぞ *プログラムについて [#l8174257] *コメントをどうぞ [#bb6b459c] -残念ながらNQCの仕様でサブルーチンだと引数がとれないので、動かす時間を指定するときなどは関数やマクロを使ったほうが便利ですね。 -- [[松本(教員)]] &new{2005-11-21 (月) 14:34:02}; #comment