目次 #contents * ロボット本体の説明(失敗作1) [#uee1243d] 初めはペンを部品に取り付け上げ下げするような機体を作りました。基本的な構造はあまり変えずにペンを動かすためのパーツを付けたという感じです。Bのモーターにギアを連結させそのギアとペンが取り付けられている部品を組み合わせモーターBを前進させるとペンが降り、後退させるとペンが上がるという仕組みです。この仕組みではペンの上げ下げのスピード早すぎてペンを下す際はペンを地面に押し付けるような形になってしまっていたので問題がありました。また、ペンの固定がしっかりできていないのでペンをあげて移動する際には次第に重力で落ちてきてしまいました。また、タイヤと紙の摩擦もひどく機体が動作するたびに紙がくしゃくしゃになるという問題がありました。この機体では文字を書くことはおろか、紙の上で機体を動かすこともできませんでした。 写真は失敗作1の画像です。 #ref(2016b/Member/yosuke/Mission1/IMG_0754 (1).JPG,40%,ロボット) * ロボット本体の説明(失敗作2) [#wa15a26c] 次に作ったのは、タイヤにペンをはさみ上下させる機体です。基本的な構造に関してはタイヤを変え、そして、タイヤを一組だけにしました。機体に黄色い支柱のパーツを取り付けました。こうすることでタイヤが一組でも安定させることができました。タイヤを一組にしたのはより紙との摩擦を減らすためです。こちらのほうはペンに安定感があり以前のよりもよくなっていました。。この機体もモーターBを前進させるとペンが下がり、後退させるとペンが上がるという仕組みです。前回の機体よりも良かった点としては前の機体ではペンの上げ下げが早すぎてペンを下した際にペンを押し付けるような仕組みになっていましたがその点を改善できました。また、ペンを上げているときに重力で降りてきてしまうという問題もペンをタイヤで挟んでいるためしっかり固定されており改善することできました。しかし、最初に造った機体同様タイヤと紙の摩擦がひどく文字を書くことはできませんでした。 #ref(2016b/Member/yosuke/Mission1/IMG_0731 (1).JPG,15%,ロボット) #ref(2016b/Member/yosuke/Mission1/image4.JPG,80%,ロボット) * プログラムの説明 [#bf405dca] #ref(2016b/Member/yosuke/Mission1/IMG_0761.JPG,10%,ロボット) 今回書いた文字は「村」という文字です 写真は書く順序を示したものです。番号は書き順、赤字はルートを示しています。 ペンは上がった状態から開始します。 マクロでは前に進む動作と左右に曲がる動きを定義しています。 サブルーチンではペンの上げ下げの操作を定義しています。 #define FORWARD(t1) OnFwd(OUT_AC);Wait(t1);Off(OUT_AC); #define turn_left(t2) Off(OUT_A);OnFwd(OUT_C);Wait(t2);Off(OUT_C) #define turn_right(t3) Off(OUT_C);OnFwd(OUT_A);Wait(t3);Off(OUT_A) sub pen_up() { OnFwd(OUT_B);Wait(10);Off(OUT_B); } sub pen_down() { OnRev(OUT_B);Wait(10);Off(OUT_B); } task main() { pen_down(); FORWARD(100); //一画目 pen_up(); //ペンを上げる turn_left(120); FORWARD(30); turn_left(120); pen_down(); //ペンを下げる FORWARD(100); //二画目 pen_up(); //ペンを上げる turn_right(120); FORWARD(20); turn_right(70); pen_down(); //ペンを下げる FORWARD(40); //三画目 turn_right(70); FORWARD(20); //四画目 pen_up(); //ペンを上げる turn_left(40); FORWARD(10); turn_right(40); pen_down(); //ペンを下ろす FORWARD(100); //五画目 pen_up(); //ペンを上げる turn_left(120); FORWARD(20); turn_left(120); pen_down(); //ペンを下ろす FORWARD(100); //六画目 pen_up(); //ペンを上げる turn_right(120); FORWARD(20); pen_down(); //ペンを下ろす FORWARD(30); //七画目 } *問題点、工夫点 [#w8b5383d] 初めに造った機体はペンを輪ゴムを使い括り付けただけの簡素な作りだったので安定感がありませんでした。また、歯車がかみ合わず上下運動が上手におこなえませんでした。輪ゴムにもテンションがかりあまりよくありませんでした。そして、それらの問題点を解決するために機体を解体し二つ目の機体を作りました。二つ目の機体はペンに安定感を持たせることに成功しました。しかし歯車がかみ合わないという問題は直すことができませんでした。下の写真は改良後の機体です。黄色い部品は支柱として用い安定感出させるために利用しました。 #ref(2016b/Member/yosuke/Mission1/image4.JPG,80%,ロボット) #ref(2016b/Member/yosuke/Mission1/image3.JPG,80%,ロボット) #ref(2016b/Member/yosuke/Mission1/image3.JPG,50%,ロボット) * まとめ、感想 [#lfda9968] 工夫した点としては、サブルーチンやマクロを利用してプログラムを作成した点です。 試行錯誤し機体を作成してみましたが思うように動作せず結果漢字も上手に書くことができませんでした。これらの反省を生かし、次回はきちんと動作する機体を作りたいと感じました。