2015b/Member/fujiTaka/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2015b/Member]]
目次
#contents
* 課題 [#i21f3510]
#ref(2015b/Member/fujiTaka/Mission3/2015b-mission3.png,50%)
** 基本ルール [#x58bc7ad]
・競技時間はロボットAがSTART A地点のスタートラインを横切...
・ロボットAはSTART A地点から出発し、P地点におかれた赤いボ...
・アルミ缶は中身が入っているものを使う。
RISのチームはアルミ缶の上に灯台としてランタンを置く。
・ボールがアルミ缶に当たる前にロボットBがボールに触っては...
・ロボットAはセンターラインを超えては行けない。
・アルミ缶を5cm以上動かした場合は減点
** 技術点の計算方法 [#af4f9001]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
得点の目安:
・ボールをつかむ動作 (2点)
・ボールを運ぶ動作、ライントレースの正確さ、滑らかさ(2点)
・ボールを投げる動作・正確さ(3点)
・ボールを探す動作(3点)
・ボールを回収してゴールまで運ぶ動作(2点)
・2台のNXTの連携の良さ(2点)
・自立型のロボットとしての形や動作の美しさ、斬新さ(3点)
・その他 (3点)
* ロボットの紹介 [#m2fe5d36]
#ref(2015b/Member/fujiTaka/Mission3/zentai2.jpg,30%)
#ref(2015b/Member/fujiTaka/Mission3/zentai3.jpg,30%)
上の写真はロボットA。下の写真がロボットB。ロボットAはnqc...
ロボットBは超音波センサーでボールを探す。スタート地点付近...
以下ロボットAについて説明する。今回使ったモーターは3つ。...
** 土台部分 [#a94a5ee2]
アーム部分で大量に棒などを固定するためのパーツが必要とな...
** アーム部分 [#r9494fec]
#ref(2015b/Member/fujiTaka/Mission3/kako.jpg,30%)
#ref(2015b/Member/fujiTaka/Mission3/tukamu.jpg,30%)
ボールをつかんだり、投げたりする部分である。制作初期の段...
** 光センサー部分 [#o975b334]
ライントレースのための光センサーはボールを乗せる土台に付...
* プログラム [#e7c5649f]
OnFwdとOnRevが逆になっているのはモーターの接続が逆になっ...
** 定義 [#lf0463fb]
int light_max = 0; int turn_time = 500; int time_max = 0...
** サブプログラム [#e09a923d]
sub light(){
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
OnFwd(OUT_A);OnRev(OUT_C);
while(FastTimer(0) < turn_time){
if(SENSOR_2 > light_max){
light_max = SENSOR_2;
time_max = FastTimer(0);
}
}
Off(OUT_AC);Wait(100);
OnFwd(OUT_C);OnRev(OUT_A);Wait(turn_time - time_...
Off(OUT_AC);Wait(100);
}
これはランプの方向を探すためのプログラムである。最初に1...
** メインプログラム [#j0c83e30]
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
*** ボールを拾う [#f316ddc1]
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
OnRev(OUT_AC);Wait(200);
OnRev(OUT_A);OnFwd(OUT_C);Wait(100);
OnRev(OUT_AC);Wait(200);
Off(OUT_AC);Wait(100);
SetPower(OUT_B, 1);OnRev(OUT_B);Wait(100);
最初にアームを上げる。このときモーターBをOffにしないのは...
*** ボールを缶に当てる [#f6978e18]
OnRev(OUT_C);OnFwd(OUT_A);Wait(150);
OnRev(OUT_AC);Wait(300);
while(light_max < 65){
OnRev(OUT_AC);Wait(50);Off(OUT_AC);
light();
}
PlaySound(SOUND_CLICK);
light();
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
最初に光センサーがランプの光を感知できるように、ある程度...
ある程度近づいたらサブルーチンを使って光を探し始める。サ...
***ライントレースまで [#ace5e832]
OnFwd(OUT_C);OnRev(OUT_A);Wait(150);
Off(OUT_AC);Wait(100);
OnRev(OUT_AC);Wait(200);
OnRev(OUT_AC);until(SENSOR_1 < 41); Off(OUT_AC);
PlaySound(SOUND_CLICK);Wait(100);
最初に右斜め後ろを向くように100°~150°くらい回る。その後、...
***ライントレースでボールを見つける [#h0d7127f]
ClearTimer(1);
while(FastTimer(1) < 50){
if(SENSOR_1 > 49){
OnRev(OUT_A);OnFwd(OUT_C);
} else if(SENSOR_1 > 46){
OnRev(OUT_A);Off(OUT_C);
} else if(SENSOR_1 > 40){
OnRev(OUT_AC);ClearTimer(1);
} else if(SENSOR_1 > 37){
OnRev(OUT_C);Off(OUT_A);ClearTimer(1);
} else{
OnRev(OUT_C);OnFwd(OUT_A);ClearTimer(1);
}
}
OnRev(OUT_A);OnFwd(OUT_C);Wait(80);
OnRev(OUT_AC);Wait(150);Off(OUT_AC);Wait(100);
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
SetPower(OUT_B,1);OnRev(OUT_B);Wait(100);Off(OUT...
ライントレースは交差点を探すのと同じ要領で角を探す。黒線...
*** ボールを缶に当てる [#k088a384]
OnFwd(OUT_A);OnRev(OUT_C);Wait(350);
OnRev(OUT_AC);Wait(200);
while(SENSOR_2 < 50){
OnRev(OUT_AC);Wait(50);Off(OUT_AC);
light();
}
PlaySound(SOUND_CLICK);
light();OnRev(OUT_A);OnFwd(OUT_C);Wait(35);
Off(OUT_AC);Wait(100);
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
OnFwd(OUT_AC);Wait(100);
Off(OUT_AC);
}
一回目にボールを当てたときとほぼ同じである。
ボールを投げた後少し下がって止まる。
* 感想とまとめ [#if416d16]
今回は最後の課題ということで、今までの総まとめのような感...
終了行:
[[2015b/Member]]
目次
#contents
* 課題 [#i21f3510]
#ref(2015b/Member/fujiTaka/Mission3/2015b-mission3.png,50%)
** 基本ルール [#x58bc7ad]
・競技時間はロボットAがSTART A地点のスタートラインを横切...
・ロボットAはSTART A地点から出発し、P地点におかれた赤いボ...
・アルミ缶は中身が入っているものを使う。
RISのチームはアルミ缶の上に灯台としてランタンを置く。
・ボールがアルミ缶に当たる前にロボットBがボールに触っては...
・ロボットAはセンターラインを超えては行けない。
・アルミ缶を5cm以上動かした場合は減点
** 技術点の計算方法 [#af4f9001]
以下の動作の精度・スピード・確実性などを含めた技術的な工...
得点の目安:
・ボールをつかむ動作 (2点)
・ボールを運ぶ動作、ライントレースの正確さ、滑らかさ(2点)
・ボールを投げる動作・正確さ(3点)
・ボールを探す動作(3点)
・ボールを回収してゴールまで運ぶ動作(2点)
・2台のNXTの連携の良さ(2点)
・自立型のロボットとしての形や動作の美しさ、斬新さ(3点)
・その他 (3点)
* ロボットの紹介 [#m2fe5d36]
#ref(2015b/Member/fujiTaka/Mission3/zentai2.jpg,30%)
#ref(2015b/Member/fujiTaka/Mission3/zentai3.jpg,30%)
上の写真はロボットA。下の写真がロボットB。ロボットAはnqc...
ロボットBは超音波センサーでボールを探す。スタート地点付近...
以下ロボットAについて説明する。今回使ったモーターは3つ。...
** 土台部分 [#a94a5ee2]
アーム部分で大量に棒などを固定するためのパーツが必要とな...
** アーム部分 [#r9494fec]
#ref(2015b/Member/fujiTaka/Mission3/kako.jpg,30%)
#ref(2015b/Member/fujiTaka/Mission3/tukamu.jpg,30%)
ボールをつかんだり、投げたりする部分である。制作初期の段...
** 光センサー部分 [#o975b334]
ライントレースのための光センサーはボールを乗せる土台に付...
* プログラム [#e7c5649f]
OnFwdとOnRevが逆になっているのはモーターの接続が逆になっ...
** 定義 [#lf0463fb]
int light_max = 0; int turn_time = 500; int time_max = 0...
** サブプログラム [#e09a923d]
sub light(){
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
ClearTimer(0);
OnFwd(OUT_A);OnRev(OUT_C);
while(FastTimer(0) < turn_time){
if(SENSOR_2 > light_max){
light_max = SENSOR_2;
time_max = FastTimer(0);
}
}
Off(OUT_AC);Wait(100);
OnFwd(OUT_C);OnRev(OUT_A);Wait(turn_time - time_...
Off(OUT_AC);Wait(100);
}
これはランプの方向を探すためのプログラムである。最初に1...
** メインプログラム [#j0c83e30]
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);
SetSensor(SENSOR_1,SENSOR_LIGHT);
*** ボールを拾う [#f316ddc1]
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
OnRev(OUT_AC);Wait(200);
OnRev(OUT_A);OnFwd(OUT_C);Wait(100);
OnRev(OUT_AC);Wait(200);
Off(OUT_AC);Wait(100);
SetPower(OUT_B, 1);OnRev(OUT_B);Wait(100);
最初にアームを上げる。このときモーターBをOffにしないのは...
*** ボールを缶に当てる [#f6978e18]
OnRev(OUT_C);OnFwd(OUT_A);Wait(150);
OnRev(OUT_AC);Wait(300);
while(light_max < 65){
OnRev(OUT_AC);Wait(50);Off(OUT_AC);
light();
}
PlaySound(SOUND_CLICK);
light();
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
最初に光センサーがランプの光を感知できるように、ある程度...
ある程度近づいたらサブルーチンを使って光を探し始める。サ...
***ライントレースまで [#ace5e832]
OnFwd(OUT_C);OnRev(OUT_A);Wait(150);
Off(OUT_AC);Wait(100);
OnRev(OUT_AC);Wait(200);
OnRev(OUT_AC);until(SENSOR_1 < 41); Off(OUT_AC);
PlaySound(SOUND_CLICK);Wait(100);
最初に右斜め後ろを向くように100°~150°くらい回る。その後、...
***ライントレースでボールを見つける [#h0d7127f]
ClearTimer(1);
while(FastTimer(1) < 50){
if(SENSOR_1 > 49){
OnRev(OUT_A);OnFwd(OUT_C);
} else if(SENSOR_1 > 46){
OnRev(OUT_A);Off(OUT_C);
} else if(SENSOR_1 > 40){
OnRev(OUT_AC);ClearTimer(1);
} else if(SENSOR_1 > 37){
OnRev(OUT_C);Off(OUT_A);ClearTimer(1);
} else{
OnRev(OUT_C);OnFwd(OUT_A);ClearTimer(1);
}
}
OnRev(OUT_A);OnFwd(OUT_C);Wait(80);
OnRev(OUT_AC);Wait(150);Off(OUT_AC);Wait(100);
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
SetPower(OUT_B,1);OnRev(OUT_B);Wait(100);Off(OUT...
ライントレースは交差点を探すのと同じ要領で角を探す。黒線...
*** ボールを缶に当てる [#k088a384]
OnFwd(OUT_A);OnRev(OUT_C);Wait(350);
OnRev(OUT_AC);Wait(200);
while(SENSOR_2 < 50){
OnRev(OUT_AC);Wait(50);Off(OUT_AC);
light();
}
PlaySound(SOUND_CLICK);
light();OnRev(OUT_A);OnFwd(OUT_C);Wait(35);
Off(OUT_AC);Wait(100);
SetPower(OUT_B,5);OnFwd(OUT_B);Wait(50);
OnFwd(OUT_AC);Wait(100);
Off(OUT_AC);
}
一回目にボールを当てたときとほぼ同じである。
ボールを投げた後少し下がって止まる。
* 感想とまとめ [#if416d16]
今回は最後の課題ということで、今までの総まとめのような感...
ページ名: