メンバー:☆遠藤雅志、加藤友里、宮本秀俊、荒井隆治
version ??
Last modified: Thu Dec 26 13:44:18 JST 2002
[必須] ロボットに鉛筆またはペンを取り付け、 A3 用紙の上に ★型を描かせなさい (練習問題 3.3)。
task main() { repeat(2){ OnFwd(OUT_A+OUT_C); Wait(200); OnFwd(OUT_A); OnRev(OUT_C); Wait(59); OnRev(OUT_A+OUT_C); Wait(200); OnFwd(OUT_A); OnRev(OUT_C); Wait(59); } OnFwd(OUT_A+OUT_C); Wait(200); Float(OUT_A+OUT_C); }
工夫した点:
鉛筆をロボットの中心に固定したことで安定感が増し、
線が曲がりにくくなった。
[必須] 机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと (練習問題 4.2)。
task main() { SetSensor(SENSOR_1,SENSOR_TOUCH); while(true) { OnFwd(OUT_A+OUT_C); until (SENSOR_1 == 1); Off(OUT_A+OUT_C); Wait(50); OnRev(OUT_A+OUT_C); if(SENSOR_1 == 1) { OnFwd(OUT_A+OUT_C); } OnFwd(OUT_C); OnRev(OUT_A); Wait(150); } }
工夫した点:
前輪を上下に動くようにして、その上にセンサーを置いた部分
[必須] 前向きに光センサーを取り付けたロボットを作成し、 そのロボットがもっとも明るい方向 (例えば照らした懐中電灯の方向) を向くようにしなさい。 さらにそのロボットが、 懐中電灯の光を追いかけて進むようにプログラムを改良しなさい (練習問題 4.5.1, 4.5.2)
int light_number, light_number1, light_number2, max_light,max_light1, max_light2; int max_time, max_time1, max_time2, number, number1, number2, roll_number; int count,counting, quata; task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); max_light = 0; max_time = 0; light_number = 0; roll_number = 0; count = 0; quata = 0; for(number = 1; number <= 188; number++) { OnFwd(OUT_A); OnRev(OUT_C); Wait(1); light_number = SENSOR_1; if(light_number > max_light){ max_light = light_number; max_time = number; } } roll_number = 218-max_time; OnFwd(OUT_C); OnRev(OUT_A); Wait(roll_number); Off(OUT_A+OUT_C); while(1) { light_number1 = 0; light_number2 = 0; max_light1 = 0; max_light2 = 0; count++; counting = 10; quata = 15; if(count%4 == 0){ counting = 30; quata = 30; } for(number1=1; number1<=counting; number1++) { OnFwd(OUT_A); OnRev(OUT_C); Wait(1); light_number1 = SENSOR_1; if(light_number1 > max_light1){ max_light1 = light_number1; max_time1 = number1; } } OnFwd(OUT_C); OnRev(OUT_A); Wait(counting); for(number2=1; number2<=counting ; number2++) { OnFwd(OUT_C); OnRev(OUT_A); Wait(1); light_number2 = SENSOR__1; if(light_number2 > max_light2){ max_light2 = light_number2; max_time2 = number2; } (OUT_A); } Wait(number2); OnFwd(OUT_A+OUTC); OnRev(OUT_C) Wait(counting); if(max_light1 > max_light2){ max_light2 = light_number2; max_time2 = number2; } (OUT_A); } Wait(number2); OnFwd(OUT_A+OUT_C); Wait(quata);} if(max_light1 == max_light2){ OnFwd(OUT_A+OUT_C); Wait(quata);} } }
工夫した点:
[必須] 明るいところでは、長調で、暗いところでは短調で、 曲を演奏するプログラムを作成しなさい (曲は何でもよい) (練習問題 5.2)。
工夫した点:
[自由課題] 黒い線に沿って速く走るロボットを作成せよ (例題の改良)。
#define THRESHOLD 40 task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); /* ClearTimer(0);*/ while(1) { if(SENSOR_1 > THRESHOLD) { OnFwd(OUT_A); Off(OUT_C); } else { Off(OUT_A); OnFwd(OUT_C); } } }
工夫した点:
ライトセンサーの位置を機体の中心にした部分