2008b/A2/課題1/メンバーページへ

目次

課題1/似顔絵を作成する

1課題の概要

A3の用紙に相棒の似顔絵を作成するロボットの作成。

2ロボット本体の制作過程

土台構成について

土台となる部分は作成用の本に書いてあった四輪のタイプを使用しました。

土台の部分には特に手を加えず、そのままの形で製作。

ペンを持たせる部分について

ここの部分には過去の作品のアイディアを一部使用しながら工夫し、完成。予定よりもかなり少ない部品でつくることの成功しました。
主な工夫点については後に記載します。

3ロボット本体の完成

完成したロボットがこちら

正面

mae.jpg

真上から

ue.jpg

左右から

yoko1.jpg
yoko2.jpg

主な工夫点

ペンを動かすにはタイヤを使って上下に移動する方法を採用。
三つタイヤを使うことによりペンの上下を安定させることが出来たと思います。
また、なるべく少ない部品で組み立てることで、小型化、軽量化することができました。

ロボットの欠点と改善に向けて

このロボットの弱点、つまり改良点は、非常に衝撃に弱いことです。
ブロックばかりでの構成なので、外れやすく、組み込みが複雑なので取り外しも簡単に出来ません。
前のほうにパーツが多い所為か前に重心がかかっているらしく、アームの部分だけが外れることもよくあります。
なので改良すべき点はパーツが外れないよう補強すること、ブロック以外の部品の活用です。
だからといってパーツを多く使いすぎれば小型、軽量の意味がなくなってしまうので難しいところです。

4ロボットのプログラム

その1

int turn_time;
#define FF OUT_A+OUT_C
#define FL OUT_A
#define FR OUT_C
#define FA OUT_B
void up() //ペンを上げます
{ SetPower(FA,5); OnRev(FA);  Wait(10); Off(FA); }
void down() //ペンを下げます
{ SetPower(FA,5); OnFwd(FA); Wait(30); Off(FA);}
sub go() // 前進します
{ SetPower(FF,5); OnRev(FF); }
sub go_back() //後進します
{ SetPower(FF,5); OnFwd(FF); }
sub right()  //右に旋回します
{SetPower(FR,5);
OnRev(FR);}
sub left()   //左に旋回します
{SetPower(FL,5);
 OnRev(FL);}
sub turn_left_025()           // 左に九十度曲がります
{ 
   turn_time /= 4 ;
   OnFwd(FL); Rev(FF); Wait(turn_time); 
   Off(FF);           }
sub turn_left_0125()           // 左に四十五度曲がります
{ 
   turn_time /= 8 ;
   OnFwd(FL); Rev(FF); Wait(turn_time); 
   Off(FF);              }
 sub turn_right_025()           // 右に九十度曲がります
{ 
   turn_time /= 4 ;
   OnFwd(FR); Rev(FF); Wait(turn_time); 
   Off(FF);           }
sub turn_right_0125()           // 右に四十五度曲がります
{
   turn_time /= 8 ;
   OnFwd(FR); Rev(FF); Wait(turn_time); 
   Off(FF);              }
task main()
{          down();          //まずはペンを下ろします
     repeat(2){     
          go();
          Wait(100);
          Off(FF);          //描き始め
          left();
          Wait(300);
          Off(FF);}
                            //輪郭が描けました
          up();
          turn_left_025();
     repeat(2){
          go();
          Wait(30);
          Off(FF);
          down();
          go();
          Wait(20); 
          Off(FF);
          up();}
                            //両目を描きました
          go_back();
          Wait(20);
          Off(FF);
          turn_right_025();
          go();
          Wait(20);
          Off(FF);
          down();
          go();
          Wait(100);
          Off(FF);
          up();
                            //鼻を描きました
          turn_left_025();
          go();
          Wait(100);
          Off(FF);
          turn_right_025();
          turn_right_025();
          down();
          go();
          Wait(50);
          Off(FF);
          up();
          go();
          Wait(50);
          Off(FF);
                            //口を描きました
          turn_right_025();
          go();
          Wait(50);
          Off(FF);
      repeat(3){   
          turn_right_0125();
          go();
          Wait(30);
          Off(FF);
          turn_left_0125();
          go();
          Wait(30);
          Off(FF);}          //髪を描きました
                                               }       //お仕舞いです
          
          
                    
                     
//一応プログラムはこれで完了です
//これから試行錯誤します

その2(制作者 キヨ)サブルーチンなどは、その1とほとんど同じです。

