- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
目次 [#q90e1d22]
目的
ロボットの紹介
プログラム
苦労した点
反省点
先生方々のコメント
#contents
#counter
* 作り主 [#ud2b3ee0]
あんぜりか&
* 目的 [#qd96ef96]
実際にNQCを使って簡単なプログラムを組んでみる。
最終目的として字を書けるロボットを創る。
* ロボットの紹介 [#g3fd0b52]
車のbodyは、基本的なトラクター型を使ってます。
初めは、キャタピラー型を使用していましたが、文字を書くにあたって、
小回りが効かなかった為、トラクター型を使用しました。
アーム部分は、最初はクワ型を使用していましたが、
モーターの威力があまりにも強かった為、歯車を付け足して威力を軽減しました。
* プログラム [#jdc03806]
**「井」 [#i8641c95]
#define penmoving 40
sub pen_down()
{
OnFwd(OUT_B);
Wait(penmoving);
Off(OUT_B);
Wait(50);
}
sub pen_up()
{
OnRev(OUT_B);
Wait(penmoving);
Off(OUT_B);
Wait(50);
}
task main()
{
pen_down();
OnFwd(OUT_A+OUT_C); // first stroke
Wait(100); // length of first stroke
Off(OUT_A+OUT_C);
Wait(50);
pen_up();
OnRev(OUT_A); // second stroke preparation
OnFwd(OUT_C);
Wait(15); // turning angle
OnRev(OUT_C); // back
Wait(130);
OnFwd(OUT_A);
Wait(15); // make a right angle
Off(OUT_A+OUT_C);
Wait(50);
pen_down();
OnFwd(OUT_A+OUT_C); // second stroke
Wait(130);
Off(OUT_A+OUT_C);
Wait(50);
pen_up();
OnRev(OUT_A+OUT_C); // third stroke preparation
Wait(110);
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(85); // turning in right angle
OnRev(OUT_A+OUT_C); // back to more than first stroke
Wait(100);
Off(OUT_A+OUT_C);
Wait(50);
pen_down();
OnFwd(OUT_A+OUT_C); // third stroke
Wait(100);
Off(OUT_C+OUT_A);
Wait(50);
pen_up();
OnFwd(OUT_A); //fourth stroke preparation
OnRev(OUT_C);
Wait(20); // turning angle
OnRev(OUT_A); // back
Wait(130);
OnFwd(OUT_C);
Wait(20); // make a right angle
Off(OUT_A+OUT_C);
Wait(50);
pen_down();
OnFwd(OUT_A+OUT_C); // fourth stroke
Wait(130);
Off(OUT_A+OUT_C);
Wait(50);
OnRev(OUT_B);
Wait(penmoving);
Off(OUT_B); //pen up
}
** 「長」 [#h859c434]
#define penmoving 40
#define go_hud 100
void pen_down()
{
OnFwd(OUT_B);
Wait(penmoving);
Off(OUT_B);
Wait(50);
}
void pen_up()
{
}
void pen_up()
{
OnRev(OUT_B);
Wait(penmoving);
Off(OUT_B);
Wait(50);
}
void go_right()
{
}
void go_right()
{
OnFwd(OUT_A+OUT_C);
Wait(go_hud);
Off(OUT_A+OUT_C);
Wait(50);
}
void go_left()
{
}
void go_left()
{
OnRev(OUT_A+OUT_C);
Wait(go_hud);
Off(OUT_A+OUT_C);
Wait(50);
}
void turn_right()
{
}
void turn_right()
{
OnRev(OUT_C);
Wait(81);
}
void turn_left()
{
Wait(81);
}
void turn_left()
{
OnRev(OUT_A);
Wait(81);
}
task main()
{
Wait(81);
}
task main()
{
pen_down();//1
go_right();
pen_up();
go_left();
turn_right();
pen_down();//2
OnFwd(OUT_A+OUT_C);
Wait(70);
Wait(70);
Off(OUT_A+OUT_C);
Wait(50);
Wait(50);
pen_up();
OnRev(OUT_A+OUT_C);
Wait(50);
Wait(50);
Off(OUT_A+OUT_C);
Wait(50);
Wait(50);
turn_left();
pen_down();//3
go_right();
pen_up();
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(15);
Wait(15);
OnRev(OUT_C);
Wait(60);
Wait(60);
OnFwd(OUT_A);
Wait(15);
Wait(15);
Off(OUT_A+OUT_C);
Wait(50);
Wait(50);
pen_down();//4
go_right();
pen_up();
go_left();
OnRev(OUT_A); // second stroke preparation
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(15); // turning angle
OnRev(OUT_C); // back
Wait(30);
Wait(15);
OnRev(OUT_C);
Wait(30);
OnFwd(OUT_A);
Wait(15); // make a right angle
Wait(15);
Off(OUT_A+OUT_C);
Wait(50);
Wait(50);
pen_down();
OnFwd(OUT_A+OUT_C);
Wait(130);
Wait(130);
pen_up();
OnRev(OUT_A+OUT_C);
Wait(150);
Wait(150);
turn_right();
pen_down();
OnFwd(OUT_A+OUT_C);
Wait(60);
pen_up();
OnRev(OUT_A);
Wait(200); //trianle
pen_down();
OnFwd(OUT_A+OUT_C);
Wait(80);
pen_up();
OnRev(OUT_C);
OnFwd(OUT_A);
Wait(15);
Wait(15);
OnRev(OUT_A);
Wait(20);
OnRev(OUT_
}
Wait(20);
OnRev(OUT_A+OUT_C);
}
* 苦労した点 [#rf9f3e8d]
**ロボットに関する点 [#o6805ded]
ロボットをつくりあげるにあたっては、正直玩具を作るっていう感覚が強かったです。
しかし、その部品の細かさ、繋いだ時の完成間によって自分が本当に目的がある物体を 作るんだっていうことを実感し始めました。
ロボットは作ったものの、動かしてみたら地面やその時の部品の小さい揺れとかで
毎回調整しなおさなければなりませんでした。
**制作にあっての現実的な苦労 [#k17b3ccb]
授業中はもちろん抜かりなくしっかり出ましたが、ほかの時間に二人で会って
作業するのはなかなか難しかったです。お互い時間が合わなくて、深い夜しか会えない
状態で一個一個解決していくのは、かなり時間の節約にはならなかったと思います。
*反省点 [#idb1e5dd]
*先生方々のコメント [#y5c1add3]
#comment