def main():
    MA = MediumMotor("")
    MB = LargeMotor("outB")
    MC = LargeMotor("outC")
    MD = MediumMotor("outD")
    GY = GyroSensor("")
    C3 = ColorSensor("")
    C4 = ColorSensor("")

    # change color sensor to color and define colors
    C4.mode = 'COL-COLOR'
    colors = ('', 'Black', 'Blue', 'Brown', 'Green', 'Yellow', 'Red', 'White')

    # turn on motors forever
    MB.run_forever(speed_sp=75)
    MC.run_forever(speed_sp=75)
    # while color sensor doesn't sense black. Wait until sensing black.
    while C4.value() != 1:
        print(colors[C4.value()])
        sleep(0.005)


# after loop ends, brake motor B and C
    MB.stop(stop_action="hold")
    MC.stop(stop_action="hold")
Exemplo n.º 2
0
    def __init__(self,
                 jaw_motor_port: str = OUTPUT_A,
                 left_motor_port: str = OUTPUT_B,
                 right_motor_port: str = OUTPUT_C,
                 touch_sensor_port: str = INPUT_1,
                 color_sensor_port: str = INPUT_3,
                 ir_sensor_port: str = INPUT_4,
                 ir_beacon_channel: int = 1):
        self.jaw_motor = MediumMotor(address=jaw_motor_port)

        self.left_motor = LargeMotor(address=left_motor_port)
        self.right_motor = LargeMotor(address=right_motor_port)
        self.tank_driver = MoveTank(left_motor_port=left_motor_port,
                                    right_motor_port=right_motor_port,
                                    motor_class=LargeMotor)
        self.steer_driver = MoveSteering(left_motor_port=left_motor_port,
                                         right_motor_port=right_motor_port,
                                         motor_class=LargeMotor)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)
        self.color_sensor = ColorSensor(address=color_sensor_port)

        self.ir_sensor = InfraredSensor(address=ir_sensor_port)
        self.ir_beacon_channel = ir_beacon_channel

        self.speaker = Sound()

        self.roaring = False
        self.walk_speed = self.NORMAL_WALK_SPEED
Exemplo n.º 3
0
 def __init__(self, sensorList=[]):
     try:
         self.tank = MoveTank(OUTPUT_B, OUTPUT_C)
         self.outputList = [OUTPUT_B, OUTPUT_C]
     except:
         self.tank = None
     try:
         self.cs = ColorSensor()
     except:
         self.cs = None
     try:
         self.gyro = GyroSensor()
     except:
         self.gyro = None
     try:
         self.ultrasonicSensor = UltrasonicSensor()
     except:
         self.ultrasonicSensor = None
     try:
         self.large = LargeMotor(OUTPUT_D)
         self.outputList.append(OUTPUT_D)
     except:
         self.large = None
     try:
         self.medium = MediumMotor(OUTPUT_D)
         self.outputList.append(OUTPUT_D)
     except:
         self.medium = None
Exemplo n.º 4
0
    def __init__(self, *args, **kwargs):
        self.exposed_candy_loader = MediumMotor(OUTPUT_A)
        self.exposed_candy_thrower = MediumMotor(OUTPUT_B)
        self.exposed_left_cs = ColorSensor(INPUT_1)
        self.exposed_right_cs = ColorSensor(INPUT_2)

        super().__init__(*args, **kwargs)
Exemplo n.º 5
0
 def __init__(self, baseSpeed=500, dt=50):
     self.leftMotor = LargeMotor(OUTPUT_C)
     self.rightMotor = LargeMotor(OUTPUT_A)
     self.steeringDrive = MoveSteering(OUTPUT_C, OUTPUT_A)
     self.craneMotor = MediumMotor(OUTPUT_B)
     self.baseSpeed = baseSpeed
     self.dt = dt
Exemplo n.º 6
0
def main():
    Sound.speak("").wait()
    MA = MediumMotor("")
    MB = LargeMotor("outB")
    MC = LargeMotor("outC")
    MD = MediumMotor("")
    GY = GyroSensor("")
    C3 = ColorSensor("")
    C4 = ColorSensor("")

    GY.mode = 'GYRO-ANG'
    GY.mode = 'GYRO-RATE'
    GY.mode = 'GYRO-ANG'
    tank_drive = MoveTank(OUTPUT_B, OUTPUT_C)
    loop_gyro = 0
    gyro_adjust = 1
    # change this to whatever speed what you want
    left_wheel_speed = -300
    right_wheel_speed = -300
    # change the loop_gyro verses the defined value argument to however far you want to go
    # if Gyro value is the same as the starting value, go straight, if more turn right, if less turn left
    # change the value to how far you want the robot to go
    while MB.position > -160:
        if GY.value() == 0:
            left_wheel_speed = -300
            right_wheel_speed = -300
            MB.run_forever(speed_sp=left_wheel_speed)
            MC.run_forever(speed_sp=right_wheel_speed)
            gyro_adjust = 12
        else:
            if GY.value() > 0:
                correct_rate = abs(
                    GY.value()
                )  # This captures the gyro value at the beginning of the statement
                left_wheel_speed = left_wheel_speed + gyro_adjust
                right_wheel_speed = right_wheel_speed - gyro_adjust
                MB.run_forever(speed_sp=left_wheel_speed)
                MC.run_forever(speed_sp=right_wheel_speed)
                left_wheel_speed = -300
                right_wheel_speed = -300
                if abs(
                        GY.value()
                ) > correct_rate:  # If gyro value has worsened despite the correction then change the adjust variable for next time
                    gyro_adjust = gyro_adjust + 1
            else:
                correct_rate = abs(
                    GY.value())  # Same idea as the other if statement
                right_wheel_speed = right_wheel_speed + gyro_adjust
                left_wheel_speed = left_wheel_speed - gyro_adjust
                MB.run_forever(speed_sp=left_wheel_speed)
                MC.run_forever(speed_sp=right_wheel_speed)
                left_wheel_speed = -300
                right_wheel_speed = -300
                if abs(GY.value()) > correct_rate:
                    gyro_adjust = gyro_adjust + 1


# stop all motors
    MB.stop(stop_action="hold")
    MC.stop(stop_action="hold")
Exemplo n.º 7
0
    def __init__(self,
                 left_foot_motor_port: str = OUTPUT_B,
                 right_foot_motor_port: str = OUTPUT_C,
                 bazooka_blast_motor_port: str = OUTPUT_A,
                 touch_sensor_port: str = INPUT_1,
                 color_sensor_port: str = INPUT_3,
                 ir_sensor_port: str = INPUT_4,
                 ir_beacon_channel: int = 1):
        super().__init__(left_motor_port=left_foot_motor_port,
                         right_motor_port=right_foot_motor_port,
                         polarity=Motor.POLARITY_NORMAL,
                         speed=1000,
                         channel=ir_beacon_channel)

        self.tank_driver = MoveTank(left_motor_port=left_foot_motor_port,
                                    right_motor_port=right_foot_motor_port,
                                    motor_class=LargeMotor)

        self.bazooka_blast_motor = MediumMotor(
            address=bazooka_blast_motor_port)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)
        self.color_sensor = ColorSensor(address=color_sensor_port)

        self.ir_sensor = InfraredSensor(address=ir_sensor_port)
        self.ir_beacon_channel = ir_beacon_channel

        self.leds = Leds()
        self.speaker = Sound()
Exemplo n.º 8
0
 def __init__(self, motor_address=OUTPUT_D, us_sensor_address=INPUT_2, start_open=True):
     self.claw_motor = MediumMotor(motor_address)
     self.eyes = UltrasonicSensor(us_sensor_address)
     if start_open and not self.is_open():
         self.open()
     elif not start_open and self.is_open():
         self.close()
Exemplo n.º 9
0
 def __init__(self):
     
     super().__init__()
     self.leds = Leds()
     self.motorOne = LargeMotor(OUTPUT_C)
     self.motorTwo = LargeMotor(OUTPUT_B)
     self.motorThree = MediumMotor(OUTPUT_A)
Exemplo n.º 10
0
    def __init__(self):
        self.shutdown = False
        self.flipper = LargeMotor(OUTPUT_A)
        self.turntable = LargeMotor(OUTPUT_B)
        self.colorarm = MediumMotor(OUTPUT_C)
        self.color_sensor = ColorSensor()
        self.color_sensor.mode = self.color_sensor.MODE_RGB_RAW
        self.infrared_sensor = InfraredSensor()
        self.init_motors()
        self.state = ['U', 'D', 'F', 'L', 'B', 'R']
        self.rgb_solver = None
        signal.signal(signal.SIGTERM, self.signal_term_handler)
        signal.signal(signal.SIGINT, self.signal_int_handler)

        filename_max_rgb = 'max_rgb.txt'

        if os.path.exists(filename_max_rgb):
            with open(filename_max_rgb, 'r') as fh:
                for line in fh:
                    (color, value) = line.strip().split()

                    if color == 'red':
                        self.color_sensor.red_max = int(value)
                        log.info("red max is %d" % self.color_sensor.red_max)
                    elif color == 'green':
                        self.color_sensor.green_max = int(value)
                        log.info("green max is %d" %
                                 self.color_sensor.green_max)
                    elif color == 'blue':
                        self.color_sensor.blue_max = int(value)
                        log.info("blue max is %d" % self.color_sensor.blue_max)
Exemplo n.º 11
0
 def __init__(self,
              medium_motor=OUTPUT_A,
              left_motor=OUTPUT_C,
              right_motor=OUTPUT_B):
     RemoteControlledTank.__init__(self, left_motor, right_motor)
     self.medium_motor = MediumMotor(medium_motor)
     self.medium_motor.reset()
Exemplo n.º 12
0
    def __init__(self,
                 drive_motor_port=OUTPUT_B,
                 strike_motor_port=OUTPUT_D,
                 steer_motor_port=OUTPUT_A,
                 drive_speed_pct=60):

        self.drive_motor = LargeMotor(drive_motor_port)
        self.strike_motor = LargeMotor(strike_motor_port)
        self.steer_motor = MediumMotor(steer_motor_port)
        self.speaker = Sound()
        STEER_SPEED_PCT = 30

        self.remote = InfraredSensor()
        self.remote.on_channel1_top_left = self.make_move(self.drive_motor, drive_speed_pct)
        self.remote.on_channel1_bottom_left = self.make_move(self.drive_motor, drive_speed_pct * -1)
        self.remote.on_channel1_top_right = self.make_move(self.steer_motor, STEER_SPEED_PCT)
        self.remote.on_channel1_bottom_right = self.make_move(self.steer_motor, STEER_SPEED_PCT * -1)

        self.shutdown_event = Event()
        self.mrc = MonitorRemoteControl(self)

        # Register our signal_term_handler() to be called if the user sends
        # a 'kill' to this process or does a Ctrl-C from the command line
        signal.signal(signal.SIGTERM, self.signal_term_handler)
        signal.signal(signal.SIGINT, self.signal_int_handler)
    def __init__(self):
        """
        Performs Alexa Gadget initialization routines and ev3dev resource allocation.
        """
        super().__init__()

        # Robot state
        self.patrol_mode = False
        self.enemy_not_detected = True
        print("+++++ self.patrol_mode = {} y self.enemy_not_detected = {}".
              format(self.patrol_mode, self.enemy_not_detected))
        self.positionX = 0
        self.positionY = 0
        self.direction = ['forward', 'right', 'backward', 'left']
        self.offset = [0, 1, 0, -1]
        self.index = 0
        self.pointing = self.direction[self.index]

        # Connect two large motors on output ports B and C
        self.drive = MoveTank(OUTPUT_B, OUTPUT_C)
        self.weapon = MediumMotor(OUTPUT_A)
        self.sound = Sound()
        self.leds = Leds()
        self.ir = InfraredSensor()

        # Start threads
        threading.Thread(target=self._patrol_thread, daemon=True).start()
        threading.Thread(target=self._proximity_thread, daemon=True).start()
Exemplo n.º 14
0
    def __init__(self):
        """
        Performs Alexa Gadget initialization routines and ev3dev resource allocation.
        """
        super().__init__()

        # Gadget state
        self.in_progress = False

        # Ev3dev initialization
        self.leds = Leds()
        self.sound = Sound()
        self.drive = MoveTank(OUTPUT_B, OUTPUT_A)
        self.stick = MediumMotor(OUTPUT_C)
        self.cs = ColorSensor(INPUT_4)
        self.cs.mode = 'COL-REFLECT'
        self.floor_light = self.cs.value()
        print("floor light intensity = {}".format(self.floor_light))
        self.speed = 20
        self.kickAngle = 170
        paho.Client.connected_flag = False
        self.client = paho.Client()
        self.client.loop_start()
        self.client.on_connect = self.mqtt_connected
        self.client.connect('broker.hivemq.com', 1883)
        while not self.client.connected_flag:
            time.sleep(1)

        self.client.subscribe('/hockeybot/game/over')
        self.client.on_message = self.mqtt_on_message

        # Start threads
        threading.Thread(target=self.check_for_obstacles_thread,
                         daemon=True).start()
Exemplo n.º 15
0
class AutoDrive:
    def __init__(self, left_motor_port, right_motor_port, infra_mode,
                 ultra_mode):
        self.__moveSteering = MoveSteering(left_motor_port, right_motor_port)
        self.__mediumMotor = MediumMotor()
        self.__ir = InfraredSensor()
        self.__ir.mode = infra_mode
        self.__us = UltrasonicSensor()
        self.__us.mode = ultra_mode

    def __run_forward(self):
        self.__moveSteering.on(0, 30)

    def __run_backward_rotations(self, rotations):
        self.__moveSteering.on_for_rotations(0, 20, -rotations)

    def __stop(self):
        self.__moveSteering.off()

    def __back_and_turn(self, steering):
        self.__moveSteering.on_for_rotations(-steering, 20, -1)

    def __scan_around_distance(self):
        proximities = {}
        distance = 0
        index = 0
        for deg in [-90, 30, 30, 30, 30, 30, 30]:
            self.__mediumMotor.on_for_degrees(10, deg)
            distance = self.__ir.proximity
            proximities[-90 + index * 30] = distance
            index += 1
            time.sleep(1)
        self.__mediumMotor.on_for_degrees(10, -90)
        # print("%s" % proximities)
        return proximities

    def __find_clear_direction(self, proximitiesDic):
        max_distance = max(list(proximitiesDic.values()))
        direction = list(proximitiesDic.keys())[list(
            proximitiesDic.values()).index(max_distance)]
        #print("%d" % direction)
        steering = self.__convert_direction_to_steering(direction)
        return steering

    def __convert_direction_to_steering(self, direction):
        return 5 * direction / 9

    def __ultrasonic_distance(self):
        return self.__us.distance_centimeters

    def run(self):
        self.__run_forward()
        block_distance = self.__ultrasonic_distance()
        if (block_distance < 20):
            self.__stop()
            around_distance = self.__scan_around_distance()
            steering = self.__find_clear_direction(around_distance)
            self.__run_backward_rotations(0.5)
            self.__back_and_turn(steering)
Exemplo n.º 16
0
class Ev3rstorm(IRBeaconRemoteControlledTank):
    def __init__(
            self,
            left_foot_motor_port: str = OUTPUT_B, right_foot_motor_port: str = OUTPUT_C,
            bazooka_blast_motor_port: str = OUTPUT_A,
            touch_sensor_port: str = INPUT_1, color_sensor_port: str = INPUT_3,
            ir_sensor_port: str = INPUT_4, ir_beacon_channel: int = 1):
        super().__init__(
            left_motor_port=left_foot_motor_port, right_motor_port=right_foot_motor_port, motor_class=LargeMotor,
            ir_sensor_port=ir_sensor_port, ir_beacon_channel=ir_beacon_channel)

        self.bazooka_blast_motor = MediumMotor(address=bazooka_blast_motor_port)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)
        self.color_sensor = ColorSensor(address=color_sensor_port)

        self.screen = Display()
        self.speaker = Sound()


    def blast_bazooka_if_touched(self):
        if self.touch_sensor.is_pressed:
            if self.color_sensor.ambient_light_intensity < 5:   # 15 not dark enough
                self.speaker.play_file(
                    wav_file='/home/robot/sound/Up.wav',
                    volume=100,
                    play_type=Sound.PLAY_WAIT_FOR_COMPLETE)

                self.bazooka_blast_motor.on_for_rotations(
                    speed=100,
                    rotations=-3,
                    brake=True,
                    block=True)

            else:
                self.speaker.play_file(
                    wav_file='/home/robot/sound/Down.wav',
                    volume=100,
                    play_type=Sound.PLAY_WAIT_FOR_COMPLETE)

                self.bazooka_blast_motor.on_for_rotations(
                    speed=100,
                    rotations=3,
                    brake=True,
                    block=True)

            self.touch_sensor.wait_for_released()
 
    
    def main(self, driving_speed: float = 100):
        self.screen.image_filename(
            filename='/home/robot/image/Target.bmp',
            clear_screen=True)
        self.screen.update()
    
        while True:
            self.drive_once_by_ir_beacon(speed=driving_speed)
            
            self.blast_bazooka_if_touched()
Exemplo n.º 17
0
 def __init__(self, left_motor_port, right_motor_port, infra_mode,
              ultra_mode):
     self.__moveSteering = MoveSteering(left_motor_port, right_motor_port)
     self.__mediumMotor = MediumMotor()
     self.__ir = InfraredSensor()
     self.__ir.mode = infra_mode
     self.__us = UltrasonicSensor()
     self.__us.mode = ultra_mode
Exemplo n.º 18
0
 def __init__(self):
     self.server_address = (str(sys.argv[1]), 5000)
     self.sensor = InfraredSensor()
     self.motor = MediumMotor(OUTPUT_D)
     self.drive_motor = MoveTank(OUTPUT_B, OUTPUT_C)
     self.turn_motor = MoveSteering(OUTPUT_B, OUTPUT_C)
     self.moved = 0
     self.turned = 0
Exemplo n.º 19
0
class EV3D4WebControlled(WebControlledTank):
    def __init__(self,
                 medium_motor=OUTPUT_A,
                 left_motor=OUTPUT_C,
                 right_motor=OUTPUT_B):
        WebControlledTank.__init__(self, left_motor, right_motor)
        self.medium_motor = MediumMotor(medium_motor)
        self.medium_motor.reset()
Exemplo n.º 20
0
 def __init__(self):
     self.angleToRunTo = 0
     self.motorArm = MediumMotor(OUTPUT_B)
     self.CurrentAngle = 0
     self.motorAngle = 0
     self.motorDestinationAngle = 0
     self.Hold = False
     self.gainAngle = 0
Exemplo n.º 21
0
    def __init__(self):
        super().__init__()

        # initialize all of the motors
        print('Initializing devices')
        self.leds = Leds()
        self.motor_hand = LargeMotor(address='outA')
        self.motor_claw = MediumMotor(address='outC')
Exemplo n.º 22
0
 def __init__(self, left_motor_port, right_motor_port, infra_sensor_mode,
              color_sensor_mode):
     self.__movesteering = MoveSteering(left_motor_port, right_motor_port)
     self.__mediummotor = MediumMotor()
     self.__cs = ColorSensor()
     self.__cs.mode = color_sensor_mode
     self.__ir = InfraredSensor()
     self.__ir.mode = infra_sensor_mode
Exemplo n.º 23
0
    def __init__(self):

        self.leds = Leds()
        self.arm_position = ArmPosition.CONTRACT
        self.color_arm = MediumMotor(OUTPUT_A)
        self.color_sensor = ColorSensor()
        self.color_scaned = ColorScanOptions.NONE
        self.sound = Sound()
Exemplo n.º 24
0
 def __init__(self,
              left_motor_port=OUTPUT_B,
              right_motor_port=OUTPUT_C,
              medium_motor_port=OUTPUT_A):
     MoveTank.__init__(self, left_motor_port, right_motor_port)
     self.set_polarity(MediumMotor.POLARITY_NORMAL)
     self.medium_motor = MediumMotor(medium_motor_port)
     self.sound = Sound()
def main():

    # start sensor and motor definitions
    Sound.speak("").wait()
    MA = MediumMotor("")
    MB = LargeMotor("outB")
    MC = LargeMotor("outC")
    MD = MediumMotor("")
    GY = GyroSensor("")
    C3 = ColorSensor("")
    C4 = ColorSensor("")
    # end sensor and motor definitions

    # start calibration
    GY.mode = 'GYRO-ANG'
    GY.mode = 'GYRO-RATE'
    GY.mode = 'GYRO-ANG'
    # end calibration

    # The following line would be if we used tank_drive
    #    tank_drive = MoveTank(OUTPUT_B, OUTPUT_C)

    # start definition of driving parameters
    loop_gyro = 0
    starting_value = GY.value()
    # end definition of driving parameters

    # set initial speed parameters
    speed = 20
    adjust = 1

    # change 999999999999 to however you want to go
    while loop_gyro < 999999999999:

        # while Gyro value is the same as the starting value, then go straigt.
        while GY.value() == starting_value:
            left_wheel_speed = speed
            right_wheel_speed = speed
            MB.run_forever(speed_sp=left_wheel_speed)
            MC.run_forever(speed_sp=right_wheel_speed)
            return

# while greater than starting value, then go left.
        while GY.value() > starting_value:
            left_wheel_speed = speed - adjust
            right_wheel_speed = speed
            MB.run_forever(speed_sp=left_wheel_speed)
            MC.run_forever(speed_sp=right_wheel_speed)
            return

# while less than starting value, then go right.
        while GY.value() < starting_value:
            left_wheel_speed = speed + adjust
            right_wheel_speed = speed
            MB.run_forever(speed_sp=left_wheel_speed)
            MC.run_forever(speed_sp=right_wheel_speed)
            return
        return
class Sweep3r(IRBeaconRemoteControlledTank):
    def __init__(self,
                 left_foot_motor_port: str = OUTPUT_B,
                 right_foot_motor_port: str = OUTPUT_C,
                 medium_motor_port: str = OUTPUT_A,
                 touch_sensor_port: str = INPUT_1,
                 color_sensor_port: str = INPUT_3,
                 ir_sensor_port: str = INPUT_4,
                 ir_beacon_channel: int = 1):
        super().__init__(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 = MediumMotor(address=medium_motor_port)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)
        self.color_sensor = ColorSensor(address=color_sensor_port)

        self.ir_sensor = InfraredSensor(address=ir_sensor_port)
        self.ir_beacon_channel = ir_beacon_channel

        self.speaker = Sound()

    def drill(self, speed: float = 100):
        while True:
            if self.ir_sensor.beacon(channel=self.ir_beacon_channel):
                self.medium_motor.on_for_rotations(speed=speed,
                                                   rotations=2,
                                                   block=True,
                                                   brake=True)

    def move_when_touched(self):
        while True:
            if self.touch_sensor.is_pressed:
                self.tank_driver.on_for_seconds(left_speed=100,
                                                right_speed=-100,
                                                seconds=2,
                                                brake=True,
                                                block=True)

    def move_when_see_smothing(self):
        while True:
            if self.color_sensor.reflected_light_intensity > 30:
                self.tank_driver.on_for_seconds(left_speed=-100,
                                                right_speed=100,
                                                seconds=2,
                                                brake=True,
                                                block=True)

    def main(self, speed: float = 100):
        Thread(target=self.move_when_touched).start()

        Thread(target=self.move_when_see_smothing).start()

        Thread(target=self.drill).start()

        self.keep_driving_by_ir_beacon(speed=speed)
class Ev3rstorm(RemoteControlledTank):
    def __init__(self,
                 left_foot_motor_port: str = OUTPUT_B,
                 right_foot_motor_port: str = OUTPUT_C,
                 bazooka_blast_motor_port: str = OUTPUT_A,
                 touch_sensor_port: str = INPUT_1,
                 color_sensor_port: str = INPUT_3,
                 ir_beacon_channel: int = 1):
        super().__init__(left_motor_port=left_foot_motor_port,
                         right_motor_port=right_foot_motor_port,
                         polarity=Motor.POLARITY_NORMAL,
                         speed=1000,
                         channel=ir_beacon_channel)

        self.bazooka_blast_motor = MediumMotor(
            address=bazooka_blast_motor_port)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)
        self.color_sensor = ColorSensor(address=color_sensor_port)

        self.screen = Display()
        self.speaker = Sound()

    def blast_bazooka_whenever_touched(self):
        while True:
            if self.touch_sensor.is_pressed:
                if self.color_sensor.ambient_light_intensity < 5:  # 15 not dark enough
                    self.speaker.play_file(
                        wav_file='/home/robot/sound/Up.wav',
                        volume=100,
                        play_type=Sound.PLAY_WAIT_FOR_COMPLETE)

                    self.bazooka_blast_motor.on_for_rotations(speed=100,
                                                              rotations=-3,
                                                              brake=True,
                                                              block=True)

                else:
                    self.speaker.play_file(
                        wav_file='/home/robot/sound/Down.wav',
                        volume=100,
                        play_type=Sound.PLAY_WAIT_FOR_COMPLETE)

                    self.bazooka_blast_motor.on_for_rotations(speed=100,
                                                              rotations=3,
                                                              brake=True,
                                                              block=True)

                self.touch_sensor.wait_for_released()

    def main(self):
        self.screen.image_filename(filename='/home/robot/image/Target.bmp',
                                   clear_screen=True)
        self.screen.update()

        Thread(target=self.blast_bazooka_whenever_touched, daemon=True).start()

        super().main()  # RemoteControlledTank.main()
Exemplo n.º 28
0
    def __init__(self, medium_motor, left_motor, right_motor):
        RemoteControlledTank.__init__(self, left_motor, right_motor)
        self.medium_motor = MediumMotor(medium_motor)

        if not self.medium_motor.connected:
            log.error("%s is not connected" % self.medium_motor)
            sys.exit(1)

        self.medium_motor.reset()
Exemplo n.º 29
0
class Claw:
    def __init__(self, output):
        self.claw = MediumMotor(output)

    def up(self):
        self.claw.on_for_degrees(30, 360)

    def down(self):
        self.claw.on_for_degrees(30, -360)
Exemplo n.º 30
0
    def test_medium_motor_write(self):
        clean_arena()
        populate_arena([('medium_motor', 0, 'outA')])

        m = MediumMotor()

        self.assertEqual(m.speed_sp, 0)
        m.speed_sp = 500
        self.assertEqual(m.speed_sp, 500)
Exemplo n.º 31
0
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)5s: %(message)s')
log=logging.getLogger(__name__)

log.info('Stair climber starting......')

# define the touch sensor
ts = TouchSensor(INPUT_3)
# define the gyro sensor
gy = GyroSensor(INPUT_2)

# define the large motor on port B
lm_move = LargeMotor(OUTPUT_B)
# define the large motor on port D
lm_lifter = LargeMotor(OUTPUT_D)
# define the midium motor on port A
mm_move = MediumMotor(OUTPUT_A)

# define the button
btn = Button()

# define lcd display
lcd = Display()

# define sound
snd = Sound()

# define the steps to go, initial value is 0
steps = 1

# Declare function for one step
def oneStep():