[[2016a/Member]]

目次
#contents
 
*はじめに [#fa6e3171]

課題は似顔絵ロボットである。

詳しい内容

自分またはチームメイトの似顔絵を描くロボットを製作しなさい。以下の点に注意すること。 
マクロや関数、サブルーチンなどを使い、main関数がなるべく単純になるように
プログラムを作ること。
定数名やマクロなどは分かりやすい名前を用いること
余裕をもってA4の紙の中に収まる大きさにすること。いくら小さくてもよい。
ペン以外はキットの部品を使うこと
輪ゴムは切れやすく高価なので慎重に扱い、張力がかかりすぎないようにすること。

今回は自分の似顔絵をロボットに描かせた。

*ロボットの説明 [#tfd6eea1]
私達の班は下の写真のような構造のロボットにした。
#ref(2016a/Member/tom/Mission1/IMG_2577.JPG)
鉛筆は二本のブロックで挟んで固定した。
#ref(2016a/Member/tom/Mission1/IMG_2576.JPG)
逆から見た写真
#ref(2016a/Member/tom/Mission1/IMG_2377.JPG)

*プログラム [#peab2c8e]

 #define go_forward(t,s) OnFwd(OUT_BC,s);Wait(t);Off(OUT_BC)
 #define go_back(t,s) OnRev(OUT_BC,s);Wait(t);Off(OUT_BC);
 #define kaku Off(OUT_BC); OnRev(OUT_A,25); Wait(400); Off(OUT_A);
 #define hanasu Off(OUT_A); OnFwd(OUT_A,25); Wait(300); Off(OUT_A);
 #define turn_left Off(OUT_C); OnFwd(OUT_B,50); Wait(1100); Off(OUT_B);
 #define turn_right Off(OUT_B); OnFwd(OUT_C,50); Wait(1000); Off(OUT_C);
 task main (2016a/Member/tom/Mssion1/)
 {
  repeat(3){
  kaku;
  go_forward(700,50);
  hanasu;
  go_forward(700,50);
  turn_left;
  go_back(1300,50);
 }
  kaku;
  go_forward(900,50);
  hanasu;
  turn_left;
  go_back(1100,50);
  kaku;
  go_forward(120,50);
  hanasu;
  go_forward(120,50);
  kaku;
  go_forward(200,50);
  hanasu;
  turn_right;
  turn_right;
  go_back(1800,50);
  kaku;
  go_back(300,50);
  hanasu;
 }

*動作の説明  [#h78a246e]

t秒間前進する
 #define go_forward(t,s) OnFwd(OUT_BC,s);Wait(t);Off(OUT_BC);
t秒間後退する
 #define go_back(t,s) OnRev(OUT_BC,s);Wait(t);Off(OUT_BC);
鉛筆を下ろす
 #define kaku Off(OUT_BC); OnRev(OUT_A,25); Wait(400); Off(OUT_A);
鉛筆を上げる
 #define hanasu Off(OUT_A); OnFwd(OUT_A,25); Wait(300); Off(OUT_A);
左へ曲がる
 #define turn_left Off(OUT_C); OnFwd(OUT_B,50); Wait(1100); Off(OUT_B);
右へ曲がる
 #define turn_right Off(OUT_B); OnFwd(OUT_C,50); Wait(1000); Off(OUT_C);
と定義し似顔絵を書くことにした。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS