- 追加された行はこの色です。
- 削除された行はこの色です。
[[2008b/MemberOnly/進行状況A]]
#contents
*課題1 似顔絵描きロボットを作成せよ! [#l9ef5e37]
**課題内容 [#oa80153d]
~A3の紙に相棒の似顔絵を書くロボットを作成せよ。
**制作過程 [#n08dee10]
***土台となる部分 [#ydbf062a]
~最初は見た目が面白いという理由で''足''にしました。
#ref(2008b/A1/課題1左/CIMG0173~.jpg,100%,足);&br;
from:ROBOTICS INVENTION SYSTEM 2.0&br;
~&color(red,white){欠点};
-安定が悪い。
-動かす度に経路が違う。&br;
&size(20){↓};
~安定性が良さそうで&size(9){簡単そうなので};''タイヤ''に変更。
#ref(2008b/A1/課題1左/CIMG0172~.jpg,100%,タイヤ);&br;
from:ROBOTICS INVENTION SYSTEM 2.0&br;
~&color(red,white){欠点};
-取れやすい。
-高さがあるため引っかかる。(当初の予定ではモーターを本体の横(タイヤの上)に設置する予定だったから。)&br;
&size(20){↓};
~最終手段''キャタピラー''。
#ref(2008b/A1/課題1左/CIMG0174~.jpg,100%,キャタピラー);&br;
from:ROBOTICS INVENTION SYSTEM 2.0&br;
~&color(red,white){欠点};
-小回りが利かない。&br;
&size(20){↓};
&br;ということで、''タイヤ''に決定!!
~取れやすいという欠点は、、、
#ref(2008b/A1/課題1左/015^.jpg,100%,改良);&br;
内側から灰色のパーツを付けて改良!
***本体部分 [#p6b2ccc6]
~&size(10){写真を撮り始めたのが遅かったため、写真は完成部分しかありません。わかりにくくてごめんなさい。};
~モーターを横にセット。モーターのギアと小のギアを噛み合わせて、ゴム=で3つのギア(上から小中大のギア)の小と連結させる。&br;
#ref(小小中大.jpg)&br;
↑図の円がギア、オレンジ色がゴム、緑色のものがペン、ペンから出ている黒棒がペンとギアを結ぶ棒を表しています。縦に並んでいるギアは噛み合っているものとし、棒とギアが隣接している場合は連結しているものとします。&br;
~&color(red,white){欠点};
-安定が悪い。
-キャタピラーが小回りが利かないことが判明。&br;
&size(20){↓};&br;
~モーターを本体の上に置き、タイヤに変更。
~&color(purplish,white){ここからが大変でした。。。};&br;
小=小中大のギアの大のギアがタイヤに必要なためギアを変更。&br;
小=小中大&br;
↓&br;
小=中中(モーターのギアと噛み合ない。)&br;
#ref(小中中.jpg)&br;
↓&br;
中中の位置を下げて、小と中の間のゴム=を斜めにする。(本体とゴムが接触する。)&br;
#ref(小↓中中.jpg)&br;
↓&br;
↓&br;
↓&br;
↓&br;
↓&br;
#ref(2008b/A1/課題1左/016^.jpg,100%,ギア);&br;
モーターを手前に持っていくことで、ゴムを使わず、小中中のギアを使うことに決定!!&br;
~&color(red,white){欠点};
-重量の重いペンは使用できない(重いと、ペンを持つ部分が勝手に下がってしまう・・・)
#ref(2008b/A1/課題1左/018~.jpg,100%,ペン部分);&br;
↓&br;
改良後
#ref(2008b/A1/課題1左/CIMG0175~.jpg,100%,ペン部分改良);&br;
ブロックで強化。これでマジックも持てるようになりました。
**ロボット完成体 [#td634102]
#ref(2008b/A1/課題1左/CIMG0176~.jpg,100%,完成体);&br;
↑改良に改良を重ねたロボットです。
**その他の工夫点 [#q34d65b9]
~ブロックを組み立てる際に邪魔になるのがこれ↓
#ref(2008b/A1/課題1左/CIMG0177~.jpg,100%,コード);&br;
~このコード。ブロックとブロックの間にあると、ブロックがうまくはまらないことが判明。
~それを改善するために、組み立てる際に出来てしまった隙間からコードを通すことにしました↓
#ref(2008b/A1/課題1左/017~.jpg,100%,おしり);&br;
**プロブラムについて [#q8653a0c]
***Kのプログラム [#kb4af3c5]
task main( )
{
OnRev(OUT_A);//輪郭を書く
Wait(850);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);//ペンを上げる
Wait(15);
Off(OUT_B);
OnFwd(OUT_C);
Wait(345);
OnFwd(OUT_A+OUT_C);
Wait(100);
Off(OUT_A);
Wait(173);
OnFwd(OUT_A+OUT_C);
Wait(90);
Off(OUT_A);
Wait(190);
OnFwd(OUT_A+OUT_C);
Wait(50);
Off(OUT_A+OUT_C);
OnRev(OUT_B);//ペンを下ろす
Wait(30);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);//右目を描く
Wait(30);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);//ペンを上げる
Wait(15);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(200);
Off(OUT_A);
Wait(370);
OnFwd(OUT_A+OUT_C);
Wait(100);
Off(OUT_A+OUT_C);
OnRev(OUT_B);//ペンを下ろす
Wait(30);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);//左目を描く
Wait(30);
Off(OUT_A+OUT_C);
OnFwd(OUT_B);//ペンを上げる
Wait(15);
Off(OUT_B);
OnFwd(OUT_C);
Wait(370);
Off(OUT_C);
OnRev(OUT_B);//ペンを下ろす
Wait(30);
Off(OUT_B);
OnFwd(OUT_C);//口を描く
Wait(30);
Off(OUT_C);
OnFwd(OUT_B);//ペンを上げる
Wait(15);
Off(OUT_B);
OnFwd(OUT_A+OUT_C);
Wait(80);
Float(OUT_A+OUT_C);
}
***A子のプログラム [#va500d66]
~横顔を描きました!
#define turn_left(t) OnRev(OUT_A);OnFwd(OUT_C);Wait(t);Off(OUT_A+OUT_C);
#define turn_right(t) OnFwd(OUT_A);OnRev(OUT_C);Wait(t);Off(OUT_A+OUT_C);
#define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);
task main()
{
OnFwd(OUT_C);//左回転を利用して前髪を描く
OnRev(OUT_A);
Wait(50);
OnFwd(OUT_A);//右回転を利用して戻す
OnRev(OUT_C);
Wait(50);
OnFwd(OUT_A+OUT_C);//おでこを描く
Wait(60);
OnFwd(OUT_C);//左回転を利用して目を描く
OnRev(OUT_A);
Wait(10);
OnFwd(OUT_A);//右回転を利用して戻す
OnRev(OUT_C);
Wait(10);
OnFwd(OUT_A+OUT_C);//目から鼻にかけての輪郭を描く
Wait(50);
OnFwd(OUT_A);//右回転を利用して鼻をかく
OnRev(OUT_C);
Wait(30);
OnFwd(OUT_C);//左回転を利用して戻す
OnRev(OUT_A);
Wait(30);
OnFwd(OUT_A+OUT_C);//鼻下を描く
Wait(30);
OnFwd(OUT_C);//左回転を利用して口を描く
OnRev(OUT_A);
Wait(20);
OnFwd(OUT_A);//右回転を利用して戻す
OnRev(OUT_C);
Wait(20);
turn_left(50);//左回転を利用して前髪を描く
turn_right(50);//右回転を利用して戻す
go_straight(60);//おでこを描く
OnFwd(OUT_A+OUT_C);//口下を描く
Wait(40);
OnFwd(OUT_C);//左回転を利用して顎をかく
OnRev(OUT_A);
Wait(50);
turn_left(10);//左回転を利用して目を描く
turn_right(10);//右回転を利用して戻す
OnFwd(OUT_A+OUT_C);//首を描く
Wait(40);
go_straight(50);//目から鼻にかけての輪郭を描く
turn_right(30);//右回転を利用して鼻をかく
turn_left(30);//左回転を利用して戻す
go_straight(30);//鼻下を描く
turn_left(20);//左回転を利用して口を描く
turn_right(20);//右回転を利用して戻す
go_straight(40);//口下を描く
turn_left(50);//左回転を利用して顎をかく
go_straight(40);//首を描く
Off(OUT_A+OUT_C);//終了
}
}
**似顔絵完成図 [#e73fdbf4]
***K作似顔絵 [#ka1a07e5]
~正面から見たA子の似顔絵です。とぼけた感じが似てるでしょ?笑
#ref(2008b/A1/課題1左/CIMG0179~.jpg,100%,K作 A子の似顔絵);&br;
***A子作似顔絵 [#a77885c7]
~横から見たKの似顔絵です。真剣にパソコンとにらめっこしてるところを描きました!ちょっと老けちゃった汗;
#ref(2008b/A1/課題1左/CIMG0180~.jpg,100%,A子作 Kの似顔絵);&br;
**工夫した点 [#f97a74f4]
-土台部分(上記参照)
-ペン部分のギア(上記参照)
-ペンを持つ部分(上記参照)
-コード部分(上記参照)
**コメントをどうぞ [#b36c1406]
- いい感じです。このちょうしでがんばってください。 -- [[なかむら]] {2008-11-06 (木) 11:54:43};
- ソースも書いてね -- [[なかむら]] {2008-11-06 (木) 11:57:19};
- コメントありがとうございます。ソースを書きましたが、このような形で良いでしょうか?写真下に「from:ROBOTICS INVENTION SYSTEM 2.0」 -- [[A子]] {2008-11-06 (木) 16:10:15};
- 写真のサイズが大きいのでもっと小さくした方がいいです。 -- [[なかむら]] {2008-11-12 (水) 16:49:58};
- コメントありがとうございます。全ての写真のサイズを小さくしました。このサイズでいかがでしょうか? -- [[A子]] {2008-11-12 (水) 22:13:05};
- マクロやサブルーチン、関数についてもよく復習しておきましょう。 -- [[松本]] {2008-11-13 (木) 14:44:00};
- わかりました。マクロやサブルーチン、関数を使ってプログラムを書き直すべきでしょうか? -- [[A子]]
- 実際にマクロなどを使ってみることで理解が深まるはずです。 -- [[松本]] {2008-11-26 (水) 16:18:01};
- ロボットの説明は詳しくわかりやすく、すばらしいです。サブルーチンを使ってみればもっと良い評価になります -- [[FI]]{2008-11-26 (水) 18:58:10};
- わかりました。書き直します。 -- [[A子]] &new{2008-11-27 (木) 16:00:41};
- 横顔を描くことでプログラムの単純化を図ったのはいいと思います。発想の転換ですね! -- [[なかむら]] &new{2008-11-28 (金) 17:25:00};
- ありがとうございます!・・・必死だったんで笑 -- [[A子]] &new{2008-12-04 (木) 15:56:24};
#comment