version 3.00 cm_version 2.0 platform CM-150 o // param_text:Title: ROBOTIS Dream Level 4 combat robot o // param_text:Initial release: 2014/2/24 o // param_text:Last edited: 2014/2/24 o // param_text:[operation method] o // param_text:Control the robot via RC-100 o main o begin o // param_text:Play a melody when turned on. o load param_dest:cm:18 param_src:buzzertime_num:255 o load param_dest:cm:17 param_src:melody_num:3 o wait param_src:cm:18 lop:> param_src:buzzertime_num:0 rop:then - o // param_text:Initial values o load param_dest:var:driving_speed param_src:dec_num:800 o load param_dest:cm:23 param_src:powersave_num:0 o load param_dest:aux:3:61 param_src:bool_num:1 o load param_dest:aux:3:62 param_src:dec_num:512 - o // param_text:Max time of no signal reception to RC-100 o load param_dest:var:stop_wait_time param_src:timer_num:2 o while(1) o begin o // param_text:When no communications exceed the time set above robot action halts o // param_text:block any further moves when signal is lost o load param_dest:cm:5 param_src:var:stop_wait_time o while param_src:cm:2 lop:== param_src:bool_num:0 rop:then o begin o if param_src:cm:5 lop:== param_src:dec_num:0 rop:then o call faddr_dest:stop o end - o if param_src:cm:2 lop:== param_src:bool_num:1 rop:then o begin o // param_text:separate between moving and caterpilar position o load param_dest:var:rx_data param_src:cm:1 o compute param_dest:var:move_button param_src:var:rx_data aop:& param_src:rc100z_num:15 o compute param_dest:var:body_adjust param_src:var:rx_data aop:& param_src:rc100z_num:240 - o // param_text:directionals o if param_src:var:move_button lop:== param_src:rc100z_num:1 rop:then o begin o call faddr_dest:forward o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:2 rop:then o begin o call faddr_dest:reverse o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:4 rop:then o begin o call faddr_dest:pivot_left o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:8 rop:then o begin o call faddr_dest:pivot_right o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:5 rop:then o begin o call faddr_dest:forward_left o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:9 rop:then o begin o call faddr_dest:forward_right o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:6 rop:then o begin o call faddr_dest:reverse_left o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:10 rop:then o begin o call faddr_dest:reverse_right o end o elseif param_src:var:move_button lop:== param_src:rc100z_num:0 rop:then o begin o call faddr_dest:stop o end - o // param_text:adjust bosy o if param_src:var:body_adjust lop:== param_src:rc100z_num:16 rop:then o begin o load param_dest:aux:3:62 param_src:position_num:586 o end o elseif param_src:var:body_adjust lop:== param_src:rc100z_num:64 rop:then o begin o load param_dest:aux:3:62 param_src:position_num:270 o end o elseif param_src:var:body_adjust lop:== param_src:rc100z_num:32 rop:|| param_src:var:body_adjust lop:== param_src:rc100z_num:128 rop:then o begin o load param_dest:aux:3:62 param_src:position_num:440 o end o end o end o end - o function faddr_src:forward o begin o compute param_dest:aux:1:68 param_src:dir_num:0 aop:+ param_src:var:driving_speed o compute param_dest:aux:2:68 param_src:dir_num:1024 aop:+ param_src:var:driving_speed o end o function faddr_src:reverse o begin o compute param_dest:aux:1:68 param_src:dir_num:1024 aop:+ param_src:var:driving_speed o compute param_dest:aux:2:68 param_src:dir_num:0 aop:+ param_src:var:driving_speed o end o function faddr_src:pivot_left o begin o compute param_dest:aux:1:68 param_src:dir_num:1024 aop:+ param_src:var:driving_speed o compute param_dest:aux:2:68 param_src:dir_num:1024 aop:+ param_src:var:driving_speed o end o function faddr_src:pivot_right o begin o compute param_dest:aux:1:68 param_src:dir_num:0 aop:+ param_src:var:driving_speed o compute param_dest:aux:2:68 param_src:dir_num:0 aop:+ param_src:var:driving_speed o end o function faddr_src:forward_left o begin o load param_dest:aux:1:68 param_src:dir_num:0 o compute param_dest:aux:2:68 param_src:dir_num:1024 aop:+ param_src:var:driving_speed o end o function faddr_src:forward_right o begin o compute param_dest:aux:1:68 param_src:dir_num:0 aop:+ param_src:var:driving_speed o load param_dest:aux:2:68 param_src:dir_num:0 o end o function faddr_src:reverse_left o begin o load param_dest:aux:1:68 param_src:dir_num:0 o compute param_dest:aux:2:68 param_src:dir_num:0 aop:+ param_src:var:driving_speed o end o function faddr_src:reverse_right o begin o compute param_dest:aux:1:68 param_src:dir_num:1024 aop:+ param_src:var:driving_speed o load param_dest:aux:2:68 param_src:dir_num:0 o end o function faddr_src:stop o begin o load param_dest:aux:1:68 param_src:dir_num:0 o load param_dest:aux:2:68 param_src:dir_num:0 o end