[[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]


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS