2005/B5/課題1右
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[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();
}
*ロボについて [#a9eb0760]
*プログラムについて [#l8174257]
*コメントをどうぞ [#bb6b459c]
-残念ながらNQCの仕様でサブルーチンだと引数がとれないので、動かす時間を指定するときなどは関数やマクロを使ったほうが便利ですね。 -- [[松本(教員)]] &new{2005-11-21 (月) 14:34:02};
#comment
終了行:
[[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();
}
*ロボについて [#a9eb0760]
*プログラムについて [#l8174257]
*コメントをどうぞ [#bb6b459c]
-残念ながらNQCの仕様でサブルーチンだと引数がとれないので、動かす時間を指定するときなどは関数やマクロを使ったほうが便利ですね。 -- [[松本(教員)]] &new{2005-11-21 (月) 14:34:02};
#comment
ページ名: