2016a/Member/ngtrz/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
#contents
*はじめに [#w8c85221]
課題は似顔絵を描くロボットである。
注意点は
・マクロや関数、サブルーチンなどを使い、main関数がなるべ...
・定数名やマクロなどは分かりやすい名前を用いる。
・余裕をもってA4の紙の中に収まる大きさにする。いくら小さ...
・ペン以外はキットの部品を使う。
・輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりす...
これらに注意をし、今回は自分の似顔絵を描いた。([[2016年度...
*ロボットの説明 [#gd87beb3]
**ロボットの構造 [#u3bcc79c]
2つのパーツを使いペンを挟み、輪ゴムで固定して、アームに取...
(A)
#ref(robo1.jpg)
(B)
#ref(robo2.jpg)
アームに取り付けた際、下のみしか固定できなかったため、上...
なので、ペンを挟んでいるパーツに細い棒と輪っかを取り付け...
アームのモーターを回転させることによって、描く時はペンを...
?部分、?部分(アームと本体をつないでいる部分)ともに、ぐら...
左右対称でないため見た目が悪くなってしまいました。
おそらく余分なパーツもあったので、もっと工夫を施せば少な...
*似顔絵のプログラム [#r581f746]
下のような似顔絵を描こうと思いました。書きやすさを重視し...
#ref(nigaoe1.png)
**定義 [#ee44dcf3]
#define PEN_DOWN RotateMotor(OUT_A,25,30); // ペンを下げる
#define PEN_UP RotateMotor(OUT_A,-25,30); // ペンを上げる
#define GO_FORWARD(s) OnFwd(OUT_BC,25);Wait(s);Off(OUT_B...
#define GO_BACK(u) OnRev(OUT_BC,25);Wait(u);Off(OUT_BC);...
#define TURN_LEFT45 OnFwd(OUT_B,50);Wait(570);Off(OUT_B)...
#define TURN_LEFT OnFwd(OUT_B,50);Wait(1140);Off(OUT_B);...
#define TURN_LEFT2 OnRev(OUT_C,50);Wait(1140);Off(OUT_C)...
#define TURN_RIGHT OnFwd(OUT_C,50);Wait(1140);Off(OUT_C)...
#define TURN_RIGHT2 OnRev(OUT_B,50);Wait(1140);Off(OUT_B...
**顔の輪郭プログラム [#f7dd8c53]
#ref(nigaoe2.png)
task main ()
{
PEN_DOWN
GO _FORWARD(800) // 輪郭?
PEN_UP
GO_FORWARD(1920)
TURN_LEFT45
GO_BACK(2650)
PEN_DOWN
GO_FORWARD(480) // 輪郭?
PEN_UP
GO_FORWARD(1750)
TURN_LEFT45
GO_BACK(2560)
PEN_DOWN
GO_FORWARD(320) // 輪郭?
PEN_UP
GO_FORWARD(1520)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(480) // 輪郭?
PEN_UP
GO_FORWARD(1840)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(800) // 輪郭?
**眼鏡・鼻・口プログラム [#wdc43964]
#ref(nigaoe3.png)
***眼鏡プログラム [#eb5f874a]
PEN_UP
GO_FORWARD(2560)
TURN_LEFT2
GO_BACK(1280)
PEN_DOWN
GO_FORWARD(960) // 眼鏡?
PEN_UP
GO_FORWARD(320)
TURN_RIGHT
GO_BACK(160)
TURN_LEFT2
GO_BACK(640)
PEN_DOWN
GO_BACK(240) // 眼鏡?-?(緑)
PEN_UP
GO_BACK(160)
PEN_DOWN
GO_BACK(240) // 眼鏡?-?(緑)
PEN_UP
GO_FORWARD(3200)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(160)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
***鼻プログラム [#z3063d84]
PEN_UP
TURN_LEFT
GO_FORWARD(320)
TURN_RIGHT2
GO_BACK(80)
PEN_DOWN
GO_FORWARD(320) // 鼻?
PEN_UP
GO_FORWARD(1600)
TURN_LEFT
GO_BACK(3360)
PEN_DOWN
GO_BACK(80) // 鼻?
***口プログラム [#kb5fb584]
PEN_UP
GO_FORWARD(3440)
TURN_RIGHT2
GO_FORWARD(320)
TURN_LEFT
GO_BACK(3200)
PEN_DOWN
GO_BACK(320) // 口?
}
**プログラム考察 [#a9a69e81]
注意点に留意しプログラムを組んでみました。
定義を用いたので、用いない場合よりはシンプルに出来たと思...
ただ、マクロや「repeat」を使うことによってよりシンプルに...
*似顔絵 [#bc2ce2de]
**描いた似顔絵 [#zf54cad7]
下の画像が実際に描かれた似顔絵です。
#ref(nigaoe4.jpg)
**似顔絵考察 [#ac519d86]
輪郭の線の間が広く空いてしまい、眼鏡の上の線の長さが足り...
また、90°より大きな角度、あるいは90°未満の回転になってい...
変数や回転時間などもう少し微調整を加える必要があったと思...
さらに、電池の残量によってスピードも変わってしまうので、...
これらのことは次の課題でも関わってくることなので、より良...
*全体の考察と感想 [#ec8f7627]
今回似顔絵を描くにあたって、立ちはだかる問題がいくつもあ...
まずはロボットの組立上、円を描くことが出来なかったことで...
今回はペンを真っ正面にのみ付けたので、サイドに付けること...
そして、最大の問題が先ほども述べた、電池残量によってモー...
最初はそれに気づかなかったため、動かしては調整、動かして...
そして、一通りプログラムが完成した後にそれに気づいたので...
調節などで何度も心が折れそうになりましたが、チームの仲間...
今回の課題を通して、ロボットの構造やある程度のプログラミ...
また、強い達成感も得ることが出来てよかったです。
まだまだ改善点は多くあるので、次回の課題では改善できるよ...
終了行:
[[2016a/Member]]
#contents
*はじめに [#w8c85221]
課題は似顔絵を描くロボットである。
注意点は
・マクロや関数、サブルーチンなどを使い、main関数がなるべ...
・定数名やマクロなどは分かりやすい名前を用いる。
・余裕をもってA4の紙の中に収まる大きさにする。いくら小さ...
・ペン以外はキットの部品を使う。
・輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりす...
これらに注意をし、今回は自分の似顔絵を描いた。([[2016年度...
*ロボットの説明 [#gd87beb3]
**ロボットの構造 [#u3bcc79c]
2つのパーツを使いペンを挟み、輪ゴムで固定して、アームに取...
(A)
#ref(robo1.jpg)
(B)
#ref(robo2.jpg)
アームに取り付けた際、下のみしか固定できなかったため、上...
なので、ペンを挟んでいるパーツに細い棒と輪っかを取り付け...
アームのモーターを回転させることによって、描く時はペンを...
?部分、?部分(アームと本体をつないでいる部分)ともに、ぐら...
左右対称でないため見た目が悪くなってしまいました。
おそらく余分なパーツもあったので、もっと工夫を施せば少な...
*似顔絵のプログラム [#r581f746]
下のような似顔絵を描こうと思いました。書きやすさを重視し...
#ref(nigaoe1.png)
**定義 [#ee44dcf3]
#define PEN_DOWN RotateMotor(OUT_A,25,30); // ペンを下げる
#define PEN_UP RotateMotor(OUT_A,-25,30); // ペンを上げる
#define GO_FORWARD(s) OnFwd(OUT_BC,25);Wait(s);Off(OUT_B...
#define GO_BACK(u) OnRev(OUT_BC,25);Wait(u);Off(OUT_BC);...
#define TURN_LEFT45 OnFwd(OUT_B,50);Wait(570);Off(OUT_B)...
#define TURN_LEFT OnFwd(OUT_B,50);Wait(1140);Off(OUT_B);...
#define TURN_LEFT2 OnRev(OUT_C,50);Wait(1140);Off(OUT_C)...
#define TURN_RIGHT OnFwd(OUT_C,50);Wait(1140);Off(OUT_C)...
#define TURN_RIGHT2 OnRev(OUT_B,50);Wait(1140);Off(OUT_B...
**顔の輪郭プログラム [#f7dd8c53]
#ref(nigaoe2.png)
task main ()
{
PEN_DOWN
GO _FORWARD(800) // 輪郭?
PEN_UP
GO_FORWARD(1920)
TURN_LEFT45
GO_BACK(2650)
PEN_DOWN
GO_FORWARD(480) // 輪郭?
PEN_UP
GO_FORWARD(1750)
TURN_LEFT45
GO_BACK(2560)
PEN_DOWN
GO_FORWARD(320) // 輪郭?
PEN_UP
GO_FORWARD(1520)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(480) // 輪郭?
PEN_UP
GO_FORWARD(1840)
TURN_LEFT45
GO_BACK(2320)
PEN_DOWN
GO_FORWARD(800) // 輪郭?
**眼鏡・鼻・口プログラム [#wdc43964]
#ref(nigaoe3.png)
***眼鏡プログラム [#eb5f874a]
PEN_UP
GO_FORWARD(2560)
TURN_LEFT2
GO_BACK(1280)
PEN_DOWN
GO_FORWARD(960) // 眼鏡?
PEN_UP
GO_FORWARD(320)
TURN_RIGHT
GO_BACK(160)
TURN_LEFT2
GO_BACK(640)
PEN_DOWN
GO_BACK(240) // 眼鏡?-?(緑)
PEN_UP
GO_BACK(160)
PEN_DOWN
GO_BACK(240) // 眼鏡?-?(緑)
PEN_UP
GO_FORWARD(3200)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(160)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
PEN_UP
GO_FORWARD(1520)
TURN_RIGHT
GO_FORWARD(240)
TURN_LEFT2
GO_BACK(1360)
PEN_DOWN
GO_BACK(160) // 眼鏡?-?(青)
***鼻プログラム [#z3063d84]
PEN_UP
TURN_LEFT
GO_FORWARD(320)
TURN_RIGHT2
GO_BACK(80)
PEN_DOWN
GO_FORWARD(320) // 鼻?
PEN_UP
GO_FORWARD(1600)
TURN_LEFT
GO_BACK(3360)
PEN_DOWN
GO_BACK(80) // 鼻?
***口プログラム [#kb5fb584]
PEN_UP
GO_FORWARD(3440)
TURN_RIGHT2
GO_FORWARD(320)
TURN_LEFT
GO_BACK(3200)
PEN_DOWN
GO_BACK(320) // 口?
}
**プログラム考察 [#a9a69e81]
注意点に留意しプログラムを組んでみました。
定義を用いたので、用いない場合よりはシンプルに出来たと思...
ただ、マクロや「repeat」を使うことによってよりシンプルに...
*似顔絵 [#bc2ce2de]
**描いた似顔絵 [#zf54cad7]
下の画像が実際に描かれた似顔絵です。
#ref(nigaoe4.jpg)
**似顔絵考察 [#ac519d86]
輪郭の線の間が広く空いてしまい、眼鏡の上の線の長さが足り...
また、90°より大きな角度、あるいは90°未満の回転になってい...
変数や回転時間などもう少し微調整を加える必要があったと思...
さらに、電池の残量によってスピードも変わってしまうので、...
これらのことは次の課題でも関わってくることなので、より良...
*全体の考察と感想 [#ec8f7627]
今回似顔絵を描くにあたって、立ちはだかる問題がいくつもあ...
まずはロボットの組立上、円を描くことが出来なかったことで...
今回はペンを真っ正面にのみ付けたので、サイドに付けること...
そして、最大の問題が先ほども述べた、電池残量によってモー...
最初はそれに気づかなかったため、動かしては調整、動かして...
そして、一通りプログラムが完成した後にそれに気づいたので...
調節などで何度も心が折れそうになりましたが、チームの仲間...
今回の課題を通して、ロボットの構造やある程度のプログラミ...
また、強い達成感も得ることが出来てよかったです。
まだまだ改善点は多くあるので、次回の課題では改善できるよ...
ページ名: