2016b/Member/Megukyo/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
ロボティクス入門ゼミ課題1
#contents
*車体について [#x5df519d]
**試作品 [#b42a1548]
写真のように、モーター二つをアーム、一つを昇降装置として...
#ref(./IMG_20161118_8312.jpg,100%.robo)
利点として、本体を移動式にしないことでペン先を安定させ、...
ところが製作してみると、ペン先の移動が基本的に円運動とな...
**完成品 [#l810717b]
それらの欠点を克服すべく発想を変えて臨んだものが、この完...
#ref(./IMG_20161118_43279.jpg,100%.robo)
車体は自走式の2つの車体により構成される。説明の簡略化の...
***●移動方式について [#nf427ed6]
試作品は直線移動に難があったため、移動方式を簡略化、母機...
ただし、欠点として母機子機同時の移動、つまり斜線や曲線は...
理由として、子機がペンを下ろしたまま移動するときに紙から...
***●ペンの昇降方式 [#j4bce0b4]
写真のようにペンの昇降は子機によって行われる。
#ref(./IMG_20161118_11128.jpg,100%.robo)
子機のアームにペンを括り付け、モーターで直接アームを動か...
***●子機の移動について [#tfb9311c]
#ref(./IMG_20161118_29633.jpg,100%.robo)
子機の移動は母機に取り付けられた車輪付きレールの上で行わ...
子機側にもガイドを取り付け、脱線しないよう、まっすぐ進む...
**プログラムについて [#l22e7b73]
車体の項でも説明したように、このロボはXY座標の移動に加え...
基本的にX軸方向(左右の移動)、Y軸方向(上下の移動)、ペ...
***「奏」 [#i9c6fd26]
曲線部分が上手く書けず、誤差も大きすぎて失敗
//方向はXY軸で定義
//上下がY、左右がX
sub GO_Y(int t) //y軸方向に進む
{
OnRev(OUT_A,-20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub BACK_Y(int t) //y軸方向に逆...
{
OnFwd(OUT_A,20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub GR_X(int t) //x軸方向右に進む
{
OnFwd(OUT_B,20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub GL_(int t) //x軸方向左に進む
{
OnRev(OUT_B,20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub PENUP() //ペンを上げる
{
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_ABC);
Wait(1000);
}
sub PENDOWN() //ペンを下げる
{
RotateMotor(OUT_C,10,20);
Wait(20);
Off(OUT_ABC);
Wait(1000);
}
sub HITO() //縦の曲線部分 上側
{
RotateMotor(OUT_C,10,20); //左払い
Wait(20);
Off(OUT_C);
Wait(1000);
OnRev(OUT_A,20);
Wait(400);
OnRev(OUT_A,20);
OnFwd(OUT_B,20);
Wait(400);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000);
OnFwd(OUT_A,20);
OnRev(OUT_B,20);
Wait(400);
Off(OUT_AB);
OnFwd(OUT_A,20);
Wait(400);
Off(OUT_A);
OnRev(OUT_A,20);
Wait(300);
Off(OUT_ABC);
Wait(1000);
Off(OUT_A);
RotateMotor(OUT_C,10,20);
Wait(20);
Off(OUT_C);
Wait(1000);
Off(OUT_C);
OnRev(OUT_A,20);
OnRev(OUT_B,20);
Wait(400);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000);
OnFwd(OUT_A,20);
OnFwd(OUT_B,20);
Wait(400);
}
sub TEN //縦の曲線部分 下側
{
RotateMotor(OUT_C,10,-20); //左払い
Off(OUT_C);
Wait(1000);
Off(OUT_ABC);
OnRev(OUT_A,20);
Wait(150);
Off(OUT_A);
OnRev(OUT_A,20);
OnFwd(OUT_B,20);
Wait(250);
Off(OUT_A);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000);
OnFwd(OUT_A,20);
OnRev(OUT_B,20);
Wait(250);
RtateMotor(OUT_C,,10,20); //右払い
Wait(20);
Off(OUT_C);
Wait(1000);
OnRev(OUT_A,20);
OnRev(OUT_B,20);
Wait(250);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000):
}
task main()
{
PENUP;
PENDOWN();GR_X(1200);PENUP();
GL_X(300);GO_Y(200);
PENDOWN();GL_X(600);PENUP();
GL_X(600);GO_Y(200);
PENDOWN();GR_X(1800);PENUP();
GR_X(600);GO_Y(200);
PENDOWN();GR_X(600);PENUP();
GL_X(100);GO_Y(150);
PENDOWN();GL_X(400);PENUP();
GR_X(200);BACK_Y(950);
HITO();
GO_Y(400);
TEN();
}
***「音」 [#z5bfc772]
こちらは斜線部分を極力直線状とすることで安定してかくこと...
#define MP_XY 20 //モーターの強さは20に固定
#define MP_Z 10
sub X_GL(int time) //X軸左方向に走査
{
OnRev(OUT_B,MP_XY);
Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub X_GR(int time) //X軸右方向に走査
{
OnFwd(OUT_B,MP_XY);
Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub Y_UP(int time) //Y軸方向に1単位進む
{
OnRev(OUT_A,MP_XY);Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub Y_DWN(int time) //Y軸方向に1単位進む
{
OnFwd(OUT_A,MP_XY);Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub PEN_UP() //ペンをあげる
{
RotateMotor(OUT_C,MP_Z,-20);
Off(OUT_ABC);Wait(1000);
}
sub PEN_DWN() //ペンをおろす
{
RotateMotor(OUT_C,MP_Z,20);
Off(OUT_ABC);Wait(1000);
}
task main()
{
PEN_UP();
PEN_DWN();Y_DWN(400);PEN_UP();
X_GR(600);
PEN_DWN();X_GL(1200);PEN_UP();
X_GR(200);
PEN_DWN();Y_DWN(400);PEN_UP();
X_GR(800);Y_UP(400);
PEN_DWN();Y_DWN(400);PEN_UP();
X_GL(1200);
PEN_DWN();X_GR(1600);PEN_UP();//
X_GL(300);Y_DWN(300);
PEN_DWN();X_GL(1000);Y_DWN(800);X_GR(1000);PEN_UP();
Y_UP(900);
PEN_DWN();Y_DWN(800);PEN_UP();
Y_UP(600);
PEN_DWN();X_GL(1000);PEN_UP();
}
**まとめ [#aa1bb394]
まだまだプログラミングの面で上手く効率的にプログラムでき...
終了行:
ロボティクス入門ゼミ課題1
#contents
*車体について [#x5df519d]
**試作品 [#b42a1548]
写真のように、モーター二つをアーム、一つを昇降装置として...
#ref(./IMG_20161118_8312.jpg,100%.robo)
利点として、本体を移動式にしないことでペン先を安定させ、...
ところが製作してみると、ペン先の移動が基本的に円運動とな...
**完成品 [#l810717b]
それらの欠点を克服すべく発想を変えて臨んだものが、この完...
#ref(./IMG_20161118_43279.jpg,100%.robo)
車体は自走式の2つの車体により構成される。説明の簡略化の...
***●移動方式について [#nf427ed6]
試作品は直線移動に難があったため、移動方式を簡略化、母機...
ただし、欠点として母機子機同時の移動、つまり斜線や曲線は...
理由として、子機がペンを下ろしたまま移動するときに紙から...
***●ペンの昇降方式 [#j4bce0b4]
写真のようにペンの昇降は子機によって行われる。
#ref(./IMG_20161118_11128.jpg,100%.robo)
子機のアームにペンを括り付け、モーターで直接アームを動か...
***●子機の移動について [#tfb9311c]
#ref(./IMG_20161118_29633.jpg,100%.robo)
子機の移動は母機に取り付けられた車輪付きレールの上で行わ...
子機側にもガイドを取り付け、脱線しないよう、まっすぐ進む...
**プログラムについて [#l22e7b73]
車体の項でも説明したように、このロボはXY座標の移動に加え...
基本的にX軸方向(左右の移動)、Y軸方向(上下の移動)、ペ...
***「奏」 [#i9c6fd26]
曲線部分が上手く書けず、誤差も大きすぎて失敗
//方向はXY軸で定義
//上下がY、左右がX
sub GO_Y(int t) //y軸方向に進む
{
OnRev(OUT_A,-20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub BACK_Y(int t) //y軸方向に逆...
{
OnFwd(OUT_A,20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub GR_X(int t) //x軸方向右に進む
{
OnFwd(OUT_B,20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub GL_(int t) //x軸方向左に進む
{
OnRev(OUT_B,20);
Wait(t);
Off(OUT_ABC);
Wait(1000);
}
sub PENUP() //ペンを上げる
{
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_ABC);
Wait(1000);
}
sub PENDOWN() //ペンを下げる
{
RotateMotor(OUT_C,10,20);
Wait(20);
Off(OUT_ABC);
Wait(1000);
}
sub HITO() //縦の曲線部分 上側
{
RotateMotor(OUT_C,10,20); //左払い
Wait(20);
Off(OUT_C);
Wait(1000);
OnRev(OUT_A,20);
Wait(400);
OnRev(OUT_A,20);
OnFwd(OUT_B,20);
Wait(400);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000);
OnFwd(OUT_A,20);
OnRev(OUT_B,20);
Wait(400);
Off(OUT_AB);
OnFwd(OUT_A,20);
Wait(400);
Off(OUT_A);
OnRev(OUT_A,20);
Wait(300);
Off(OUT_ABC);
Wait(1000);
Off(OUT_A);
RotateMotor(OUT_C,10,20);
Wait(20);
Off(OUT_C);
Wait(1000);
Off(OUT_C);
OnRev(OUT_A,20);
OnRev(OUT_B,20);
Wait(400);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000);
OnFwd(OUT_A,20);
OnFwd(OUT_B,20);
Wait(400);
}
sub TEN //縦の曲線部分 下側
{
RotateMotor(OUT_C,10,-20); //左払い
Off(OUT_C);
Wait(1000);
Off(OUT_ABC);
OnRev(OUT_A,20);
Wait(150);
Off(OUT_A);
OnRev(OUT_A,20);
OnFwd(OUT_B,20);
Wait(250);
Off(OUT_A);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000);
OnFwd(OUT_A,20);
OnRev(OUT_B,20);
Wait(250);
RtateMotor(OUT_C,,10,20); //右払い
Wait(20);
Off(OUT_C);
Wait(1000);
OnRev(OUT_A,20);
OnRev(OUT_B,20);
Wait(250);
RotateMotor(OUT_C,10,-20);
Wait(20);
Off(OUT_C);
Wait(1000):
}
task main()
{
PENUP;
PENDOWN();GR_X(1200);PENUP();
GL_X(300);GO_Y(200);
PENDOWN();GL_X(600);PENUP();
GL_X(600);GO_Y(200);
PENDOWN();GR_X(1800);PENUP();
GR_X(600);GO_Y(200);
PENDOWN();GR_X(600);PENUP();
GL_X(100);GO_Y(150);
PENDOWN();GL_X(400);PENUP();
GR_X(200);BACK_Y(950);
HITO();
GO_Y(400);
TEN();
}
***「音」 [#z5bfc772]
こちらは斜線部分を極力直線状とすることで安定してかくこと...
#define MP_XY 20 //モーターの強さは20に固定
#define MP_Z 10
sub X_GL(int time) //X軸左方向に走査
{
OnRev(OUT_B,MP_XY);
Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub X_GR(int time) //X軸右方向に走査
{
OnFwd(OUT_B,MP_XY);
Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub Y_UP(int time) //Y軸方向に1単位進む
{
OnRev(OUT_A,MP_XY);Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub Y_DWN(int time) //Y軸方向に1単位進む
{
OnFwd(OUT_A,MP_XY);Wait(time);
Off(OUT_ABC);Wait(1000);
}
sub PEN_UP() //ペンをあげる
{
RotateMotor(OUT_C,MP_Z,-20);
Off(OUT_ABC);Wait(1000);
}
sub PEN_DWN() //ペンをおろす
{
RotateMotor(OUT_C,MP_Z,20);
Off(OUT_ABC);Wait(1000);
}
task main()
{
PEN_UP();
PEN_DWN();Y_DWN(400);PEN_UP();
X_GR(600);
PEN_DWN();X_GL(1200);PEN_UP();
X_GR(200);
PEN_DWN();Y_DWN(400);PEN_UP();
X_GR(800);Y_UP(400);
PEN_DWN();Y_DWN(400);PEN_UP();
X_GL(1200);
PEN_DWN();X_GR(1600);PEN_UP();//
X_GL(300);Y_DWN(300);
PEN_DWN();X_GL(1000);Y_DWN(800);X_GR(1000);PEN_UP();
Y_UP(900);
PEN_DWN();Y_DWN(800);PEN_UP();
Y_UP(600);
PEN_DWN();X_GL(1000);PEN_UP();
}
**まとめ [#aa1bb394]
まだまだプログラミングの面で上手く効率的にプログラムでき...
ページ名: