2019b/Member/kzy_k/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019b/Member]]
#contents
*課題1の概要 [#g624efbc]
-マインドストームを使った似顔絵を描くロボットの作成。~
似顔絵はA4用紙に収まるようにする。~
以下が実際に描いた似顔絵である。
#ref(2019b/Member/kzy_k/Mission1/1573726947481.jpg,20%,似...
*ロボットの説明 [#u03f8611]
**全体 [#v3a4fa5d]
-我々の班はペン先がx軸y軸の二つの自由度で動くことにより似...
#ref(2019b/Member/kzy_k/Mission1/1573708728203.jpg,20%,全...
**各部分 [#z12af1cc]
-動力源はモーターなので回転運動を上下運動に変換する必要が...
#ref(2019b/Member/kzy_k/Mission1/モーター.jpg,50%,簡易図)
#ref(2019b/Member/kzy_k/Mission1/1573708721218.jpg,20%,変...
#br
-ペン先を紙から離したり付けたりするためにペンのついている...
#ref(2019b/Member/kzy_k/Mission1/1573708714711.jpg,20%,ペ...
*プログラムの説明 [#e6e29f28]
**プログラムの基本骨格部分 [#eb9633e2]
-gtというサブルーチンを次のように定義する。
sub gt(float x,float y,float z)
{
const float axis = 100.0;
const int rep = z;
const float rotation = 180.0;
const float correction = 0.5;
float angle_x = ((rotation/axis)*x)/rep + sign(x)*cor...
float angle_y = ((rotation/axis)*y)/rep + sign(y)*cor...
repeat(rep)
{
RotateMotor(OUT_B,SPEED,angle_x);
RotateMotor(OUT_C,SPEED,angle_y);
}
Wait(400);
}
これは可動範囲を100等分してx軸y軸を決め、移動したい分の値...
RotateMotorでは角度が入力された分に達するまで次の動作が実...
correctionは補正のための値である。
#br
-gtはの入力値は移動分だったので動作前の位置情報log_x,log_...
#define gf(x,y,z) gt(x-log_x,y-log_y,z);log_x=x;log_y=y;
#br
-ペン先を上下させる関数pu,pdを定義する。
#define pu OnFwd(OUT_A,20);Wait(500);Off(OUT_A);
#define pd OnFwd(OUT_A,-SPEED);Wait(300);Off(OUT_A);Wait...
**動作のプログラムの内容部分 [#l03ca0ab]
-定義された関数などを使うことでペン先を以下のプログラムで...
task main()
{
ResetTachoCount(OUT_BC);
float log_x = 0;
float log_y = 0;
//輪郭
pu;
gf(0.0,100.0,2);
pd;
gf(0.0,35.0,1);
gf(35.0,0.0,30);
gf(45.0,0.0,1);
gf(100.0,35.0,30);
gf(100.0,100.0,1);
gf(0.0,100.0,1);
pu;
//目
gf(25.0,45.0,2);
pd;
gf(45.0,45.0,1);
pu;
gf(60.0,45.0,1);
pd;
gf(80.0,45.0,1);
pu;
//鼻
gf(40.0,35.0,2);
pd;
gf(35.0,25.0,10);
gf(45.0,28.0,1);
pu;
//口
gf(30.0,15.0,2);
pd;
gf(60.0,15.0,2);
pu;
gh;
}
**プログラム全体 [#w3f83bf6]
-以下が実際に使ったプログラム全体である。
#define SPEED 12
#define gf(x,y,z) gt(x-log_x,y-log_y,z);log_x=x;log_y=y;
#define pu OnFwd(OUT_A,20);Wait(500);Off(OUT_A);
#define pd OnFwd(OUT_A,-SPEED);Wait(300);Off(OUT_A);Wait...
#define gh gf(0,0,1);
sub gt(float x,float y,float z) //(行き先の座標 , 繰り返...
{
const float axis = 100.0; //軸
const int rep = z; //繰り返し回数
const float rotation = 180.0; //軸を端から端まで動か...
const float correction = 0.5; //補正
float angle_x = ((rotation/axis)*x)/rep + sign(x)*co...
float angle_y = ((rotation/axis)*y)/rep + sign(y)*co...
repeat(rep)
{
RotateMotor(OUT_B,SPEED,angle_x);
RotateMotor(OUT_C,SPEED,angle_y);
}
Wait(400);
}
task main()
{
ResetTachoCount(OUT_BC);
float log_x = 0;
float log_y = 0;
//輪郭
pu;
gf(0.0,100.0,2);
pd;
gf(0.0,35.0,1);
gf(35.0,0.0,30);
gf(45.0,0.0,1);
gf(100.0,35.0,30);
gf(100.0,100.0,1);
gf(0.0,100.0,1);
pu;
//目
gf(25.0,45.0,2);
pd;
gf(45.0,45.0,1);
pu;
gf(60.0,45.0,1);
pd;
gf(80.0,45.0,1);
pu;
//鼻
gf(40.0,35.0,2);
pd;
gf(35.0,25.0,10);
gf(45.0,28.0,1);
pu;
//口
gf(30.0,15.0,2);
pd;
gf(60.0,15.0,2);
pu;
gh;
}
*感想 [#l5b2c4ba]
-図を描くロボットは状況を判断させて動かすロボットと違い一...
-x-y直交座標にすることでx軸y軸に平行な線を描く分には簡単...
-モーターは入力の通りに正確に動いてくれないので微妙な調節...
-ペン先の高さについても近すぎると摩擦が大きく動きにくくな...
*改善点 [#w2e34a19]
-x-y直交座標だと曲線、特に円を描くのが難しいので円をたく...
-今回のプログラムではモーターの一定の角度の回転で動く上下...
終了行:
[[2019b/Member]]
#contents
*課題1の概要 [#g624efbc]
-マインドストームを使った似顔絵を描くロボットの作成。~
似顔絵はA4用紙に収まるようにする。~
以下が実際に描いた似顔絵である。
#ref(2019b/Member/kzy_k/Mission1/1573726947481.jpg,20%,似...
*ロボットの説明 [#u03f8611]
**全体 [#v3a4fa5d]
-我々の班はペン先がx軸y軸の二つの自由度で動くことにより似...
#ref(2019b/Member/kzy_k/Mission1/1573708728203.jpg,20%,全...
**各部分 [#z12af1cc]
-動力源はモーターなので回転運動を上下運動に変換する必要が...
#ref(2019b/Member/kzy_k/Mission1/モーター.jpg,50%,簡易図)
#ref(2019b/Member/kzy_k/Mission1/1573708721218.jpg,20%,変...
#br
-ペン先を紙から離したり付けたりするためにペンのついている...
#ref(2019b/Member/kzy_k/Mission1/1573708714711.jpg,20%,ペ...
*プログラムの説明 [#e6e29f28]
**プログラムの基本骨格部分 [#eb9633e2]
-gtというサブルーチンを次のように定義する。
sub gt(float x,float y,float z)
{
const float axis = 100.0;
const int rep = z;
const float rotation = 180.0;
const float correction = 0.5;
float angle_x = ((rotation/axis)*x)/rep + sign(x)*cor...
float angle_y = ((rotation/axis)*y)/rep + sign(y)*cor...
repeat(rep)
{
RotateMotor(OUT_B,SPEED,angle_x);
RotateMotor(OUT_C,SPEED,angle_y);
}
Wait(400);
}
これは可動範囲を100等分してx軸y軸を決め、移動したい分の値...
RotateMotorでは角度が入力された分に達するまで次の動作が実...
correctionは補正のための値である。
#br
-gtはの入力値は移動分だったので動作前の位置情報log_x,log_...
#define gf(x,y,z) gt(x-log_x,y-log_y,z);log_x=x;log_y=y;
#br
-ペン先を上下させる関数pu,pdを定義する。
#define pu OnFwd(OUT_A,20);Wait(500);Off(OUT_A);
#define pd OnFwd(OUT_A,-SPEED);Wait(300);Off(OUT_A);Wait...
**動作のプログラムの内容部分 [#l03ca0ab]
-定義された関数などを使うことでペン先を以下のプログラムで...
task main()
{
ResetTachoCount(OUT_BC);
float log_x = 0;
float log_y = 0;
//輪郭
pu;
gf(0.0,100.0,2);
pd;
gf(0.0,35.0,1);
gf(35.0,0.0,30);
gf(45.0,0.0,1);
gf(100.0,35.0,30);
gf(100.0,100.0,1);
gf(0.0,100.0,1);
pu;
//目
gf(25.0,45.0,2);
pd;
gf(45.0,45.0,1);
pu;
gf(60.0,45.0,1);
pd;
gf(80.0,45.0,1);
pu;
//鼻
gf(40.0,35.0,2);
pd;
gf(35.0,25.0,10);
gf(45.0,28.0,1);
pu;
//口
gf(30.0,15.0,2);
pd;
gf(60.0,15.0,2);
pu;
gh;
}
**プログラム全体 [#w3f83bf6]
-以下が実際に使ったプログラム全体である。
#define SPEED 12
#define gf(x,y,z) gt(x-log_x,y-log_y,z);log_x=x;log_y=y;
#define pu OnFwd(OUT_A,20);Wait(500);Off(OUT_A);
#define pd OnFwd(OUT_A,-SPEED);Wait(300);Off(OUT_A);Wait...
#define gh gf(0,0,1);
sub gt(float x,float y,float z) //(行き先の座標 , 繰り返...
{
const float axis = 100.0; //軸
const int rep = z; //繰り返し回数
const float rotation = 180.0; //軸を端から端まで動か...
const float correction = 0.5; //補正
float angle_x = ((rotation/axis)*x)/rep + sign(x)*co...
float angle_y = ((rotation/axis)*y)/rep + sign(y)*co...
repeat(rep)
{
RotateMotor(OUT_B,SPEED,angle_x);
RotateMotor(OUT_C,SPEED,angle_y);
}
Wait(400);
}
task main()
{
ResetTachoCount(OUT_BC);
float log_x = 0;
float log_y = 0;
//輪郭
pu;
gf(0.0,100.0,2);
pd;
gf(0.0,35.0,1);
gf(35.0,0.0,30);
gf(45.0,0.0,1);
gf(100.0,35.0,30);
gf(100.0,100.0,1);
gf(0.0,100.0,1);
pu;
//目
gf(25.0,45.0,2);
pd;
gf(45.0,45.0,1);
pu;
gf(60.0,45.0,1);
pd;
gf(80.0,45.0,1);
pu;
//鼻
gf(40.0,35.0,2);
pd;
gf(35.0,25.0,10);
gf(45.0,28.0,1);
pu;
//口
gf(30.0,15.0,2);
pd;
gf(60.0,15.0,2);
pu;
gh;
}
*感想 [#l5b2c4ba]
-図を描くロボットは状況を判断させて動かすロボットと違い一...
-x-y直交座標にすることでx軸y軸に平行な線を描く分には簡単...
-モーターは入力の通りに正確に動いてくれないので微妙な調節...
-ペン先の高さについても近すぎると摩擦が大きく動きにくくな...
*改善点 [#w2e34a19]
-x-y直交座標だと曲線、特に円を描くのが難しいので円をたく...
-今回のプログラムではモーターの一定の角度の回転で動く上下...
ページ名: