2018a/Member/ngafy/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題3 [#l91ff4e8]
#ref(課題3.png)
上の図のような紙を使用する。~
2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し、円...
空き缶には色をつけたり文字や記号を書いてもよい。あるいは...
*ルール [#v1d44981]
基本ルール~
・競技時間は審判が続行不能と判断するまで、あるい...
・図のA地点または(および)A'地点からスタートする...
・空部分は領域からはみ出していてもよい。~
・Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X...
・開始の合図から5秒以内にスタートボタンを押す作...
・競技が終了するまで、ロボットに触ったり人間が遠...
・途中でうまく動かなくなった場合、1回限り再スタ...
基本得点の計算方法~
・運んだ空き缶の数×3点~
・空き缶を積み重ねて置くことができば場合、2段目の...
・円内からはみ出している場合、半分以下なら1点減点...
・間違った円内に空き缶を置いた場合は、1個につき1...
・間違った円内の2段目に空き缶を置いた場合は1個に...
技術点の計算方法~
以下の動作の精度・スピード・確実性などを含めた技術的な...
・空き缶を探し取りにいくまでの動作 (3点)~
・空き缶を掴む動作 (3点)~
・空き缶を運ぶ動作 (2点)~
・空き缶を置く動作 (2点)~
・空き缶を積む動作 (3点)~
・2台のRCXまたはNXT、EV3の連携の良さ(2点)~
・自立型のロボットとしての形や動作の美しさ、斬新...
・その他 (3点)~
*ロボットの説明 [#j17a6a10]
**アーム部分 [#q998f1fd]
#ref(IMG_E1322ex.JPG)
写真のように滑り止めのために、アームと缶の接触部分にタイ...
#ref(アーム.png)
アームの開閉は図のように行った。1つのモータでアームの手...
**アームを上下させる部分 [#z045562c]
#ref(IMG_1324.JPG)
#br
#ref(IMG_1323.JPG)
#br
#ref(アーム上下4.png)
図のような構造が2つ合わさって形成している。モータが回転...
**車輪部分 [#i8829814]
#ref(タイヤ.png)
図のように前1輪、中2輪、後1輪の全4輪構造である。初め...
**ライトセンサー部分 [#e649c08d]
#ref(センサーライト.png)
矢印の位置(中2輪の中心より少し前)に設置した。
*プログラミングにあたっての準備 [#da7337a1]
**master [#f3b102c4]
#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(...
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wai...
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wai...
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wai...
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wai...
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,10);Wait(1000);...
slaveにそれぞれの指令をさせる。
#define BLACK 40
#define LITTLE_BLACK 47
#define LITTLE_WHITE 53
#define WHITE 65
#ref(白黒.png)
図のように明るさを定義する。
#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);Wai...
#define RIGHT OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1);Of...
#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 += ...
右・左の各ライントレースを定義する。
交差点の判断の方法等はhttp://yakushi.shinshu-u.ac.jp/robo...
**slave [#yf657da2]
AGERU
task main(){OnRev(OUT_BC,30);OnRev(OUT_A,10);Wait(8000);}
SAGERU
task main(){OnFwd(OUT_BC,20);Wait(600);Off(OUT_BC);}
TUKAMU
task main(){OnRev(OUT_A,20);Wait(1000);}
HANASU
task main(){OnFwd(OUT_A,10);Wait(500);Off(OUT_A);}
MODOSU
task main(){OnFwd(OUT_A,20);Wait(1000);Off(OUT_A);}
#ref(上げ下げ.png)
#ref(つかみはなし3.png)
※HANASUはMODOSUの短いver.
*プログラム本編(仮) [#he4c13de]
task main() {
SetSensorLight(S1); //光センサを定義
int KAZU=0;
int n = 0;
long t0 = CurrentTick();
// until(BluetoothStatus(CONN)==NO_ERR); //つながるまで...
RemotePlayTone(1,440,1000);Wait(1500); //最初に音を鳴...
MODOSU; //最初に念のため開いておく
while(n < 1){
if (SENSOR_1 < BLACK){OnFwd(OUT_C,25);OnFw...
else {OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC);}
}
n = 0; //黒を感知するまで進む//線を超えるために進む
while(n < 1){
if (SENSOR_1 < LITTLE_WHITE){OnFwd(OUT_C,3...
else {OnFwd(OUT_B,40);OnFwd(OUT_C,20);Wait(...
}
n = 0; //黒を感知するまで曲がる
repeat(2000){LINE_RIGHT;};KAZU *= 0;
while(KAZU < 300){LINE_RIGHT;};
PlaySound(SOUND_DOUBLE_BEEP); //十字の交差点を感知
OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1200); //右に曲...
OnFwd(OUT_BC,15);Wait(300);Off(OUT_BC); //前に進む
repeat(2000){LINE_RIGHT;};KAZU *= 0;
while(KAZU < 200){LINE_RIGHT;};
PlaySound(SOUND_DOUBLE_BEEP); //円との交差点を感知
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC);
OnRev(OUT_BC,15);Wait(200);Off(OUT_BC);
OnFwd(OUT_C,15);OnRev(OUT_B,30);Wait(200);Off(OUT_BC);
OnFwd(OUT_B,15);OnRev(OUT_C,15);Wait(200);Off(OUT_BC); ...
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){LINE_RIGHT};
PlaySound(SOUND_DOUBLE_BEEP); //十字の交差点を感知
}
なぜ、このプログラムが(仮)なのかというと、うまい具合に...
そこで、急遽書いた代替プログラムがこちら☟
*プログラム本編 [#na372cba]
task main() { MODOSU; RemotePlayTone(1,440,1000);Wait(15...
OnFwd(OUT_BC,30); Wait(4000); Off(OUT_BC);
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC); OnRev(OUT_BC,15)...
OnFwd(OUT_C,15);OnRev(OUT_B,30);Wait(200);Off(OUT_BC);
OnFwd(OUT_B,15);OnRev(OUT_C,15);Wait(200);Off(OUT_BC); /...
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; }
#ref(課題3neo.png)
赤矢印通った後、3缶を同じ種類の2缶に入れ替え、緑矢印を...
*課題3を終えて [#z3efffdd]
**苦労した点、ダメだった点 [#u46d98d3]
ロボットにアームを上下させる機構を搭載したことや、アーム...
**良かった点 [#m5623a12]
RISやEV3にあるキャタピラみたいな部品がないことに屈せず、...
*ロボティクス入門を終えて [#ye8ffd02]
元々、ロボットなどといったものを製作することが好きでこの...
終了行:
#contents
*課題3 [#l91ff4e8]
#ref(課題3.png)
上の図のような紙を使用する。~
2種類の空き缶(Aタイプ,Bタイプ)をそれぞれ3個づつ用意し、円...
空き缶には色をつけたり文字や記号を書いてもよい。あるいは...
*ルール [#v1d44981]
基本ルール~
・競技時間は審判が続行不能と判断するまで、あるい...
・図のA地点または(および)A'地点からスタートする...
・空部分は領域からはみ出していてもよい。~
・Aタイプの空き缶を円Y内に、Bタイプの空き缶を円X...
・開始の合図から5秒以内にスタートボタンを押す作...
・競技が終了するまで、ロボットに触ったり人間が遠...
・途中でうまく動かなくなった場合、1回限り再スタ...
基本得点の計算方法~
・運んだ空き缶の数×3点~
・空き缶を積み重ねて置くことができば場合、2段目の...
・円内からはみ出している場合、半分以下なら1点減点...
・間違った円内に空き缶を置いた場合は、1個につき1...
・間違った円内の2段目に空き缶を置いた場合は1個に...
技術点の計算方法~
以下の動作の精度・スピード・確実性などを含めた技術的な...
・空き缶を探し取りにいくまでの動作 (3点)~
・空き缶を掴む動作 (3点)~
・空き缶を運ぶ動作 (2点)~
・空き缶を置く動作 (2点)~
・空き缶を積む動作 (3点)~
・2台のRCXまたはNXT、EV3の連携の良さ(2点)~
・自立型のロボットとしての形や動作の美しさ、斬新...
・その他 (3点)~
*ロボットの説明 [#j17a6a10]
**アーム部分 [#q998f1fd]
#ref(IMG_E1322ex.JPG)
写真のように滑り止めのために、アームと缶の接触部分にタイ...
#ref(アーム.png)
アームの開閉は図のように行った。1つのモータでアームの手...
**アームを上下させる部分 [#z045562c]
#ref(IMG_1324.JPG)
#br
#ref(IMG_1323.JPG)
#br
#ref(アーム上下4.png)
図のような構造が2つ合わさって形成している。モータが回転...
**車輪部分 [#i8829814]
#ref(タイヤ.png)
図のように前1輪、中2輪、後1輪の全4輪構造である。初め...
**ライトセンサー部分 [#e649c08d]
#ref(センサーライト.png)
矢印の位置(中2輪の中心より少し前)に設置した。
*プログラミングにあたっての準備 [#da7337a1]
**master [#f3b102c4]
#define CONN 1//スレーブの番号を割り振り
#define AGERU RemoteStartProgram(CONN,"ageru.rxe");Wait(...
#define SAGERU RemoteStartProgram(CONN,"sageru.rxe");Wai...
#define TUKAMU RemoteStartProgram(CONN,"tukamu.rxe");Wai...
#define HANASU RemoteStartProgram(CONN,"hanasu.rxe");Wai...
#define MODOSU RemoteStartProgram(CONN,"modosu.rxe");Wai...
#define KUZUSU TUKAMU;AGERU;OnRev(OUT_BC,10);Wait(1000);...
slaveにそれぞれの指令をさせる。
#define BLACK 40
#define LITTLE_BLACK 47
#define LITTLE_WHITE 53
#define WHITE 65
#ref(白黒.png)
図のように明るさを定義する。
#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);Wai...
#define RIGHT OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1);Of...
#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 += ...
右・左の各ライントレースを定義する。
交差点の判断の方法等はhttp://yakushi.shinshu-u.ac.jp/robo...
**slave [#yf657da2]
AGERU
task main(){OnRev(OUT_BC,30);OnRev(OUT_A,10);Wait(8000);}
SAGERU
task main(){OnFwd(OUT_BC,20);Wait(600);Off(OUT_BC);}
TUKAMU
task main(){OnRev(OUT_A,20);Wait(1000);}
HANASU
task main(){OnFwd(OUT_A,10);Wait(500);Off(OUT_A);}
MODOSU
task main(){OnFwd(OUT_A,20);Wait(1000);Off(OUT_A);}
#ref(上げ下げ.png)
#ref(つかみはなし3.png)
※HANASUはMODOSUの短いver.
*プログラム本編(仮) [#he4c13de]
task main() {
SetSensorLight(S1); //光センサを定義
int KAZU=0;
int n = 0;
long t0 = CurrentTick();
// until(BluetoothStatus(CONN)==NO_ERR); //つながるまで...
RemotePlayTone(1,440,1000);Wait(1500); //最初に音を鳴...
MODOSU; //最初に念のため開いておく
while(n < 1){
if (SENSOR_1 < BLACK){OnFwd(OUT_C,25);OnFw...
else {OnFwd(OUT_BC,20);Wait(1);Off(OUT_BC);}
}
n = 0; //黒を感知するまで進む//線を超えるために進む
while(n < 1){
if (SENSOR_1 < LITTLE_WHITE){OnFwd(OUT_C,3...
else {OnFwd(OUT_B,40);OnFwd(OUT_C,20);Wait(...
}
n = 0; //黒を感知するまで曲がる
repeat(2000){LINE_RIGHT;};KAZU *= 0;
while(KAZU < 300){LINE_RIGHT;};
PlaySound(SOUND_DOUBLE_BEEP); //十字の交差点を感知
OnFwd(OUT_C,30);OnRev(OUT_B,30);Wait(1200); //右に曲...
OnFwd(OUT_BC,15);Wait(300);Off(OUT_BC); //前に進む
repeat(2000){LINE_RIGHT;};KAZU *= 0;
while(KAZU < 200){LINE_RIGHT;};
PlaySound(SOUND_DOUBLE_BEEP); //円との交差点を感知
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC);
OnRev(OUT_BC,15);Wait(200);Off(OUT_BC);
OnFwd(OUT_C,15);OnRev(OUT_B,30);Wait(200);Off(OUT_BC);
OnFwd(OUT_B,15);OnRev(OUT_C,15);Wait(200);Off(OUT_BC); ...
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){LINE_RIGHT};
PlaySound(SOUND_DOUBLE_BEEP); //十字の交差点を感知
}
なぜ、このプログラムが(仮)なのかというと、うまい具合に...
そこで、急遽書いた代替プログラムがこちら☟
*プログラム本編 [#na372cba]
task main() { MODOSU; RemotePlayTone(1,440,1000);Wait(15...
OnFwd(OUT_BC,30); Wait(4000); Off(OUT_BC);
KUZUSU; //缶を崩す
OnFwd(OUT_BC,15);Wait(200);Off(OUT_BC); OnRev(OUT_BC,15)...
OnFwd(OUT_C,15);OnRev(OUT_B,30);Wait(200);Off(OUT_BC);
OnFwd(OUT_B,15);OnRev(OUT_C,15);Wait(200);Off(OUT_BC); /...
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; }
#ref(課題3neo.png)
赤矢印通った後、3缶を同じ種類の2缶に入れ替え、緑矢印を...
*課題3を終えて [#z3efffdd]
**苦労した点、ダメだった点 [#u46d98d3]
ロボットにアームを上下させる機構を搭載したことや、アーム...
**良かった点 [#m5623a12]
RISやEV3にあるキャタピラみたいな部品がないことに屈せず、...
*ロボティクス入門を終えて [#ye8ffd02]
元々、ロボットなどといったものを製作することが好きでこの...
ページ名: