version 2.04 platform bioloid2 o // param_text:Bioloid Premium Kit Robot Flower Task code o // param_text:Initial Release : July 9, 2010. o // param_text:Revised : Assembly check added (September 28, 2010/). o // param_text:How the program works o // param_text:The flower blossoms. o // param_text:With one clap the flower opens slowly; with 2 claps it opens faster. o main o begin o if param_src:cm:32 lop:== param_src:button_num:4 rop:then o jump laddr_dest:AssemblyCheckMode o for param_var:ID param_src:dec_num:1 param_src:dec_num:6 o begin o if param_src:custom:b:ID:3 lop:!= param_src:var:ID rop:then o call faddr_dest:AssemblyError o // param_text:Dynamixel ID check o if param_src:custom:w:ID:8 lop:== param_src:dec_num:0 rop:then o load param_dest:custom:w:ID:8 param_src:dec_num:1023 o // param_text:Dynamixel mode check (joint or wheel) o end o // param_text:Assembly check o call faddr_dest:Blossom o load param_dest:cm:56 param_src:dec_num:0 o while(1) o begin o if param_src:cm:56 lop:== param_src:dec_num:1 rop:then o begin o call faddr_dest:FlowerBend o load param_dest:cm:33 param_src:dec_num:35 o wait param_src:cm:33 lop:> param_src:timer_num:0 rop:then o load param_dest:cm:56 param_src:dec_num:0 o end o if param_src:cm:56 lop:>= param_src:dec_num:2 rop:then o begin o call faddr_dest:Wonder o load param_dest:cm:33 param_src:dec_num:35 o wait param_src:cm:33 lop:> param_src:timer_num:0 rop:then o load param_dest:cm:56 param_src:dec_num:0 o end o else o begin o call faddr_dest:FlowerBend o end o end o // param_text:Assembly check o label laddr_src:AssemblyCheckMode o // param_text:Assembly check tune o load param_dest:cm:55 param_src:buzzertime_num:255 o load param_dest:cm:54 param_src:melody_num:1 - o load param_dest:var:ID param_src:dec_num:1 o load param_dest:motor:254:32 param_src:dir_num:100 o load param_dest:motor:254:24 param_src:bool_num:0 o load param_dest:motor:254:25 param_src:bool_num:0 o load param_dest:cm:33 param_src:timer_num:12 o call faddr_dest:WaitTimerCompletion - o while(1) o begin o if param_src:cm:32 lop:== param_src:button_num:8 rop:then o begin o load param_dest:motor:254:24 param_src:bool_num:0 o load param_dest:cm:33 param_src:timer_num:5 o load param_dest:cm:55 param_src:buzzertime_num:5 o load param_dest:cm:54 param_src:scale_num:15 o call faddr_dest:WaitTimerCompletion o if param_src:var:ID lop:< param_src:dec_num:6 rop:then o begin o load param_dest:custom:b:ID:24 param_src:dec_num:0 o load param_dest:custom:b:ID:25 param_src:dec_num:0 o compute param_dest:var:ID param_src:var:ID aop:+ param_src:dec_num:1 o end o end o elseif param_src:cm:32 lop:== param_src:button_num:4 rop:then o begin o load param_dest:motor:254:24 param_src:bool_num:0 o load param_dest:cm:33 param_src:timer_num:5 o load param_dest:cm:55 param_src:buzzertime_num:5 o load param_dest:cm:54 param_src:scale_num:3 o call faddr_dest:WaitTimerCompletion o if param_src:var:ID lop:> param_src:dec_num:1 rop:then o begin o load param_dest:custom:b:ID:24 param_src:dec_num:0 o load param_dest:custom:b:ID:25 param_src:dec_num:0 o compute param_dest:var:ID param_src:var:ID aop:- param_src:dec_num:1 o end o end o elseif param_src:cm:32 lop:== param_src:button_num:1 rop:then o jump laddr_dest:SensorCheckMode o if param_src:custom:b:ID:3 lop:!= param_src:var:ID 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:16 o end o end o elseif param_src:custom:w:ID:34 lop:== param_src:dec_num:0 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:18 o end o end o else o begin o load param_dest:custom:w:ID:30 param_src:dec_num:512 o load param_dest:custom:b:ID:25 param_src:dec_num:1 o end o end o label laddr_src:SensorCheckMode o load param_dest:motor:254:32 param_src:dir_num:100 o load param_dest:motor:254:24 param_src:bool_num:0 o load param_dest:motor:254:25 param_src:bool_num:0 o load param_dest:cm:55 param_src:buzzertime_num:255 o load param_dest:cm:54 param_src:melody_num:10 o call faddr_dest:AssemblyCheckPosition o while(1) o begin o if param_src:cm:32 lop:== param_src:button_num:2 rop:then o jump laddr_dest:AssemblyCheckMode o end o // param_text:Assembly check o end - o function faddr_src:ActuatorInitialization o begin o load param_dest:custom:w:1:8 param_src:bin_num:1023 o load param_dest:custom:w:2:8 param_src:bin_num:1023 o load param_dest:custom:w:3:8 param_src:bin_num:1023 o load param_dest:custom:w:4:8 param_src:bin_num:1023 o load param_dest:custom:w:5:8 param_src:bin_num:1023 o load param_dest:custom:w:6:8 param_src:bin_num:1023 o load param_dest:custom:w:7:8 param_src:bin_num:1023 o load param_dest:custom:w:8:8 param_src:bin_num:1023 o end o function faddr_src:Blossom o begin o load param_dest:motion:24 param_src:dec_num:5 o end - o function faddr_src:Wonder o begin o load param_dest:motion:24 param_src:dec_num:-1 o wait param_src:motion:25 lop:== param_src:bool_num:1 rop:then o load param_dest:motion:24 param_src:dec_num:9 o wait param_src:motion:25 lop:== param_src:bool_num:1 rop:then o end - o function faddr_src:FlowerBend o begin o load param_dest:motion:24 param_src:dec_num:-1 o wait param_src:motion:25 lop:== param_src:bool_num:1 rop:then o load param_dest:motion:24 param_src:dec_num:1 o wait param_src:motion:25 lop:== param_src:bool_num:1 rop:then o end o // param_text:Assembly check o function faddr_src:WaitTimerCompletion o begin o wait param_src:cm:33 lop:> param_src:timer_num:0 rop:then o end - o function faddr_src:AssemblyCheckPosition o begin o for param_var:ID param_src:dec_num:1 param_src:dec_num:6 o begin o load param_dest:custom:w:ID:30 param_src:dec_num:512 o end o end - o function faddr_src:AssemblyError o begin o load param_dest:motor:254:32 param_src:dir_num:100 o load param_dest:motor:254:24 param_src:bool_num:0 o load param_dest:motor:254:25 param_src:bool_num:0 o while(1) 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:16 o end o end o end bS