2007a/MemberOnly/進行状況A

ロボット紹介

今回は、初め小さめで小回りが利きそうなロボットを作成しましたが、 ロボットにペンを持たせていざ文字を書こうとすると、回転するときに ペンの位置がずれ、修正するのがかなり難しいことがわかりました。

そこで、うまくペンがずれないようにする方法はないか?と考えた結果 ペンをロボットの中心におけばいい!!という考えにたどり着きました。

これがロボです http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&pcmd=open&file=photo.jpg&refer=2007a%2FA1%2F%B2%DD%C2%EA%A3%B1%B1%A6

みてもらえばわかると思いますが、このロボは真ん中にかなり大きな 空洞があります。この空洞の中に、タイヤを2つセットして モーターを回すことにより、2つのタイヤの間に挟んだボールペンが上下し 文字が書けるようになっています。

プログラム     

『田』の字を書く

task main()
 {
    OnFwd(OUT_A+OUT_C); //一画目
    Wait(100);//
    OnFwd(OUT_B);//
    Wait(30);//
    
    OnRev(OUT_A+OUT_C);       //戻る(一画目から二画目への移動)
    Wait(100);//
    OnRev(OUT_C);// 
    OnFwd(OUT_A); //
    Wait(78);//
    OnFwd(OUT_A+OUT_C);       //二画目
    Wait(100);          //
    OnRev(OUT_A);  //
    Wait(78);//
    OnFwd(OUT_A+OUT_C);//
    Wait(100);//
    
    OnRev(OUT_A+OUT_C);//戻る(二画目から三画目への移動)
    Wait(100);//
    OnRev(OUT_A);//
    OnFwd(OUT_C);//
    Wait(78);//
    OnFwd(OUT_A+OUT_C);//
    Wait(50);//
    OnRev(OUT_C);//
    OnFwd(OUT_A);//
    Wait(78);//
    OnFwd(OUT_A+OUT_C);//三画目
    Wait(100);
    
    OnRev(OUT_A+OUT_C);//戻る(三画目から四画目への移動)
    Wait(50);
    OnRev(OUT_A);//
    OnFwd(OUT_C);//
    Wait(78);//
    OnFwd(OUT_A+OUT_C); //
    Wait(50);     //
    
    OnRev(OUT_A+OUT_C);   //  四画目 
    Wait(100);      //
    
    OnFwd(OUT_A+OUT_C);    //戻る(四画目から五画目への移動)
    Wait(100);      //
    OnRev(OUT_C);//
    OnFwd(OUT_A);//
    Wait(78);//
    OnFwd(OUT_A+OUT_C);//
    Wait(50);//
    OnRev(OUT_C);//
    OnFwd(OUT_A);//
    Wait(78);//
    OnFwd(OUT_A+OUT_C);//五画目
    Wait(100);
  
    Off(OUT_A+OUT_B+OUT_C);//
    Wait(30);//
}      

『木』の字を書く

 task main()
 {
 OnFwd(OUT_A+OUT_C); Wait(90);//1画目
 OnRev(OUT_B); Wait(15);//1画目から2画目
 Off(OUT_B);Wait(50);//

 OnRev(OUT_A+OUT_C); Wait(80);//
 Off(OUT_A+OUT_C); Wait(50);//

 OnFwd(OUT_C); OnRev(OUT_A);Wait(77);//

 OnFwd(OUT_A+OUT_C);Wait(45);//
 Off(OUT_A+OUT_C);Wait(50);//
 OnFwd(OUT_B); Wait(15);//
 Off(OUT_B);Wait(50);//
 OnRev(OUT_A+OUT_C);Wait(150);//2画目
 Off(OUT_A+OUT_C);Wait(50);//
 OnRev(OUT_B);Wait(15);//2画目から3画目
 Off(OUT_B);Wait(50);//
 OnFwd(OUT_A+OUT_C);Wait(105);//
 Off(OUT_A+OUT_C);Wait(50);//
 OnFwd(OUT_C);OnRev(OUT_A);Wait(50);//
 Off(OUT_A+OUT_C);Wait(50);//
 OnFwd(OUT_B);Wait(15);//
 Off(OUT_B);Wait(50);//
 OnRev(OUT_A+OUT_C);Wait(75);//3画目
 Off(OUT_A+OUT_C);Wait(50);//
 OnRev(OUT_B);Wait(15);//3画目から4画目
 Off(OUT_B);Wait(50);//
 OnFwd(OUT_A+OUT_C);Wait(75);//
 Off(OUT_A+OUT_C);Wait(50);//
 OnFwd(OUT_A);OnRev(OUT_C);Wait(90);//
 Off(OUT_A+OUT_C);Wait(50);//
 OnFwd(OUT_B);Wait(15);//
 Off(OUT_B);Wait(50);//
 OnRev(OUT_A+OUT_C);Wait(75);//4画目
 Off(OUT_A+OUT_C);Wait(50);//
 OnRev(OUT_B);Wait(15);//
 Off(OUT_B);Wait(50);//
 }





苦労した点

知識に乏しく、なかなかロボの制作がうまくいかなかった。

真ん中にペンを持ってきたのはよかったが、その影響で全体が縦長になり、 安定性を失ってしまった。軽い方にモーターなどの重いものを載せ、 できるだけ安定性がとれるようにした。

タイヤとタイヤの間の隙間に、何を入れるのかでも苦労した。 大きいものは隙間が小さかったため入らず、最終的にボールペンから ボールペンの芯を取り出してタイヤの間に挟むことにした。 しかし、ボールペンの芯だと柔らかいため、字を書くとき うまくインクが紙に付かない。それを改善するために、さらにボールペンの芯に 蛍光ペンを付けることにした。

がんばった点

字が書きやすいように、ロボの中央にペンを持ってきたこと。 タイヤの隙間はどれくらいにするか、タイヤの隙間に何を入れるのか、 ペンの長さが許容範囲内であるか、など課題だらけだった。 試行錯誤をして、大きいペンだと挟んでもすぐタイヤから抜けてしまったり、 ペン自体の太さが一定じゃないなどの問題があったため、小さくて太さが一定である ボールペンの芯を選ぶことにした。

まとめ

今回初めて自分でプログラムしたロボットに漢字を書かせるということをしたが、 自分が思っている以上に時間がかかってしまった。特にロボの形に関しては、 何度も試行錯誤を繰り返し、やっとペンを中央にするということにたどり着けた。

字を書くときに真ん中にペンを持ってきたため、ロボが回転したときでもペンの位置がずれず、 きれいな字が簡単なプログラムで書けた。

真ん中にペンを持ってくる構造にしたため、ロボの全景が縦長になってしまい、 床の場所によって、横転してしまったときもあり、バランスが悪かった。

コメントをどうぞ

  • 試行錯誤の過程についてよく説明していてよいと思います。 -- ヒロヤ? 2007-05-24 (木) 00:18:11
  • サブルーチンや関数を使ってみましょう。もっと見やすく改良しやすいプログラムになると思います。 -- 松本 2007-05-24 (木) 08:12:38


添付ファイル: filephoto.jpg 175件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-05-24 (木) 08:12:38 (4474d)