2019b/Member/kurisuke/Mission1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019b/Member]]
目次
#contents
*課題1 [#ldb3275f]
チームメイトの似顔絵を自動で描くロボットを製作せよ。似顔...
**今回のポイント [#s04e08cc]
チームメイトの顔の特徴である丸顔と細目が際立つようなプロ...
*ロボットの説明 [#s6bb2e6f]
**全体の構造 [#e7fe3ca4]
比較的簡単にプログラムを書けるということで、xyz軸を用いた...
下の写真がロボットの全体であり、赤線のようにxyz軸をとった。
&ref(2019b/Member/kurisuke/Mission1/S__4702236_LI.jpg,50%...
**?ペンを縦横に動かす(x軸y軸方向)機構 [#q0249d7e]
x軸y軸に動かす機構は同じように製作した。下の写真のような...
&ref(2019b/Member/kurisuke/Mission1/S__4702232_LI.jpg,25%...
**?ペンを上に動かす(z軸方向)機構 [#m273ff41]
ペンは下の写真のように取り付けた。ここでは、ペンと紙の間...
&ref(2019b/Member/kurisuke/Mission1/S__4702233.jpg,25%,ペ...
&ref(2019b/Member/kurisuke/Mission1/S__4702235 (2)_LI.jpg...
ペンの上げ下げの仕組みとしては、モーターで棒を降ろすこと...
*プログラムの説明 [#hc0fec57]
これが、今回使用したプログラムです。
#define SPEED 10
#define P 40
#define I 40
#define D 90
#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); //ホームポジション (0,0) に戻る
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);
RotateMotorPID(OUT_B,SPEED,angle_x,P,I,D);
//RotateMotor(OUT_C,SPEED,angle_y);
RotateMotorPID(OUT_C,SPEED,angle_y,P,I,D);
}
Wait(400);
}
task main()
{
ResetTachoCount(OUT_BC);
float log_x = 0;
float log_y = 0;
//輪郭
pu;
gf(40.0,100.0,2);
pd;
gf(0.0,50.0,30);
gf(30.0,0.0,30);
gf(100.0,50.0,30);
gf(10.0,100.0,30);
pu;
//目
gf(15.0,45.0,2);
pd;
gf(30.0,45.0,1);
pu;
gf(50.0,45.0,1);
pd;
gf(70.0,45.0,1);
pu;
//鼻
gf(30.0,35.0,2);
pd;
gf(25.0,25.0,10);
gf(35.0,28.0,1);
pu;
//口
gf(15.0,15.0,2);
pd;
gf(40.0,15.0,2);
pu;
gh;
}
これから、詳しく見ていく。
**ペンを動かすプログラム [#a9aeac64]
x軸y軸を100等分して動かすことにした。そして、関数“log”を...
rep(repeat)を計算に入れることで斜めの線を階段のように細か...
モーターが動き出してペンが移動するまでの間をプログラム内...
#define SPEED 10
#define P 40
#define I 40
#define D 90
#define gf(x,y,z) gt(x-log_x,y-log_y,z);log_x=x;log_y=y;...
数)
#define gh gf(0,0,1); //ホームポジション (0,0) に戻る
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);
RotateMotorPID(OUT_B,SPEED,angle_x,P,I,D);
//RotateMotor(OUT_C,SPEED,angle_y);
RotateMotorPID(OUT_C,SPEED,angle_y,P,I,D);
}
Wait(400);
}
**ペンの上げ下げを行うプログラム [#n64bb548]
#define pu OnFwd(OUT_A,20);Wait(500);Off(OUT_A); //ペン...
#define pd OnFwd(OUT_A,-SPEED);Wait(300);Off(OUT_A);Wait...
何回も使うので、マクロを使用して簡略化した。
pu: put up pd: put down という意味でつけた。
**工夫したプログラム [#jd8ffa5d]
//輪郭
pu;
gf(40.0,100.0,2);
pd;
gf(0.0,50.0,30);
gf(30.0,0.0,30);
gf(100.0,50.0,30);
gf(10.0,100.0,30);
pu;
このプログラムでは、repの値を30と大きくすることで、滑らか...
*完成した似顔絵 [#m072fd5e]
これが完成した似顔絵である(発表会での似顔絵より試運転時の...
&ref(2019b/Member/kurisuke/Mission1/S__4890653.jpg,35%,完...
*課題1の反省と感想 [#o3317c5d]
初めてのロボット作りで悩むことが多々あったが、しっかりと...
終了行:
[[2019b/Member]]
目次
#contents
*課題1 [#ldb3275f]
チームメイトの似顔絵を自動で描くロボットを製作せよ。似顔...
**今回のポイント [#s04e08cc]
チームメイトの顔の特徴である丸顔と細目が際立つようなプロ...
*ロボットの説明 [#s6bb2e6f]
**全体の構造 [#e7fe3ca4]
比較的簡単にプログラムを書けるということで、xyz軸を用いた...
下の写真がロボットの全体であり、赤線のようにxyz軸をとった。
&ref(2019b/Member/kurisuke/Mission1/S__4702236_LI.jpg,50%...
**?ペンを縦横に動かす(x軸y軸方向)機構 [#q0249d7e]
x軸y軸に動かす機構は同じように製作した。下の写真のような...
&ref(2019b/Member/kurisuke/Mission1/S__4702232_LI.jpg,25%...
**?ペンを上に動かす(z軸方向)機構 [#m273ff41]
ペンは下の写真のように取り付けた。ここでは、ペンと紙の間...
&ref(2019b/Member/kurisuke/Mission1/S__4702233.jpg,25%,ペ...
&ref(2019b/Member/kurisuke/Mission1/S__4702235 (2)_LI.jpg...
ペンの上げ下げの仕組みとしては、モーターで棒を降ろすこと...
*プログラムの説明 [#hc0fec57]
これが、今回使用したプログラムです。
#define SPEED 10
#define P 40
#define I 40
#define D 90
#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); //ホームポジション (0,0) に戻る
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);
RotateMotorPID(OUT_B,SPEED,angle_x,P,I,D);
//RotateMotor(OUT_C,SPEED,angle_y);
RotateMotorPID(OUT_C,SPEED,angle_y,P,I,D);
}
Wait(400);
}
task main()
{
ResetTachoCount(OUT_BC);
float log_x = 0;
float log_y = 0;
//輪郭
pu;
gf(40.0,100.0,2);
pd;
gf(0.0,50.0,30);
gf(30.0,0.0,30);
gf(100.0,50.0,30);
gf(10.0,100.0,30);
pu;
//目
gf(15.0,45.0,2);
pd;
gf(30.0,45.0,1);
pu;
gf(50.0,45.0,1);
pd;
gf(70.0,45.0,1);
pu;
//鼻
gf(30.0,35.0,2);
pd;
gf(25.0,25.0,10);
gf(35.0,28.0,1);
pu;
//口
gf(15.0,15.0,2);
pd;
gf(40.0,15.0,2);
pu;
gh;
}
これから、詳しく見ていく。
**ペンを動かすプログラム [#a9aeac64]
x軸y軸を100等分して動かすことにした。そして、関数“log”を...
rep(repeat)を計算に入れることで斜めの線を階段のように細か...
モーターが動き出してペンが移動するまでの間をプログラム内...
#define SPEED 10
#define P 40
#define I 40
#define D 90
#define gf(x,y,z) gt(x-log_x,y-log_y,z);log_x=x;log_y=y;...
数)
#define gh gf(0,0,1); //ホームポジション (0,0) に戻る
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);
RotateMotorPID(OUT_B,SPEED,angle_x,P,I,D);
//RotateMotor(OUT_C,SPEED,angle_y);
RotateMotorPID(OUT_C,SPEED,angle_y,P,I,D);
}
Wait(400);
}
**ペンの上げ下げを行うプログラム [#n64bb548]
#define pu OnFwd(OUT_A,20);Wait(500);Off(OUT_A); //ペン...
#define pd OnFwd(OUT_A,-SPEED);Wait(300);Off(OUT_A);Wait...
何回も使うので、マクロを使用して簡略化した。
pu: put up pd: put down という意味でつけた。
**工夫したプログラム [#jd8ffa5d]
//輪郭
pu;
gf(40.0,100.0,2);
pd;
gf(0.0,50.0,30);
gf(30.0,0.0,30);
gf(100.0,50.0,30);
gf(10.0,100.0,30);
pu;
このプログラムでは、repの値を30と大きくすることで、滑らか...
*完成した似顔絵 [#m072fd5e]
これが完成した似顔絵である(発表会での似顔絵より試運転時の...
&ref(2019b/Member/kurisuke/Mission1/S__4890653.jpg,35%,完...
*課題1の反省と感想 [#o3317c5d]
初めてのロボット作りで悩むことが多々あったが、しっかりと...
ページ名: