def __init__(self): # Initialize the EV3 brick. self.ev3 = EV3Brick() # Initialize the motors connected to the back legs. self.left_leg_motor = Motor(Port.D, Direction.COUNTERCLOCKWISE) self.right_leg_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE) # Initialize the motor connected to the head. # Worm gear moves 1 tooth per rotation. It is interfaced to a 24-tooth # gear. The 24-tooth gear is connected to parallel 12-tooth gears via # an axle. The 12-tooth gears interface with 36-tooth gears. self.head_motor = Motor(Port.C, Direction.COUNTERCLOCKWISE, gears=[[1, 24], [12, 36]]) # Initialize the Color Sensor. self.color_sensor = ColorSensor(Port.S4) # Initialize the touch sensor. self.touch_sensor = TouchSensor(Port.S1) # This attribute is used by properties. self._eyes = None # These attributes are used by the playful behavior. self.playful_timer = StopWatch() self.playful_bark_interval = None
def __init__(self, left_motor_port: Port = Port.C, right_motor_port: Port = Port.B, wiggle_motor_port: Port = Port.A, polarity: str = 'inversed', touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__(wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_motor_port, right_motor_port=right_motor_port, polarity=polarity, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.ev3_brick = EV3Brick() self.wiggle_motor = Motor(port=wiggle_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port)
def __init__( self, crushing_claw_motor_port: Port = Port.A, moving_motor_port: Port = Port.B, lightning_tail_motor_port: Port = Port.D, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.ev3_brick = EV3Brick() self.crushing_claw_motor = \ Motor(port=crushing_claw_motor_port, positive_direction=Direction.CLOCKWISE) self.moving_motor = \ Motor(port=moving_motor_port, positive_direction=Direction.CLOCKWISE) self.lightning_tail_motor = \ Motor(port=lightning_tail_motor_port, positive_direction=Direction.CLOCKWISE) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port)
def __init__( self, left_track_motor_port: Port = Port.B, right_track_motor_port: Port = Port.C, gripping_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__( wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_track_motor_port, right_motor_port=right_track_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.ev3_brick = EV3Brick() self.gripping_motor = Motor(port=gripping_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def __init__(self, left_foot_motor_port: Port = Port.B, right_foot_motor_port: Port = Port.C, bazooka_blast_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.drive_base = DriveBase( left_motor=Motor(port=left_foot_motor_port, positive_direction=Direction.CLOCKWISE), right_motor=Motor(port=right_foot_motor_port, positive_direction=Direction.CLOCKWISE), wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK) self.bazooka_blast_motor = Motor( port=bazooka_blast_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def __init__(self, left_motor_port: Port = Port.B, right_motor_port: Port = Port.C, grip_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.drive_base = DriveBase( left_motor=Motor(port=left_motor_port, positive_direction=Direction.CLOCKWISE), right_motor=Motor(port=right_motor_port, positive_direction=Direction.CLOCKWISE), wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK) self.drive_base.settings( straight_speed=750, # milimeters per second straight_acceleration=750, turn_rate=90, # degrees per second turn_acceleration=90) self.grip_motor = Motor(port=grip_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
class Gripp3r(RemoteControlledTank): WHEEL_DIAMETER = 26 # milimeters AXLE_TRACK = 115 # milimeters def __init__( self, left_track_motor_port: Port = Port.B, right_track_motor_port: Port = Port.C, gripping_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__( wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_track_motor_port, right_motor_port=right_track_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.ev3_brick = EV3Brick() self.gripping_motor = Motor(port=gripping_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel def grip_or_release_by_ir_beacon(self, speed: float = 500): if Button.BEACON in \ self.ir_sensor.buttons(channel=self.ir_beacon_channel): if self.touch_sensor.pressed(): self.ev3_brick.speaker.play_file(file=SoundFile.AIR_RELEASE) self.gripping_motor.run_time( speed=speed, time=1000, then=Stop.COAST, wait=True) else: self.ev3_brick.speaker.play_file(file=SoundFile.AIRBRAKE) self.gripping_motor.run(speed=-speed) while not self.touch_sensor.pressed(): pass self.gripping_motor.stop() while Button.BEACON in \ self.ir_sensor.buttons(channel=self.ir_beacon_channel): pass
def __init__(self): # Initialize the EV3 brick. self.ev3 = EV3Brick() # Initialize the motors connected to the back legs. self.left_leg_motor = Motor(Port.D, Direction.COUNTERCLOCKWISE) self.right_leg_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE) # Initialize the motor connected to the head. # Worm gear moves 1 tooth per rotation. It is interfaced to a 24-tooth # gear. The 24-tooth gear is connected to parallel 12-tooth gears via # an axle. The 12-tooth gears interface with 36-tooth gears. self.head_motor = Motor(Port.C, Direction.COUNTERCLOCKWISE, gears=[[1, 24], [12, 36]]) # Initialize the Color Sensor. It is used to detect the colors when # feeding the puppy. self.color_sensor = ColorSensor(Port.S4) # Initialize the touch sensor. It is used to detect when someone pets # the puppy. self.touch_sensor = TouchSensor(Port.S1) self.pet_count_timer = StopWatch() self.feed_count_timer = StopWatch() self.count_changed_timer = StopWatch() # These attributes are initialized later in the reset() method. self.pet_target = None self.feed_target = None self.pet_count = None self.feed_count = None # These attributes are used by properties. self._behavior = None self._behavior_changed = None self._eyes = None self._eyes_changed = None # These attributes are used in the eyes update self.eyes_timer_1 = StopWatch() self.eyes_timer_1_end = 0 self.eyes_timer_2 = StopWatch() self.eyes_timer_2_end = 0 self.eyes_closed = False # These attributes are used by the playful behavior. self.playful_timer = StopWatch() self.playful_bark_interval = None # These attributes are used in the update methods. self.prev_petted = None self.prev_color = None
def aua(): """ i do not like being touched : auaaaa.... """ beruehrung = TouchSensor(Port.S1) ev3.screen.load_image(ImageFile.NEUTRAL) while (beruehrung.pressed() == False): time.sleep(0.1) ev3.screen.load_image(ImageFile.KNOCKED_OUT) ev3.speaker.play_file(SoundFile.BACKING_ALERT)
def __init__(self, lever_motor_port: Port = Port.D, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4): self.ev3_brick = EV3Brick() self.lever_motor = Motor(port=lever_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port)
def __init__(self): self.resetY_Sensor = TouchSensor(Port.S2) self.chromoSensor = ColorSensor(Port.S1) self.claw_Motor = Motor(Port.A) self.y_Motor = Motor(Port.B) self.x_Motor1 = Motor(Port.C) self.x_Motor1.set_run_settings(200, 100) self.x_Motor2 = Motor(Port.D) self.x_Motor2.set_run_settings(200, 100) self.xAxisMotors = DriveBase(self.x_Motor1, self.x_Motor2, 50, 100) self.reset()
def aua_mit_auszeit(auszeit): """ you can make me angry by touching for as long as a duration of auszeit """ beruehrung = TouchSensor(Port.S1) tic = time.time() # start time while (time.time() - tic) < auszeit: if beruehrung.pressed(): ev3.screen.load_image(ImageFile.KNOCKED_OUT) ev3.speaker.play_file(SoundFile.BACKING_ALERT) else: ev3.screen.load_image(ImageFile.NEUTRAL) time.sleep(0.1)
def __init__( self, left_leg_motor_port: Port = Port.B, right_leg_motor_port: Port = Port.C, bazooka_blast_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__( wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_leg_motor_port, right_motor_port=right_leg_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.bazooka_blast_motor = Motor(port=bazooka_blast_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port)
class Rov3r(IRBeaconRemoteControlledTank, EV3Brick): WHEEL_DIAMETER = 23 AXLE_TRACK = 65 def __init__(self, left_motor_port: Port = Port.B, right_motor_port: Port = Port.C, gear_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__(wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_motor_port, right_motor_port=right_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.gear_motor = Motor(port=gear_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel def spin_gears(self, speed: float = 1000): while True: if Button.BEACON in self.ir_sensor.buttons( channel=self.ir_beacon_channel): self.gear_motor.run(speed=1000) else: self.gear_motor.stop() def change_screen_when_touched(self): while True: if self.touch_sensor.pressed(): self.screen.load_image(ImageFile.ANGRY) else: self.screen.load_image(ImageFile.FORWARD) def make_noise_when_seeing_black(self): while True: if self.color_sensor.color == Color.BLACK: self.speaker.play_file(file=SoundFile.OUCH) def main(self): self.speaker.play_file(file=SoundFile.YES) Process(target=self.make_noise_when_seeing_black).start() Process(target=self.spin_gears).start() Process(target=self.change_screen_when_touched).start() self.keep_driving_by_ir_beacon(speed=1000)
def __initSensors(self): '''Sub-method for initializing Sensors.''' self.logger.debug(self, "Starting sensor initialisation...") try: self.__gyro = GyroSensor(self.__conf2port[self.__config['gyroSensorPort']], Direction.CLOCKWISE if not self.__config['gyroInverted'] else Direction.COUNTERCLOCKWISE) if self.__config['gyroSensorPort'] != 0 else 0 self.logger.debug(self, 'Gyrosensor initialized sucessfully on port %s' % self.__config['gyroSensorPort']) except Exception as exception: self.__gyro = 0 self.logger.error(self, "Failed to initialize the Gyro-Sensor - Are u sure it's connected to Port %s?" % exception, exception) try: self.__rLight = ColorSensor( self.__conf2port[self.__config['rightLightSensorPort']]) if self.__config['rightLightSensorPort'] != 0 else 0 self.logger.debug(self, 'Colorsensor initialized sucessfully on port %s' % self.__config['rightLightSensorPort']) except Exception as exception: self.logger.error(self, "Failed to initialize the right Color-Sensor - Are u sure it's connected to Port %s?" % exception, exception) try: self.__lLight = ColorSensor( self.__conf2port[self.__config['leftLightSensorPort']]) if self.__config['leftLightSensorPort'] != 0 else 0 self.logger.debug(self, 'Colorsensor initialized sucessfully on port %s' % self.__config['leftLightSensorPort']) except Exception as exception: self.logger.error(self, "Failed to initialize the left Color-Sensor - Are u sure it's connected to Port %s?" % exception, exception) try: self.__touch = TouchSensor(self.__conf2port[self.__config['backTouchSensor']]) if self.__config['backTouchSensor'] != 0 else 0 self.logger.debug(self, 'Touchsensor initialized sucessfully on port %s' % self.__config['backTouchSensor']) except Exception as exception: self.logger.error(self, "Failed to initialize the Touch-Sensor - Are u sure it's connected to Port %s?" % exception, exception) self.logger.debug(self, "Sensor initialisation done")
class EV3TouchSensor(EV3Sensor): def __init__(self, port): EV3Sensor.__init__(self, port) self.sensor = TouchSensor(self.port) def estDeclenchable(self): return self.sensor.pressed()
def __init__( self, left_motor_port: str = Port.B, right_motor_port: str = Port.C, middle_motor_port: str = Port.A, touch_sensor_port: str = Port.S1, ir_sensor_port: str = Port.S4): self.ev3_brick = EV3Brick() self.left_motor = Motor(port=left_motor_port, positive_direction=Direction.CLOCKWISE) self.right_motor = Motor(port=right_motor_port, positive_direction=Direction.CLOCKWISE) self.middle_motor = Motor(port=middle_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port)
class Sweep3r(IRBeaconRemoteControlledTank, EV3Brick): WHEEL_DIAMETER = 40 AXLE_TRACK = 110 def __init__( self, left_foot_motor_port: Port = Port.B, right_foot_motor_port: Port = Port.C, medium_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__( wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_foot_motor_port, right_motor_port=right_foot_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.medium_motor = Motor(port=medium_motor_port) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel def drill(self): while True: if Button.BEACON in self.ir_sensor.buttons(channel=self.ir_beacon_channel): self.medium_motor.run_angle( speed=1000, rotation_angle=2 * 360, then=Stop.HOLD, wait=True) def move_when_touched(self): while True: if self.touch_sensor.pressed(): self.drive_base.turn(angle=100) def move_when_see_smothing(self): while True: if self.color_sensor.reflection() > 30: self.drive_base.turn(angle=-100) def main(self, speed: float = 1000): self.screen.load_image(ImageFile.PINCHED_MIDDLE) Process(target=self.move_when_touched).start() Process(target=self.move_when_see_smothing).start() Process(target=self.drill).start() self.keep_driving_by_ir_beacon(speed=speed)
def __init__( self, left_motor_port: Port = Port.B, right_motor_port: Port = Port.C, jaw_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.left_motor = Motor(port=left_motor_port, positive_direction=Direction.CLOCKWISE) self.right_motor = Motor(port=right_motor_port, positive_direction=Direction.CLOCKWISE) self.jaw_motor = Motor(port=jaw_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def __init__( self, sting_motor_port: Port = Port.D, go_motor_port: Port = Port.B, claw_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.sting_motor = Motor(port=sting_motor_port, positive_direction=Direction.CLOCKWISE) self.go_motor = Motor(port=go_motor_port, positive_direction=Direction.CLOCKWISE) self.claw_motor = Motor(port=claw_motor_port, positive_direction=Direction.CLOCKWISE) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port)
def __init__( self, left_foot_motor_port: Port = Port.B, right_foot_motor_port: Port = Port.C, medium_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__( wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_foot_motor_port, right_motor_port=right_foot_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.medium_motor = Motor(port=medium_motor_port) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def __init__( self, turn_motor_port: Port = Port.A, move_motor_port: Port = Port.B, scare_motor_port: Port = Port.D, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.turn_motor = Motor(port=turn_motor_port, positive_direction=Direction.CLOCKWISE) self.move_motor = Motor(port=move_motor_port, positive_direction=Direction.CLOCKWISE) self.scare_motor = Motor(port=scare_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def checkForTouch(): touchSensor = TouchSensor(Port.S3) beepPlz() t = 0 numberOfTouches = 0 while (t < 1000): if ( touchSensor.pressed() ): numberOfTouches += 1 beepPlz() t += 1 pass if (numberOfTouches == 0): routineBlue() elif (numberOfTouches < 5): routineYellow() elif (numberOfTouches < 10): routineGreen() else: routineRed() beepPlz()
class CuriosityRov3r(IRBeaconRemoteControlledTank, EV3Brick): WHEEL_DIAMETER = 35 # milimeters AXLE_TRACK = 130 # milimeters def __init__( self, left_motor_port: Port = Port.B, right_motor_port: Port = Port.C, medium_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): super().__init__( wheel_diameter=self.WHEEL_DIAMETER, axle_track=self.AXLE_TRACK, left_motor_port=left_motor_port, right_motor_port=right_motor_port, ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel) self.medium_motor = Motor(port=medium_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel def spin_fan(self, speed: float = 1000): while True: if self.color_sensor.reflection() > 20: self.medium_motor.run(speed=speed) else: self.medium_motor.stop() def say_when_touched(self): while True: if self.touch_sensor.pressed(): self.screen.load_image(ImageFile.ANGRY) self.speaker.play_file(file=SoundFile.NO) self.medium_motor.run_time( speed=-500, time=3000, then=Stop.HOLD, wait=True) def main(self, speed: float = 1000): run_parallel( self.say_when_touched, self.spin_fan, self.keep_driving_by_ir_beacon)
def __init__(self, steering_motor_port: Port = Port.A, driving_motor_port: Port = Port.B, striking_motor_port: Port = Port.D, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.ev3_brick = EV3Brick() self.steering_motor = Motor(port=steering_motor_port, positive_direction=Direction.CLOCKWISE) self.driving_motor = Motor(port=driving_motor_port, positive_direction=Direction.CLOCKWISE) self.striking_motor = Motor(port=striking_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def __init__(self, back_foot_motor_port: Port = Port.C, front_foot_motor_port: Port = Port.B, gear_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, color_sensor_port: Port = Port.S3, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.front_foot_motor = Motor(port=front_foot_motor_port, positive_direction=Direction.CLOCKWISE) self.back_foot_motor = Motor( port=back_foot_motor_port, positive_direction=Direction.COUNTERCLOCKWISE) self.gear_motor = Motor(port=gear_motor_port) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.color_sensor = ColorSensor(port=color_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def __init__(self, b_motor_port: Port = Port.B, c_motor_port: Port = Port.C, grip_motor_port: Port = Port.A, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4, ir_beacon_channel: int = 1): self.ev3_brick = EV3Brick() self.b_motor = Motor(port=b_motor_port, positive_direction=Direction.CLOCKWISE) self.c_motor = Motor(port=c_motor_port, positive_direction=Direction.CLOCKWISE) self.grip_motor = Motor(port=grip_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) self.ir_beacon_channel = ir_beacon_channel
def gameLoop(blocks_to_deliver): global brick_state leftMotor = Motor(Port.B) rightMotor = Motor(Port.C) wheels = DriveBase(Motor(Port.B), Motor(Port.C), 56, 114) uSensor = UltrasonicSensor(Port.S4) cSensor = ColorSensor(Port.S3) gSensor = GyroSensor(Port.S2) ts = TouchSensor(Port.S1) while not ts.pressed(): # brick.sound.file(SoundFile.MOTOR_IDLE, 1000) if blocks_delivered >= blocks_to_deliver: brick_state = Status.WAIT if brick_state == Status.WAIT: return elif brick_state == Status.SEARCHING: print('STATE: SEARCHING') t = threading.Thread(target=searchLuggage, args=(wheels, cSensor, gSensor)) t.start() brick_state = Status.COMPUTING elif brick_state == Status.CARRYING_LUGGAGE: print('STATE: CARRYING_LUGGAGE') t = threading.Thread(target=deliverLuggage, args=(wheels, cSensor, )) t.start() brick_state = Status.COMPUTING elif brick_state == Status.PICKING_UP: print('STATE: PICKING_UP') t = threading.Thread(target=doLuggage, args=(wheels, cSensor, True, )) t.start() brick_state = Status.COMPUTING elif brick_state == Status.DEPOSITING: print('STATE: DEPOSITING') t = threading.Thread(target=doLuggage, args=(wheels, cSensor,False, )) t.start() brick_state = Status.COMPUTING
def __init__(self): # Sets up the brick self.ev3 = EV3Brick() # Identifies which motor is connected to which ports self.left_leg_motor = Motor(Port.D, Direction.COUNTERCLOCKWISE) self.right_leg_motor = Motor(Port.A, Direction.COUNTERCLOCKWISE) # Sets up the gear ratio (automatically translates it to the correct angle) self.head_motor = Motor(Port.C, Direction.COUNTERCLOCKWISE, gears=[[1, 24], [12, 36]]) # Sets up touch sensor self.touch_sensor = TouchSensor(Port.S1) # Sets up constants for the eye self.eyes_timer_1 = StopWatch() self.eyes_timer_1_end = 0 self.eyes_timer_2 = StopWatch() self.eyes_timer_2_end = 0 self.eyes_closed = False
class El3ctricGuitar: NOTES = [1318, 1174, 987, 880, 783, 659, 587, 493, 440, 392, 329, 293] N_NOTES = len(NOTES) def __init__(self, lever_motor_port: Port = Port.D, touch_sensor_port: Port = Port.S1, ir_sensor_port: Port = Port.S4): self.ev3_brick = EV3Brick() self.lever_motor = Motor(port=lever_motor_port, positive_direction=Direction.CLOCKWISE) self.touch_sensor = TouchSensor(port=touch_sensor_port) self.ir_sensor = InfraredSensor(port=ir_sensor_port) def start_up(self): self.ev3_brick.screen.load_image(ImageFile.EV3) self.ev3_brick.light.on(color=Color.ORANGE) self.lever_motor.run_time(speed=50, time=1000, then=Stop.COAST, wait=True) self.lever_motor.run_angle(speed=50, rotation_angle=-30, then=Stop.BRAKE, wait=True) wait(100) self.lever_motor.reset_angle(angle=0) def play_note(self): if not self.touch_sensor.pressed(): raw = sum(self.ir_sensor.distance() for _ in range(4)) / 4 self.ev3_brick.speaker.beep( frequency=self.NOTES[min(int(raw / 5), self.N_NOTES - 1)] - 11 * self.lever_motor.angle(), duration=100) wait(1)