version 2.01 platform ollo o // param_text:Title- 3rd teaching program chapter 12 example (Racing car) o // param_text:First Distribution : 2009/10/01 o // param_text:Last Modify : 2009/10/01 o // param_text:[Operating] o // param_text:Operate the robot by using RC-100. o main o begin 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:Steering direction 0 : center, 1 : left, 2 : right o load param_dest:var:SteeringDirection param_src:dec_num:0 o load param_dest:var:HandleCenterPosition param_src:dec_num:512 o // param_text:Servo motor initialization o load param_dest:aux_servo:3:0 param_src:bool_num:1 o load param_dest:aux_servo:3:1 param_src:dir_num:1023 o load param_dest:aux_servo:3:2 param_src:var:HandleCenterPosition - o if param_src:cm:57 lop:<= param_src:dec_num:8 rop:then o begin o // param_text:If you press the start button for 1~8 times, it will move in remote mode. o load param_dest:cm:59 param_src:cm:57 o jump laddr_dest:RomoconControlMode o end o else o begin o // param_text:If you press more than 9 times, it will move in line tracing mode. o jump laddr_dest:LineTracerMode o end - o label laddr_src:RomoconControlMode o // param_text:It will be turned off automatically if there are no movements for more than 2 minutes o load param_dest:cm:60 param_src:powersave_num:2 - o // param_text:Set up the maximum period receiving the wireless signals of RC-100 o load param_dest:var:StopWaitTime param_src:timer_num:6 o while(1) o begin o // param_text:It will stop every movement if the wireless data are not arrived within the setting time. o // param_text:It is to prevent moving continuously due to missing wireless signals. o load param_dest:cm:33 param_src:var:StopWaitTime o while param_src:cm:30 lop:== param_src:bool_num:0 rop:then o begin o if param_src:cm:33 lop:== param_src:dec_num:0 rop:then o begin o load param_dest:aux_motor:1 param_src:dir_num:0 o load param_dest:aux_servo:3:2 param_src:var:HandleCenterPosition o end o end o load param_dest:var:ReceivedData param_src:cm:28 - o // param_text:It will reset the ending time at 2 minutes when receiving the wireless signals of remotes. o load param_dest:cm:60 param_src:powersave_num:2 - o // param_text:It will move by the U/D buttons on RC-100 o compute param_dest:var:MovingControlKey param_src:var:ReceivedData aop:& param_src:rc100z_num:3 o if param_src:var:MovingControlKey lop:== param_src:rc100z_num:1 rop:then o load param_dest:aux_motor:1 param_src:dir_num:2047 o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:2 rop:then o load param_dest:aux_motor:1 param_src:dir_num:1023 o else o load param_dest:aux_motor:1 param_src:dir_num:0 - o // param_text:It will move its steering direction by the 2/4 buttons on RC-100 o compute param_dest:var:HandleKey param_src:var:ReceivedData aop:& param_src:rc100z_num:160 o if param_src:var:HandleKey lop:== param_src:rc100z_num:32 rop:then o begin o load param_dest:aux_servo:3:2 param_src:dec_num:350 o load param_dest:var:SteeringDirection param_src:dec_num:1 o end o elseif param_src:var:HandleKey lop:== param_src:rc100z_num:128 rop:then o begin o load param_dest:aux_servo:3:2 param_src:dec_num:673 o load param_dest:var:SteeringDirection param_src:dec_num:2 o end o else o begin o // param_text:If the 2 or 4 button is not pressed, it will move the steering device to central location. o if param_src:var:SteeringDirection lop:== param_src:dec_num:1 rop:then o begin o compute param_dest:aux_servo:3:2 param_src:var:HandleCenterPosition aop:+ param_src:dec_num:40 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 elseif param_src:var:SteeringDirection lop:== param_src:dec_num:2 rop:then o begin o compute param_dest:aux_servo:3:2 param_src:var:HandleCenterPosition aop:- param_src:dec_num:40 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 load param_dest:aux_servo:3:2 param_src:var:HandleCenterPosition o load param_dest:var:SteeringDirection param_src:dec_num:0 o end o end - o label laddr_src:LineTracerMode o // param_text:Forward o load param_dest:aux_motor:1 param_src:dir_num:1724 - o while(1) o begin o // param_text:If black line is detected from a left sensor, it will handle the steering device leftwards, o // param_text:If black line is detected from a right sensor, it will handle the steering device rightwards. o // param_text:Otherwise, it will move it to central location. o if param_src:cm:50 lop:< param_src:dec_num:300 rop:&& param_src:cm:52 lop:> param_src:dec_num:300 rop:then o load param_dest:aux_servo:3:2 param_src:dec_num:350 o elseif param_src:cm:50 lop:> param_src:dec_num:300 rop:&& param_src:cm:52 lop:< param_src:dec_num:300 rop:then o load param_dest:aux_servo:3:2 param_src:dec_num:673 o else o load param_dest:aux_servo:3:2 param_src:var:HandleCenterPosition o end o end ñg