- 追加された行はこの色です。
- 削除された行はこの色です。
#contents
#counter
* 作り主 [#ud2b3ee0]
あんぜりか&たけぽん
* 目的 [#qd96ef96]
実際にNQCを使って簡単なプログラムを組んでみる。
最終目的として字を書けるロボットを創る。
* ロボットの紹介 [#g3fd0b52]
*** 名前:ピロシキ号 [#x296ca40]
このロボットは、2人の汗と涙の結晶です。まだまだ成長途中の有望株です☆★☆
*** 詳細 [#fb5fe148]
車の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()
{
OnRev(OUT_B);
Wait(penmoving);
Off(OUT_B);
Wait(50);
}
void go_right()
{
OnFwd(OUT_A+OUT_C);
Wait(go_hud);
Off(OUT_A+OUT_C);
Wait(50);
}
void go_left()
{
OnRev(OUT_A+OUT_C);
Wait(go_hud);
Off(OUT_A+OUT_C);
Wait(50);
}
void turn_right()
{
OnRev(OUT_C);
Wait(81);
}
void turn_left()
{
OnRev(OUT_A);
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);
Off(OUT_A+OUT_C);
Wait(50);
pen_up();
OnRev(OUT_A+OUT_C);
Wait(50);
Off(OUT_A+OUT_C);
Wait(50);
turn_left();
pen_down();//3
go_right();
pen_up();
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(15);
OnRev(OUT_C);
Wait(60);
OnFwd(OUT_A);
Wait(15);
Off(OUT_A+OUT_C);
Wait(50);
pen_down();//4
go_right();
pen_up();
go_left();
OnRev(OUT_A);
OnFwd(OUT_C);
Wait(15);
OnRev(OUT_C);
Wait(30);
OnFwd(OUT_A);
Wait(15);
Off(OUT_A+OUT_C);
Wait(50);
pen_down();
OnFwd(OUT_A+OUT_C);
Wait(130);
pen_up();
OnRev(OUT_A+OUT_C);
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);
OnRev(OUT_A);
Wait(20);
OnRev(OUT_A+OUT_C);
}
* 苦労した点 [#rf9f3e8d]
**ロボットに関する点 [#o6805ded]
ロボットをつくりあげるにあたっては、正直玩具を作るっていう感覚が強かったです。
しかし、その部品の細かさ、繋いだ時の完成間によって自分が本当に目的がある物体を 作るんだっていうことを実感し始めました。
ロボットは作ったものの、動かしてみたら地面やその時の部品の小さい揺れとかで
毎回調整しなおさなければなりませんでした。
**制作にあっての現実的な苦労 [#k17b3ccb]
授業中はもちろん抜かりなくしっかり出ましたが、ほかの時間に二人で会って作業するのはなかなか難しかったです。お互い時間が合わなくて夜遅くにしか会えない状態で問題を解決していくのは、とても大変でしたが、その分密の濃い時間を費やすことができたと思います。
*反省点 [#idb1e5dd]
ロボットのアーム部分と本体の接続部分が少し不安定な点。
など「もっと時間があれば…。」と思う部分が残ってしまったところは次回に生かしたい。
*先生、TAの方々のコメント [#y5c1add3]
何かありましたら、コメントの方お願いしますm(_ _)m
-お疲れ様でした。感想等の部分は具体的でよいのですが、写真を載せるとさらによかったと思います。 -- [[ヒロヤ]] &new{2007-05-24 (木) 00:59:01};
#comment