def color_follow(): global pan_angle_color, tilt_angle_color Vilib.color_detect_switch(True) status = [Vilib.color_detect_object('x'), Vilib.color_detect_object('y')] size = [ Vilib.color_detect_object('width'), Vilib.color_detect_object('height') ] time.sleep(0.005) #on left -1 on right 1 if status[0] == -1: pan_angle_color = pan_angle_color + 1 set_camera_servo1_angle(min(90, pan_angle_color)) set_dir_servo_angle(max(-45, -pan_angle_color)) elif status[0] == 1: pan_angle_color = pan_angle_color - 1 set_camera_servo1_angle(max(-90, pan_angle_color)) set_dir_servo_angle(min(45, -pan_angle_color)) if status[1] == -1: tilt_angle_color = tilt_angle_color + 1 set_camera_servo2_angle(min(45, tilt_angle_color)) elif status[1] == 1: tilt_angle_color = tilt_angle_color - 1 set_camera_servo2_angle(max(-45, tilt_angle_color)) elif 0 < size[0] < 100 or 0 < size[1] < 100: forward(50) else: stop()
def forever(): global x_axis, width, pan_angle x_axis = Vilib.color_detect_object('x') width = Vilib.color_detect_object('width') delay(5) if x_axis == -1: pan_angle = pan_angle - 1 pan_angle = constrain(pan_angle, -90, 90) set_camera_servo1_angle(pan_angle) pan_angle = constrain(pan_angle, -45, 45) set_dir_servo_angle(pan_angle) elif x_axis == 1: pan_angle = pan_angle + 1 pan_angle = constrain(pan_angle, -90, 90) set_camera_servo1_angle(pan_angle) pan_angle = constrain(pan_angle, -45, 45) set_dir_servo_angle(pan_angle) if width > 50: forward(50) else: stop()