僕たちのロボット

robo1 編集.JPG

僕たちが作ったロボットはかなりの重さはあるが、俊敏なロボットです。機能性を高めていったらかなりの重さになりました。しかし、タイヤとモーターが直接つながっているので、とっても俊敏です。まさにお笑い芸人の「タイムマシン3号」のふくよかな方の人みたいな感じです。知っている人は納得。知らない人は調べてね。

(1)は一見無意味に見えますが、実はこれがないとロボットが後ろに倒れてしまいます。倒れないようにするにはどうしたらよいかを議論した結果、シンプルに支えをつけることになりました。ロボットの前部を重くする案もありました。しかし、重くするブロックをつける場所が、プログラムをダウンロードするときに使う赤外線のところしかなく断念。ダメ押しとして『これ以上重くしてどうする!!』ということで完璧にあきらめました。つける支えを車輪にすることによって、ロボットの動きの邪魔にならないようにしました。

robo2 編集.JPG

(2)にはペンがあります。4つのタイヤによって挟まれ、そのタイヤが動くことによってペンが上下します。最初は、2つのタイヤのみでペンを上下させていました。しかし、字を書いているうちにペンがずれてしまい、うまくかけなくなってしまいました。そのズレを直すためにタイヤを計4つにして、ペンを安定させました。そのせいでロボットが重くなったといっても過言ではありません。何度もいうようですが、重たくても俊敏!

『介』を書くロボットープログラム

suke.jpg ←書けた「介」

task main()
{
  OnFwd(OUT_B); Wait(20); Off(OUT_B); //ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C);//『介』の一画目の直進
  OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる
  OnRev(OUT_A+OUT_C); Wait(130); Off(OUT_A+OUT_C);//一画目を戻る
  OnFwd(OUT_C); OnRev(OUT_A); Wait(75);//二画目に向けて旋回
  OnFwd(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C);//一画目と二画目が重なるように旋回後に前進
  OnFwd(OUT_B); Wait(30); Off(OUT_B);//ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(120); Off(OUT_A+OUT_C);//二画目の直進
  OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる
  OnRev(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C);//二画目を途中まで戻る
  OnFwd(OUT_A); OnRev(OUT_C); Wait(110); Off(OUT_A+OUT_C);//三画目に向かえるように旋回
  OnFwd(OUT_A+OUT_C); Wait(100); Off(OUT_A+OUT_C);//三画目に向けて二画目上から前進
  OnFwd(OUT_C); OnRev(OUT_A); Wait(75); Off(OUT_A+OUT_C);//三画目を書き始められるように旋回
  OnFwd(OUT_B); Wait(20); Off(OUT_B);//ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C);//三画目を書く
  OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる
  OnRev(OUT_A+OUT_C); Wait(50); Off(OUT_A+OUT_C);//三画目を戻る
  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);//四画目に向けて直進
  OnFwd(OUT_A); OnRev(OUT_C); Wait(75); Off(OUT_A+OUT_C);//四画目を書き始められるように旋回
  OnFwd(OUT_B); Wait(30); Off(OUT_B);//ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(80); Float(OUT_A+OUT_C);//四画目を直進し滑らかに終わる
  OnRev(OUT_B); Wait(20); Off(OUT_B);//ペンを上げる
   }

工夫した点

  • ペンの装着場所を後方にしたため、最初のプログラムでは誤差ができてしまった。そこで、微妙な動作の秒数を変化させたり、画と画の繋ぎ目まで移動するようにプログラムしなおしたこと。
  • プーリーを使って動力を弱めて、動作をゆっくりにして正確な動作になるようにした。
robo3.jpg

↑これがプーリーです

次に活かしたい点

  • プログラムでサブルーチンを使用したりして、もっとコンパクトなプログラムを作りたい。

『太』を書くロボットープログラム

huto.jpg  ←これが書けた『太』です。ロボットさんが一生懸命書きました!

