2018a/Member/hirotaka/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
目次
#contents
*課題1 [#o322c2f3]
これまで住んだことのある都道府県名、市町村名、地区名など...
2文字以上のものを選び、それをA4の紙を書くロボットを製作せ...
**選んだ文字 [#tb0eedf8]
長野にある&color(#32cd32){「村山」};という地名を選びまし...
*ロボットの説明 [#na9486b6]
**書くための作戦 [#ld0382e4]
以下のようにX軸,Y軸を取って,XY座標系で制御をしようと考...
なぜこのように制御したのかは,動き回る系はプログラムがめ...
#ref(./文字の説明.png,50%,XY座標系)
**ロボットの機構 [#nf6a3ec5]
どのようにXY座標を制御しているかを説明します.&br;
&br;
と,その前に全体像がどのようになっているのか見てみましょ...
#ref(./全体像.png,70%,全体像)
上のように&br;
X軸はタイヤを使って制御し&br;
Y軸はギザギザの機構を使ってアームのように制御しました.&br;
Z軸(ペンの上げ下げ)は緑で囲ったような機構で制御しました...
&br;
それぞれの機構について詳しく解説していきます.
***X軸 [#y4bcbf9d]
X軸は1つのモーターでタイヤを正転・後転させることで制御を...
この機構の工夫点として,ギアのかみ合わせがあります.モー...
また,モーターの回転を90度回転させるギアを使ってうまく動...
#ref(./タイヤの歯車のかみ合わせ.png,60%,ギア噛み合わせ)
ちなみに前のタイヤはモーターと接続されていません
***Y軸 [#lfe2efe3]
ラックという部品を使って,歯車の回転運動を直線運動に変え...
#ref(./ラック.png,80%,ラック)
実物で見るとこんな感じです.&br;
#ref(./ラック実物.jpg,80%,ラック実物)
この機構の利点は,比較的コンパクトにまとめられるという点...
また,欠点としてかみ合いの遊びの分,制御が難しくなること...
#ref(./あそび.png,80%,あそび)
***Z軸 [#p9dd1731]
過去の作品を参考にして作りました.詳細は[[こちら>http://y...
機構を簡単に説明すると以下の図のようになります.
#ref(./Z機構.png,40%,Z軸)&br;
詳しく見ていくと,まず下の小さいVプーリーとモーターとは下...
#ref(./vプーリー.png,60%,Vプーリー小)&br;
次に,モーター部分はこのようになっています.&br;
#ref(./モーター.png,60%,モーター)&br;
また,ペンの接続は下の写真のようにゴムを使ってやっていま...
#ref(./ペンの接続.png,60%,ペン)&br;
**制御する [#g8233f9d]
プログラムを書く前には下準備が必要です.それらを含めてま...
***どの順番で書くのか [#c0c4d58d]
まず,いかに楽にかつ綺麗に書けるのはどのルートかを考えて...
結果的に以下のようになりました.繋げられそうなとこをつな...
#ref(./書き順.png,40%,書き順)
***移動距はどのようになっているのか? [#xc2310cd]
次に,いったい何秒だけモーターを回転させたら,どれほど進...
初めの時点では,XY方向では1秒あたりに進む距離は違うと考え...
しかし,実際やってみると進む距離は,ほぼほぼ同じなことが...
こういった,数値の変化に対応するため,以下の図のように移...
#ref(./移動距離.png,60%,移動距離)
***プログラムを書く [#n90dd7e4]
まず,プログラムをわかりやすくするために%%%define%%%とい...
#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); //一時停止
何やってんのか意味わからんので,簡単に説明します.&br;
下から説明していくんですが,%%%freez%%%っていうのは書き終...
次に%%%up%%%.%%%down%%%について説明します.これはペンの...
そのほかのものは,移動に関するものです.下の図を見て理解...
#ref(./方向.png,60%,方向)
ここから下はメインのプログラムです.&br;
?指定の場所に行って&br;
?ペンおろして&br;
?指定の場所に行って&br;
?ペン上げて&br;
の繰り返しです.
task main()
{
down; //1角目
straight;
Wait(40); //a
stopA;
freez;
up;
straight; //1から2への移動
Wait(10); //b
stopA;
freez;
down; //2角目
straight;
Wait(40); //c
stopA;
freez;
up;
back; //2から3への移動
Wait(70); //d
stopA;
freez;
left;
Wait(30); //e
stopB;
freez;
down; //3角目
right;
Wait(100); //f
stopB;
freez;
up;
left; //3から4への移動
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; //4から5への移動
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; //5から6への移動
Wait(30); //n
stopB;
back;
Wait(20); //o
stopA;
freez;
down; //6角目
right;
straight;
Wait(10); //p
stopA;
stopB;
freez;
up;
left; //6から7への移動
Wait(50); //r
stopB;
straight;
Wait(90); //q
stopA;
freez;
down; //7角目
right;
Wait(80); //s
stopB;
freez;
up;
left; //7から8への移動
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]
#ref(./村山.png,60%,完成)
*まとめ [#v56b8795]
課題を達成することができた.
出来のほうはあまり良いとは言えなかった.&br;
問題点として以下がある&br;
-直線が曲がってしまう.
-終筆の時にシュッとなってしまう.
-交点がしっかりと定まらなかった.&br;
&br;
&br;
解決策として&br;
-アームがたわまないように,歯車を追加でつけて安定させる.
-freezの時間を長くして,きれいに書けるようにする.
-歯車の遊びの分を考えて,微調整をする.
終了行:
[[2018a/Member]]
目次
#contents
*課題1 [#o322c2f3]
これまで住んだことのある都道府県名、市町村名、地区名など...
2文字以上のものを選び、それをA4の紙を書くロボットを製作せ...
**選んだ文字 [#tb0eedf8]
長野にある&color(#32cd32){「村山」};という地名を選びまし...
*ロボットの説明 [#na9486b6]
**書くための作戦 [#ld0382e4]
以下のようにX軸,Y軸を取って,XY座標系で制御をしようと考...
なぜこのように制御したのかは,動き回る系はプログラムがめ...
#ref(./文字の説明.png,50%,XY座標系)
**ロボットの機構 [#nf6a3ec5]
どのようにXY座標を制御しているかを説明します.&br;
&br;
と,その前に全体像がどのようになっているのか見てみましょ...
#ref(./全体像.png,70%,全体像)
上のように&br;
X軸はタイヤを使って制御し&br;
Y軸はギザギザの機構を使ってアームのように制御しました.&br;
Z軸(ペンの上げ下げ)は緑で囲ったような機構で制御しました...
&br;
それぞれの機構について詳しく解説していきます.
***X軸 [#y4bcbf9d]
X軸は1つのモーターでタイヤを正転・後転させることで制御を...
この機構の工夫点として,ギアのかみ合わせがあります.モー...
また,モーターの回転を90度回転させるギアを使ってうまく動...
#ref(./タイヤの歯車のかみ合わせ.png,60%,ギア噛み合わせ)
ちなみに前のタイヤはモーターと接続されていません
***Y軸 [#lfe2efe3]
ラックという部品を使って,歯車の回転運動を直線運動に変え...
#ref(./ラック.png,80%,ラック)
実物で見るとこんな感じです.&br;
#ref(./ラック実物.jpg,80%,ラック実物)
この機構の利点は,比較的コンパクトにまとめられるという点...
また,欠点としてかみ合いの遊びの分,制御が難しくなること...
#ref(./あそび.png,80%,あそび)
***Z軸 [#p9dd1731]
過去の作品を参考にして作りました.詳細は[[こちら>http://y...
機構を簡単に説明すると以下の図のようになります.
#ref(./Z機構.png,40%,Z軸)&br;
詳しく見ていくと,まず下の小さいVプーリーとモーターとは下...
#ref(./vプーリー.png,60%,Vプーリー小)&br;
次に,モーター部分はこのようになっています.&br;
#ref(./モーター.png,60%,モーター)&br;
また,ペンの接続は下の写真のようにゴムを使ってやっていま...
#ref(./ペンの接続.png,60%,ペン)&br;
**制御する [#g8233f9d]
プログラムを書く前には下準備が必要です.それらを含めてま...
***どの順番で書くのか [#c0c4d58d]
まず,いかに楽にかつ綺麗に書けるのはどのルートかを考えて...
結果的に以下のようになりました.繋げられそうなとこをつな...
#ref(./書き順.png,40%,書き順)
***移動距はどのようになっているのか? [#xc2310cd]
次に,いったい何秒だけモーターを回転させたら,どれほど進...
初めの時点では,XY方向では1秒あたりに進む距離は違うと考え...
しかし,実際やってみると進む距離は,ほぼほぼ同じなことが...
こういった,数値の変化に対応するため,以下の図のように移...
#ref(./移動距離.png,60%,移動距離)
***プログラムを書く [#n90dd7e4]
まず,プログラムをわかりやすくするために%%%define%%%とい...
#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); //一時停止
何やってんのか意味わからんので,簡単に説明します.&br;
下から説明していくんですが,%%%freez%%%っていうのは書き終...
次に%%%up%%%.%%%down%%%について説明します.これはペンの...
そのほかのものは,移動に関するものです.下の図を見て理解...
#ref(./方向.png,60%,方向)
ここから下はメインのプログラムです.&br;
?指定の場所に行って&br;
?ペンおろして&br;
?指定の場所に行って&br;
?ペン上げて&br;
の繰り返しです.
task main()
{
down; //1角目
straight;
Wait(40); //a
stopA;
freez;
up;
straight; //1から2への移動
Wait(10); //b
stopA;
freez;
down; //2角目
straight;
Wait(40); //c
stopA;
freez;
up;
back; //2から3への移動
Wait(70); //d
stopA;
freez;
left;
Wait(30); //e
stopB;
freez;
down; //3角目
right;
Wait(100); //f
stopB;
freez;
up;
left; //3から4への移動
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; //4から5への移動
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; //5から6への移動
Wait(30); //n
stopB;
back;
Wait(20); //o
stopA;
freez;
down; //6角目
right;
straight;
Wait(10); //p
stopA;
stopB;
freez;
up;
left; //6から7への移動
Wait(50); //r
stopB;
straight;
Wait(90); //q
stopA;
freez;
down; //7角目
right;
Wait(80); //s
stopB;
freez;
up;
left; //7から8への移動
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]
#ref(./村山.png,60%,完成)
*まとめ [#v56b8795]
課題を達成することができた.
出来のほうはあまり良いとは言えなかった.&br;
問題点として以下がある&br;
-直線が曲がってしまう.
-終筆の時にシュッとなってしまう.
-交点がしっかりと定まらなかった.&br;
&br;
&br;
解決策として&br;
-アームがたわまないように,歯車を追加でつけて安定させる.
-freezの時間を長くして,きれいに書けるようにする.
-歯車の遊びの分を考えて,微調整をする.
ページ名: