*課題1 右側 : "木"の字を書くロボット[#z6e034cd]

**ロボット [#rbdb7d38]
移動とペンの上下を行うことで文字を書くロボット。&br;
モータにタイヤを直結させ、タイヤを回転させることでペンを上下させる。&br;
OUT_Aに移動用右モータ、OUT_Cに移動用左モータ、OUT_Bにペン上下用モータを接続。

&ref(kadai01-001.jpg); &ref(kadai01-002.jpg);

**プログラム [#aaf64e92]

 kadai001-03.nqc
 作成日 2005/05/22
 作成者 原 辰徳
 ==============================
 
 sub penup()     //ペンを上げる
 {OnFwd(OUT_B);Wait(15);Off(OUT_B);}
 
 sub pendn()     //ペンを下げる
 {OnRev(OUT_B);Wait(16);Off(OUT_B);}
 
 void gofwd(int fwdtime)     //前に移動
 {OnFwd(OUT_A+OUT_C);Wait(fwdtime);Off(OUT_A+OUT_C);}
 
 void gorev(int revtime)     //後ろに移動
 {OnRev(OUT_A+OUT_C);Wait(revtime);Off(OUT_A+OUT_C);}
 
 void turnl(int turnltime)     //左に曲がる
 {OnFwd(OUT_A);OnRev(OUT_C);
  Wait(turnltime);Off(OUT_A+OUT_C);Wait(40);}
 
 void turnr(int turnrtime)     //右に曲がる
 {OnFwd(OUT_C);OnRev(OUT_A);
  Wait(turnrtime);Off(OUT_A+OUT_C);Wait(40);}
 
 task main()
 {
  Wait(100);     //すぐに動き出さないように待機
  
  pendn();     //1画目を書く
  Wait(40);
  gofwd(100);
  penup();
  Wait(40);
 
  gorev(9);     //2画目を書く位置まで移動
  Wait(40);
  turnl(95);
  
  pendn();     //2画目を書く
  gorev(150);
  penup();
  Wait(40);
  
  gofwd(170);     //3画目を書く位置まで移動
  Wait(40);
  turnl(155);
  gorev(25);
  Wait(40);
  
  pendn();     //3画目を書く
  OnFwd(OUT_A+OUT_C);
  repeat(5)
  {
   Wait(8);
   Float(OUT_A);
   Wait(12);
   OnFwd(OUT_A);
  }
  Off(OUT_A+OUT_C);
  penup();
  Wait(40);
  
  OnRev(OUT_C);     //4画目を書く位置まで移動
  repeat(3)
  {
   Wait(12);
   OnRev(OUT_A);
   Wait(8);
   Float(OUT_A);
  }
  Off(OUT_A+OUT_C);
  Wait(40);
  turnl(86);
  gorev(30);
  Wait(40);
  
  pendn();     //4画目を書く
  OnFwd(OUT_A+OUT_C);
  repeat(5)
  {
   Wait(8);
   Float(OUT_C);
   Wait(12);
   OnFwd(OUT_C);
  }
  Off(OUT_A+OUT_C);
  penup();
 }
 

**工夫した点 [#e6523722]
-シンプルな機構
-3,4画目は直線ではなく曲線になるようにした。

**残っている問題点 [#p6b60e35]
-振動が発生することがあり、その時はうまく線が引けない。


[[2006a/C4 に戻る>2006a/C4]]

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