編集中
*&size(26){課題  :   似顔絵ロボット }; &size(15){( O男 & M男 )}; [#v0000eab]
#contents


**課題の概要 [#e4ba86f2]

その壱) A3用紙に相棒の似顔絵を書くロボットの製作@

その弐) 指定のキットを使用すれば構造は自由@

その参) なるべく相棒に似せる@



*ロボット&size(13){〜本体について〜}; [#l5cc0aa8]

**製作過程 [#tb98f9d7]
はじめは突き刺し型。

**完成体 [#pb44fb15]
写真をみての通り!!
動力部のうえにクレーン部をのせたシンプルな構造。

&ref(kure-n hp1.jpg);&size(30){+}; 
&ref(hp syataii1.jpg);&size(30){=}; &ref(zenbu1.jpg);

**工夫点 [#ed9bccc3]
***動力部 [#tae9b1a2]
・小回りを追求し、4輪車から三輪車への改造。写真
***クレーン部 [#n53328ed]


・普通のペンだと筆圧の調整が難しいため筆ペンを使用。写真

・クレーン部にヲォームギアを駆使し、重い筆ペンも楽々持ち上げれるようにトルクup。
写真









*ロボット&size(13){〜プログラムについて〜}; [#l5cc0aa8]
**O男編 [#x44528df]

最初は定義@

#define  ti_me 50
#define  up_pen   OnRev(OUT_B);Wait(60);Off(OUT_B);
#define down_pen  OnFwd(OUT_B);Wait(60);Off(OUT_B);
#define  go_st(t)   OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_B);
#define  turn_l90  OnFwd(OUT_A);OnRev(OUT_C);Wait(65);Off(OUT_A+OUT_C);
まず、メイン・サブルーチンのなかで繰り返し使うものをあらかじめマクロでインプット。


sub st_op()                     //  all stop  and wait =1 sec
{
Off(OUT_A+OUT_C+OUT_B);
Wait(ti_me);
}

sub make_ang()           // make angle     left turn=90
{
up_pen;

go_st(50);
                 #define  up_pen     OnRev(OUT_B);Wait(60);Off(OUT_B);                  //  ペンをさげる
                 #define down_pen    OnFwd(OUT_B);Wait(60);Off(OUT_B);                  //  ぺんをあげる
                 #define  go_st(t)   OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_B);         //  t/100 秒間まっすぐ走る
                 #define  turn_l90   OnFwd(OUT_A);OnRev(OUT_C);Wait(65);Off(OUT_A+OUT_C);   // 左90°回転
続いて、メインルーチンのなかで繰り返して使うものをサブルーチンでインプット。
     sub st_op()               // すべてをストップさせ、0,5秒まつ。
                     {  
                       Off(OUT_A+OUT_C+OUT_B); 
                       Wait(50);     
                     }
     
     sub make_ang()            // 左90°の角を作成
                     { 
                       up_pen; 
                       go_st(50); 
                       turn_l90; 
                       OnRev(OUT_A+OUT_C); 
                       Wait(41); 
                       Off(OUT_A+OUT_C); 
                       Wait(50); 
                       down_pen; 
                     } 
     
     sub  ago_45()             // 左45°の角を作成
                     { 
                       up_pen; 
                       go_st(47);
                       OnFwd(OUT_A); 
                       OnRev(OUT_C); 
                       Wait(33); 
                       Off(OUT_A+OUT_C);
                       OnRev(OUT_A+OUT_C);
                       Wait(43);
                       Off(OUT_A+OUT_C);
                       Wait(50);
                       down_pen;    
                     }
メイン
  
     task main()
                     {
                       OnFwd(OUT_B);  // ペンのセット
                       Wait(183);
                       st_op();
                       
                       go_st(100);    // 輪郭作成
                       st_op();
                       ago_45(); st_op(); go_st(30); st_op();
                       ago_45(); st_op(); go_st(50); st_op();
                       ago_45(); st_op(); go_st(30); st_op();
                       ago_45(); st_op(); go_st(100);st_op();
                       make_ang();   
                       st_op();
                       go_st(95);
                       st_op();
                       
                       up_pen;        //目作成
                       go_st(50);
                       turn_l90; 
                       OnRev(OUT_A+OUT_C);
                       Wait(41);
                       st_op();
                       go_st(25);
                       st_op();
                       go_st(50);
                       turn_l90;
                       OnRev(OUT_A+OUT_C);
                       Wait(41);
                       st_op();
                       go_st(13);
                       st_op();
                       down_pen;
                       st_op();
                       go_st(25);
                       st_op();
                       up_pen;
                       st_op();
                       go_st(22);
                       st_op();
                       down_pen;
                       st_op();
                       go_st(25);
                       st_op();
                       
                       up_pen;       //鼻作成
                       st_op();
                       OnRev(OUT_A+OUT_C);
                       Wait(35);
                       st_op();
                       down_pen;
                       st_op();
                       OnRev(OUT_A);
                       OnFwd(OUT_C);
                       Wait(27);
                       st_op();
                       go_st(15);
                       st_op();
                       
                       up_pen;         //口作成
                       st_op();
                       go_st(30);
                       st_op();
                       down_pen;
                       OnRev(OUT_A);
                       OnFwd(OUT_C);
                       Wait(50);
                       st_op();
                       
                       up_pen;         //ペンをあげて完成!!
                      }

turn_l90;
こんなお顔に、、、&ref(kao.jpg);
***工夫点 [#b53a2384]
***苦労 [#v780a983]

OnRev(OUT_A+OUT_C);
Wait(41);
Off(OUT_A+OUT_C);
Wait(ti_me);

down_pen;
}

sub  ago_45()  //make angle left turn=45
{
up_pen;

go_st(47);
**M男編 [#lf43879a]

OnFwd(OUT_A);OnRev(OUT_C);Wait(33);Off(OUT_A+OUT_C);

OnRev(OUT_A+OUT_C);
Wait(43);
Off(OUT_A+OUT_C);
Wait(ti_me);
***工夫点 [#n3ff6bbb]
***苦労 [#tcb1eb5b]

down_pen;
}




task main()
{
OnFwd(OUT_B);   //set pen
Wait(183);
st_op();

go_st(100);   //make rinkaku
st_op();

ago_45();st_op();go_st(30);st_op();

ago_45();st_op();go_st(50);st_op();

ago_45();st_op();go_st(30);st_op();

ago_45();st_op();go_st(100);st_op();


make_ang();    //make head
st_op();

go_st(95);st_op();

up_pen;go_st(50);turn_l90; //  make eye
OnRev(OUT_A+OUT_C);
Wait(41);
Off(OUT_A+OUT_C);
Wait(ti_me);st_op();

go_st(25)st_op();

go_st(50);turn_l90;
OnRev(OUT_A+OUT_C);
Wait(41);
Off(OUT_A+OUT_C);
Wait(ti_me);st_op();


go_st(13)st_op();

down_pen;st_op();

go_st(25)st_op();

up_pen;st_op();

go_st(22)st_op();

down_pen;st_op();

go_st(25)st_op();

up_pen;    //  make hana
st_op();

OnRev(OUT_A+OUT_C);
Wait(35);st_op();

down_pen;st_op();

OnRev(OUT_A);
OnFwd(OUT_C);
Wait(27);st_op();

go_st(15);st_op();

up_pen;   //make  kuti
st_op();

go_st(30);st_op();

down_pen;

OnRev(OUT_A);
OnFwd(OUT_C);
Wait(50);st_op();



up_pen;up_pen;up_pen;
}


**M男編 [#lf43879a]


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