目次 #contents *課題1 [#me1ca401] これまで住んだことのある都道府県名,市町村名,地区名などの中から2文字以上,かつ10画以上のものを選び,それをA4の紙に書くロボットを制作せよ. **選んだ文字 [#ha4cb866] 18年間お世話になっている「松本」を選びました. *ロボット本体の説明 [#e8c02636] **ロボットの機構 [#td7ebb78] ++ロボット本体の動き &ref(IMG_1267.jpg); 後輪駆動にしました.機械は一つにし他の部分にまわしました.歯車を二つにしたのは一つではきつく当たりすぎてしまうため二つにし当たる所を変えました. ++ペンを左右に動かす &ref(IMG_1271.JPG); 歯車をつなぎ合わせることによりX,Y方向関係なく自由に動かせるようにしました.また,斜めの線もプログラミングがしやすくなりました. ++ペンの上げ下げ &ref(IMG_1270.JPG); ここで工夫したのは,ただつなげるだけだと力が伝わりにくいと思ったので,支える部分を作り力が均等になるようにしたところです. *プログラミングについて [#ba9fce90] 松 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); } **プログラミングの説明 [#u7ff1bce] 力加減によって始点が変わってくるので何度も試行錯誤して数字を変えたりした。 defineを使えばもっとシンプルになると思った *書いた文字 [#xba82234] **書き順 [#l821f62c] 日本人が書く書き順は書きやすいようにつくられているのでそのままの書き順で挑戦しました. **完成した文字 [#r4827ee5] &ref(IMG_1273.JPG); *まとめ [#yeeec3f8] しっかりと読めるようにできたのはよかった.だが,問題点も多々あった. ・ペンをつけた時にはねが生じてしまう ・ロボットを家に持ち帰り作動させるとどこか故障してしまう 解決策 ・ただつけるのではなく垂直に上げ下げする機械を作る ・もっと安定感のある機械を作る