2014b/Member/ArisiaT/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2014b/Member]]
#contents
*課題 [#kdc33ae8]
自分の名字を書けるロボットを作ろう
*作ったロボット [#d2b4c1bf]
#ref(2014b/Member/ArisiaT/Mission1/2675.jpg,30%,Fullshot)
名はLGCD(LEGO CAD)
X軸、Y軸、Z軸を移動できるユニットをそれぞれ作り、組み立て...
詳しい画像は
https://www.youtube.com/watch?v=m2mYDo8n3AQ&feature=youtu...
で観覧できる。
**着眼点 [#v0a7df71]
他の事例をYOUTUBEで参考中、プリンタを同じく作った画像を見...
**ユニット1 [#hd58c6da]
#ref(2014b/Member/ArisiaT/Mission1/unit1.jpg,10%,unit1)
第1でCADのペンと似たような動きをするMODULEを考えなければ...
そこで私たちは上のようなロボットを工夫して横と上下ができ...
モーターは2本を使って上のモーターはバーを使って円運動を上...
下のモーターは横、UNITで見ると前に進むように作った。
**ユニット2 [#o9228bb5]
#ref(2014b/Member/ArisiaT/Mission1/unit2.jpg,20%,unit2)
UNIT1でX,Y,Zの中でXとZの動きに対応できるパーツは備えてい...
前後に動ける車を作り、その上に橋を載せた。
*Program [#b3597000]
*プログラム組み方 [#j86e0302]
#ref(2014b/Member/ArisiaT/Mission1/111.jpg,80%,ベクトル説...
基本的にCADに対応可能なロボットを作ったため、
X,Y,Zをそれぞれ+-値で移動する命令をすることで動ける。
斜めは、Xが単位時間動くうちのYの移動距離のことで、Yの速さ...
まとめると、X,Y移動距離をモーターの回転角度で設定し、X,Y...
参考で書いたプログラムの文字は黄であり、横の線を全部書い...
プログラムを見る際はノートに座標平面を書いてどの線がどこ...
#define spdy 30
#define spdx 39
#define spdz 15
float GetAngleX(float d) // d`s distance to motor`s ang...
{
const float diameter = 3.8;
const float pi=3.1415;
float angX=d/(diameter*pi)*360;
return angX;
}
float GetAngleY(float d) // d`s distance for Y
{
const float diameter = 5.45;
const float pi=3.1415;
float angY=d/(diameter*pi)*360;
return angY;
}
void RoY(float t) // move y axis Rotate motor Y to UP...
{int angler=GetAngleY(t);
RotateMotor(OUT_A,spdy,angler);}
void RoX(float t) // move x axis Rotate motor X to Ri...
{int angler=GetAngleX(t);
RotateMotor(OUT_B,spdx,angler);}
task main()
{
RotateMotor(OUT_C,spdz,-30); // up the pen
RoY(-2);
repeat(5){
RoY(-2);
RotateMotor(OUT_C,spdz,30); // down the pen
RoX(8);
RotateMotor(OUT_C,spdz,-30);
RoX(-8);
}//write all x_axis
RoY(10);
RoY(-6);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(10);
RoX(2);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(4);
RoX(2);
RoY(-6);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(10);
RoX(2);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(4);
RoX(2);
RoY(-6);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoX(-4);
RotateMotor(OUT_C,spdz,30); // write all y_axis
OnRev(OUT_A,15);
OnRev(OUT_B,25);
Wait(800);
Off(OUT_AB);
RotateMotor(OUT_C,spdz,-30); // write diagonal line go ...
OnFwd(OUT_A,15);
OnFwd(OUT_B,25);
Wait(800);
Off(OUT_AB); // go before to diagonal line
RotateMotor(OUT_C,spdz,30);
OnRev(OUT_A,15);
OnFwd(OUT_B,25);
Wait(800);
Off(OUT_AB);
RotateMotor(OUT_C,spdz,-30); //write diagonal line go t...
}
*残りの課題 [#ofd8c869]
このプログラムを書いた時期はまだWHILEを使えないため、次第...
終了行:
[[2014b/Member]]
#contents
*課題 [#kdc33ae8]
自分の名字を書けるロボットを作ろう
*作ったロボット [#d2b4c1bf]
#ref(2014b/Member/ArisiaT/Mission1/2675.jpg,30%,Fullshot)
名はLGCD(LEGO CAD)
X軸、Y軸、Z軸を移動できるユニットをそれぞれ作り、組み立て...
詳しい画像は
https://www.youtube.com/watch?v=m2mYDo8n3AQ&feature=youtu...
で観覧できる。
**着眼点 [#v0a7df71]
他の事例をYOUTUBEで参考中、プリンタを同じく作った画像を見...
**ユニット1 [#hd58c6da]
#ref(2014b/Member/ArisiaT/Mission1/unit1.jpg,10%,unit1)
第1でCADのペンと似たような動きをするMODULEを考えなければ...
そこで私たちは上のようなロボットを工夫して横と上下ができ...
モーターは2本を使って上のモーターはバーを使って円運動を上...
下のモーターは横、UNITで見ると前に進むように作った。
**ユニット2 [#o9228bb5]
#ref(2014b/Member/ArisiaT/Mission1/unit2.jpg,20%,unit2)
UNIT1でX,Y,Zの中でXとZの動きに対応できるパーツは備えてい...
前後に動ける車を作り、その上に橋を載せた。
*Program [#b3597000]
*プログラム組み方 [#j86e0302]
#ref(2014b/Member/ArisiaT/Mission1/111.jpg,80%,ベクトル説...
基本的にCADに対応可能なロボットを作ったため、
X,Y,Zをそれぞれ+-値で移動する命令をすることで動ける。
斜めは、Xが単位時間動くうちのYの移動距離のことで、Yの速さ...
まとめると、X,Y移動距離をモーターの回転角度で設定し、X,Y...
参考で書いたプログラムの文字は黄であり、横の線を全部書い...
プログラムを見る際はノートに座標平面を書いてどの線がどこ...
#define spdy 30
#define spdx 39
#define spdz 15
float GetAngleX(float d) // d`s distance to motor`s ang...
{
const float diameter = 3.8;
const float pi=3.1415;
float angX=d/(diameter*pi)*360;
return angX;
}
float GetAngleY(float d) // d`s distance for Y
{
const float diameter = 5.45;
const float pi=3.1415;
float angY=d/(diameter*pi)*360;
return angY;
}
void RoY(float t) // move y axis Rotate motor Y to UP...
{int angler=GetAngleY(t);
RotateMotor(OUT_A,spdy,angler);}
void RoX(float t) // move x axis Rotate motor X to Ri...
{int angler=GetAngleX(t);
RotateMotor(OUT_B,spdx,angler);}
task main()
{
RotateMotor(OUT_C,spdz,-30); // up the pen
RoY(-2);
repeat(5){
RoY(-2);
RotateMotor(OUT_C,spdz,30); // down the pen
RoX(8);
RotateMotor(OUT_C,spdz,-30);
RoX(-8);
}//write all x_axis
RoY(10);
RoY(-6);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(10);
RoX(2);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(4);
RoX(2);
RoY(-6);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(10);
RoX(2);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoY(4);
RoX(2);
RoY(-6);
RotateMotor(OUT_C,spdz,30);
RoY(-4);
RotateMotor(OUT_C,spdz,-30);
RoX(-4);
RotateMotor(OUT_C,spdz,30); // write all y_axis
OnRev(OUT_A,15);
OnRev(OUT_B,25);
Wait(800);
Off(OUT_AB);
RotateMotor(OUT_C,spdz,-30); // write diagonal line go ...
OnFwd(OUT_A,15);
OnFwd(OUT_B,25);
Wait(800);
Off(OUT_AB); // go before to diagonal line
RotateMotor(OUT_C,spdz,30);
OnRev(OUT_A,15);
OnFwd(OUT_B,25);
Wait(800);
Off(OUT_AB);
RotateMotor(OUT_C,spdz,-30); //write diagonal line go t...
}
*残りの課題 [#ofd8c869]
このプログラムを書いた時期はまだWHILEを使えないため、次第...
ページ名: