目次
これまで住んだことのある都道府県名,市町村名,地区名などの中から2文字以上,かつ10画以上のものを選び,それをA4の紙に書くロボットを制作せよ.
18年間お世話になっている「松本」を選びました.
後輪駆動にしました.機械は一つにし他の部分にまわしました.歯車を二つにしたのは一つではきつく当たりすぎてしまうため二つにし当たる所を変えました.
歯車をつなぎ合わせることによりX,Y方向関係なく自由に動かせるようにしました.また,斜めの線もプログラミングがしやすくなりました.
ここで工夫したのは,ただつなげるだけだと力が伝わりにくいと思ったので,支える部分を作り力が均等になるようにしたところです.
松
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を使えばもっとシンプルになると思った
日本人が書く書き順は書きやすいようにつくられているのでそのままの書き順で挑戦しました.
しっかりと読めるようにできたのはよかった.だが,問題点も多々あった.
・ペンをつけた時にはねが生じてしまう ・ロボットを家に持ち帰り作動させるとどこか故障してしまう
解決策
・ただつけるのではなく垂直に上げ下げする機械を作る ・もっと安定感のある機械を作る