2014b/Member/yuka/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*メンバー [#r15374e9]
飯島清貴 園部優花(自分) 柳澤曙太 横田翔真
*課題 [#h2252517]
課題2で使用したライントレースの紙を二枚つなげて、所定の位...
*ロボット [#d84b04cd]
今回のロボットの製作にはとても時間がかかりました。どのよ...
ロボットの全体像はこちらです。
&ref(ロボコン1.jpg);&ref(ロボコン2.jpg);
私たちのチームはロボット前方のアームで紙コップを持ち上げ...
&ref(ロボコン4.jpg);&ref(ロボコン6.jpg);
本番で成功するところを私は見ることができませんでしたが、...
*プログラム [#g1b501e6]
はじめにメインのプログラムで使うプログラム等を定義しまし...
#define CONN 1
#define SIGNALON 1
#define OPEN_SPEED 15
#define OPEN OnFwd(OUT_A,OPEN_SPEED);Wait(800);Off(OUT_A);
#define CLOSE OnRev(OUT_A,OPEN_SPEED);Wait(1300);Off(OUT...
#define SPEED_H 70
#define SPEED_L 50
const float diameter = 5.6; //タイヤの直径(?)
const float track = 10.5; //タイヤのトレッド幅(?)
const float pi = 3.1415; //円周率
float GetAngle_turn(float a) //求める本体の回転角から...
{float ang = (a*track)/diameter;
return ang;}
float GetAngle_go(float a) //求める移動距離からタイヤ...
{float ang = a/(diameter*pi)*360.0;
return ang;}
sub angle_turn_L(float t) //左にt度回転
{int angle_turn_L = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED_H,angle_turn_L,-100,true,true...
Off(OUT_BC);}
sub angle_turn_R(float t) //右にt度回転
{int angle_turn_R = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED_H,angle_turn_R,100,true,true)...
Off(OUT_BC);}
sub dist_go_F(float t) //前にtセンチ進む
{int angle_go_F = GetAngle_go(t);
RotateMotorEx(OUT_BC,SPEED_H,angle_go_F,0,true,true);
Off(OUT_BC);}
sub dist_go_R(float t) //後ろにtセンチ進む
{int angle_go_R = GetAngle_go(t);
RotateMotorEx(OUT_BC,-SPEED_H,angle_go_R,0,true,true);
Off(OUT_BC);}
ここからがメインプログラムです。今回は2台のNXTを通信させ...
task main()
{dist_go_F(57.0);//コップを取るボール搭載の信号を送る
SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
Wait(9000);//スレーブ側のプログラムが終わるまで待つ
angle_turn_R(150.0);
dist_go_F(40.0);//コップを取るボール搭載の信号を送る
SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
Wait(9000);//反転して
dist_go_R(5.0);
angle_turn_R(190.0);
dist_go_R(20.0);//ボールを置く
OPEN;
Wait(1000);
CLOSE;
dist_go_F(50.0);//反転して
dist_go_R(20.0);
angle_turn_R(220.0);//コップまで近づく
dist_go_R(33.0);//ボールを置く信号を送る
OPEN;
Wait(1000);
CLOSE;//離れる
dist_go_F(20.0);}
次は通信を受けるスレーブ側のプログラムです。コップを持ち...
#define SIGNALON 1
#define ARM_TIME1 1000 //アームの開閉時間1
#define ARM_TIME2 2000 //アームの開閉時間2
#define ARM_SPEED1 10 //アームの開閉スピード1
#define ARM_SPEED2 50 //アームの開閉スピード2
#define UP_TIME 2000 //アームを上げる時間
#define UP_SPEED 50 //アームを上げるスピード
#define DOWN_TIME 1800 //アームを下げる時間
#define DOWN_SPEED 20 //アームを下げるスピード
task main()
{int msg; //受け取った値を格納する変数
while(true){ReceiveRemoteNumber(MAILBOX1, true, msg);//M...
if(msg==SIGNALON){
OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);//ア...
OnRev(OUT_B,ARM_SPEED2);Wait(ARM_TIME2);Off(OUT_B);//ア...
OnRev(OUT_C,UP_SPEED);OnRev(OUT_B,ARM_SPEED2);Wait(UP_TI...
OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);//ア...
OnFwd(OUT_B,ARM_SPEED1);Wait(ARM_TIME1);Off(OUT_B);//ア...
ARM_UP2 OnRev(OUT_C,UP_SPEED);Wait(450);Off(OUT_C);//ア...
}else{Off(OUT_BC);}
}
}
*反省と感想 [#jfa7e774]
ロボットの組み立てに時間をかけてしまい、プログラムに費や...
終了行:
#contents
*メンバー [#r15374e9]
飯島清貴 園部優花(自分) 柳澤曙太 横田翔真
*課題 [#h2252517]
課題2で使用したライントレースの紙を二枚つなげて、所定の位...
*ロボット [#d84b04cd]
今回のロボットの製作にはとても時間がかかりました。どのよ...
ロボットの全体像はこちらです。
&ref(ロボコン1.jpg);&ref(ロボコン2.jpg);
私たちのチームはロボット前方のアームで紙コップを持ち上げ...
&ref(ロボコン4.jpg);&ref(ロボコン6.jpg);
本番で成功するところを私は見ることができませんでしたが、...
*プログラム [#g1b501e6]
はじめにメインのプログラムで使うプログラム等を定義しまし...
#define CONN 1
#define SIGNALON 1
#define OPEN_SPEED 15
#define OPEN OnFwd(OUT_A,OPEN_SPEED);Wait(800);Off(OUT_A);
#define CLOSE OnRev(OUT_A,OPEN_SPEED);Wait(1300);Off(OUT...
#define SPEED_H 70
#define SPEED_L 50
const float diameter = 5.6; //タイヤの直径(?)
const float track = 10.5; //タイヤのトレッド幅(?)
const float pi = 3.1415; //円周率
float GetAngle_turn(float a) //求める本体の回転角から...
{float ang = (a*track)/diameter;
return ang;}
float GetAngle_go(float a) //求める移動距離からタイヤ...
{float ang = a/(diameter*pi)*360.0;
return ang;}
sub angle_turn_L(float t) //左にt度回転
{int angle_turn_L = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED_H,angle_turn_L,-100,true,true...
Off(OUT_BC);}
sub angle_turn_R(float t) //右にt度回転
{int angle_turn_R = GetAngle_turn(t);
RotateMotorEx(OUT_BC,SPEED_H,angle_turn_R,100,true,true)...
Off(OUT_BC);}
sub dist_go_F(float t) //前にtセンチ進む
{int angle_go_F = GetAngle_go(t);
RotateMotorEx(OUT_BC,SPEED_H,angle_go_F,0,true,true);
Off(OUT_BC);}
sub dist_go_R(float t) //後ろにtセンチ進む
{int angle_go_R = GetAngle_go(t);
RotateMotorEx(OUT_BC,-SPEED_H,angle_go_R,0,true,true);
Off(OUT_BC);}
ここからがメインプログラムです。今回は2台のNXTを通信させ...
task main()
{dist_go_F(57.0);//コップを取るボール搭載の信号を送る
SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
Wait(9000);//スレーブ側のプログラムが終わるまで待つ
angle_turn_R(150.0);
dist_go_F(40.0);//コップを取るボール搭載の信号を送る
SendRemoteNumber(CONN, MAILBOX1, SIGNALON);
Wait(9000);//反転して
dist_go_R(5.0);
angle_turn_R(190.0);
dist_go_R(20.0);//ボールを置く
OPEN;
Wait(1000);
CLOSE;
dist_go_F(50.0);//反転して
dist_go_R(20.0);
angle_turn_R(220.0);//コップまで近づく
dist_go_R(33.0);//ボールを置く信号を送る
OPEN;
Wait(1000);
CLOSE;//離れる
dist_go_F(20.0);}
次は通信を受けるスレーブ側のプログラムです。コップを持ち...
#define SIGNALON 1
#define ARM_TIME1 1000 //アームの開閉時間1
#define ARM_TIME2 2000 //アームの開閉時間2
#define ARM_SPEED1 10 //アームの開閉スピード1
#define ARM_SPEED2 50 //アームの開閉スピード2
#define UP_TIME 2000 //アームを上げる時間
#define UP_SPEED 50 //アームを上げるスピード
#define DOWN_TIME 1800 //アームを下げる時間
#define DOWN_SPEED 20 //アームを下げるスピード
task main()
{int msg; //受け取った値を格納する変数
while(true){ReceiveRemoteNumber(MAILBOX1, true, msg);//M...
if(msg==SIGNALON){
OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);//ア...
OnRev(OUT_B,ARM_SPEED2);Wait(ARM_TIME2);Off(OUT_B);//ア...
OnRev(OUT_C,UP_SPEED);OnRev(OUT_B,ARM_SPEED2);Wait(UP_TI...
OnFwd(OUT_C,DOWN_SPEED);Wait(DOWN_TIME);Off(OUT_C);//ア...
OnFwd(OUT_B,ARM_SPEED1);Wait(ARM_TIME1);Off(OUT_B);//ア...
ARM_UP2 OnRev(OUT_C,UP_SPEED);Wait(450);Off(OUT_C);//ア...
}else{Off(OUT_BC);}
}
}
*反省と感想 [#jfa7e774]
ロボットの組み立てに時間をかけてしまい、プログラムに費や...
ページ名: