version 2.01 platform ollo o // param_text:Title- 3rd teaching program chapter 8 example (Tank) 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:12 o wait param_src:cm:55 lop:> param_src:buzzertime_num:0 rop:then - o // param_text:Set up the wireless channel of RC-100. o if param_src:cm:57 lop:< param_src:dec_num:9 rop:then o load param_dest:cm:59 param_src:cm:57 o else o load param_dest:cm:59 param_src:channel_num:8 - o // param_text:Set up weapon moving speed o load param_dest:var:CannonSpeed param_src:dec_num:750 o // param_text:Set up maximum moving speed o load param_dest:var:MaximumSpeed param_src:dec_num:1023 - o // param_text:Weapon position initialization o load param_dest:aux_servo:3:0 param_src:bool_num:1 o load param_dest:aux_servo:3:1 param_src:var:MaximumSpeed o load param_dest:aux_servo:3:2 param_src:dec_num:512 - 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 call faddr_dest:Stop o call faddr_dest:CannonStop 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/L/R buttons on RC-100 o compute param_dest:var:MovingControlKey param_src:var:ReceivedData aop:& param_src:rc100z_num:15 o if param_src:var:MovingControlKey lop:== param_src:rc100z_num:1 rop:then o call faddr_dest:Forward o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:2 rop:then o call faddr_dest:Backward o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:4 rop:then o call faddr_dest:TurnLeft o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:8 rop:then o call faddr_dest:TurnRight o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:5 rop:then o call faddr_dest:ForwardLeft o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:9 rop:then o call faddr_dest:ForwardRight o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:6 rop:then o call faddr_dest:BackwardLeft o elseif param_src:var:MovingControlKey lop:== param_src:rc100z_num:10 rop:then o call faddr_dest:BackwardRight o else o call faddr_dest:Stop - o // param_text:It will move its weapons by the 2/4 buttons on RC-100 o compute param_dest:var:CannonControlKey param_src:var:ReceivedData aop:& param_src:rc100z_num:160 o if param_src:var:CannonControlKey lop:== param_src:rc100z_num:32 rop:then o call faddr_dest:CannonCCWRotating o elseif param_src:var:CannonControlKey lop:== param_src:rc100z_num:128 rop:then o call faddr_dest:CannonCWRotating o else o call faddr_dest:CannonStop - o // param_text:When the button 1on RC-100 is being pressed, it will play the melody blinking the LED light alternately. o compute param_dest:var:CannonShootingKey param_src:var:ReceivedData aop:& param_src:rc100z_num:16 o if param_src:var:CannonShootingKey lop:== param_src:rc100z_num:16 rop:then o begin o if param_src:cm:55 lop:== param_src:buzzertime_num:0 rop:then o begin o load param_dest:cm:55 param_src:buzzertime_num:255 o load param_dest:cm:54 param_src:melody_num:4 o end o end o end o end - o function faddr_src:Forward o begin o call faddr_dest:Motor1ForwardRotating o call faddr_dest:Motor2ReverseRotating o end - o function faddr_src:Backward o begin o call faddr_dest:Motor1ReverseRotating o call faddr_dest:Motor2ForwardRotating o end - o function faddr_src:TurnLeft o begin o call faddr_dest:Motor1ReverseRotating o call faddr_dest:Motor2ReverseRotating o end - o function faddr_src:TurnRight o begin o call faddr_dest:Motor1ForwardRotating o call faddr_dest:Motor2ForwardRotating o end - o function faddr_src:BackwardLeft o begin o call faddr_dest:Motor1Stop o call faddr_dest:Motor2ForwardRotating o end - o function faddr_src:BackwardRight o begin o call faddr_dest:Motor1ReverseRotating o call faddr_dest:Motor2Stop o end - o function faddr_src:ForwardLeft o begin o call faddr_dest:Motor1Stop o call faddr_dest:Motor2ReverseRotating o end - o function faddr_src:ForwardRight o begin o call faddr_dest:Motor1ForwardRotating o call faddr_dest:Motor2Stop o end - o function faddr_src:Stop o begin o call faddr_dest:Motor1Stop o call faddr_dest:Motor2Stop o end - o function faddr_src:CannonCCWRotating o begin o load param_dest:aux_servo:3:2 param_src:dec_num:1023 o load param_dest:aux_servo:3:1 param_src:var:CannonSpeed o end - o function faddr_src:CannonCWRotating o begin o load param_dest:aux_servo:3:2 param_src:dec_num:0 o load param_dest:aux_servo:3:1 param_src:var:CannonSpeed o end - o function faddr_src:CannonStop o begin o load param_dest:aux_servo:3:1 param_src:dir_num:0 o end - o function faddr_src:Motor1ForwardRotating o begin o load param_dest:aux_motor:1 param_src:var:MaximumSpeed o end - o function faddr_src:Motor1ReverseRotating o begin o compute param_dest:aux_motor:1 param_src:dir_num:1024 aop:+ param_src:var:MaximumSpeed o end - o function faddr_src:Motor1Stop o begin o load param_dest:aux_motor:1 param_src:dir_num:0 o end - o function faddr_src:Motor2ForwardRotating o begin o load param_dest:aux_motor:2 param_src:var:MaximumSpeed o end - o function faddr_src:Motor2ReverseRotating o begin o compute param_dest:aux_motor:2 param_src:dir_num:1024 aop:+ param_src:var:MaximumSpeed o end - o function faddr_src:Motor2Stop o begin o load param_dest:aux_motor:2 param_src:dir_num:0 o end +