version 2.02 platform ollo o // param_text:Title- 3rd teaching program chapter 3 example (Probing car) o // param_text:First Distribution : 2009/10/01 o // param_text:Last Modify : 2010/05/31 o // param_text:[Operating] o // param_text:Robot will move according to the sensor value. o main o begin o // param_text:If you press the start button for more than 9 times, it will enter into the test mode. o if param_src:cm:57 lop:>= param_src:dec_num:9 rop:then o call faddr_dest:TestMode - o // param_text:It will play melody when it starts. o load param_dest:cm:55 param_src:buzzertime_num:255 o load param_dest:cm:54 param_src:melody_num:3 o wait param_src:cm:55 lop:> param_src:buzzertime_num:0 rop:then - o // param_text:Please control the moving speed by changing the below value. o load param_dest:var:MovingSpeed param_src:dec_num:700 o load param_dest:var:BlackLineDetectionValue param_src:dec_num:400 - o // param_text:Initialization o load param_dest:aux_servo:3:0 param_src:bool_num:1 o load param_dest:aux_servo:4:0 param_src:bool_num:1 o load param_dest:aux_servo:3:1 param_src:dir_num:800 o load param_dest:aux_servo:4:1 param_src:dir_num:800 o call faddr_dest:TweezersOpen o call faddr_dest:TweezersUp o call faddr_dest:Delay5 - o while(1) o begin o if param_src:cm:50 lop:> param_src:var:BlackLineDetectionValue rop:&& param_src:cm:52 lop:< param_src:var:BlackLineDetectionValue rop:then o begin o // param_text:It will change its course in the right direction when a line is detected from the right sensor. o compute param_dest:aux_motor:1 param_src:dir_num:0 aop:+ param_src:var:MovingSpeed o load param_dest:aux_motor:2 param_src:dir_num:1024 o end o elseif param_src:cm:50 lop:< param_src:var:BlackLineDetectionValue rop:&& param_src:cm:52 lop:> param_src:var:BlackLineDetectionValue rop:then o begin o // param_text:It will change its course in the left direction when a line is detected from the left sensor. o load param_dest:aux_motor:1 param_src:dir_num:0 o compute param_dest:aux_motor:2 param_src:dir_num:1024 aop:+ param_src:var:MovingSpeed o end o else o begin o // param_text:When an object is detected from ahead, it will move the object backwards, and go straight again. o if param_src:cm:51 lop:> param_src:dec_num:300 rop:then o begin o call faddr_dest:Stop o load param_dest:cm:55 param_src:buzzertime_num:255 o load param_dest:cm:54 param_src:melody_num:12 o wait param_src:cm:55 lop:> param_src:buzzertime_num:0 rop:then o call faddr_dest:Back2MoveCup o end - o call faddr_dest:Forward o end o end o end - o function faddr_src:Back2MoveCup o begin o call faddr_dest:SlowBackward o call faddr_dest:SlowBackward o call faddr_dest:TweezersDown - o call faddr_dest:SlowForward o call faddr_dest:Delay5 - o call faddr_dest:TweezersClose o call faddr_dest:TweezersUp o call faddr_dest:TurnRight - o call faddr_dest:Delay5 o call faddr_dest:SlowForward - o call faddr_dest:TweezersDown o call faddr_dest:TweezersOpen o call faddr_dest:SlowBackward - o call faddr_dest:TweezersUp o call faddr_dest:SlowBackward o call faddr_dest:TurnLeft o end - o function faddr_src:TweezersOpen o begin o load param_dest:aux_servo:3:2 param_src:dec_num:320 o call faddr_dest:Delay5 o end - o function faddr_src:TweezersClose o begin o load param_dest:aux_servo:3:2 param_src:dec_num:630 o call faddr_dest:Delay5 o end - o function faddr_src:TweezersUp o begin o load param_dest:aux_servo:4:2 param_src:position_num:312 o call faddr_dest:Delay5 o end - o function faddr_src:TweezersDown o begin o load param_dest:aux_servo:4:2 param_src:position_num:512 o call faddr_dest:Delay5 o end - o function faddr_src:Forward o begin o compute param_dest:aux_motor:1 param_src:dir_num:0 aop:+ param_src:var:MovingSpeed o compute param_dest:aux_motor:2 param_src:dir_num:1024 aop:+ param_src:var:MovingSpeed o end - o function faddr_src:SlowForward o begin o call faddr_dest:Delay1 o load param_dest:aux_motor:1 param_src:dir_num:600 o load param_dest:aux_motor:2 param_src:dir_num:1624 o call faddr_dest:Delay1 o call faddr_dest:Stop o end - o function faddr_src:SlowBackward o begin o call faddr_dest:Delay1 o load param_dest:aux_motor:1 param_src:dir_num:1624 o load param_dest:aux_motor:2 param_src:dir_num:600 o call faddr_dest:Delay1 o call faddr_dest:Stop o end - o function faddr_src:Stop o begin o load param_dest:aux_motor:1 param_src:dir_num:0 o load param_dest:aux_motor:2 param_src:dir_num:1024 o end - o function faddr_src:TurnRight o begin o call faddr_dest:Delay1 o load param_dest:aux_motor:1 param_src:dir_num:600 o load param_dest:aux_motor:2 param_src:dir_num:600 o call faddr_dest:Delay4 - o wait param_src:cm:52 lop:> param_src:var:BlackLineDetectionValue rop:then o wait param_src:cm:50 lop:> param_src:var:BlackLineDetectionValue rop:then - o load param_dest:aux_motor:1 param_src:dir_num:1624 o load param_dest:aux_motor:2 param_src:dir_num:1624 o wait param_src:cm:50 lop:<= param_src:var:BlackLineDetectionValue rop:then - o call faddr_dest:Stop o end - o function faddr_src:TurnLeft o begin o call faddr_dest:Delay1 o load param_dest:aux_motor:1 param_src:dir_num:1624 o load param_dest:aux_motor:2 param_src:dir_num:1624 o call faddr_dest:Delay4 - o wait param_src:cm:50 lop:> param_src:var:BlackLineDetectionValue rop:then o wait param_src:cm:52 lop:> param_src:var:BlackLineDetectionValue rop:then o call faddr_dest:Stop o end - o function faddr_src:Delay5 o begin o load param_dest:cm:33 param_src:timer_num:5 o wait param_src:cm:33 lop:> param_src:timer_num:0 rop:then o end - o function faddr_src:Delay4 o begin o load param_dest:cm:33 param_src:timer_num:4 o wait param_src:cm:33 lop:> param_src:timer_num:0 rop:then o end - o function faddr_src:Delay1 o begin o load param_dest:cm:33 param_src:timer_num:1 o wait param_src:cm:33 lop:> param_src:timer_num:0 rop:then o end - o function faddr_src:TestMode o begin o load param_dest:cm:55 param_src:buzzertime_num:255 o load param_dest:cm:54 param_src:melody_num:12 o wait param_src:cm:55 lop:> param_src:buzzertime_num:0 rop:then - o load param_dest:aux_servo:3:0 param_src:bool_num:1 o load param_dest:aux_servo:4:0 param_src:bool_num:1 o load param_dest:aux_servo:3:1 param_src:dir_num:768 o load param_dest:aux_servo:4:1 param_src:dir_num:768 o load param_dest:aux_servo:3:2 param_src:dec_num:512 o load param_dest:aux_servo:4:2 param_src:dec_num:512 - o load param_dest:var:Check param_src:bool_num:0 - o while(1) o begin o if param_src:cm:50 lop:> param_src:dec_num:150 rop:then o load param_dest:aux_motor:1 param_src:dir_num:600 o else o load param_dest:aux_motor:1 param_src:dir_num:0 - o if param_src:cm:52 lop:> param_src:dec_num:150 rop:then o load param_dest:aux_motor:2 param_src:dir_num:1624 o else o load param_dest:aux_motor:2 param_src:dir_num:0 - o if param_src:cm:51 lop:> param_src:dec_num:150 rop:&& param_src:var:Check lop:== param_src:bool_num:0 rop:then o begin o call faddr_dest:TweezersOpen o load param_dest:aux_servo:3:2 param_src:dec_num:512 o call faddr_dest:Delay5 o load param_dest:var:Check param_src:bool_num:1 o end o elseif param_src:cm:51 lop:<= param_src:dec_num:150 rop:&& param_src:var:Check lop:== param_src:bool_num:1 rop:then o begin o call faddr_dest:TweezersUp o load param_dest:aux_servo:4:2 param_src:dec_num:512 o call faddr_dest:Delay5 o load param_dest:var:Check param_src:bool_num:0 o end o end o end ÎÕ