task main()
{
  OnFwd(OUT_B); Wait(20); Off(OUT_B);                          //ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(120); Off(OUT_A+OUT_C);             //『太』の『―』を書くために前進
  OnRev(OUT_B); Wait(20); Off(OUT_B);                          //ペンを上げる

  OnRev(OUT_A+OUT_C); Wait(105); Off(OUT_A+OUT_C);             //後進 
  OnFwd(OUT_A); OnRev(OUT_C); Wait(105); Off(OUT_A+OUT_C);     //右回転
  OnFwd(OUT_B); Wait(25); Off(OUT_B);                          //ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(130); Off(OUT_A+OUT_C);             //『太』の『/』を書くために前進
  OnRev(OUT_B); Wait(20); Off(OUT_B);                          //ペンをあげる
  
  OnRev(OUT_A+OUT_C); Wait(135); Off(OUT_A+OUT_C);             //後進
  OnFwd(OUT_C); OnRev(OUT_A); Wait(65); Off(OUT_A+OUT_C);      //左回転 
  OnFwd(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C);              //このままだとズレが生じるので、少し前進
  OnFwd(OUT_B); Wait(25); Off(OUT_B);                          //ペンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(110); Off(OUT_A+OUT_C);             //『太』の『\』を書くために前進
  OnRev(OUT_B); Wait(20); Off(OUT_B);                          //ペンを上げる

  OnRev(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C);              //後進
  OnFwd(OUT_A); OnRev(OUT_C); Wait(90);                        //右回転 
  OnFwd(OUT_A+OUT_C); Wait(65);Off(OUT_A+OUT_C);               //前進
  OnFwd(OUT_C); OnRev(OUT_A); Wait(80); Off(OUT_A+OUT_C);      //左回転
  OnFwd(OUT_B); Wait(25); Off(OUT_B);                          //ぺンを下ろす
  OnFwd(OUT_A+OUT_C); Wait(20); Off(OUT_A+OUT_C);              //『太』『、』を書くために前進
  OnRev(OUT_B); Wait(20); Off(OUT_B);                          //ペンを上げて終了
   }
  1. 工夫した点
  • 工夫した点:ペンを下ろす時間(二回目以降)をほんの少し長くしました(20→25)。戻る時間を短くする方法もあったが、その方法より、下ろす時間を長くしたほうがうまくいったので、長くしました。
  • 工夫した理由:ロボットが字を書いていくと、後半に字が書けなくなったからです。
  • 原因:字を書いていくと、ペンが浮き上がり紙に接しなくなっていたため。

2. 苦労した点

『太』 図1.JPG

図1の(1)の部分がうまく合わさらなかった。図1の(2)の部分と同じ時間戻ってしまうと、(1)の部分がうまく合わさらなかった。この接合部分をうまく合わせるために、何度も試行錯誤を繰り返した。試行錯誤の結果、(2)よりも少なく戻り、ペンを下ろさずに数秒前進し位置を合わせてからペンを下ろし書くようにした。

3. 感想

プログラミングをはじめてやって、とても楽しかった。ロボットを動かすのは本当に大変な作業だなと思った。ドラえもんや鉄腕アトムを作ることが、どれだけ難しいかがわかった気がする。

comment

  • コメント欄を追加させていただきました。 -- ゆき(TA)? 2006-11-24 (金) 12:56:01
  • 苦労した点を図示したのは良いですね。 -- ゆき(TA)? 2006-11-24 (金) 12:57:22
  • 図1の説明で "?" になっている部分がありますよ。 -- ゆき(TA)? 2006-11-24 (金) 12:58:23
  • 直しました -- 製作者? 2006-11-27 (月) 16:13:31
  • どうしても最初は、ノープランで作って、重大な欠陥があって、もう少しのところでうまくいかないことはこれから先もあると思いますが、今回のように車輪を付けることで解決できることもあると思いますが、これからは一度解体して作り直すという決断も必要かもしれません [worried] -- まいける(TA) 2006-12-06 (水) 22:36:20


添付ファイル: filerobo1 編集.JPG 224件 [詳細] filerobo2 編集.JPG 211件 [詳細] filerobo3.jpg 204件 [詳細] filesuke.jpg 217件 [詳細] filehuto.jpg 216件 [詳細] file『太』 図1.JPG 221件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-12-06 (水) 22:38:32