2018a/Member/tmhk8/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
*課題3 [#q1ed5b47]
空き缶を分別して所定の場所に運ぶ。
*ロボット作成前の構想 [#b3cbce3f]
+ロボットを中央に配置し、両サイドの缶の二段目三段目を同時...
+二台のロボットの連携による積み上げ
+今作のロボット
*ロボット [#odf7765d]
#ref(S__53010435.jpg)
二台に分けないタイプのロボット。アームの開閉運動及びアー...
アームの開閉にモーター一つと歯車を、上下移動にモーター二...
見ての通りのアームの重量で光センサーが地面すれすれになっ...
ただし先端部分はしっかり浮いているためスタートラインから...
ロボット完成後に光センサー二つ使ったライントレースのほう...
#ref(S__53010444.jpg)
缶を掴む能力に関しては、上図のように小タイヤが滑り止めの...
ただし缶を置く時にはアームの上下移動の下限により、ある程...
ロボットの動きに関して、左右のタイヤを同出力にした場合曲...
また、上図では白缶を置いた後黒缶を戻しているが、逆の動き...
ライントレース時もタイヤが動かなくなるなど安心させてくれ...
*作戦遷移 [#n5685971]
**ロボコン前日まで-1 [#y651bd71]
#ref(first.png)
Aをスタートし、Yで積んだ二つをXに押し込んで確実に点を取る...
ロボコン前日に、あとはG通って押し込むだけだし今日はここま...
**ロボコン当日朝-2 [#t5a4017e]
#ref(second.png)
ロボコン当日の朝前日の続きをする前に試運転。こっちのルー...
(A-H-Iの左トレースをA-B-Jの右トレースにするだけだし大丈夫...
そして思い通り動かなくなる、Bの曲がりがうまくいかない。(...
さらにプログラムを書いていていたPCの不具合により作業中断...
**ロボコン時-3 [#faad1a74]
#ref(third.png)
時間がもうない!Bで曲がれないなら直接いくしかない。ライン...
*プログラム [#afb2b153]
**スレイヴ [#s14f5be2]
これは以下のプログラムに共通する動きである。缶の掴む動作...
***上げる [#rfb425a3]
task main(){
OnRev(OUT_BC,30);
OnRev(OUT_A,10);
Wait(8000);
}
***戻す [#r4d85269]
task main(){
OnFwd(OUT_A,20);
Wait(1000);
Off(OUT_A);
}
***下げる [#yb161ee8]
task main(){
OnFwd(OUT_BC,20);
Wait(600);
Off(OUT_BC);
}
***掴む [#d3b2bc27]
task main(){
OnRev(OUT_A,20);
Wait(1000);
}
**マスター [#b05c7fe2]
マスター側のプログラム。作戦遷移2,3のプログラムを紹介する...
***2(当日朝のプログラム) [#l141e3bb]
#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(4...
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wait...
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wait...
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wait...
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wait...
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,10);Wait(1000);O...
#define BLACK 40
#define LITTLE_BLACK 47
#define LITTLE_WHITE 53
#define WHITE 65
#define LEFT OnFwd(OUT_B,30);OnRev(OUT_C,30);Wait(1);Off(...
#define LITTLE_LEFT OnFwd(OUT_B,35);OnFwd(OUT_C,20);Wait(...
#define LITTLE_RIGHT OnFwd(OUT_B,20);OnFwd(OUT_C,35);Wait...
#define RIGHT OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1);Off...
#define FRONT OnFwd(OUT_BC,25);Wait(1);Off(OUT_AC);
#define LINE_LEFT if (SENSOR_1 < BLACK) {LEFT;KAZU += 3;}...
#define LINE_RIGHT if (SENSOR_1 < BLACK) {RIGHT;KAZU += 3...
task main() {
SetSensorLight(S1); //光センサを定義 int KAZU=0; int n = ...
RemotePlayTone(1,440,1000);Wait(1500); //最初に音を鳴らす
MODOSU; //最初に念のため開いておく
while(n < 1){
if (SENSOR_1 < BLACK){OnFwd(OUT_C,25);OnFwd(...
else {OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC);}
}
n = 0; //黒を感知するまで進む//線を超えるために進む
while(n < 1){
if (SENSOR_1 < LITTLE_WHITE){OnFwd(OUT_C,35)...
else {OnFwd(OUT_B,40);OnFwd(OUT_C,20);Wait(1)...
}
n = 0; //黒を感知するまで曲がる
repeat(2000){LINE_RIGHT;};KAZU *= 0; while(KAZU < 300){LI...
OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1200); //右に曲がる ...
repeat(2000){LINE_RIGHT;};KAZU *= 0; while(KAZU < 200){LI...
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC); OnRev(OUT_BC,15);...
Wait(1000);
SAGERU;TUKAMU; //引きずるために掴む
Wait(2000);
OnFwd(OUT_B,40);OnFwd(OUT_C,30);Wait(3000);Off(OUT_BC); /...
repeat(3000){LINE_RIGHT};KAZU *= 0; while(KAZU < 200){LIN...
/* OnFwd(OUT_C,20);OnRev(OUT_B,20);//右に曲がる Wait(2500...
repeat(1500){LINE_RIGHT}; KAZU *= 0; while(KAZU < 100){LI...
while(n < 1){
if (SENSOR_1 < BLACK){OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC...
} n = 0; //白を感知するまで進む OnFwd(OUT_BC,25); Wait(70...
/*TUKAMU;AGERU; OnRev(OUT_BC,20);Wait(2000);Off(OUT_BC); ...
/*repeat(1000){LINE_RIGHT}; KAZU *= 0; while(KAZU < 100){...
はなす } task main(){ OnFwd(OUT_A,1c0); Wait(500); Off(OU...
**3(ロボコン時のプログラム) [#d844ca97]
#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(4...
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wait...
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wait...
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wait...
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wait...
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,30);Wait(1000);O...
task main() { MODOSU; RemotePlayTone(1,440,1000);Wait(150...
OnFwd(OUT_BC,30); Wait(4000); Off(OUT_BC);//缶へ直行
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC); OnRev(OUT_BC,15);...
SAGERU;TUKAMU; //引きずるために掴む
OnFwd(OUT_B,30); OnFwd(OUT_C,35); Wait(4000); Off(OUT_BC)...
OnFwd(OUT_C,30); Wait(500); Off(OUT_C);//もとからある缶を...
HANASU; MODOSU; }
*まとめ [#md0df39e]
光センサー2つと超音波センサーを使いたかった。使えばもう少...
また、時間が圧倒的に足りなかったロボコン前の土日では電池...
もう少し余裕を持った日程を組めたら2のプログラムは完成でき...
また、ロボコンでは見せれなかったが積み上げだけは満足でき...
終了行:
[[2018a/Member]]
*課題3 [#q1ed5b47]
空き缶を分別して所定の場所に運ぶ。
*ロボット作成前の構想 [#b3cbce3f]
+ロボットを中央に配置し、両サイドの缶の二段目三段目を同時...
+二台のロボットの連携による積み上げ
+今作のロボット
*ロボット [#odf7765d]
#ref(S__53010435.jpg)
二台に分けないタイプのロボット。アームの開閉運動及びアー...
アームの開閉にモーター一つと歯車を、上下移動にモーター二...
見ての通りのアームの重量で光センサーが地面すれすれになっ...
ただし先端部分はしっかり浮いているためスタートラインから...
ロボット完成後に光センサー二つ使ったライントレースのほう...
#ref(S__53010444.jpg)
缶を掴む能力に関しては、上図のように小タイヤが滑り止めの...
ただし缶を置く時にはアームの上下移動の下限により、ある程...
ロボットの動きに関して、左右のタイヤを同出力にした場合曲...
また、上図では白缶を置いた後黒缶を戻しているが、逆の動き...
ライントレース時もタイヤが動かなくなるなど安心させてくれ...
*作戦遷移 [#n5685971]
**ロボコン前日まで-1 [#y651bd71]
#ref(first.png)
Aをスタートし、Yで積んだ二つをXに押し込んで確実に点を取る...
ロボコン前日に、あとはG通って押し込むだけだし今日はここま...
**ロボコン当日朝-2 [#t5a4017e]
#ref(second.png)
ロボコン当日の朝前日の続きをする前に試運転。こっちのルー...
(A-H-Iの左トレースをA-B-Jの右トレースにするだけだし大丈夫...
そして思い通り動かなくなる、Bの曲がりがうまくいかない。(...
さらにプログラムを書いていていたPCの不具合により作業中断...
**ロボコン時-3 [#faad1a74]
#ref(third.png)
時間がもうない!Bで曲がれないなら直接いくしかない。ライン...
*プログラム [#afb2b153]
**スレイヴ [#s14f5be2]
これは以下のプログラムに共通する動きである。缶の掴む動作...
***上げる [#rfb425a3]
task main(){
OnRev(OUT_BC,30);
OnRev(OUT_A,10);
Wait(8000);
}
***戻す [#r4d85269]
task main(){
OnFwd(OUT_A,20);
Wait(1000);
Off(OUT_A);
}
***下げる [#yb161ee8]
task main(){
OnFwd(OUT_BC,20);
Wait(600);
Off(OUT_BC);
}
***掴む [#d3b2bc27]
task main(){
OnRev(OUT_A,20);
Wait(1000);
}
**マスター [#b05c7fe2]
マスター側のプログラム。作戦遷移2,3のプログラムを紹介する...
***2(当日朝のプログラム) [#l141e3bb]
#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(4...
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wait...
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wait...
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wait...
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wait...
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,10);Wait(1000);O...
#define BLACK 40
#define LITTLE_BLACK 47
#define LITTLE_WHITE 53
#define WHITE 65
#define LEFT OnFwd(OUT_B,30);OnRev(OUT_C,30);Wait(1);Off(...
#define LITTLE_LEFT OnFwd(OUT_B,35);OnFwd(OUT_C,20);Wait(...
#define LITTLE_RIGHT OnFwd(OUT_B,20);OnFwd(OUT_C,35);Wait...
#define RIGHT OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1);Off...
#define FRONT OnFwd(OUT_BC,25);Wait(1);Off(OUT_AC);
#define LINE_LEFT if (SENSOR_1 < BLACK) {LEFT;KAZU += 3;}...
#define LINE_RIGHT if (SENSOR_1 < BLACK) {RIGHT;KAZU += 3...
task main() {
SetSensorLight(S1); //光センサを定義 int KAZU=0; int n = ...
RemotePlayTone(1,440,1000);Wait(1500); //最初に音を鳴らす
MODOSU; //最初に念のため開いておく
while(n < 1){
if (SENSOR_1 < BLACK){OnFwd(OUT_C,25);OnFwd(...
else {OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC);}
}
n = 0; //黒を感知するまで進む//線を超えるために進む
while(n < 1){
if (SENSOR_1 < LITTLE_WHITE){OnFwd(OUT_C,35)...
else {OnFwd(OUT_B,40);OnFwd(OUT_C,20);Wait(1)...
}
n = 0; //黒を感知するまで曲がる
repeat(2000){LINE_RIGHT;};KAZU *= 0; while(KAZU < 300){LI...
OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1200); //右に曲がる ...
repeat(2000){LINE_RIGHT;};KAZU *= 0; while(KAZU < 200){LI...
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC); OnRev(OUT_BC,15);...
Wait(1000);
SAGERU;TUKAMU; //引きずるために掴む
Wait(2000);
OnFwd(OUT_B,40);OnFwd(OUT_C,30);Wait(3000);Off(OUT_BC); /...
repeat(3000){LINE_RIGHT};KAZU *= 0; while(KAZU < 200){LIN...
/* OnFwd(OUT_C,20);OnRev(OUT_B,20);//右に曲がる Wait(2500...
repeat(1500){LINE_RIGHT}; KAZU *= 0; while(KAZU < 100){LI...
while(n < 1){
if (SENSOR_1 < BLACK){OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC...
} n = 0; //白を感知するまで進む OnFwd(OUT_BC,25); Wait(70...
/*TUKAMU;AGERU; OnRev(OUT_BC,20);Wait(2000);Off(OUT_BC); ...
/*repeat(1000){LINE_RIGHT}; KAZU *= 0; while(KAZU < 100){...
はなす } task main(){ OnFwd(OUT_A,1c0); Wait(500); Off(OU...
**3(ロボコン時のプログラム) [#d844ca97]
#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(4...
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wait...
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wait...
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wait...
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wait...
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,30);Wait(1000);O...
task main() { MODOSU; RemotePlayTone(1,440,1000);Wait(150...
OnFwd(OUT_BC,30); Wait(4000); Off(OUT_BC);//缶へ直行
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC); OnRev(OUT_BC,15);...
SAGERU;TUKAMU; //引きずるために掴む
OnFwd(OUT_B,30); OnFwd(OUT_C,35); Wait(4000); Off(OUT_BC)...
OnFwd(OUT_C,30); Wait(500); Off(OUT_C);//もとからある缶を...
HANASU; MODOSU; }
*まとめ [#md0df39e]
光センサー2つと超音波センサーを使いたかった。使えばもう少...
また、時間が圧倒的に足りなかったロボコン前の土日では電池...
もう少し余裕を持った日程を組めたら2のプログラムは完成でき...
また、ロボコンでは見せれなかったが積み上げだけは満足でき...
ページ名: