/* /0LOGBOOK 0 */ program test { #include #include #include #include var TurnCount = 0 var WheelTurnCount = 0 var TurnCountLeft = 0 var TurnCountRight = 0 event timer2_timer2Event when timer2 > 20 sensor rotation3 on 3 rotation3 is rotation as angle macro SETVARIABLES { TurnCountRight = 1370 TurnCountLeft = -1370 TurnCount = 0 clear Timer1 clear Timer2 sound 6 rcx_Calibrate(4,4) clear Rotation3 } macro CONFIRM { wait 300 sound 6 } macro FORWARD1SEC { direction [ A B ] [ ] STARTWHEELMOTOR clear Timer2 wait until timer2_timer2Event STOPWHEELMOTOR } macro RIGHT90 { TURNRIGHT } macro STARTWHEELMOTOR { on [ A B ] } macro STOPWHEELMOTOR { off [ A B ] } macro TURNRIGHT { STARTTURN WHEELTURNRIGHT ENDTURN } macro STARTTURN { direction [ ] [ C ] rcx_Calibrate(4,4) clear Rotation3 display rotation3 while rotation3 > (TurnCountLeft / 10) { on [ C ] } off [ C ] } macro WHEELTURNRIGHT { direction [ B ] [ A ] WHEELTURN } macro ENDTURN { direction [ C ] [ ] rcx_Calibrate(4,4) clear Rotation3 display rotation3 while rotation3 < (TurnCountRight / 10) { on [ C ] } off [ C ] } macro WHEELTURN { clear Timer2 display timer2:1 while timer2 < 18 { on [ A B ] } off [ A B ] } macro LEFT90 { TURNLEFT } macro TURNLEFT { STARTTURN WHEELTURNLEFT WHEELTURN ENDTURN } macro WHEELTURNLEFT { direction [ A ] [ B ] } macro FWDREV { FORWARD2SEC REVERSE2SEC } macro FORWARD2SEC { direction [ A B ] [ ] STARTWHEELMOTOR clear Timer2 wait until timer2_timer2Event STOPWHEELMOTOR } macro REVERSE2SEC { direction [ ] [ A B ] STARTWHEELMOTOR clear Timer2 wait until timer2_timer2Event STOPWHEELMOTORS } macro STOPWHEELMOTORS { float [ A B ] } macro SQUARE { repeat 4 { FORWARD1SEC LEFT90 } } main { ext InterfaceType "kFreestyle" rcx_ClearTimers bbs_GlobalReset([A B C]) trigger timer2_timer2Event try { SETVARIABLES } retry on fail try { CONFIRM } retry on fail try { FORWARD1SEC } retry on fail try { RIGHT90 } retry on fail try { FORWARD1SEC } retry on fail try { CONFIRM } retry on fail try { stop tasks } retry on fail } fragment ( 372,832 ) { WHEELTURN counter1 = 0 counter1 += 10 } fragment ( 324,-185 ) { RIGHT90 } fragment ( 462,-179 ) { FORWARD1SEC } fragment ( 500,120 ) { CONFIRM SETVARIABLES SETVARIABLES CONFIRM } fragment ( 504,17 ) { CONFIRM } fragment ( 173,-168 ) { LEFT90 } fragment ( 215,85 ) { FWDREV } fragment ( 338,353 ) { LEFT90 wait 200 } fragment ( 356,181 ) { SQUARE } }