def script_square(self, robot, _log): """ Same as 'square' demo, but using a script with 'wait distance' and 'wait angle' statements.""" robot.define_script(irobot.make_script( # 1st side irobot.Command.drive(200), irobot.Command.wait_distance(300), irobot.Command.drive(200, irobot.OI_SPIN_CCW), irobot.Command.wait_angle(90), # 2nd side irobot.Command.drive(200), irobot.Command.wait_distance(300), irobot.Command.drive(200, irobot.OI_SPIN_CCW), irobot.Command.wait_angle(90), irobot.Command.drive(200), # 3rd side irobot.Command.wait_distance(300), irobot.Command.drive(200, irobot.OI_SPIN_CCW), irobot.Command.wait_angle(90), irobot.Command.drive(200), # 4th side, ended by a reciprocal spi irobot.Command.wait_distance(300), irobot.Command.drive(200, irobot.OI_SPIN_CW), irobot.Command.wait_angle(-270), # that's all folks irobot.Command.stop() ) ) robot.play_script()
def script_leds(self, robot, _log): """ Execute a script which lights the "play" LED when the bumper is pressed.""" robot.define_script(irobot.make_script( irobot.Command.wait_event(irobot.OI_WAIT_BUMP), irobot.Command.wait_event(irobot.inverse(irobot.OI_WAIT_BUMP)), irobot.Command.leds(irobot.OI_LED_PLAY, irobot.OI_LED_OFF, irobot.OI_LED_OFF), irobot.Command.wait_event(irobot.OI_WAIT_BUMP), irobot.Command.wait_event(irobot.inverse(irobot.OI_WAIT_BUMP)), irobot.Command.leds(irobot.OI_LED_OFF, irobot.OI_LED_OFF, irobot.OI_LED_OFF), irobot.Command.play_script() ) ) robot.play_script()