[[2016a/Member]]

*目次 [#tff98eb0]
#contents

*本体の仕組み [#u534cc86]

#ref(IMG_0304.JPG)

説明書通りの本体をベースにし、それに簡単なアームを作る。


��

センサーを取り付ける本体の前方の位置に新たなモーター(B)を置く。歯車の使い方などをあまり理解していなかったので、モーターに直接黄色い曲がった部品を2本付けた。

��

最初はシャーペンやボールペンをつけようと思ったが、細いので、うまく挟むことができず、重たいマジックペンを使った。さらに、滑り止めとなる輪ゴムをマジックペンに付けた。

��

モーターを回せばアームが円を描くように上がる仕組みで、上がりすぎるとアームが逆さになり、ペンが落ちるので、モーターの上にブロックを付け、それ以上アームが上がらないようにした。


アームを上げたまま止める方法がわからなかったので、上げてる間はずっと無理やりモーター回すつもりだった。


*目標の図案 [#eac13cb8]

はじめは余裕があったので、難しい図案を考えた。

#ref(IMG_0515 (1).JPG);

アームが長く、ペンはロボットの中心から離れているので、普通に回転するだけでは描けないと気づいた。&color(#cc0033){そこで、大変ではあるが、曲がる際はペンを一旦上げて、回転し、ペン先を上げた場所に戻るようにバックするやり方を思いついた。};

*プログラミン [#j8d2a9af]

**Define [#wc722680]

 #define TL45 OnRev(OUT_A); OnFwd(OUT_C); Wait(131); Off(OUT_AC);//左に45度旋回
 #define TL90 OnRev(OUT_A); OnFwd(OUT_C); Wait(88); Off(OUT_AC);//左に90度旋回
 #define TR90 OnRev(OUT_C); OnFwd(OUT_A); Wait(88); Off(OUT_AC);//右に90度旋回
 #define TL60 OnRev(OUT_A); OnFwd(OUT_C); Wait(58); Off(OUT_AC);//左に60度旋回
 #define F10 OnFwd(OUT_AC); Wait(70); Off(OUT_AC);//10秒前進
 #define F65 OnFwd(OUT_AC); Wait(46); Off(OUT_AC);//6.5秒前進
 #define F3 OnFwd(OUT_AC); Wait(21); Off(OUT_AC);//3秒前進
 #define F2 OnFwd(OUT_AC); Wait(14); Off(OUT_AC);//2秒前進
 #define F5 OnFwd(OUT_AC); Wait(35); Off(OUT_AC);//5秒前進
 #define F6 OnFwd(OUT_AC); Wait(42); Off(OUT_AC);//6秒前進
 #define R115 OnRev(OUT_AC); Wait(81); Off(OUT_AC);//11.5秒後退
 #define ageru1 OnFwd(OUT_B); Wait(127); Off(OUT_B);
 #define ageru2 OnFwd(OUT_B); Wait(300); Off(OUT_B);
 #define ageru3 OnFwd(OUT_B); Wait(169); Off(OUT_B);
 #define ageru4 OnFwd(OUT_B); Wait(363); Off(OUT_B);
 #define ageru5 OnFwd(OUT_B); Wait(218); Off(OUT_B);
 #define ageru6 OnFwd(OUT_B); Wait(109); Off(OUT_B);//ペンをあげる動作

直線が多く、長さがバラバラだったので、多くdifineし、時間を正確に計算する必要があった。

**輪郭 [#b5d33c01]
自分の考案したやり方でうまくできるかとても心配だった。書いてみると思ったのよりも複雑で後悔した。(矢印向きに進む)

#ref(IMG_0517.JPG);

***プログラム [#faacd36c]

task main ()
{
       F10;
       ageru1;
       TL60;
       R115;//�� ペンを上げる 左60度 その後11.5センチバック ペンを下ろす
       
       F65;
       ageru1;
       TL60;
       R115;//�� ペンを上げる 左60度 その後11.5センチバック ペンを下ろす
       
       F65;
       ageru1;
       TL60;
       R115;//�� ペンを上げる 左60度 その後11.5センチバック ペンを下ろす
       
       F10;
       ageru2;
       TL45;
       R115;//�� ペンを上げる 左225度 その後11.5センチバック ペンを下ろす
       
       F3;
       ageru3;
       TR90;
       R115;//�� ペンを上げる 右90度 その後11.5センチバック ペンを下ろす
       
       F3;
       ageru3;
       TL90;
       R115;//�� ペンを上げる 左90度 その後11.5センチバック ペンを下ろす
       
       F3;
       ageru3;
       TR90;
       R115;//�� ペンを上げる 右90度 その後11.5センチバック ペンを下ろす
       
       F3;
       ageru3;
       TL90;
       R115;//�� ペンを上げる 左90度 その後11.5センチバック ペンを下ろす
       
       F3;
       ageru3;
       TR90;
       R115;//�� ペンを上げる 右90度 その後11.5センチバック ペンを下ろす
       F2;// ここまで輪郭
}

曲がる際に一旦ペンを上げ、カーブやバックを行い、本体の角度を変えてからペンを離した場所にペンを戻さなければいけなかった。かなり複雑で、本体の軸からの距離など細かく計算する必要があった。

かなりカクカクした図案だったので後悔した。

**細部 [#i73cffd3]

輪郭より曲がる場所が少ない。(矢印向きに進む)

#ref(IMG_0516.JPG);

***プログラム [#b6f57e8d]

task main () 
{
       ageru4;
       TL45;
       F5;
       TL90;
       F3;
       TL90;
       F3;// ここまで左目
       ageru5;
       TR90;
       F6;
       TR90;
       F3;// ここまで右目
       ageru6;
       F3;
       TR90;
       F6;// ここまで口
}

図の矢印の順番で進む。

点線の部分はペンを上げたまま進む。

*まとめ [#y0edc47a]

**結論 [#w847647f]

&color(#cc0033){できなかった。};

***理由1 アームの上がるタイミングが違う [#b374b58a]

ageruのプログラムをタイヤの動きと同時に行うつもりだったがプログラムができていなかった。このままではペンが下がってから運動を行うので上げないのと同じ図案にしかならない。

***理由2 そもそもアームが上がってない ![#g62b3039]

モーターを回したつもりだったが、上がらなかった。ペンが重すぎるし、アームに多くの部品を使っているので重さで上がらなかったと思う。
**反省 [#t577659d]

残念ながらできなかった。輪郭が丸い簡単な図案にすればよがった。今回はペンが上がらないので、おそらく扇型だらけの完成図になると思う。

ロボットを根本から考え直す必要があったし、プログラムも大部分を書き直さなければならないので今回は断念した。もっと簡単な図案を考えればよかった。壊れにくい丈夫本体を作ることも大切だと思った。最初の課題から上手くいかないことばかりだったが、要領がわかってきたので、次回は結果を出したいと思う。
ロボットを根本から考え直す必要があったし、プログラムも大部分を書き直さなければならないので今回は断念した。もっと簡単な図案を考えればよかった。

壊れにくい丈夫本体を作ることも大切だと思った。

大きなアームと思いペンを支える部品が小さくて脆い、壊れそうだった。最初の課題から上手くいかないことばかりだったが、要領がわかってきたので、次回は結果を出したいと思う。


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS