練習問題
ロボットにペンを取り付けA3用紙にハート型を描くロボットを作成しなさい。
task main() {
OnFwd(OUT_A+OUT_C); Wait(071); // 1/100単位で調節 Off(OUT_A); Wait(238); OnRev(OUT_A); Wait(120); Off(OUT_A); Wait(238); OnFwd(OUT_A); Wait(071); Off(OUT_A+OUT_C);
}
感想<オーハラ 理想値から微調整を繰り返した。意外に鉛筆って抵抗あるんだね〜 (^^)b
机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。
task main() {
SetSensor(SENSOR_1,SENSOR_TOUCH); SetSensor(SENSOR_3,SENSOR_TOUCH);
OnFwd(OUT_A+OUT_C); while(true)
{ if(SENSOR_1 == 1) { Off(OUT_A+OUT_C); Wait(80); //時間を置くことでセンサーがきちんと作動するのを待つ if(SENSOR_1 == 1 && SENSOR_3 == 1) { OnRev(OUT_A);OnFwd(OUT_C); Wait(120); OnFwd(OUT_A); } if(SENSOR_1 == 1) { OnRev(OUT_A+OUT_C); Wait(35); OnFwd(OUT_A); Off(OUT_C); Wait(40); //ココと OnFwd(OUT_C); } } if(SENSOR_3 == 1) { Off(OUT_A+OUT_C); Wait(80); //時間を置くことでセンサーがきちんと作動するのを待つ\(^O^)/ if(SENSOR_1 == 1 && SENSOR_3 == 1) { OnRev(OUT_C);OnFwd(OUT_A); Wait(120); OnFwd(OUT_C); } if(SENSOR_3 == 1) { OnRev(OUT_A+OUT_C); Wait(30); OnFwd(OUT_C); Off(OUT_A); Wait(30); //ココの値を変えることでループ防止Σ( ̄□ ̄;) OnFwd(OUT_A); } } }
}
感想>オーハラ センサー敏感すぎ
できるだけ速いロボットを作成すること
#define THRESHOLD 38
task main () { SetPower(OUT_A,1); SetPower(OUT_C,1);
SetSensor(SENSOR_2, SENSOR_LIGHT); while ( true ) { if (SENSOR_2 < THRESHOLD) { OnFwd(OUT_C); Off(OUT_A); } else { Off(OUT_C); OnFwd(OUT_A); } }
}
感想<オーハラ まあ、強いていえばストレート仕様(使わなかったけどさΣ( ̄□ ̄;))を作ったことかな?
まず最初に一回転してもっとも明るい方向(懐中電灯の方向)を探し、次に懐中電灯の光を追いかけて進むようなロボットを作成しなさい。
int light_max=30; int time=5;
task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); ClearTimer(0); while(Timer(0)<50) repeat(true) { { OnFwd(OUT_A); OnRev(OUT_C); if(SENSOR_1>light_max) { light_max = SENSOR_1; time = Timer(0); } } ClearTimer(0); while(Timer(0)<time) { OnRev(OUT_A); OnFwd(OUT_C); } Off(OUT_A+OUT_C); Wait(10); OnFwd(OUT_A); OnFwd(OUT_C); } }
インストラクション(説明書)の最後にある「Top Secret」を参考に、音楽を演奏しながら前進し障害物にぶつかったら(あるいは明るい光にあたったら)後退しながら方向を変えるロボットを作成しなさい。ただし移動のためのモータはひとつだけ使うものとし、また前進しているときと後進している時で違う音楽を演奏すること。
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define Sol 784
#define Ra 880 //ラの音を作ってみた(*^o^*)ノ
task play_music() {
while (true) { PlayTone(Do,25); Wait(20); PlayTone(Re, 5); Wait(20); PlayTone(Mi,25); Wait(20); PlayTone(Do, 5); Wait(20); PlayTone(Mi,25); Wait(20); PlayTone(Do, 5); Wait(20); PlayTone(Mi,35); Wait(40);
PlayTone(Re,25); Wait(20); PlayTone(Mi,10); Wait(20); PlayTone(Fa,10); Wait(20); PlayTone(Fa,10); Wait(20); PlayTone(Mi,10); Wait(20); PlayTone(Re,15); Wait(20); PlayTone(Fa,35); Wait(40); PlayTone(Mi,25); Wait(20); PlayTone(Fa, 5); Wait(20); PlayTone(Sol,25); Wait(20); PlayTone(Mi, 5); Wait(20); PlayTone(Sol,25); Wait(20); PlayTone(Mi, 5); Wait(20); PlayTone(Sol,35); Wait(40); PlayTone(Fa,25); Wait(20); PlayTone(Sol,10); Wait(20); PlayTone(Ra, 5); Wait(20); PlayTone(Ra, 5); Wait(20); PlayTone(Sol,10); Wait(20); PlayTone(Fa, 5); Wait(20); PlayTone(Ra,35); Wait(40); PlayTone(Sol,25); Wait(20); PlayTone(Do, 5); Wait(20); PlayTone(Re,10); Wait(20); PlayTone(Mi,10); Wait(20); PlayTone(Fa,10); Wait(20); PlayTone(Sol,10); Wait(20); PlayTone(Ra,35); Wait(40); }
}
task main() {
SetSensor(SENSOR_1, SENSOR_TOUCH);
start play_music ; OnFwd(OUT_A+OUT_B);
until (SENSOR_1 == 1); stop play_music ; Off(OUT_A+OUT_B);
}