int turn_time;
#define FF OUT_A+OUT_C
#define FL OUT_A
#define FR OUT_C
#define FA OUT_B

sub up()  ペンを上げる

{SetPower(FA,5);
 OnFwd(FA);
 Wait(5);
 Off(FA);}

sub down() ペンを下げる

{SetPower(FA,5);
 OnRev(FA);}

sub fore() 直進

{SetPower(FF,5);
 Off(FA); 
 OnRev(FF);}  

sub back() 後退

{SetPower(FF,5);
 OnFwd(FF);}

Wait(t);

Off(FA);}

sub right() 右に曲がる

{SetPower(FR,5);
 OnRev(FF);}

sub left() 左に曲がる

{SetPower(FL,5);
 OnRev(FF);}

task main()

輪郭.jpg
{
    down();     //輪郭(左頬からスタート)…
    fore();
    Wait(200);
    up();

  repeat(2){      //アゴの辺り …
    left();
    Wait(70);
    down();
    fore();
    Wait(60);
    up();
    
    left();
    Wait(50);
    down();
    fore();
    Wait(50);
    up();
    
    left();
    Wait(30);
    down();
    fore();
    Wait(80);
    up();
    }
    
    down();      //右頬の辺り …
    fore();
    Wait(120);
    up();
    back();            // …
    Wait(50);
    left();
    Wait(120);
メガネ.jpg
  repeat(2);{          //メガネ …
    down();
    fore();
    Wait(20);
    up();
    right();
    Wait(120);
    down();
    fore();
    Wait(15);
    up();
    left();
    Wait(120);
    down();
    fore();
    Wait(60);
    up();               
    left();              // …
    Wait(120);
    down();
    fore();
    Wait(30);
    up();
    
    left();               // …
    Wait(120);
    down();
    fore();
    Wait(60);
    up();
    left();                // …
    Wait(120);
    down();
    fore();
    Wait(15);
    
    up();
    left();
    Wait();
    fore();                 // …
    Wait();
    }
    
  down();          // …
  fore();
  Wait(20);
鼻.jpg
 
  up();          //鼻までの移動 …
  back();
  Wait(90);
  left();
  Wait(120);
  fore();
  Wait(25);   // …
  
  down();     //鼻
  fore();
  Wait(40);
  up();
口.jpg
  up();     //鼻から口   
  right();       // …
  Wait(120);
  fore();
  Wait(60);
  left();
  Wait(120);
  fore();
  Wait(20);
  
  down();          //最後に口を書きます …
  repeat(2){
     left();
     Wait(70);
     down();
     fore();
     Wait(50);
     up();
  
     left();
     Wait(50);
     down();
     fore();
     Wait(40);
     up();

     left();
     Wait(30);
     down();
     fore();
     Wait(20);
     up();
     }  
     }                 //口を書き終わって終了です。

コメント

コメントがあればどうぞ

  • 相方への連絡です。ロボットの動きを知りたいので、CD含めた一式を5コマ目の後パソコン室(十番教室)に持ってきて下さい。六時から七時まで、一時間ほど待機しています。 -- ハマダ? 2008-11-10 (月) 09:06:55
  • ロボットを動かさないことにはプログラムの改良のしようがありません。明日のお昼にパソコン室に持ってきてくださるか、そちらでロボットの改良及び動きの時間の計測をお願いします。 -- ハマダ? 2008-11-10 (月) 18:23:22
  • コメントに気付きませんでした。本当にすいません。明日4コマ目終わってから10番教室にいます。来れる時間帯教えてもらえると助かります。 -- しみず? 2008-11-11 (火) 13:37:49
  • 分かりました、こちらも10番教室で待っています。 -- ハマダ? 2008-11-12 (水) 14:55:50
  • ソースがきれいに貼れてないのでそこらへん直してください -- なかむら? 2008-11-12 (水) 17:02:06
  • プログラムの方の説明は良く書けています。ロボットの方の説明も詳しくしてみてください。 -- FI? 2008-12-03 (水) 10:35:33


添付ファイル: fileyoko2.jpg 234件 [詳細] fileyoko1.jpg 255件 [詳細] fileue.jpg 286件 [詳細] filemae.jpg 241件 [詳細] filetest1.nqc 130件 [詳細] file輪郭.jpg 240件 [詳細] fileメガネ.jpg 255件 [詳細] file口.jpg 281件 [詳細] file鼻.jpg 268件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-02-05 (木) 16:22:41 (3853d)