- 履歴一覧
- ソース を表示
- 2006a/C2/課題1右/program は削除されています。
- 追加された行はこの色です。
- 削除された行はこの色です。
[[2006a/C2]]
*実際に木を「作る」ロボットのプログラム [#t5894338]
我が班は木を書くのではなく、木を「作る」にこだわります(謎)
以下に、とりあえずのプログラムを載せます。
とりあえずと言ったのは、直前などに調整を行う可能性があるからです。
#define FF OUT_A+OUT_C //前進・後進のためのモーター
#define BASETIME 170 //「木」の1・2画目の長さ等の基本的長さ。
#define WHOLETIME 382 //360度回転
#define HALFTIME 191 //180度回転
#define QUARTERTIME 96 //90度回転
#define DQUARTERTIME 48 //45度回転
task main()
{
OnFwd(FF); //1(=1画目)
Wait(BASETIME);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(13);
Off(OUT_B);
Wait(100);
OnRev(FF); //2(=中心部へ戻る)
Wait(28);
Off(FF);
Wait(100);
OnFwd(FF); //3(=マシンを縦方向へ回転)
Rev(OUT_A);
Wait(QUARTERTIME);
Off(FF);
Wait(100);
OnRev(FF); //4(=2画目書き始めの場所への移動)
Wait(29);
Off(FF);
//sage
Wait(100);
OnRev(OUT_B);
Wait(14);
Off(OUT_B);
Wait(100);
OnRev(FF); //5(=2画目)
Wait(BASETIME);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(13);
Off(OUT_B);
Wait(100);
OnFwd(FF); //6(=再び中心へ戻る)
Wait(194);
Off(FF);
Wait(100);
OnFwd(FF); //7(=3画目記述のためのマシンの回転)
Rev(OUT_C);
Wait(DQUARTERTIME);
Off(FF);
OnRev(FF); //7.5(=微調整)
Wait(66);
Off(FF);
//sage
Wait(100);
OnRev(OUT_B);
Wait(14);
Off(OUT_B);
Wait(100);
OnRev(FF); //8(=3画目)
Wait(137);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(13);
Off(OUT_B);
Wait(100);
OnFwd(FF); //9(=元の中心へ戻る)
Wait(208);
Off(FF);
Wait(100);
OnFwd(FF); //10(=4画目記述のための回転)
Rev(OUT_A);
Wait(90);
Off(FF);
OnRev(FF); //10.5(=微調整)
Wait(71);
Off(FF);
//sage
Wait(100);
OnRev(OUT_B);
Wait(14);
Off(OUT_B);
Wait(100);
OnRev(FF); //11(=4画目)
Wait(137);
Off(FF);
//age
Wait(100);
OnFwd(OUT_B);
Wait(13);
Off(OUT_B);
Wait(100);
//FINISH(おしまい)
}
*プログラム作成において苦労した点 [#sc2469d6]
-マシンの動きを少なくすることで、生じる誤差も減ると考えたので、いかにして無駄な動きを省いてシンプルに動かすかということに苦心した。
-また、一度プログラムを書いてみると、字を書く部分(ペンを持つ部分)がマシンの前方にあるためにかなりの誤差が生じることがわかり、その修正に手間取った。プログラム中の動きの名前に「10.5」などとあるのは、途中で微調整用プログラムを追加したためである。
-「木」という文字は4本の画(かく)が揃わなければならず、その調整についても面倒であった。
-何より、マシンの気分が悪いと毎回のように微妙に動きが違ってくるのが大変だったように感じる。