2016a/Member/dragstar/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題内容 [#hf0b64d6]
紙コップをC地点、D地点にそれぞれ3個(合計6個)置き、C地点...
紙コップは上下どちらにおいてもかまわない
2台のロボットの場合はA地点とB地点からスタート、一体型の場...
最終的に黒線で囲まれた輪の中にC地点からの紙コップとD地点...
紙コップを重ねる場所は、必ずしも目的地点の輪の中でなくて...
最終的に紙コップが自力で立っていること、またロボットが紙...
競技時間はすべてのコップを重ね終わるまで、あるいは審判が...
審判の合図の後、5秒以内にロボットをスタートさせ、それ以降...
EV3のチームはA,B,Cにそれぞれマークした紙コップをそれぞれ3...
EV3のチームはA,B,C,Dのどこからスタートしてもよいが、別の...
紙コップに色を塗ったり文字や絵をかいてもよいが、穴を開け...
光センサは2セット合わせて2つまで使って良い、その他のセン...
**攻略にあたって [#pe3656eb]
私たちのグループではロボットの構造上の問題からライント...
そのコースの概要を以下の図に示します。
?ロボットを起動してCの地点のコップのまえまで直進させます。
?コップ前で静止させてアームを起動しコップをつかみます。
?コップを完全にホールドすると旋回してゴール地点を目指して...
?ゴール地点で静止してつかんでいたコップを離します。
#ref(コース.jpg)
*ロボットの説明 [#m5a4490a]
#ref(ロボット1.jpg)
#ref(ロボット2.jpg)
#ref(ロボット3.jpg)
#ref(ロボット4.jpg)
#ref(ロボット5.jpg)
#ref(ロボット6.jpg)
二つのNXTを組み合わせて一つの機体に仕上げています。
赤で示した部分がアーム部分で青で示した部分が土台です。
緑で示した部分が超音波センサーでこれを用いてコップを認識...
**アーム部分 [#n9b09441]
アームははさみ状に作った棒の先端にタイヤを二つ付けて作っ...
このアームはコップの直前で土台(マスター)から送られてくる...
その後、リフト部位を動かしてホールド部位を元の位置に戻し...
コップを離す際は、リフト部位を動かしホールド部位を下げて...
**土台部分 [#o4214532]
がっちりとした構造になっている。
土台部分については、コントローラー(黒で示す)を二つのせ...
どのような状況かというと、機体重量が重たすぎて出力を上げ...
これが原因で上記に示したような戦法をとるしかなくってしま...
*プログラムの説明 [#d1889d6a]
今回の課題ではNXTを二つ連携させる必要があり、それぞれに...
マスター側(土台側)では移動用の二つのモーターと超音波セ...
**スレーブ(アーム)側 [#k3e2420e]
#define SIGNALON 21 ...
#define SIGNALOFF 22 ...
#define LIFT_up OnRev(OUT_C,35);Wait(520);Off(OUT_BC); ...
#define LIFT_down OnFwd(OUT_C,20);Wait(550);Off(OUT_BC);...
#define CATCH OnFwd(OUT_B,60);Wait(2000);Off(OUT_B); ...
#define RELEASE OnFwd(OUT_B,50);Wait(1500);Off(OUT_B); ...
#define CONN 0 ...
#define SIGNALON2 31
#define SIGNALOFF2 32
void ude() //サブルーチン
{
LIFT_down;
CATCH;
LIFT_up;
CATCH;
Off(OUT_B);
}
task main ()
{
int msg;
while (true) {
ReceiveRemoteNumber(MAILBOX1,true,msg); //...
if (msg == SIGNALON) { //...
ude();
SendResponseNumber(MAILBOX2,SIGNALOFF); //本...
}
if (msg == SIGNALON2) { //信号...
RELEASE;
SendResponseNumber(MAILBOX2,SIGNALOFF2); //...
} else { /...
Off(OUT_BC);
}
}
}
**マスター(土台)側 [#cc3bbdc4]
#define SPEED 50 //スピード50
#define go_forward OnFwd(OUT_BC,SPEED); //前進
#define CONN 1 //スレーブ...
#define SIGNALON 21 //腕を動か...
#define SIGNALOFF 22 //腕を動か...
#define SIGNALON2 31
#define SIGNALOFF2 32
#define turn_leftC OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED...
#define turn_rightC OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED...
task main()
{
int msg //MAILB...
SetSensorLowspeed(S1); //端...
go_forward; //前進
until(SensorUS(S1) <= 9); ...
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON ); ...
while (true){
ReceiveRemoteNumber(MAILBOX2,true,msg); //msgを受け取...
if (msg == SIGNALOFF ){ //信号...
turn_leftC;
Wait(1600);
Off(OUT_BC);
go_forward; ...
Wait(1000);
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON2 ); ...
if (msg == SIGNALOFF2 ){ //信号を...
turn_leftC;
Wait(1000);
Off(OUT_BC);
}else { ...
Off(OUT_BC);
}
}
}
}
*感想・反省 [#zc1b1991]
結果としては本番では、ゴール地点でコップを離せなかった...
今回の課題に対する反省点はロボットの説明で示した通りで...
改善する点としては二つのNXTを一つにするのではなくコップを...
こうすることによってライントレースによる安定したコップの...
終了行:
#contents
*課題内容 [#hf0b64d6]
紙コップをC地点、D地点にそれぞれ3個(合計6個)置き、C地点...
紙コップは上下どちらにおいてもかまわない
2台のロボットの場合はA地点とB地点からスタート、一体型の場...
最終的に黒線で囲まれた輪の中にC地点からの紙コップとD地点...
紙コップを重ねる場所は、必ずしも目的地点の輪の中でなくて...
最終的に紙コップが自力で立っていること、またロボットが紙...
競技時間はすべてのコップを重ね終わるまで、あるいは審判が...
審判の合図の後、5秒以内にロボットをスタートさせ、それ以降...
EV3のチームはA,B,Cにそれぞれマークした紙コップをそれぞれ3...
EV3のチームはA,B,C,Dのどこからスタートしてもよいが、別の...
紙コップに色を塗ったり文字や絵をかいてもよいが、穴を開け...
光センサは2セット合わせて2つまで使って良い、その他のセン...
**攻略にあたって [#pe3656eb]
私たちのグループではロボットの構造上の問題からライント...
そのコースの概要を以下の図に示します。
?ロボットを起動してCの地点のコップのまえまで直進させます。
?コップ前で静止させてアームを起動しコップをつかみます。
?コップを完全にホールドすると旋回してゴール地点を目指して...
?ゴール地点で静止してつかんでいたコップを離します。
#ref(コース.jpg)
*ロボットの説明 [#m5a4490a]
#ref(ロボット1.jpg)
#ref(ロボット2.jpg)
#ref(ロボット3.jpg)
#ref(ロボット4.jpg)
#ref(ロボット5.jpg)
#ref(ロボット6.jpg)
二つのNXTを組み合わせて一つの機体に仕上げています。
赤で示した部分がアーム部分で青で示した部分が土台です。
緑で示した部分が超音波センサーでこれを用いてコップを認識...
**アーム部分 [#n9b09441]
アームははさみ状に作った棒の先端にタイヤを二つ付けて作っ...
このアームはコップの直前で土台(マスター)から送られてくる...
その後、リフト部位を動かしてホールド部位を元の位置に戻し...
コップを離す際は、リフト部位を動かしホールド部位を下げて...
**土台部分 [#o4214532]
がっちりとした構造になっている。
土台部分については、コントローラー(黒で示す)を二つのせ...
どのような状況かというと、機体重量が重たすぎて出力を上げ...
これが原因で上記に示したような戦法をとるしかなくってしま...
*プログラムの説明 [#d1889d6a]
今回の課題ではNXTを二つ連携させる必要があり、それぞれに...
マスター側(土台側)では移動用の二つのモーターと超音波セ...
**スレーブ(アーム)側 [#k3e2420e]
#define SIGNALON 21 ...
#define SIGNALOFF 22 ...
#define LIFT_up OnRev(OUT_C,35);Wait(520);Off(OUT_BC); ...
#define LIFT_down OnFwd(OUT_C,20);Wait(550);Off(OUT_BC);...
#define CATCH OnFwd(OUT_B,60);Wait(2000);Off(OUT_B); ...
#define RELEASE OnFwd(OUT_B,50);Wait(1500);Off(OUT_B); ...
#define CONN 0 ...
#define SIGNALON2 31
#define SIGNALOFF2 32
void ude() //サブルーチン
{
LIFT_down;
CATCH;
LIFT_up;
CATCH;
Off(OUT_B);
}
task main ()
{
int msg;
while (true) {
ReceiveRemoteNumber(MAILBOX1,true,msg); //...
if (msg == SIGNALON) { //...
ude();
SendResponseNumber(MAILBOX2,SIGNALOFF); //本...
}
if (msg == SIGNALON2) { //信号...
RELEASE;
SendResponseNumber(MAILBOX2,SIGNALOFF2); //...
} else { /...
Off(OUT_BC);
}
}
}
**マスター(土台)側 [#cc3bbdc4]
#define SPEED 50 //スピード50
#define go_forward OnFwd(OUT_BC,SPEED); //前進
#define CONN 1 //スレーブ...
#define SIGNALON 21 //腕を動か...
#define SIGNALOFF 22 //腕を動か...
#define SIGNALON2 31
#define SIGNALOFF2 32
#define turn_leftC OnFwd(OUT_B,SPEED);OnRev(OUT_C,SPEED...
#define turn_rightC OnFwd(OUT_C,SPEED);OnRev(OUT_B,SPEED...
task main()
{
int msg //MAILB...
SetSensorLowspeed(S1); //端...
go_forward; //前進
until(SensorUS(S1) <= 9); ...
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON ); ...
while (true){
ReceiveRemoteNumber(MAILBOX2,true,msg); //msgを受け取...
if (msg == SIGNALOFF ){ //信号...
turn_leftC;
Wait(1600);
Off(OUT_BC);
go_forward; ...
Wait(1000);
Off(OUT_BC);
SendRemoteNumber(CONN,MAILBOX1,SIGNALON2 ); ...
if (msg == SIGNALOFF2 ){ //信号を...
turn_leftC;
Wait(1000);
Off(OUT_BC);
}else { ...
Off(OUT_BC);
}
}
}
}
*感想・反省 [#zc1b1991]
結果としては本番では、ゴール地点でコップを離せなかった...
今回の課題に対する反省点はロボットの説明で示した通りで...
改善する点としては二つのNXTを一つにするのではなくコップを...
こうすることによってライントレースによる安定したコップの...
ページ名: