2012a/A4/Kaiyohmaru/M1
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*課題1 似顔絵を書くロボット [#a17e0c82]
-パートナーの似顔絵を描くロボットを作る。
***ルール説明 [#m3a4d36e]
-ロボットに似顔絵を描くプログラミングを入力し、ペンを使っ...
-ロボットの動作中は、ロボットに触れてはならない。
-紙のサイズはA4で、固定してはならない。
**ロボット本体 [#f7302be7]
NXCの説明書に載っていた前輪2個後輪1個のロボットに前にも...
向きを変えたとき、できるだけペンの先がずれないように車体...
。
出きるだけ、ずれないようにペンは真ん中にして、摩擦を減ら...
また、重量を増やして紙を押さえつける様にしました。
#ref(2012a/A4/Kaiyohmaru/M1/20120525155634a.jpg,100%,ロボ...
**ロボットが描いた似顔絵 [#p43cf7ad]
#ref(2012a/A4/Kaiyohmaru/M1/20120525160836a.jpg,100%,似顔...
-以下の順に描くようにしました。
?顔の輪郭
?口
?眉毛
?目
?鼻
?髪の毛
#ref(2012a/A4/Kaiyohmaru/M1/nigaoekakijun.jpg,100%,似顔絵)
**プログラム [#u64ef928]
//nxtプログラム 似顔絵
#define turn90 370
#define turn45 185
void bturn_r(int i){ //右輪後ろ回転
Float(OUT_BC);
RotateMotor(OUT_B,-50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void bturn_l(int i){ //左輪後ろ回転
Float(OUT_BC);
RotateMotor(OUT_C,-50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void fturn_l(int i){ //右輪前回転
Float(OUT_BC);
RotateMotor(OUT_B,50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void fturn_r(int i){ //左輪前回転
Float(OUT_BC);
RotateMotor(OUT_C,50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void go(int i){ //前進
Float(OUT_BC);
OnFwd(OUT_BC,20);
Wait(200);
RotateMotor(OUT_BC,50,i);
Wait(200);
Float(OUT_BC);
Wait(200);
}
void back(int i){ //後進
Float(OUT_BC);
OnRev(OUT_BC,20);
Wait(200);
RotateMotor(OUT_BC,-50,i);
Wait(200);
Float(OUT_BC);
Wait(200);
}
void up(){ //ペン上げる
Wait(200);
OnRev(OUT_A,30);
Wait(400);
Off(OUT_A);
Wait(200);
}
void down(){ //ペン下げる
Wait(200);
OnFwd(OUT_A,20);
Wait(400);
Off(OUT_A);
Wait(200);
}
task main(){
int i; //顔の輪郭
for(i=0;i<=1;i++){
down();
go(100);
up();
go(140);
bturn_l(turn45);
back(45);
}
down();
go(60);
up();
go(140);
bturn_l(turn45);
back(45);
for(i=0;i<=1;i++){
down();
go(100);
up();
go(140);
bturn_l(turn45);
back(45);
}
bturn_l(turn45);
go(115);
down();
go(30); //口
up();
go(60);
bturn_r(turn90);
go(80);
fturn_r(turn90);
back(250);
down(); //眉
back(50);
up();
back(15);
down();
back(50);
up();
fturn_r(turn90);
go(20);
bturn_r(turn90);
down(); //目
back(37);
up();
back(22);
down();
back(37);
up();
bturn_r(turn90);
go(20);
fturn_l(turn90);
go(52);
fturn_l(turn90);
back(200);
down(); //鼻
go(50);
up();
go(140);
bturn_l(turn45);
back(45);
down();
go(20);
up();
bturn_r(turn45);
back(180);
fturn_l(turn45);
down(); //髪の毛
go(70);
up();
repeat(5){
back(90);
bturn_l(turn90);
back(20);
fturn_r(turn90);
go(2);
down();
go(55);
up();
}
}
***問題点 [#oe8fcd32]
-タイヤが紙の外に出てしまうと、紙がずれやすくなる。
-スピードが速すぎても、遅すぎても紙がずれてしまう。
*工夫した点 [#i33c7ca3]
-ペン先の方向を斜めにすることで紙との摩擦を減らした。
-紙がずれないように描く絵を小さくし、ロボットのスピードを...
*感想 [#q3c88399]
初めてのロボット製作とプログラミングだったので、解らない...
終了行:
*課題1 似顔絵を書くロボット [#a17e0c82]
-パートナーの似顔絵を描くロボットを作る。
***ルール説明 [#m3a4d36e]
-ロボットに似顔絵を描くプログラミングを入力し、ペンを使っ...
-ロボットの動作中は、ロボットに触れてはならない。
-紙のサイズはA4で、固定してはならない。
**ロボット本体 [#f7302be7]
NXCの説明書に載っていた前輪2個後輪1個のロボットに前にも...
向きを変えたとき、できるだけペンの先がずれないように車体...
。
出きるだけ、ずれないようにペンは真ん中にして、摩擦を減ら...
また、重量を増やして紙を押さえつける様にしました。
#ref(2012a/A4/Kaiyohmaru/M1/20120525155634a.jpg,100%,ロボ...
**ロボットが描いた似顔絵 [#p43cf7ad]
#ref(2012a/A4/Kaiyohmaru/M1/20120525160836a.jpg,100%,似顔...
-以下の順に描くようにしました。
?顔の輪郭
?口
?眉毛
?目
?鼻
?髪の毛
#ref(2012a/A4/Kaiyohmaru/M1/nigaoekakijun.jpg,100%,似顔絵)
**プログラム [#u64ef928]
//nxtプログラム 似顔絵
#define turn90 370
#define turn45 185
void bturn_r(int i){ //右輪後ろ回転
Float(OUT_BC);
RotateMotor(OUT_B,-50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void bturn_l(int i){ //左輪後ろ回転
Float(OUT_BC);
RotateMotor(OUT_C,-50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void fturn_l(int i){ //右輪前回転
Float(OUT_BC);
RotateMotor(OUT_B,50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void fturn_r(int i){ //左輪前回転
Float(OUT_BC);
RotateMotor(OUT_C,50,i);
Wait(200);
Off(OUT_BC);
Wait(200);
}
void go(int i){ //前進
Float(OUT_BC);
OnFwd(OUT_BC,20);
Wait(200);
RotateMotor(OUT_BC,50,i);
Wait(200);
Float(OUT_BC);
Wait(200);
}
void back(int i){ //後進
Float(OUT_BC);
OnRev(OUT_BC,20);
Wait(200);
RotateMotor(OUT_BC,-50,i);
Wait(200);
Float(OUT_BC);
Wait(200);
}
void up(){ //ペン上げる
Wait(200);
OnRev(OUT_A,30);
Wait(400);
Off(OUT_A);
Wait(200);
}
void down(){ //ペン下げる
Wait(200);
OnFwd(OUT_A,20);
Wait(400);
Off(OUT_A);
Wait(200);
}
task main(){
int i; //顔の輪郭
for(i=0;i<=1;i++){
down();
go(100);
up();
go(140);
bturn_l(turn45);
back(45);
}
down();
go(60);
up();
go(140);
bturn_l(turn45);
back(45);
for(i=0;i<=1;i++){
down();
go(100);
up();
go(140);
bturn_l(turn45);
back(45);
}
bturn_l(turn45);
go(115);
down();
go(30); //口
up();
go(60);
bturn_r(turn90);
go(80);
fturn_r(turn90);
back(250);
down(); //眉
back(50);
up();
back(15);
down();
back(50);
up();
fturn_r(turn90);
go(20);
bturn_r(turn90);
down(); //目
back(37);
up();
back(22);
down();
back(37);
up();
bturn_r(turn90);
go(20);
fturn_l(turn90);
go(52);
fturn_l(turn90);
back(200);
down(); //鼻
go(50);
up();
go(140);
bturn_l(turn45);
back(45);
down();
go(20);
up();
bturn_r(turn45);
back(180);
fturn_l(turn45);
down(); //髪の毛
go(70);
up();
repeat(5){
back(90);
bturn_l(turn90);
back(20);
fturn_r(turn90);
go(2);
down();
go(55);
up();
}
}
***問題点 [#oe8fcd32]
-タイヤが紙の外に出てしまうと、紙がずれやすくなる。
-スピードが速すぎても、遅すぎても紙がずれてしまう。
*工夫した点 [#i33c7ca3]
-ペン先の方向を斜めにすることで紙との摩擦を減らした。
-紙がずれないように描く絵を小さくし、ロボットのスピードを...
*感想 [#q3c88399]
初めてのロボット製作とプログラミングだったので、解らない...
ページ名: