2007年前期2R班 ぐっさん&いっせー

習字ロボット ペン太くん

2R班はそれぞれの出身地である、神戸の「戸」と沼津の「沼」を書く書道ロボットを製作した。

ロボットの画像

製作したロボットについて

文字を書く動作

・ペンを2つのタイヤの間にはさむことで固定し、タイヤを回転させることによりペンを上げ下げする仕組みを作った。

固定部分の画像

モーターは3つ使用。AとCを駆動に、Bをペンの上げ下げに使用した。

工夫したところ

・ペンを車体の中心部分に位置するようにし、文字を書く際にぶれにくくした。

・ペンをタイヤではさむという発想は単純だが、他はやってないオリジナル(?)の構造である。

・ペンを中心に置いたことで、モーターの位置がタイヤから遠くなってしまったので、モーターとタイヤをつなぐギアの組み合わせを工夫し、なんとか届くようにした。

ギア部分の画像

苦労したところ

・車体のバランスの取り方と、ペンの固定に苦労した。

・バランスは、本体をモーターの上に置くことで改善した。

・構造上ペンを途中で投げ出して書くことを放棄しようとすることがあったので、ゴムをつけて投げ出されないようにした。

固定部分

・ペンの動作を担うモーターが何度も動くと浮いてくるので補強した。

補強部

感想とこれからの課題

•初めての課題として漢字を書かせるロボの作成は、マニュアルがない分自分たちで考えないといけないのでロボの組み立てが非常に大変だった。

•これからの課題としてはもっとパーツを減らして、なおかつもっと安定させること。そのためには、モーターの取り付ける場所を変更して、うまい具合にギアを利用していこうと思う。

•ペンを持ち上げたり、ペンをおろしたりする動作が予定してた通りできずに続け字の様になってしまった。本番では上手いことに上げ下げができたが運の要素が強いので、今度はペンの持たせ方を変えて、動作を安定させたい。

「戸」を書くプログラム

担当:ぐっさん

完成した文字

『戸』

ボールペンを使用したために字は見にくいが、それはロボットの構造上仕方ないのであしからず。

プログラム

sub turn_right()//90度右折
{
 OnRev(OUT_C);
 Wait(80);
 Off(OUT_C);
}
sub turn_left()//90度左折
{
 OnRev(OUT_A);
 Wait(80);
 Off(OUT_A);
}
sub turn_harfaround()//180度右回転
{
 OnRev(OUT_C);
 Wait(160);
 Off(OUT_C);
}
sub write_down()//ペンをおろす
{
 OnRev(OUT_B);
 Wait(10);
 Off(OUT_B);
}
sub pick_up()//ペンをあげる
{
 OnFwd(OUT_B);
 Wait(10);
 Off(OUT_B);
}
sub turn_right30()//右に30度回転
{
OnRev(OUT_C);
Wait(26);
Off(OUT_C);
}
task main()
{
 write_down();//1画目書き始め
 OnFwd(OUT_A+OUT_C);
 Wait(120);
 pick_up();//1画目終了
 
 turn_right();//2画目地点に向けて
 OnFwd(OUT_C);
 Wait(50);
 turn_right();
 OnFwd(OUT_A+OUT_C);
 Wait(140);//2画目地点に到着
  
 turn_harfaround();//向きを調節
 write_down();//2画目書き始め
 OnFwd(OUT_A+OUT_C);
 Wait(160);
 turn_right();
 OnFwd(OUT_A+OUT_C);
 Wait(60);
 pick_up();//2画目終了
 
 turn_right();//3画目地点に向けて
 OnFwd(OUT_A+OUT_C);
 Wait(140);//3画目地点に到着
 turn_harfaround();//向きを調節
 
 write_down();//3画目書き始め
 OnFwd(OUT_A+OUT_C);
 Wait(140);
 pick_up();//3画目終了
 
 OnRev(OUT_A+OUT_C);//4画目地点に向けて
 Wait(140);
 OnFwd(OUT_A);
 Wait(80);
 OnRev(OUT_A+OUT_C);
 Wait(60);//4画目地点に到着
 
 write_down();//4画目書き始め
 OnFwd(OUT_A+OUT_C);
 Wait(60);
 Off(OUT_A+OUT_C);
 turn_right30();
 OnFwd(OUT_A+OUT_C);
 Wait(150);
 Off(OUT_A+OUT_C);//4画目終了
}

工夫した所

○サブルーチンを使用することによりプログラムの簡略化をはかった。これにより視覚的に理解しやすくなった。

○漢字がきれいに見えるように全体のバランスに気をつかった。

苦労したところ

○ロボのパワーが時間と共に変化したので、90度回転させるにもプログラムの微調整が欠かせなかった。

感想とこれからの課題

○サブルーチンを見やすくプログラムに組み込むことができてよかった。

○今度は動作を停止できる off をもっと上手に組み込みたい。

「沼」を書くプログラム

担当:いっせー

完成した文字

『沼』

プログラム

 sub down()//ペンを下ろす
 {
   OnRev(OUT_B);
   Wait(5);
   Off(OUT_B);
 }

 sub up()//ペンを上げる
 {
   OnFwd(OUT_B);
   Wait(5);
   Off(OUT_B);
 }

task main()
{
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(60);
  Off(OUT_A+OUT_C);
  up();//『さんずい』一画目
  
  OnFwd(OUT_A);
  Wait(260);
  Off(OUT_A);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(60);
  Off(OUT_A+OUT_C);
  up();//『さんずい』二画目
  
  OnFwd(OUT_C);
  Wait(260);
  Off(OUT_C);
  
  OnFwd(OUT_A+OUT_C);
  Wait(50);
  Off(OUT_A+OUT_C);
  
  OnFwd(OUT_C);
  Wait(180);
  Off(OUT_C);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(100);
  Off(OUT_A+OUT_C);
  up();//『さんずい』三画目
  
  OnFwd(OUT_C);
  Wait(60);
  Off(OUT_C);
  
  OnFwd(OUT_A+OUT_C);
  Wait(60);
  Off(OUT_A+OUT_C);
  
  OnFwd(OUT_A);
  Wait(150);
  Off(OUT_A);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(80);
  Off(OUT_A+OUT_C);
  up();//『刀』一画目の横線
  
  OnFwd(OUT_A);
  OnRev(OUT_C);
  Wait(85);
  Off(OUT_A+OUT_C);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(70);
  Off(OUT_A+OUT_C);
  up();//『刀』二画目の縦線
  
  OnFwd(OUT_A);
  OnRev(OUT_C);
  Wait(120);
  Off(OUT_A+OUT_C);
  
  OnFwd(OUT_A+OUT_C);
  Wait(70);
  Off(OUT_A+OUT_C);
  
  OnFwd(OUT_C);
  OnRev(OUT_A);
  Wait(110);
  Off(OUT_A+OUT_C);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(70);
  Off(OUT_A+OUT_C);
  up();//『刀』二画目
  
  OnFwd(OUT_C);
  Wait(40);
  Off(OUT_C);
  
  OnFwd(OUT_A+OUT_C);
  Wait(30);
  Off(OUT_A+OUT_C);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(60);
  Off(OUT_A+OUT_C);
  up();//『口』
 
  OnFwd(OUT_C);
  OnRev(OUT_A);
  Wait(80);
  Off(OUT_A+OUT_C);
 
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(80);
  Off(OUT_A+OUT_C);
  up();
 
  OnFwd(OUT_C);
  OnRev(OUT_A);
  Wait(80);
  Off(OUT_A+OUT_C);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(60);
  Off(OUT_A+OUT_C);
  up();
  
  OnFwd(OUT_C);
  OnRev(OUT_A);
  Wait(80);
  Off(OUT_A+OUT_C);
  
  down();
  OnFwd(OUT_A+OUT_C);
  Wait(80);
  Off(OUT_A+OUT_C);
  up(); //『沼』完成      
}

工夫したところ

●ペンの上げ下げはサブルーチンを使用。プログラムの簡略化を図った。

●『さんずい』を美しく再現できるよう、気を使った。

苦労したところ

●画数が多い漢字なので、文字全体のバランスを整えることが困難だった。

●特に『さんずい』の部分と、『刀』から『口』への移り方が非常に難しかった。

感想とこれからの課題

●とにかくプログラムが長くなった

●リピートを用いれば最後の『口』は簡略化できるはずなのでチャレンジしてみたい。

●指定された紙からはみ出してしまうので、文字を小さくできるようにがんばりたい。

●サブルーチンも例えば

 sub off()
{
 off(OUT_A+OUT_C);
}

などやればもっと見やすくなると思うので時間があったらやってみたい。

とりあえす今回は「沼」を完成させるだけで手一杯だった。残念。

コメントをどうぞ

  • 写真を多用している点、これからの課題について例示もしている点がよい。 -- ヒロヤ? 2007-05-24 (木) 00:32:06
  • 例えば、『モーターとタイヤをつなぐ、ギアの組み合わせを工夫した』のような点について、もともとどういうところがうまくいかなくて、何をどのように工夫したらうまくいったのか、ということを具体的に記述するようにしましう。 -- 松本 2007-05-24 (木) 08:18:12
  • ページを多少修正しました。評価お願いします。 -- いっせー? 2007-05-24 (木) 19:19:55
  • 相変わらず良い出来だと思います。 -- ヒロヤ? 2007-06-06 (水) 21:46:33


添付ファイル: file20070523195142.jpg 242件 [詳細] file20070523192334.jpg 264件 [詳細] file20070523182618.jpg 254件 [詳細] file20070522200203.jpg 249件 [詳細] file20070522195939.jpg 246件 [詳細] file20070522135326.jpg 267件 [詳細] file20070522135232.jpg 253件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-06-06 (水) 21:46:33 (4455d)