2016a/Member/kttk/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題 [#q078966e]
~今回の課題は、ロボットを使い似顔絵を描けるようにすること。
~ただし、A4の紙に入るサイズの似顔絵とし、またプログラムはできる限りコンパクトのものになるようにすること。
*ロボットの構造 [#o5294423]
#ref(2016a/Member/kttk/Mission1/robotics.1.1.jpg,50%,似顔絵ロボット)
~今回作成したロボットです。
ロボットの後ろの部分にタイヤ2個を取り付けその間にマジックを挟むことでマジックを固定し、更にはタイヤの歯車をかみ合わせてBでタイヤを回しマジックが上下するようにした。
*完成予想図 [#u851c581]
単純で書きやすいような似顔絵にしようと努力した。顔の顎あたりからスタートし輪郭、鼻、目の順に書こうとした。
#ref(2016a/Member/kttk/Mission1/DSC_0195.JPG,50%,似顔絵)
*プログラムの説明 [#kca5c58b]
**定義の説明 [#a4eb47b5]
#define TURN_TIME 80
~左右に曲がるときのタイヤを動かす時間
#define turn_left Off(OUT_A); OnFwd(OUT_C);\
Wait(TURN_TIME);Off(OUT_C);
~左に曲がる
#define go_forward(t) OnFwd(OUT_AC); \
Wait(t);Off(OUT_AC) ;
~まっすぐ進む
#define go_back(t) On Rev(OUT_AC); \
Wait(t);Off(OUT_AC);
~後ろに進む
#define pen_on OnFwd(OUT_B); \
Wait(10);Off(OUT_B);
~ペンを下に下げ紙に接触させる
#define pen_off OnRev(OUT_B); \
Wait(10);Off(OUT_B);
~ペンを上に上げ紙と触れないようにする
**メインプログラム [#u6b8e9fa]
task main ()
{
pen_on;
OnFwd(OUT_C);
Wait(750);
Off(OUT_C);
pen_off;
turn_left;
pen_on;
go_forward(20);
pen_off;
turn_left;
go_forward(40);
pen_on;
pen_off;
go_back(80);
pen_on;
pen_off;
}
*結果 [#lae55b75]
~うまく顔を書くことはできなかった。
~顔のサイズがA4より小さくならずはみ出してしまった。
~試した似顔絵は、はみ出して失敗したので写真を撮っていなかったので画像はないです。
*原因推察 [#se573a77]
~顔の輪郭については純粋にロボットを円形に動かすだけでなくもう少し別の方法を考えてサイズに収まるようにするのが最優先で成すべきだった、そもそも輪郭ができないと顔のパーツの位置やバランスももずれることに気がつくべきだった
~また、マジックが床に触れている時の抵抗または重さのせいか、左右にうまく曲がらなかった。作ったロボットのマジックは床に軽く乗っかっている様な状態だったので、マジックは床に触れている時のマジックが動かないように固定できる方法を模索すべきだった。
~マジックの位置がタイヤと離れすぎていたのもズレの原因の一つかもしれないと思った。
終了行:
#contents
*課題 [#q078966e]
~今回の課題は、ロボットを使い似顔絵を描けるようにすること。
~ただし、A4の紙に入るサイズの似顔絵とし、またプログラムはできる限りコンパクトのものになるようにすること。
*ロボットの構造 [#o5294423]
#ref(2016a/Member/kttk/Mission1/robotics.1.1.jpg,50%,似顔絵ロボット)
~今回作成したロボットです。
ロボットの後ろの部分にタイヤ2個を取り付けその間にマジックを挟むことでマジックを固定し、更にはタイヤの歯車をかみ合わせてBでタイヤを回しマジックが上下するようにした。
*完成予想図 [#u851c581]
単純で書きやすいような似顔絵にしようと努力した。顔の顎あたりからスタートし輪郭、鼻、目の順に書こうとした。
#ref(2016a/Member/kttk/Mission1/DSC_0195.JPG,50%,似顔絵)
*プログラムの説明 [#kca5c58b]
**定義の説明 [#a4eb47b5]
#define TURN_TIME 80
~左右に曲がるときのタイヤを動かす時間
#define turn_left Off(OUT_A); OnFwd(OUT_C);\
Wait(TURN_TIME);Off(OUT_C);
~左に曲がる
#define go_forward(t) OnFwd(OUT_AC); \
Wait(t);Off(OUT_AC) ;
~まっすぐ進む
#define go_back(t) On Rev(OUT_AC); \
Wait(t);Off(OUT_AC);
~後ろに進む
#define pen_on OnFwd(OUT_B); \
Wait(10);Off(OUT_B);
~ペンを下に下げ紙に接触させる
#define pen_off OnRev(OUT_B); \
Wait(10);Off(OUT_B);
~ペンを上に上げ紙と触れないようにする
**メインプログラム [#u6b8e9fa]
task main ()
{
pen_on;
OnFwd(OUT_C);
Wait(750);
Off(OUT_C);
pen_off;
turn_left;
pen_on;
go_forward(20);
pen_off;
turn_left;
go_forward(40);
pen_on;
pen_off;
go_back(80);
pen_on;
pen_off;
}
*結果 [#lae55b75]
~うまく顔を書くことはできなかった。
~顔のサイズがA4より小さくならずはみ出してしまった。
~試した似顔絵は、はみ出して失敗したので写真を撮っていなかったので画像はないです。
*原因推察 [#se573a77]
~顔の輪郭については純粋にロボットを円形に動かすだけでなくもう少し別の方法を考えてサイズに収まるようにするのが最優先で成すべきだった、そもそも輪郭ができないと顔のパーツの位置やバランスももずれることに気がつくべきだった
~また、マジックが床に触れている時の抵抗または重さのせいか、左右にうまく曲がらなかった。作ったロボットのマジックは床に軽く乗っかっている様な状態だったので、マジックは床に触れている時のマジックが動かないように固定できる方法を模索すべきだった。
~マジックの位置がタイヤと離れすぎていたのもズレの原因の一つかもしれないと思った。
ページ名: