2018a/Member/yossi/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2018a/Member]]
#contents
*課題2 [#xf8aefbb]
〜コースの黒い線に沿って動き、350mlの空き缶を移動させるロ...
*ロボット [#jcb6a202]
作成したロボットの写真
#ref(./IMG_3587.JPG,10%,ロボットの写真)
マニュアルにあった基本形にアーム、光センサーのパーツを取...
~また、 ''回転半径 ''をなるべく小さくするため、光センサー...
**回転半径について [#z1b16ec8]
ライントレースにおいて重要なのが回転半径である。回転半径...
#ref(./ロボティクス2.png,50%,ロボットの写真)
~つまり、片方のタイヤを回して軌道修正しようとしたとき、回...
*プログラム(第2コース) [#c3b03bd0]
**交差点の判断 [#c6930535]
ロボットはラインのどちらか片側をトレースするため、曲がり...
#ref(./ロボティクス3.png,40%,ロボットの写真)
**プログラム [#k98db7cc]
最終的に、完成させることがはきなかった。
成功していたA→空き缶キャッチ までのプログラムは以下のよ...
/*値定義*/
#define PaleGray 47 /*白よりの灰の値*/
#define DarkGray 34 /*黒よりの灰の値*/
#define Black 32 /*黒の値*/
#define White 48 /*白の値*/
#define Gray 44 /*灰の値*/
#define ROTATION 40 /*旋回時間*/
#define CHEAK_TIME 110 /*交差点かどうかの判断*/
#define REVERCE 110
#define LOWPOWER 2
#define GRIPPOWER 6
/*動作定義*/
#define rot_L OnFwd(OUT_C);OnRev(OUT_A);Wait(ROTATION);S...
#define rot_R OnFwd(OUT_A);OnRev(OUT_C);Wait(ROTATION);S...
#define go_st OnFwd(OUT_AC);SetPower(OUT_AC,LOWPOWER); ...
#define back OnRev(OUT_AC); SetPower(OUT_AC,LOWPOWER)...
#define turn_R OnFwd(OUT_A);Off(OUT_C);SetPower(OUT_AC,L...
#define turn_L OnFwd(OUT_C);Off(OUT_A);SetPower(OUT_AC,L...
#define reverce_L OnRev(OUT_C);Off(OUT_A);SetPower(OUT_A...
#define reverce_R OnRev(OUT_A);Off(OUT_C);SetPower(OUT_A...
#define pause Off(OUT_AC);Wait(50); ...
#define alert PlaySound(SOUND_DOUBLE_BEEP);PlaySound(SOU...
#define grip OnFwd(OUT_B);Wait(200);SetPower(OUT_B,GRIPP...
#define put OnRev(OUT_B);Wait(200);SetPower(OUT_B,GRIPPO...
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);
int AtoJ=0; /*AからJまでの動作の区切り*/
int BLACK=0; /*黒に入った回数をカウント*/
while(AtoJ<1){
if(SENSOR_2>=PaleGray){ /*白よりの灰なら左...
turn_L;
}else if(SENSOR_2>=Gray){ /*灰なら直進*/
go_st;
}else if(SENSOR_2>=DarkGray){ /*黒よりの灰なら右...
turn_R;
}else if(SENSOR_2<=Black){ /*黒に入った回数に...
if(BLACK==1){ /*二回目の黒 交差点と判...
pause;
alert;
AtoJ++;
}else if(BLACK==0){ /*一回目の黒 曲がり角...
rot_R;
Wait(ROTATION);
go_st;
Wait(20);
BLACK++;
}
}
}
go_st; /*缶をつかむ動作へ*/
Wait(50);
pause;
grip;
pause; /*缶をつかむ*/
Off(OUT_B);
back;
Wait(50);
pause;
rot_L; /*バック、旋回してJ〜Hルートへ*/
Wait(30);
*反省点 [#p1b78285]
交差点の判断を、黒い部分に入った回数をカウントさせて操作...
素直にタイマーを使って時間で判断するものにすればよかった...
終了行:
[[2018a/Member]]
#contents
*課題2 [#xf8aefbb]
〜コースの黒い線に沿って動き、350mlの空き缶を移動させるロ...
*ロボット [#jcb6a202]
作成したロボットの写真
#ref(./IMG_3587.JPG,10%,ロボットの写真)
マニュアルにあった基本形にアーム、光センサーのパーツを取...
~また、 ''回転半径 ''をなるべく小さくするため、光センサー...
**回転半径について [#z1b16ec8]
ライントレースにおいて重要なのが回転半径である。回転半径...
#ref(./ロボティクス2.png,50%,ロボットの写真)
~つまり、片方のタイヤを回して軌道修正しようとしたとき、回...
*プログラム(第2コース) [#c3b03bd0]
**交差点の判断 [#c6930535]
ロボットはラインのどちらか片側をトレースするため、曲がり...
#ref(./ロボティクス3.png,40%,ロボットの写真)
**プログラム [#k98db7cc]
最終的に、完成させることがはきなかった。
成功していたA→空き缶キャッチ までのプログラムは以下のよ...
/*値定義*/
#define PaleGray 47 /*白よりの灰の値*/
#define DarkGray 34 /*黒よりの灰の値*/
#define Black 32 /*黒の値*/
#define White 48 /*白の値*/
#define Gray 44 /*灰の値*/
#define ROTATION 40 /*旋回時間*/
#define CHEAK_TIME 110 /*交差点かどうかの判断*/
#define REVERCE 110
#define LOWPOWER 2
#define GRIPPOWER 6
/*動作定義*/
#define rot_L OnFwd(OUT_C);OnRev(OUT_A);Wait(ROTATION);S...
#define rot_R OnFwd(OUT_A);OnRev(OUT_C);Wait(ROTATION);S...
#define go_st OnFwd(OUT_AC);SetPower(OUT_AC,LOWPOWER); ...
#define back OnRev(OUT_AC); SetPower(OUT_AC,LOWPOWER)...
#define turn_R OnFwd(OUT_A);Off(OUT_C);SetPower(OUT_AC,L...
#define turn_L OnFwd(OUT_C);Off(OUT_A);SetPower(OUT_AC,L...
#define reverce_L OnRev(OUT_C);Off(OUT_A);SetPower(OUT_A...
#define reverce_R OnRev(OUT_A);Off(OUT_C);SetPower(OUT_A...
#define pause Off(OUT_AC);Wait(50); ...
#define alert PlaySound(SOUND_DOUBLE_BEEP);PlaySound(SOU...
#define grip OnFwd(OUT_B);Wait(200);SetPower(OUT_B,GRIPP...
#define put OnRev(OUT_B);Wait(200);SetPower(OUT_B,GRIPPO...
task main(){
SetSensor(SENSOR_2,SENSOR_LIGHT);
int AtoJ=0; /*AからJまでの動作の区切り*/
int BLACK=0; /*黒に入った回数をカウント*/
while(AtoJ<1){
if(SENSOR_2>=PaleGray){ /*白よりの灰なら左...
turn_L;
}else if(SENSOR_2>=Gray){ /*灰なら直進*/
go_st;
}else if(SENSOR_2>=DarkGray){ /*黒よりの灰なら右...
turn_R;
}else if(SENSOR_2<=Black){ /*黒に入った回数に...
if(BLACK==1){ /*二回目の黒 交差点と判...
pause;
alert;
AtoJ++;
}else if(BLACK==0){ /*一回目の黒 曲がり角...
rot_R;
Wait(ROTATION);
go_st;
Wait(20);
BLACK++;
}
}
}
go_st; /*缶をつかむ動作へ*/
Wait(50);
pause;
grip;
pause; /*缶をつかむ*/
Off(OUT_B);
back;
Wait(50);
pause;
rot_L; /*バック、旋回してJ〜Hルートへ*/
Wait(30);
*反省点 [#p1b78285]
交差点の判断を、黒い部分に入った回数をカウントさせて操作...
素直にタイマーを使って時間で判断するものにすればよかった...
ページ名: