2017a/Member/koki/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2017a/Member]]
#contents
* 課題について [#sb2532c9]
詳しくは[[課題2>2017a/Mission2]]を参照。コースは、E地点直...
* ロボットの説明 [#z1957ffa]
&ref(2017a/Member/koki/Mission2/robo11.jpg,50%,全体);
&ref(2017a/Member/koki/Mission2/robo14.jpg,50%,全体);
今回は出来るだけコンパクトにするために、タイヤを2つだけに...
&ref(2017a/Member/koki/Mission2/robo10.jpg,50%,全体);
&ref(2017a/Member/koki/Mission2/robo15.jpg,50%,全体);
後輪を外した代わりに、後ろの部分に支柱を付けた。なめらか...
* プログラムの説明 [#ocaf9c58]
** マクロ [#vb3162a2]
マクロは以下のように定義した。
#define THRESHOLD 42
//直角用
#define HIPOWER 7
#define LOWPOWER 1
#define set_power_H SetPower(OUT_AC,HIPOWER);
#define set_power_L SetPower(OUT_AC,LOWPOWER);
#define go set_power_H; OnFwd(OUT_AC);
#define l1 set_power_L;OnFwd(OUT_C); OnRev(OUT_A);//左旋回
#define l0 set_power_L;OnFwd(OUT_C); Off(OUT_A);//左折
#define r0 set_power_L;OnFwd(OUT_A); Off(OUT_C);//右折
#define r1 set_power_L;OnFwd(OUT_A); OnRev(OUT_C);//右旋回
//その他用
#define r3 Off(OUT_AC);Wait(1);OnFwd(OUT_A);OnRev(OUT_C)...
#define r2 Off(OUT_AC);Wait(1);OnFwd(OUT_A);//右折
#define l3 Off(OUT_AC);Wait(1);OnFwd(OUT_C);OnRev(OUT_A)...
#define l2 Off(OUT_AC);Wait(1);OnFwd(OUT_C);//左折
#define teisi Off(OUT_AC);PlaySound(SOUND_DOWN);Wait(100...
光センサのしきい値は42とした。直角用のマクロは、曲がりや...
** サブルーチン [#q57cb944]
サブルーチンは以下のように定義した。
sub AEF_FQ_QR_SG_TH_RS_PE_EA(){int a=0; //AEF...
while(a < 20){
if (SENSOR_2 > THRESHOLD +7) { //白なら右旋回
r3;
} else if (SENSOR_2 > THRESHOLD +3) {//白っぽいなら右折
r2;
} else if (SENSOR_2 > THRESHOLD -3) {//灰色なら直進
go;
} else if(SENSOR_2 > THRESHOLD -7) {//黒っぽいなら左折
l2;
} else{ //黒なら左旋回
l3; a++;
}
Off(OUT_AC);
}}
sub F_Q_S_G_H_R_E(){ //セン...
while(SENSOR_2 < THRESHOLD ){
l1;
}}
sub R_T_S(){ //交差...
while(SENSOR_2 < THRESHOLD ){
go;
}
int c=0;
while(c < 20){
if (SENSOR_2 > THRESHOLD +7) {
r3;
} else if (SENSOR_2 > THRESHOLD +3) {
r2;
} else if (SENSOR_2 > THRESHOLD -3) {
go;
} else if(SENSOR_2 > THRESHOLD -7) {
l2;
} else{
l3; c++;
}
Off(OUT_AC);
}
while(SENSOR_2 < THRESHOLD ){
l1;
}}
sub RS_SP_TT_TR(){int d=0; //RS_SP...
while(d < 4){
if (SENSOR_2 > THRESHOLD +7) {
r3;
} else if (SENSOR_2 > THRESHOLD +3) {
r2;
} else {
go; d++;
}
Off(OUT_AC);
}}
sub GH(){int f=0; //きつい...
while(f < 270){
if (SENSOR_2 > THRESHOLD +7) {
r1;
} else if (SENSOR_2 > THRESHOLD +3) {
r0;
} else if (SENSOR_2 > THRESHOLD -3) {
go;
} else if(SENSOR_2 > THRESHOLD -7) {
l0;
} else{
l1; f++;
}
Off(OUT_AC);
}}
sub A(){ //A内進入
while(SENSOR_2 < THRESHOLD ){
go;
}
Off(OUT_AC);
}
このプログラムは、ロボットがラインの左側をなぞるように組...
** メインプログラム [#vd8a52b3]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //F
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
teisi; //Q
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //R
R_T_S();
RS_SP_TT_TR();
PlaySound(SOUND_UP); //S
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //G
F_Q_S_G_H_R_E();
GH();
PlaySound(SOUND_UP); //H
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
teisi; //T
R_T_S();
RS_SP_TT_TR();
teisi; //T
R_T_S();
RS_SP_TT_TR();
teisi; //R
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //S
R_T_S();
RS_SP_TT_TR();
PlaySound(SOUND_UP); //P
AEF_FQ_QR_SG_TH_RS_PE_EA();
teisi; //E
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
A();
PlaySound(SOUND_DOWN); //A
}
マクロとサブルーチンを活用したおかげで、メインプログラム...
*反省と感想 [#a0d37a19]
ロボットについては、初期の四輪駆動から二輪車の二輪駆動に...
終了行:
[[2017a/Member]]
#contents
* 課題について [#sb2532c9]
詳しくは[[課題2>2017a/Mission2]]を参照。コースは、E地点直...
* ロボットの説明 [#z1957ffa]
&ref(2017a/Member/koki/Mission2/robo11.jpg,50%,全体);
&ref(2017a/Member/koki/Mission2/robo14.jpg,50%,全体);
今回は出来るだけコンパクトにするために、タイヤを2つだけに...
&ref(2017a/Member/koki/Mission2/robo10.jpg,50%,全体);
&ref(2017a/Member/koki/Mission2/robo15.jpg,50%,全体);
後輪を外した代わりに、後ろの部分に支柱を付けた。なめらか...
* プログラムの説明 [#ocaf9c58]
** マクロ [#vb3162a2]
マクロは以下のように定義した。
#define THRESHOLD 42
//直角用
#define HIPOWER 7
#define LOWPOWER 1
#define set_power_H SetPower(OUT_AC,HIPOWER);
#define set_power_L SetPower(OUT_AC,LOWPOWER);
#define go set_power_H; OnFwd(OUT_AC);
#define l1 set_power_L;OnFwd(OUT_C); OnRev(OUT_A);//左旋回
#define l0 set_power_L;OnFwd(OUT_C); Off(OUT_A);//左折
#define r0 set_power_L;OnFwd(OUT_A); Off(OUT_C);//右折
#define r1 set_power_L;OnFwd(OUT_A); OnRev(OUT_C);//右旋回
//その他用
#define r3 Off(OUT_AC);Wait(1);OnFwd(OUT_A);OnRev(OUT_C)...
#define r2 Off(OUT_AC);Wait(1);OnFwd(OUT_A);//右折
#define l3 Off(OUT_AC);Wait(1);OnFwd(OUT_C);OnRev(OUT_A)...
#define l2 Off(OUT_AC);Wait(1);OnFwd(OUT_C);//左折
#define teisi Off(OUT_AC);PlaySound(SOUND_DOWN);Wait(100...
光センサのしきい値は42とした。直角用のマクロは、曲がりや...
** サブルーチン [#q57cb944]
サブルーチンは以下のように定義した。
sub AEF_FQ_QR_SG_TH_RS_PE_EA(){int a=0; //AEF...
while(a < 20){
if (SENSOR_2 > THRESHOLD +7) { //白なら右旋回
r3;
} else if (SENSOR_2 > THRESHOLD +3) {//白っぽいなら右折
r2;
} else if (SENSOR_2 > THRESHOLD -3) {//灰色なら直進
go;
} else if(SENSOR_2 > THRESHOLD -7) {//黒っぽいなら左折
l2;
} else{ //黒なら左旋回
l3; a++;
}
Off(OUT_AC);
}}
sub F_Q_S_G_H_R_E(){ //セン...
while(SENSOR_2 < THRESHOLD ){
l1;
}}
sub R_T_S(){ //交差...
while(SENSOR_2 < THRESHOLD ){
go;
}
int c=0;
while(c < 20){
if (SENSOR_2 > THRESHOLD +7) {
r3;
} else if (SENSOR_2 > THRESHOLD +3) {
r2;
} else if (SENSOR_2 > THRESHOLD -3) {
go;
} else if(SENSOR_2 > THRESHOLD -7) {
l2;
} else{
l3; c++;
}
Off(OUT_AC);
}
while(SENSOR_2 < THRESHOLD ){
l1;
}}
sub RS_SP_TT_TR(){int d=0; //RS_SP...
while(d < 4){
if (SENSOR_2 > THRESHOLD +7) {
r3;
} else if (SENSOR_2 > THRESHOLD +3) {
r2;
} else {
go; d++;
}
Off(OUT_AC);
}}
sub GH(){int f=0; //きつい...
while(f < 270){
if (SENSOR_2 > THRESHOLD +7) {
r1;
} else if (SENSOR_2 > THRESHOLD +3) {
r0;
} else if (SENSOR_2 > THRESHOLD -3) {
go;
} else if(SENSOR_2 > THRESHOLD -7) {
l0;
} else{
l1; f++;
}
Off(OUT_AC);
}}
sub A(){ //A内進入
while(SENSOR_2 < THRESHOLD ){
go;
}
Off(OUT_AC);
}
このプログラムは、ロボットがラインの左側をなぞるように組...
** メインプログラム [#vd8a52b3]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //F
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
teisi; //Q
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //R
R_T_S();
RS_SP_TT_TR();
PlaySound(SOUND_UP); //S
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //G
F_Q_S_G_H_R_E();
GH();
PlaySound(SOUND_UP); //H
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
teisi; //T
R_T_S();
RS_SP_TT_TR();
teisi; //T
R_T_S();
RS_SP_TT_TR();
teisi; //R
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
PlaySound(SOUND_UP); //S
R_T_S();
RS_SP_TT_TR();
PlaySound(SOUND_UP); //P
AEF_FQ_QR_SG_TH_RS_PE_EA();
teisi; //E
F_Q_S_G_H_R_E();
AEF_FQ_QR_SG_TH_RS_PE_EA();
A();
PlaySound(SOUND_DOWN); //A
}
マクロとサブルーチンを活用したおかげで、メインプログラム...
*反省と感想 [#a0d37a19]
ロボットについては、初期の四輪駆動から二輪車の二輪駆動に...
ページ名: