[[2015a/Member]] *ロボット本体の説明 [#mad047d8] **ロボットの紹介 [#e6b27aac] **アーム部分とセンサー部分 [#s2ec782d] *本体の制作において [#nb07a091] **工夫した点 [#cda40afd] **反省点 [#nbea7ffe] *プログラムの説明 [#p47e8be0] **ルートとボールの配置 [#y9bba3d6] **プログラム紹介 [#n5c6116b] #define gostr OnFwd(OUT_A+OUT_C); #define goback OnRev(OUT_A+OUT_C); #define gori OnFwd(OUT_A); OnRev(OUT_C); #define gole OnFwd(OUT_C); OnRev(OUT_A); #define THRESHOLD 40 #define runtimeone 95 #define armtimer 200 #define STEP 300 task main() { SetSensor(SENSOR_1, SENSOR_LIGHT); gostr; ClearTimer(0); ClearTimer(1); while(Timer(0) < runtimeone) { if(SENSOR_1 < THRESHOLD) { gori; until(SENSOR_1 > THRESHOLD); gostr; } else { gole; until(SENSOR_1 < THRESHOLD); gostr; } } /* 一回目の交差点で停止 */ Off(OUT_A+OUT_C); Wait(STEP); gostr; Wait(30); Off(OUT_A+OUT_C); while(Timer(1) < armtimer) { if(SENSOR_1 < THRESHOLD) { gori; until(SENSOR_1 > THRESHOLD); gostr; } else { gole; until(SENSOR_1 < THRESHOLD); gostr; } } Off(OUT_A+OUT_C); /* ボールを掴む動作 */ OnRev(OUT_B); Wait(10); Off(OUT_B); gostr; Wait(30); Off(OUT_A+OUT_C); OnFwd(OUT_B); Wait(10); Off(OUT_B); goback(OUT_A+OUT_C); Wait(40); Off(OUT_A+OUT_C); Wait(30); ClearTimer(0); while(Timer(0) < 100) { if(SENSOR_1 < THRESHOLD) { gori; until(SENSOR_1 > THRESHOLD); gostr; } else { gole; until(SENSOR_1 < THRESHOLD); gostr; } } /* 二回目の交差点で停止 */ Off(OUT_A+OUT_C); Wait(STEP); gostr; Wait(30); Off(OUT_A+OUT_C); ClearTimer(0); while(Timer(0) < 190) { if(SENSOR_1 < THRESHOLD) { gori; until(SENSOR_1 > THRESHOLD); gostr; } else { gole; until(SENSOR_1 < THRESHOLD); gostr; } } /* シュート*/ Off(OUT_A+OUT_C); Wait(30); gostr; Wait(100); Off(OUT_A+OUT_C); OnRev(OUT_B); Wait(10); Off(OUT_B); goback; Wait(100); Off(OUT_A+OUT_C);; }