- 追加された行はこの色です。
- 削除された行はこの色です。
課題1目次
#contents
*課題内容 [#l307e235]
キット(ペンを含む)を使ってA4の紙に自分の名前の中の7画以上の漢字を書け。
キット(ペンを含む)を使ってA4の紙に自分の名前の中の7画以上の漢字を書け。自分は今回「馬」を書くことにした。
*ロボットの作成 [#ze772911]
・車体の部分は曲がりやすいように3輪の構造となっている、そのためロボット自体が動き回ってペンを下ろして字を書くタイプである。ペンの部分は芸がなくモーターに直接糸でペンをくくりつけ、モーターの回転でペンを上下させるというシンプルな構造となっている。
・ロボットの説明・・・・車体の部分は曲がりやすいように3輪の構造となっている、そのためロボット自体が動き回ってペンを下ろして字を書くタイプである。ペンの部分は芸がなくモーターに直接糸でペンをくくりつけ、モーターの回転でペンを上下させるというシンプルな構造となっている。
#ref(name1.PNG)
#ref(image2.JPG)
・最初はもっと大きいタイヤであったがそれだとどうしてもA4の紙に収まるようなロボットの動きは難しかったのでタイヤを小さくした。他にもペンの構造がシンプルなためにペンと車体本体の結合がいまいちだったので、しっかりと固定した。
・ロボットの製作において気をつけた点・・・・最初はもっと大きいタイヤであったがそれだとどうしてもA4の紙に収まるようなロボットの動きは難しかったのでタイヤを小さくした。他にもペンの構造がシンプルなためにペンと車体本体の結合がいまいちだったので、しっかりと固定した。
*プログラムの説明 [#e9775801]
#ref(e.png)
・図の灰色の部分はロボットが通っているがペンを下ろしていない部分である。
・図の番号はロボットが通っていく順番である。>
#define MOVE_TIME 10
#define move_1 OnFwd(OUT_AC);Wait(MOVE_TIME);//番号1,2,3を進む直線を定義
・図の番号はロボットが通っていく順番である。プログラム内の説明欄の番号も図の番号と対応している。
#define move_1 OnFwd(OUT_AC);Wait(10);//番号1,2,3を進む直線を定義
#define turn_left Off(OUT_A);OnFwd(OUT_C);Wait(110);//左に曲がるを定義
#define turn_right Off(OUT_C);OnFwd(OUT_A);Wait(110);//右に曲がるを定義
#define UP_PEN OnFwd(OUT_B);Wait(10);Off(OUT_B);//ペンの上げる動作を定義
#define DOWN_PEN OnRev(OUT_B);//ペンの下げる動作を定義
#define MOVE_2 OnFwd(OUT_AC);Wait(3);//6から7,9から10、11から12に移動する動作を定義
・一筆書きで簡単に書きたかったので右左折の距離はほとんど同じにした。>
{
move_1;UP_PEN;Off(OUT_AC);Wait(200);//1
#define MOVE_2 OnFwd(OUT_AC);Wait(3);//6から7,9から10、11から12に移動する動作を定義
task main()
{ move_1;UP_PEN;Off(OUT_AC);Wait(200);//図の番号1を書く
turn_left;Off(OUT_AC);Wait(200);
DOWN_PEN;move_1;UP_PEN;Off(OUT_AC);//2
DOWN_PEN;move_1;UP_PEN;Off(OUT_AC);//図の番号2を書く
turn_right;Off(OUT_AC);Wait(200);
DOWN_PEN;move_1;UP_PEN;Off(OUT_AC);Wait(200);//3
DOWN_PEN;move_1;UP_PEN;Off(OUT_AC);Wait(200);//図の番号3を書く
turn_left;Off(OUT_AC);
DOWN_PEN;OnFwd(OUT_AC);Wait(14);Off(OUT_AC);Wait(200);//4
DOWN_PEN;OnFwd(OUT_AC);Wait(14);Off(OUT_AC);Wait(200);//図の番号4を書く
OnFwd(OUT_C);OnRev(OUT_A);Wait(90);Off(OUT_AC);Wait(200);
move_1;Off(OUT_AC);Wait(200);//5
move_1;Off(OUT_AC);Wait(200);//図の番号5を書く
OnFwd(OUT_C);OnRev(OUT_A);Wait(90);Off(OUT_AC);Wait(200);
OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);UP_PEN;//6
OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);UP_PEN;//図の番号6を書く
OnFwd(OUT_C);OnRev(OUT_A);Wait(90);Off(OUT_AC);Wait(200);
MOVE_2;Off(OUT_AC);Wait(200);DOWN_PEN;
OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//7
OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//図の番号7を書く
turn_left;Off(OUT_AC);Wait(200);DOWN_PEN;
OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//8
OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//図の番号8を書く
UP_PEN;turn_right;Off(OUT_AC);Wait(200);
DOWN_PEN;OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//9
DOWN_PEN;OnFwd(OUT_AC);Wait(2);Off(OUT_AC);Wait(200);//図の番号9を書く
UP_PEN;MOVE_2;Off(OUT_AC);
DOWN_PEN;OnFwd(OUT_AC);Wait(13);Off(OUT_AC);Wait(200);//10
DOWN_PEN;OnFwd(OUT_AC);Wait(13);Off(OUT_AC);Wait(200);//図の番号10を書く
UP_PEN;turn_left;Off(OUT_AC);Wait(200);
DOWN_PEN;OnFwd(OUT_AC);Wait(13);Off(OUT_AC);Wait(200);//11
DOWN_PEN;OnFwd(OUT_AC);Wait(13);Off(OUT_AC);Wait(200);//図の番号11を書く
UP_PEN;MOVE_2;Off(OUT_AC);Wait(200);
OnFwd(OUT_AC);Wait(2);Wait(200);Off(OUT_ABC);Wait(200);//12
}
・ロボットの動きが早いとうまく書けなかったので一つの動作の後に毎回waitを入れた。
*感想とこれからの課題 [#beca74a0]
・曲がる時の秒数や直進するときの秒数など、どれもA4の上に収めるのは難しかったそのため何度もプログラムを書き換えてロボットに転送するのはとても手間がかかった。できるだけ簡単にしようと斜めの線を入れずにかくかくの字体にしたが、それでもかなり難しかった。
・今後のロボット製作では今回のA4の上にまとめるのが難しかったことを考えて、変速ギアをうまく使ってタイヤもの回転数を考えていきたい。プログラムの面では今回はdefineしか使わなかったためロボットの動きが固定化されて字が綺麗にかくことができなっかたため、次回は関数の定義などを使って綺麗にロボットをうごかしていきたい。
OnFwd(OUT_AC);Wait(2);Wait(200);Off(OUT_ABC);Wait(200);//図の番号12を書く }
*まとめ [#ufc2b6ef]
曲がる時の秒数や直進するときの秒数など、どれもA4の上に収めるのは難しかったそのためはみ出さないように何度もプログラムを書き換えてロボットに転送するのはとても手間がかかった。できるだけ簡単にしようと斜めの線を入れずにかくかくの字体にしたが、それでもかなり難しかった。他にも同じ動きが多いため馬という字を選んだのだが、その分ペンの上げ下げが多くなり線同士がうまくつながらなかったりしたため、とても難しかった。
ロボットの動きが速かったため、それぞれの動きの後にoffを入れて動きやすくした。
*反省点 [#ge896b9d]
・今後のロボット製作では今回のA4の上にまとめるのが難しかったことを考えて、変速ギアをうまく使ってタイヤもの回転数を考えていきたい。他にも自分たちの班ではロボット製作の面ではあまり手をかけずに製作したため、二つのタイヤの威力が違ったりしてもそのままにしていたため、直進が上手くいかなかったり、ロボット自体が動くタイプのためA4に収めるのが困難だったりしたため、ペンの構造の方にモーターを二つつけて字を書くタイプのやつにも挑戦するべきであった。
プログラムの面では今回はdefineしか使わなかったためロボットの動きが固定化されて字が綺麗にかくことができなっかたため、次回は関数の定義などを使って綺麗にロボットをうごかしていきたい。