- 追加された行はこの色です。
- 削除された行はこの色です。
目次
#contents
*書道ロボット [#r142e44d]
今回私が作ったロボットは長野県の「長」という字を書くものだ。作るにあたって初めに考えたことは字を書くための横移動のアームをどう作るか、だった。そこで注目したのがギザギザしたこの部品だった。
**本体 [#n204c865]
*ボディ [#w5390a1c]
モーターに限りがあったため左右の動きはアームに任せ、ボディは前後の動きのみとした。
今回私が作ったものは長野県の「長」という字を書くロボットだ。作るにあたって初めに考えたことは、ロボット自体が車輪で旋回しながら書くタイプとアームを用いて書くタイプのどちらにするかだった。そこで私が書こうとしている「長」という字は主に横棒と縦棒で構成されているので後者のアームを用いたロボットを作ることにした。
*ロボット本体 [#n204c865]
#ref(2015b/Member/nakamura/Mission1/IMG_0491.JPG,50%);
私が作ったロボットの一番の特徴は図にあるようにアームがついていることだ。最初の指針通りこのアームにより横線を書くことができるようになった。
**ボディ [#w5390a1c]
&ref(2015b/Member/nakamura/Mission1/IMG_0490.JPG,50%);左右の動きはアームに任せることにしたので、ボディは前後の動きのみとした。
したがってボディにはモーターAの一つだけを使った。
制作時の問題点としては、アームの動きによるバランスの崩れが挙げられる。そこでバッテリーをアームの反対側に配置し、前後の車輪の間隔も広くした。
また前輪を大きくしてバランスを保たせることに成功した。
**アーム部分 [#n5d397d2]
&ref(2015b/Member/nakamura/Mission1/IMG_0476.JPG,50%);
この部分はアームを左右へ動かし横線を書くために作った。
モーターはB,Cをそれぞれペンの上下の運動、アームの運動に用いた。
ペンの上下の運動は簡略な方法をとりアームの先端に付けたモーターの回転に合わせてペンが上下に動くようにした。
ペンも軸にゴムで固定するだけである。&ref(2015b/Member/nakamura/Mission1/IMG_0477.JPG,20%);
次に横の移動だが次の画像のギザギザの部品をアームに用いてみた。
#ref(2015b/Member/nakamura/Mission1/IMG_0497.JPG,20%)
この部品は溝があるので歯車としっかりかみ合うことがわかった。そこでこれらの部品を用いることとした。
しかし固定の方法が問題だった。当初はブロックで上下を囲むということを考えた。だがアームの先端のモーターのおもみにより平行に動かなかったり、ブロックが取れてしまったりした。そこで図の白い車輪のような部品で固定してみると平行に動くようになり、安定性も上昇した。
*プログラム [#m3c30f02]
**方針 [#l4efe007]
「長」は縦と横の線の組み合わせであるのでどちらかを先に書いたほうが良いと考えた。
よってまずは横線を5本書き、最後に縦線を書くという方針をとり図のように書き順を設定した。
&ref(2015b/Member/nakamura/Mission1/mudai2.png,50%);
**複数回使うマクロの定義 [#e08f7e59]
***横線を一本書きペンを浮かして戻ってくることの定義 [#y0837f30]
#define kaku(TI) OnFwd(OUT_B);Wait(30);Off(OUT_B);Wait(100);OnRev(OUT_C);Wait(TI);Off(OUT_C);Wait(100);OnRev(OUT_B);Wait(30);Off(OUT_B);Wait(100);OnFwd(OUT_C);Wait(TI+10);Off(OUT_BC);
***TA秒だけ前へ進むことの定義 [#v7437a46]
#define tobe(TA) OnFwd(OUT_A);Wait(TA);Off(OUT_A);Wait(100);
**メインプログラム [#rf686164]
task main()
{
OnFwd(OUT_A);
}
#ref(2015b/Member/nakamura/Mission1/photo,50%)
kaku(17);//1.下の短い横線を書く
tobe(15);
kaku(35);//2.一番長い横線を書く
repeat(3)
{
tobe(15);
kaku(23);
} //3.4.5.上の3つの横線を書く
#ref(2015b/Member/nakamura/Mission1/photo,50%)
OnRev(OUT_C);
Wait(23);
Off(OUT_C);
Wait(100);
OnFwd(OUT_B);
Wait(30);
Off(OUT_BC);
Wait(100);//もとへ戻してしまったアームを再び伸ばす
OnRev(OUT_A);
Wait(75);
Off(OUT_A);
Wait(100);//6.縦棒を引く
OnFwd(OUT_AC);
Wait(27);
Off(OUT_ABC);
} //7.アームを動かしながら進むことで斜めの線を書く
*結果 [#affacc6d]
#ref(2015b/Member/nakamura/Mission1/IMG_0483.JPG,50%)
書いた結果、図のような字になった。大体はできていると思うがところどころの点が非常に目立つと感じた。
これはペンの上下の動きの方法が大雑把すぎた可能性があるので上へ垂直に引っ張り上げる機構を作ればよかったと感じた。