[[2010a]]
*目次 [#l3329b6a]
#contents
*課題1:お絵描きロボット[#m5b46553]
''A3の紙に相棒の似顔絵を書くロボットを作成せよ。''~
・ひとりにつき一つ以上のプログラムを作成すること。~
・ペン以外はキットに含まれる部品を使うこと。~
・キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。~
・改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。
-ひとりにつき一つ以上のプログラムを作成すること。~
-ペン以外はキットに含まれる部品を使うこと。~
-キットに付属の高価な輪ゴムは切れやすいので切れないように細心の注意を払うこと。~
-改良や調整をしやすくするため、ロボット本体だけでなく、プログラムについても可能な部分についてはサブルーチンや関数、マクロなどを使って部品に分けること。
*メンバー [#h97b91c0]
????
 
Mizu &br; 
Ta2 \(^o^)/
*ロボット [#b04b3e01]
**コンセプト [#h7616616]
-ペンを持たせる部分に輪ゴムを使わない!&br;
-
**本体 [#a4cf844e]
#ref(MS改良前全体.JPG)
改良前です。
#ref(MS改良前全体.JPG,around,left)
#ref(MS改良後全体.JPG,around,right)
LEFT:←改良前です。
RIGHT:改良後→
#clear
**タイヤ [#yd97c6ba]
#ref(MS改良前タイヤ.JPG)
こちらも改良前。
#ref(MS改良前タイヤ.JPG,around,left)
#ref(MS改良後横から.JPG,around,right)
LEFT:←こちらも改良前。
RIGHT:改良後→
#clear
**筆記部分 [#v129babf]
#ref(MSペン持ち部(外側).JPG)
外から見るとこんな感じ。
#ref(MSペン持ち部(内側).JPG)
こんな感じにペンが挟まります。

#ref(MSペン持ち部(外側).JPG,around,left)
#ref(MSペン持ち部(内側).JPG,around,right)
LEFT:外から見るとこんな感じ。
RIGHT:こんな感じにペンが挟まります。
#clear
筆記部分は改良せず。
**工夫した点 [#s755ca0d]
-本体にこだわり、耐久度を強めに作った。
-
*プログラム [#haab2724]
**????の場合 [#h76d5ea3]
**Mizuの場合 [#h76d5ea3]
***プログラム [#y49a85d0]
 #define PEN_TIME 10		//ペンの上げ下げにかかる時間
 #define TURN 50		//車体を回転の軸まで持っていく時間
  
 sub down()	//ペン下ろす
 {
 	OnFwd(OUT_B);Wait(PEN_TIME);Off(OUT_B);	
 }
 sub up()	//ペン上げる
 {
 	OnRev(OUT_B);Wait(PEN_TIME);Off(OUT_B);
 }
 #define go(i) OnRev(OUT_A);OnFwd(OUT_C);Wait(i);Off(OUT_A+OUT_C);
 //iミリ秒前進
 #define back(i) OnFwd(OUT_A);OnRev(OUT_C);Wait(i);Off(OUT_A+OUT_C);
 //iミリ秒後退
 #define right(i) back(TURN);OnRev(OUT_A+OUTC);Wait(i);Off(OUT_A+OUT_C);go(TURN);
 //iミリ秒右回転,136で360°回転,17で45°回転,45で120°回転
 #define left(i) back(TURN);OnFwd(OUT_A+OUT_C);Wait(i);Off(OUT_A+OUT_C);go(TURN);
 //iミリ秒左回転
 
 task main()
 {
	up();down();go(70);					//輪郭 ペンを紙につけて開始
	up();left(34);down();go(100);
	up();left(17);down();go(50);
	up();left(34);down();go(100);
	up();left(17);down();go(50);
 
	up();back(25);left(88);go(10);			//移動
	down();go(15);up();go(20);down();go(15);		//眉
 
	up();left(34);go(5);left(34);go(8);		//移動
	down();Wait(50);up();go(34);down();Wait(50);		//目
 
	up();back(12);right(34);go(10);			//移動
	down();go(25);up();right(34);				//鼻
	down();go(10);up();right(34);
	down();go(25);
 	
	up();back(35);right(34);back(5);			//移動
	repeat(3){down();go(20);up();right(45);}		//口
 
	go(200);	//紙の上から移動
	
 }
***完成品[#h11af6d6]
時間が足りなくて、微調整をすることができなかった。
**Ta2の場合 [#d1f89340]
***プログラム [#sdad7f2e]
 #define Pen 10
 
 #define move 100
 
  void straight(int i) //前進 
    {
	OnRev(OUT_A);OnFwd(OUT_C);
	Wait(i);
	Off(OUT_A+OUT_C);
    }
 
  void back(int i) //後退 
     {
	OnFwd(OUT_A);OnRev(OUT_C);
	Wait(i);
	Off(OUT_A+OUT_C);
     }
 
   void right(int i) //右回転 
     {
	OnRev(OUT_A+OUT_C);
	Wait(i);
	Off(OUT_A+OUT_C);
     }
 
  void left(int i) //左回転 
     {
	OnFwd(OUT_A+OUT_C);
	Wait(i);
	Off(OUT_A+OUT_C);
     }
 
  sub pen_down() //ペン下ろす 
    {
	OnFwd(OUT_B);
	Wait(11);
	Off(OUT_B);
    }
 
  sub pen_up() //ペン上げる 
    {
	OnRev(OUT_B);
	Wait(Pen);
	Off(OUT_B);
    }
 
 
 task main()  
 {
      straight(80);   //まずは輪郭、ペンを下げた状態からスタート
      pen_up();
 
      back(60);
      left(20);
      Off(move);
      straight(50);
      pen_down();
      straight(30);
      pen_up();
 
      back(60);
      left(20);
      Off(move);
      straight(50);
      pen_down();
      straight(40);
      pen_up();
 
      back(40);
      left(20);
      Off(move);
      straight(50);
      pen_down();
      straight(30);
      pen_up();
 
      back(40);
      left(20);
      Off(move);
      straight(150);   
      pen_up();        //輪郭ここまで
 
      left(40);        //髪の書き始め
     repeat(5)
       { 
      straight(20);
      pen_down();
      right(3);
      pen_up();
      left(3);        //髪ここまで
       }
 
      left(40);        //眼鏡ここから
      straight(30);
      left(40);
      straight(40); 
      pen_down();
      straight(25);
      pen_up();
      straight(15);
      pen_down();
      straight(10);
      pen_up();
      straight(15);
      pen_down();
      straight(25);
      pen_up();
      left(90);
      straight(5);
      left(90);
      straight(65);
      pen_down();
      right(10);
      left(10);
      straight(15);
      pen_up(); 
      straight(10);
      pen_down();
      right(10);
      left(10);
      straight(15);
      pen_up();
      left(90);
      straight(10);
      left(90);
      straight(40);
      pen_down();
      right(10);
      left(10);
      straight(15);
      pen_up();
      straight(10);
      pen_down();
      right(10);
      left(10);
      straight(15);
      pen_up();
      straight(25);     //眼鏡ここまで
 
      right(135);       //口ここから
      straight(40);
      right(45);
      pen_down();
      right(45);
      pen_up();         //口ここまで 
 
 
      straight(20);     //鼻ここから
      pen_down();
      straight(5);
      pen_up();         //鼻ここまで
 
 
      straight(100);    //終了
 }
***完成品 [#z77ffc1b]
残念ながらぐちゃぐちゃになってしまって、人の顔を作ることができなかった…&br;

*感想 [#u1da219d]
**???? [#d749331c]
**MIzu [#d749331c]
人なら簡単にできることをロボットでやろうと思うととても難しくて改めてロボット製作の大変さを感じた。
**Ta2 [#y66d42bf]
ロボット本体にこだわりすぎて、プログラムが疎かに…

ロボット本体にこだわりすぎて、プログラムがちょっと雑に…&br;
最初キャタピラだったが、うまくいかなかったため、タイヤに変えるのに苦労した。
*コメント [#z0c2e52a]
コメントをどうぞ
#comment


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