水を書くロボット(旧)

機体

 今、ペンを動かすところを作成中です。

プログラム

 まだ、ペンのところが未完成なので、そこは省略します。

task main()
{
   OnFwd(OUT_A+OUT_C);Wait(136);  // 1画目を書きます。
   OnRev(OUT_C);Wait(150);  // 方向転換をします。
   OnFwd (OUT_C); Wait(100);  // 2画目に移動します。
   OnRev(OUT_C);Wait(120);  // 方向転換をします。
   OnFwd (OUT_C); Wait(50);  // 2画目を書きはじめます。 
   OnRev(OUT_C);Wait(130);  // 方向転換をします。
   OnFwd (OUT_C); Wait(86);  // 2画目の続きを書きます。
   OnRev(OUT_A+OUT_C);Wait(136);  // 3画目に移動します。
   OnFwd(OUT_A+OUT_C);Wait(50);  // 3画目を書きます。
   OnRev(OUT_A);Wait(70);  // 方向転換をします。
   OnFwd(OUT_A);Wait(86);  // 4画目を書きます。
   Off(OUT_A+OUT_C);  // 止まります。
}

 マクロを使って短くしてみました。

#define turn_right(t) OnFwd (OUT_A);OnRev (OUT_C);Wait (t);Off (OUT_A+OUT_C);
#define turn_left(t) OnFwd (OUT_C);OnRev (OUT_A);Wait (t);Off (OUT_A+OUT_C);
#define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);
#define go_back OnRev(OUT_A+OUT_C);Wait(136);Off(OUT_A+OUT_C);
task main ()
{
  go_straight(136);
  turn_right(150);
  go_straight(100);
  turn_right(120);
  go_straight(50);
  turn_right(130);
  go_straight(86);
  go_back;
  go_straight(50);
  turn_left(70);
  go_straight(86);
}

水を書くロボット(改)

機体

前回のロボットは、ペンを動かす装置がうまく働かなかったため、発表ができませんでした。そこで、下のように改造してみました。(ちなみに、名前は「ミズカキ君」といいます。)

D1000004.JPG

ペンの動くところは、ギアの回転にあわせて上下するようになっています。

D1000005.JPG

プログラム

機体の組みなおしとともに、以下のように書き換えました。

//製作:田中隆洋
task main ()
{
 OnFwd(OUT_B);Wait(10);Off(OUT_B); //ペンを下ろします。
 OnFwd(OUT_A+OUT_C);Wait(68);Off(OUT_A+OUT_C); //一画目を書きます。
 OnRev(OUT_B);Wait(10);Off(OUT_B); //ペンを上げます。
 OnFwd (OUT_C);OnRev (OUT_A);Wait (75);Off(OUT_A+OUT_C); //回転します。
 OnFwd(OUT_A+OUT_C);Wait(40);Off(OUT_A+OUT_C); //2画目に移動します。
 OnFwd (OUT_C);OnRev (OUT_A);Wait (55);Off (OUT_A+OUT_C); //回転します。
 OnRev(OUT_A+OUT_C);Wait(20);Off(OUT_A+OUT_C); //2画目を書き始めるところまで移動します。
 OnFwd(OUT_B);Wait(10);Off(OUT_B); //ペンを下ろします。
 OnFwd(OUT_A+OUT_C);Wait(25);Off(OUT_A+OUT_C); //2画目を書きます。
 OnRev(OUT_B);Wait(10);Off(OUT_B); //ペンを上げます。
 OnFwd (OUT_C);OnRev (OUT_A);Wait (65);Off (OUT_A+OUT_C); //回転します。
 OnRev(OUT_A+OUT_C);Wait(10);Off(OUT_A+OUT_C); //2画目の続きを書き始めるところまで移動します。
 OnFwd(OUT_B);Wait(10);Off(OUT_B); //ペンを下ろします。
 OnFwd(OUT_A+OUT_C);Wait(43);Off(OUT_A+OUT_C); //2画目の続きを書きます。
 OnRev(OUT_B);Wait(10);Off(OUT_B); //ペンを上げます。
 OnFwd (OUT_C);OnRev (OUT_A);Wait (5);Off (OUT_A+OUT_C); //回転します。
 OnRev(OUT_A+OUT_C);Wait(63);Off(OUT_A+OUT_C); //3画目まで移動します。
 OnFwd (OUT_C);OnRev (OUT_A);Wait (10);Off (OUT_A+OUT_C); //少し角度を調整します。
 OnRev(OUT_A+OUT_C);Wait(10);Off(OUT_A+OUT_C); //3画目を書き始めるところに移動します。
 OnFwd(OUT_B);Wait(10);Off(OUT_B); //ペンを下ろします。
 OnFwd(OUT_A+OUT_C);Wait(25);Off(OUT_A+OUT_C); //3画目を書きます。
 OnRev(OUT_B);Wait(10);Off(OUT_B); //ペンを上げます。
 OnFwd (OUT_A);OnRev (OUT_C);Wait (45);Off (OUT_A+OUT_C); //回転します。
 OnRev(OUT_A+OUT_C);Wait(5);Off(OUT_A+OUT_C); //4画目を書き始めるところに移動します。
 OnFwd(OUT_B);Wait(10);Off(OUT_B); //ペンを下ろします。
 OnFwd(OUT_A+OUT_C);Wait(43);Off(OUT_A+OUT_C); //4画目を書きます。
 OnRev(OUT_B);Wait(10);Off(OUT_B); //ペンを上げます。
}

マクロを使ってみました。(動き方は上と同様)

#define turn_left(t) OnFwd (OUT_A);OnRev (OUT_C);Wait (t);Off (OUT_A+OUT_C);
#define turn_right(t) OnFwd (OUT_C);OnRev (OUT_A);Wait (t);Off (OUT_A+OUT_C);
#define go_straight(t) OnFwd(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);
#define go_back(t) OnRev(OUT_A+OUT_C);Wait(t);Off(OUT_A+OUT_C);
#define pen_down OnFwd(OUT_B);Wait(10);Off(OUT_B)
#define pen_up OnRev(OUT_B);Wait(10);Off(OUT_B)
task main ()
{
 pen_down;
 go_straight(68);
 pen_up;
 turn_right(75);
 go_straight(40);
 turn_right(55);
 go_back(20);
 pen_down;
 go_straight(25);
 pen_up;
 turn_right(65);
 go_back(10);
 pen_down;
 go_straight(43);
 pen_up;
 turn_right(5);
 go_back(63);
 turn_right(10);
 go_back(10);
 pen_down;
 go_straight(25);
 pen_up;
 define turn_left(45)
 go_back(5);
 pen_down;
 go_straight(43);
 pen_up;
}

作品

発表できなかったので、ここに載せておきます。

D1000003.JPG

工夫した点

  1. ペンの稼動部をできるだけ真ん中に持ってきたこと。
  2. 電池ボックスを後ろに持ってきても、バランスを崩さないようにしたこと。

苦労した点

  1. なかなか2画目以降の位置が定まらなかったこと。
  2. ペンの稼動部の構造がなかなか決まらなかったこと。
  3. 走らせる場所によって動き方が微妙に変わってしまうこと。

反省・感想

簡単な文字を書くために、こんな大変だとは思いませんでした。メンバーもなかなか都合が合わなくて、あんまり集まる時間が取れませんでした。なので、次からは計画的にやりたいです。

コメント

前回までの分は消させていただきましたが、引き続きコメントをよろしくお願いします。



添付ファイル: fileD1000003.JPG 302件 [詳細] fileD1000005.JPG 320件 [詳細] fileD1000004.JPG 294件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-05-30 (火) 16:54:40