目次

課題1

これまで住んだことのある都道府県名,市町村名,地区名などの中から2文字以上,かつ10画以上のものを選び,それをA4の紙に書くロボットを制作せよ.

選んだ文字

18年間お世話になっている「松本」を選びました.

ロボット本体の説明

ロボットの機構

  1. ロボット本体の動き

IMG_1267.jpg

後輪駆動にしました.機械は一つにし他の部分にまわしました.歯車を二つにしたのは一つではきつく当たりすぎてしまうため二つにし当たる所を変えました.

  1. ペンを左右に動かす

IMG_1271.JPG

歯車をつなぎ合わせることによりX,Y方向関係なく自由に動かせるようにしました.また,斜めの線もプログラミングがしやすくなりました.

  1. ペンの上げ下げ

IMG_1270.JPG

ここで工夫したのは,ただつなげるだけだと力が伝わりにくいと思ったので,支える部分を作り力が均等になるようにしたところです.

プログラミングについて

task main() {

   OnRev(OUT_B,40);  //松の書き始め ペンを左に移動
   Wait(2000);
   Off(OUT_B);
   OnFwd(OUT_C,30); //ペンをおろす
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_B,40); //ペンを右に移動させつつ斜め上に移動
   Wait(1000);
   OnFwd(OUT_A,40);
   Wait(500);
   Off(OUT_A);
   OnRev(OUT_A,40); //ペンを中央に移動させつつ松の2画目の位置に移動
   Wait(500);
   Off(OUT_AB);
   OnRev(OUT_C,30);
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,63);
   OnRev(OUT_B,55);
   Wait(800);
   Off(OUT_AB);
   OnFwd(OUT_C,30); //ペンを下し,2画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,59);
   Wait(7400);    
   Off(OUT_A);
   OnRev(OUT_C,30); //ペンを上げ,松の3画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,60);
   Wait(6100);
   Off(OUT_A);
   OnFwd(OUT_C,30); //ペンを下げ,松の3画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnRev(OUT_B,30);
   Wait(2900);
   Off(OUT_AB);
   OnRev(OUT_C,30); //ペンを上げ,松の4画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,60);
   OnFwd(OUT_B,27);
   Wait(2790);
   Off(OUT_AB);
   OnFwd(OUT_C,30); //ペンを下げ,松の4画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnFwd(OUT_B,25);
   Wait(2100);   
   Off(OUT_AB);  
   OnRev(OUT_C,30); //ペンを上げ,松の5画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,60);
   Wait(2100);
   Off(OUT_A);
   OnFwd(OUT_B,25);
   Wait(1350);
   Off(OUT_B);
   OnFwd(OUT_C,30); //ペンを下げ,松の5画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnRev(OUT_B,20); 
   Wait(2800);
   Off(OUT_AB);
   OnRev(OUT_C,30); //ペンを上げ,松の6画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,60);
   Wait(3250);
   Off(OUT_A);
   OnFwd(OUT_B,30);
   Wait(2100);
   Off(OUT_B);
   OnFwd(OUT_C,30); //ペンを下げ,松の6画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnFwd(OUT_B,29);
   Wait(2700);
   Off(OUT_A);
   OnRev(OUT_C,30); //ペンを上げ,松の7画目に移動
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,9);
   OnRev(OUT_B,50);
   Wait(1500);
   Off(OUT_AB);
   OnFwd(OUT_C,30); //ペンを下げ,松の7画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnRev(OUT_B,17);
   Wait(3100);
   Off(OUT_AB);
   OnFwd(OUT_B,40);
   OnRev(OUT_A,40);
   Wait(2700);
   Off(OUT_B);
   OnRev(OUT_C,30); //ペンを上げ,松の8画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,40);
   Wait(900);
   Off(OUT_A);
   OnRev(OUT_B,30);
   Wait(500);
   Off(OUT_B);
   OnFwd(OUT_C,30); //ペンを下げ,松の8画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnFwd(OUT_B,40);
   Wait(1000);
   Off(OUT_AB);
   OnRev(OUT_C,30); //ペンを上げる
   Wait(250);
   Off(OUT_C);

   OnRev(OUT_B,30); //本の1画目に移動
   Wait(6800);
   Off(OUT_B);
   OnFwd(OUT_A,60);
   Wait(5000);
   Off(OUT_A);
   OnFwd(OUT_C,35); //ペンを下げ,本の1画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_B,40);
   Wait(2400);
   Off(OUT_B);
   OnRev(OUT_C,35); //ペンを上げ,本の2画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,43);
   OnRev(OUT_B,34);
   Wait(1600);
   Off(OUT_AB);
   OnFwd(OUT_C,35); //ペンを下げ,本の2画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   Wait(8000);
   Off(OUT_A);
   OnRev(OUT_C,35); //ペンを上げ,本の3画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,60);
   Wait(7450);
   Off(OUT_A);
   OnFwd(OUT_C,35); //ペンを下げ,本の3画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnRev(OUT_B,30);
   Wait(4650);
   Off(OUT_AB);
   OnRev(OUT_C,35); //ペンを上げ,本の4画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_A,60);
   OnFwd(OUT_B,25);
   Wait(4650);
   Off(OUT_AB);
   OnFwd(OUT_C,35); //ペンを下げ,本の4画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_A,60);
   OnFwd(OUT_B,30);
   Wait(4600);   
   Off(OUT_AB);  
   OnRev(OUT_C,35); //ペンを上げ,本の5画目に移動
   Wait(250);
   Off(OUT_C);
   OnRev(OUT_B,35);
   Wait(3700);
   Off(OUT_B);
   OnFwd(OUT_A,30);
   Wait(500);
   Off(OUT_A);
   OnFwd(OUT_C,35); //ペンを下げ,本の5画目を書く
   Wait(250);
   Off(OUT_C);
   OnFwd(OUT_B,40);
   Wait(1800);
   Off(OUT_B);
   OnRev(OUT_C,35); //ペンを上げる
   Wait(250);
   Off(OUT_C);
      

}

プログラミングの説明

力加減によって始点が変わってくるので何度も試行錯誤して数字を変えたりした。 defineを使えばもっとシンプルになると思った

書いた文字

書き順

日本人が書く書き順は書きやすいようにつくられているのでそのままの書き順で挑戦しました.

完成した文字

IMG_1273.JPG

まとめ

しっかりと読めるようにできたのはよかった.だが,問題点も多々あった.

・ペンをつけた時にはねが生じてしまう ・ロボットを家に持ち帰り作動させるとどこか故障してしまう

解決策

・ただつけるのではなく垂直に上げ下げする機械を作る ・もっと安定感のある機械を作る


添付ファイル: fileIMG_1492[1].jpg 3件 [詳細] fileIMG_1273.JPG 2件 [詳細] fileIMG_1271.JPG 2件 [詳細] fileIMG_1270.JPG 2件 [詳細] fileIMG_1267.jpg 2件 [詳細] filesyasinn1.jpg 2件 [詳細] file19E1D046-2BD3-40C7-A51E-3B9396520220.jpeg.url 1件 [詳細] file19E1D046-2BD3-40C7-A51E-3B9396520220.jpeg 5件 [詳細] file298BF86B-140D-4827-A489-F5C947CC65C0.jpeg 2件 [詳細]

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