- 追加された行はこの色です。
- 削除された行はこの色です。
[[2018a/Member]]
目次
#contents
*課題1 [#o322c2f3]
これまで住んだことのある都道府県名、市町村名、地区名などの中から&br;
2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。
**選んだ文字 [#tb0eedf8]
長野にある&color(#32cd32){「村山」};という地名を選びました。
*ロボットの説明 [#na9486b6]
**作戦 [#ld0382e4]
以下のようにX軸,Y軸を取って,XY座標系で制御をしようと考えた.&br;
なぜこのように制御したのかは,動き回る系はプログラムがめんどそうだったから...
#ref(./文字の説明.png,50%,XY座標系)
**ロボットの機構 [#nf6a3ec5]
どのようにXY座標を制御しているかを説明します.&br;
&br;
と,その前に全体像がどのようになっているのか見てみましょう.
#ref(./全体像.png,70%,全体像)
上のように&br;
X軸はタイヤを使って制御し&br;
Y軸はギザギザの機構を使ってアームのように制御しました.&br;
Z軸(ペンの上げ下げ)は緑で囲ったような機構で制御しました.&br;
&br;
それぞれの機構について詳しく解説していきます.
***X軸 [#y4bcbf9d]
X軸は1つのモーターでタイヤを正転・後転させることで制御をしています.そのため,本体は回転運動はできず,1直線上にしか進めません.&br;
この機構の工夫点として,ギアのかみ合わせがあります.モーターの回転を直で接続すると回転が速く制御しずらいため,いくつかのギアをかませて回転を遅めています.&br;
また,モーターの回転を90度回転させるギアを使ってうまく動力を伝えました.下の図が噛み合わせの機構です.
#ref(./タイヤの歯車のかみ合わせ.png,60%,ギア噛み合わせ)
ちなみに前のタイヤはモーターと接続されていません
***Y軸 [#lfe2efe3]
ラックという部品を使って,歯車の回転運動を直線運動に変える機構を使いました.
#ref(./ラック.png,80%,ラック)
実物で見るとこんな感じです.
#ref(./ラック実物.jpg,80%,ラック実物)
***Z軸 [#p9dd1731]
**制御する [#g8233f9d]
#define straight OnRev(OUT_A); //X方向の前移動
#define back OnFwd(OUT_A); //X方向の後ろ移動
#define stopA Off(OUT_A); //モーターAの停止
#define stopB Off(OUT_B); //モーターBの停止
#define right OnFwd(OUT_B); //Y方向の右移動
#define left OnRev(OUT_B); //Y方向の左移動
#define up OnFwd(OUT_C);Wait(50);Off(OUT_C); //ペンを上げる
#define down OnRev(OUT_C);Wait(50);Off(OUT_C); //ペンを下げる
#define freez Wait(15); //一時停止
task main()
{
down; //1角目
straight;
Wait(40); //a
stopA;
freez;
up;
straight;
Wait(10); //b
stopA;
freez;
down; //2角目
straight;
Wait(40); //c
stopA;
freez;
up;
back;
Wait(70); //d
stopA;
freez;
left;
Wait(30); //e
stopB;
freez;
down; //3角目
right;
Wait(100); //f
stopB;
freez;
up;
left;
Wait(40); //g
stopB;
back;
Wait(15); //h
stopA;
freez;
down; //4角目
left;
straight;
Wait(20); //h
stopA;
stopB;
freez;
right;
straight;
Wait(10); //i
stopA;
stopB;
freez;
up;
left;
Wait(55); //j
stopB;
straight;
Wait(50); //k
stopA;
freez;
down; //5角目
right;
Wait(100); //l
stopB;
freez;
left;
back;
Wait(10); //m
stopA;
stopB;
freez;
up;
left;
Wait(30); //n
stopB;
back;
Wait(20); //o
stopA;
freez;
down; //6角目
right;
straight;
Wait(10); //p
stopA;
stopB;
freez;
up;
left;
Wait(50); //r
stopB;
straight;
Wait(90); //q
stopA;
freez;
down; //7角目
right;
Wait(80); //s
stopB;
freez;
up;
left;
Wait(40); //t
stopB;
back;
Wait(30); //u
stopA;
freez;
down; //8角目
right;
Wait(30); //u
stopB;
freez;
straight;
Wait(80); //v
stopA;
freez;
left;
Wait(30); //w
stopB;
freez;
up;
}
*完成した文字 [#oaef5485]