Пример #1
0
ent_motor_esq = OUTPUT_C
ent_motor_dir = OUTPUT_D
ent_motor_grande = OUTPUT_B
ent_motor_medio = OUTPUT_A
ent_sc_esq = INPUT_3
ent_sc_dir = INPUT_4
ent_us_lat = INPUT_2
ent_us_fr = INPUT_1
steering_pair = MoveSteering(ent_motor_esq, ent_motor_dir)
garra_g = LargeMotor(ent_motor_grande)
garra_m = MediumMotor(ent_motor_medio)
cor_esq = ColorSensor(ent_sc_esq)
cor_dir = ColorSensor(ent_sc_dir)
usl = UltrasonicSensor(ent_us_lat)
usf = UltrasonicSensor(ent_us_fr)
sound = Sound()
btn = Button()

#começar código
sound.beep()

tamanhos = ['azul', 'vermelho', 'vermelho', 'amarelo']
item_lista = 2
mapadecores = ['vermelho', 'amarelo', 'azul']
waiting = True
pegar_cano = False


def distancia_media(sensor):
    a1 = sensor.distance_centimeters
    sleep(0.05)
Пример #2
0
#!/usr/bin/env python3
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B, SpeedPercent, MoveTank
from ev3dev2.sensor import INPUT_4
from ev3dev2.sensor.lego import ColorSensor
from ev3dev2.sensor import INPUT_3
from ev3dev2.sensor.lego import UltrasonicSensor
from ev3dev2.sound import Sound
from time import sleep

check_white = 0
chage_lotation = 0
cs = ColorSensor()
ul = UltrasonicSensor()
s = Sound()
tank_drive = MoveTank(left_motor_port = OUTPUT_A, right_motor_port = OUTPUT_B)
speed_change1 = 25
speed_change2 = 100

#처음에 직진
while True:
    if cs.value() < 45:
        tank_drive.on(100, 100)
    else:
        break

#라인 따라 가기
while True:
    if ul.value() < 250:
        break
    else :
        if cs.value() < 11:
Пример #3
0
#!/usr/bin/env python3

from ev3dev2.motor import OUTPUT_A, OUTPUT_D, MoveTank, SpeedPercent, follow_for_ms
from ev3dev2.sensor.lego import ColorSensor
from ev3dev2.sound import Sound
from ColorTank import ColorTank
import time
import sys

sound = Sound()
# tank = MoveTank(OUTPUT_A, OUTPUT_D)
# tank.cs = ColorSensor()

color_tank = ColorTank(OUTPUT_A, OUTPUT_D, 'IR-REMOTE', 'COL-COLOR')
sound.beep()

while True:
    color_tank.process()
    time.sleep(2)

# try:
#     Follow the line for 4500ms
#     tank.follow_line(
#         kp=11.3, ki=0.05, kd=3.2,
#         speed=SpeedPercent(30),
#         follow_for=follow_for_ms,
#         ms=4500
#     )

# except Exception:
#     tank.stop()
Пример #4
0
#/usr/bin/env python3
from ev3dev2.sound import Sound
from time import sleep

sound = Sound()

#play a standard beep
sound.beep()
sleep(2)  # pause for 2 seconds

# Play a SINGLE 2000 Hz tone for 1.5 seconds
sound.play_tone(2000, 1.5)
sleep(2)

# Play a SEQUENCE of tones
sound.tone([(200, 2000, 400), (800, 1800, 2000)])
sleep(2)

# Play a 500 Hz tone for 1 second and then wait 0.4 seconds
# before playing the next tone
# Play the tone three times
# [(500, 1000, 400)] * 3 is the same as
# [(500, 1000, 400), (500, 1000, 400), (500, 1000, 400)]
sound.tone([(500, 1000, 400)] * 3)
sleep(2)

#text to speech
sound.speak('Hello, my name is E V 3!')
Пример #5
0
def race_loss_routine():
    '''Call this in case the worst happens'''
    Sound().speak('We did everything right!', play_type=Sound.PLAY_LOOP)
Пример #6
0
#!/usr/bin/env python3
import os
import sys
import time
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_D, SpeedPercent, MoveTank, MoveSteering, MediumMotor, OUTPUT_B
from ev3dev2.sensor import INPUT_1, INPUT_4, INPUT_2, INPUT_3
from ev3dev2.sensor.lego import TouchSensor, InfraredSensor, ColorSensor
from ev3dev2.led import Leds
from ev3dev2.button import Button
from ev3dev2.sound import Sound
ON = True
OFF = False

music = Sound()
music.play_file("Confirm.wav")
tank_drive = MoveTank(OUTPUT_A, OUTPUT_D)
steering_drive = MoveSteering(OUTPUT_A, OUTPUT_D)
ir = InfraredSensor()
ir.mode = "IR-PROX"
touch_sensor = TouchSensor()
touch_sensor.mode = "TOUCH"
color_arm = MediumMotor(OUTPUT_B)
display_button = Button()
color_sensor = ColorSensor()


def deploy_color_sensor():
    color_arm.on_for_rotations(SpeedPercent(5), 0.30)
    time.sleep(4.5)
    if color_sensor.color == 1:
        music.speak("I found something black on the surface of Mars")
Пример #7
0
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.sensor.lego import UltrasonicSensor
from ev3dev2.sound import Sound
from time import sleep

flip = 1


def drive():
    global flip
    flip = flip * -1
    tank_drive.on_for_seconds(SpeedPercent(30 * flip), SpeedPercent(30 * flip),
                              1, True, True)


s = Sound()
tank_drive = MoveTank(OUTPUT_A, OUTPUT_D)

for x in range(4):
    drive()
    s.beep()
sleep(1)

for x in range(4):
    drive()
    s.beep(play_type=Sound.PLAY_NO_WAIT_FOR_COMPLETE)
sleep(3)

for x in range(4):
    drive()
    s.speak("testjes tests tests tests")
Пример #8
0
#!/usr/bin/env python3
"""Make robot say whatever color it observes with the color sensor."""

from ev3dev2.sensor.lego import ColorSensor
from time import sleep
from ev3dev2.sound import Sound

color_sensor = ColorSensor()
sound = Sound()

while True:
    color = color_sensor.color
    text = ColorSensor.COLORS[color]
    sound.speak(text)
    sleep(2)
Пример #9
0
ent_sc_esq = INPUT_3
ent_sc_dir = INPUT_4
ent_us_lat = INPUT_2
ent_us_fr = INPUT_1

steering_pair = MoveSteering(ent_motor_esq, ent_motor_dir)
garra_g = LargeMotor(ent_motor_grande)
garra_m = MediumMotor(ent_motor_medio)

cor_esq = ColorSensor(ent_sc_esq)
cor_dir = ColorSensor(ent_sc_dir)
usl = UltrasonicSensor(ent_us_lat)
usf = UltrasonicSensor(ent_us_fr)

sound = Sound()
btn = Button()

#   FUNÇÕES


def distancia(sensor):
    a1 = sensor.distance_centimeters
    sleep(0.1)
    a2 = sensor.distance_centimeters
    sleep(0.1)
    a3 = sensor.distance_centimeters
    sleep(0.1)
    distancia = max(a1, a2, a3)
    return distancia
class R3ptar:
    def __init__(self,
                 turn_motor_port: str = OUTPUT_A,
                 move_motor_port: str = OUTPUT_B,
                 scare_motor_port: str = OUTPUT_D,
                 touch_sensor_port: str = INPUT_1,
                 color_sensor_port: str = INPUT_3,
                 ir_sensor_port: str = INPUT_4,
                 ir_beacon_channel: int = 1):
        self.turn_motor = MediumMotor(address=turn_motor_port)
        self.move_motor = LargeMotor(address=move_motor_port)
        self.scare_motor = LargeMotor(address=scare_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.noise = Sound()

    def drive_once_by_ir_beacon(self, speed: float = 100):
        if self.ir_sensor.top_left(channel=self.ir_beacon_channel) and \
                self.ir_sensor.top_right(channel=self.ir_beacon_channel):
            self.move_motor.on(speed=speed, brake=False, block=False)

        elif self.ir_sensor.bottom_left(channel=self.ir_beacon_channel) and \
                self.ir_sensor.bottom_right(channel=self.ir_beacon_channel):
            self.move_motor.on(speed=-speed, brake=False, block=False)

        elif self.ir_sensor.top_left(channel=self.ir_beacon_channel):
            self.turn_motor.on(speed=-50, brake=False, block=False)

            self.move_motor.on(speed=speed, brake=False, block=False)

        elif self.ir_sensor.top_right(channel=self.ir_beacon_channel):
            self.turn_motor.on(speed=50, brake=False, block=False)

            self.move_motor.on(speed=speed, brake=False, block=False)

        elif self.ir_sensor.bottom_left(channel=self.ir_beacon_channel):
            self.turn_motor.on(speed=-50, brake=False, block=False)

            self.move_motor.on(speed=-speed, brake=False, block=False)

        elif self.ir_sensor.bottom_right(channel=self.ir_beacon_channel):
            self.turn_motor.on(speed=50, brake=False, block=False)

            self.move_motor.on(speed=-speed, brake=False, block=False)

        else:
            self.turn_motor.off(brake=True)

            self.move_motor.off(brake=False)

    def bite_by_ir_beacon(self, speed: float = 100):
        if self.ir_sensor.beacon(channel=self.ir_beacon_channel):
            self.scare_motor.on_for_seconds(speed=speed,
                                            seconds=1,
                                            brake=True,
                                            block=False)

            self.noise.play_file(wav_file='/home/robot/sound/Snake hiss.wav',
                                 volume=100,
                                 play_type=Sound.PLAY_NO_WAIT_FOR_COMPLETE)

            self.scare_motor.on_for_seconds(speed=-speed,
                                            seconds=1,
                                            brake=True,
                                            block=True)

            while self.ir_sensor.beacon(channel=self.ir_beacon_channel):
                pass

    def run_away_if_chased(self):
        if self.color_sensor.reflected_light_intensity > 30:
            self.move_motor.on_for_seconds(speed=50,
                                           seconds=4,
                                           brake=True,
                                           block=False)

            for i in range(2):
                self.turn_motor.on_for_seconds(speed=50,
                                               seconds=1,
                                               brake=False,
                                               block=True)

                self.turn_motor.on_for_seconds(speed=-50,
                                               seconds=1,
                                               brake=False,
                                               block=True)

    def bite_if_touched(self):
        if self.touch_sensor.is_pressed:
            self.scare_motor.on_for_seconds(speed=100,
                                            seconds=1,
                                            brake=True,
                                            block=False)

            self.noise.play_file(wav_file='/home/robot/sound/Snake hiss.wav',
                                 volume=100,
                                 play_type=Sound.PLAY_NO_WAIT_FOR_COMPLETE)

            self.scare_motor.on_for_seconds(speed=-10,
                                            seconds=10,
                                            brake=True,
                                            block=True)

    def main(self, speed: float = 100):
        while True:
            self.drive_once_by_ir_beacon(speed=speed)

            self.bite_by_ir_beacon(speed=speed)

            self.bite_if_touched()

            self.run_away_if_chased()
Пример #11
0
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()
    
        Process(target=self.blast_bazooka_whenever_touched,
                daemon=True).start()

        super().main()   # RemoteControlledTank.main()
Пример #12
0
ent_motor_esq = OUTPUT_C
ent_motor_dir = OUTPUT_D
ent_motor_grande = OUTPUT_B
ent_motor_medio = OUTPUT_A
ent_sc_esq = INPUT_3
ent_sc_dir = INPUT_4
ent_us_lat = INPUT_2
ent_us_fr = INPUT_1
steering_pair = MoveSteering(ent_motor_esq, ent_motor_dir)
garra_g = LargeMotor(ent_motor_grande)
garra_m = MediumMotor(ent_motor_medio)
cor_esq = ColorSensor(ent_sc_esq)
cor_dir = ColorSensor(ent_sc_dir)
usl = UltrasonicSensor(ent_us_lat)
usf = UltrasonicSensor(ent_us_fr)
sound = Sound()
btn = Button()


def RGBtoHSV(rgb):
    x = max(rgb)
    y = min(rgb)
    if x == y:
        z = 1
    else:
        z = x - y
    r = rgb[0]
    g = rgb[1]
    b = rgb[2]
    if r >= g and r >= b:  #se o vermelho é o máximo
        if g >= b:
Пример #13
0
class Rov3r(IRBeaconRemoteControlledTank):
    def __init__(self,
                 left_motor_port: str = OUTPUT_B,
                 right_motor_port: str = OUTPUT_C,
                 gear_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_motor_port,
                         right_motor_port=right_motor_port,
                         ir_sensor_port=ir_sensor_port,
                         ir_beacon_channel=ir_beacon_channel)

        self.gear_motor = MediumMotor(address=gear_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.speaker = Sound()
        self.dis = Display(desc='Display')

    def spin_gears(self, speed: float = 100):
        if self.ir_sensor.beacon(channel=1):
            self.gear_motor.on(speed=speed, block=False, brake=False)

        else:
            self.gear_motor.off(brake=True)

    def change_screen_when_touched(self):
        if self.touch_sensor.is_pressed:
            self.dis.image_filename(filename='/home/robot/image/Angry.bmp',
                                    clear_screen=True)
            self.dis.update()

        else:
            self.dis.image_filename(filename='/home/robot/image/Fire.bmp',
                                    clear_screen=True)
            self.dis.update()

    def make_noise_when_seeing_black(self):
        if self.color_sensor.color == ColorSensor.COLOR_BLACK:
            self.speaker.play_file(wav_file='/home/robot/sound/Ouch.wav',
                                   volume=100,
                                   play_type=Sound.PLAY_WAIT_FOR_COMPLETE)

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

        while True:
            self.drive_once_by_ir_beacon(speed=100)

            self.make_noise_when_seeing_black()

            self.spin_gears(speed=100)

            self.change_screen_when_touched()
Пример #14
0
def music():
    Sound.play("sounds/titanic.wav").wait()
Пример #15
0
from ev3dev2.sound import Sound  #dicionário que permite tocar músicas
from ev3dev.ev3 import *  #nao sei a diferença do de cima
from time import sleep
#from threading import Thread #dicionário que permite executar ações ao mesmo tempo
from multiprocessing import Process  #multi-process
from ev3dev2.motor import LargeMotor, MediumMotor, MoveSteering, OUTPUT_D, OUTPUT_A, OUTPUT_B, SpeedRPS  #dicionário dos motores disponíveis e usados no robot
from PIL import Image  #dicionário que permite apresentar imagens .bmp no lcd
from ev3dev2.sensor.lego import GyroSensor
from threading import Thread  #dicionário que permite executar ações ao mesmo tempo

import os
#os.system('setfont Lat15-TerminusBold14')
os.system('setfont Lat15-TerminusBold32x16')

mySound = Sound()

import colorTest
import coord

#############################################
#               TO DO LIST                  #
#############################################
'''
    definir a melhor velocidade para o robot se mover
    definir a melhor velocidade para a garra abrir e fechar
    definir quantas rotações (ou segundos) são necessarias para andar 1 casa
    definir os angulos de rotação
    definir multiprocessing para andar e fazer a leitura ao mesmo tempo
'''
##########################################################################################
#!/usr/bin/env micropython

from ev3dev2.motor import LargeMotor, MediumMotor, OUTPUT_A, OUTPUT_D
from ev3dev2.sensor import INPUT_4
from ev3dev2.sensor.lego import InfraredSensor
from ev3dev2.sound import Sound

from multiprocessing import Process
from time import sleep

LARGE_MOTOR = LargeMotor(address=OUTPUT_D)
MEDIUM_MOTOR = MediumMotor(address=OUTPUT_A)

IR_SENSOR = InfraredSensor(address=INPUT_4)

SPEAKER = Sound()


def rattle():
    while True:
        MEDIUM_MOTOR.on_for_seconds(speed=10,
                                    seconds=1,
                                    brake=False,
                                    block=True)

        SPEAKER.play_file(wav_file='/home/robot/sound/Snake rattle.wav',
                          volume=50,
                          play_type=Sound.PLAY_WAIT_FOR_COMPLETE)

        MEDIUM_MOTOR.on_for_seconds(speed=-10,
                                    seconds=1,
Пример #17
0
# port 1 = Barometer sensor
# port 2 = Ultrasonic sensor, Infrared Sensor and Gyro Sensor via EV3 Port splitter
# port 3 = Thermometer
# port 4 = Sound Sensor

# port A = Medium Motor (Claw)
# port B = Large Motor
# port C = Large Motor
# port D = Medium Motor (Lift)

tank_pair = MoveTank(OUTPUT_B,OUTPUT_C)
steer_pair = MoveSteering(OUTPUT_B,OUTPUT_C)
MediumMotor_Claw = MediumMotor(OUTPUT_A)
MediumMotor_lift = MediumMotor(OUTPUT_D)

sound = Sound()
leds = Leds()
btn = Button()

# Mindstorms EV3-Sensor-Mux connected to EV3 Ultrasonic Sensor, Infrared Sensor and Gyro Sensor --------------------

us_port = LegoPort(address='ev3-ports:in2:i2c80:mux1') 
ir_port = LegoPort(address='ev3-ports:in2:i2c81:mux2') 
gyro_port = LegoPort(address='ev3-ports:in2:i2c82:mux3')

us_port.mode = 'uart'
ir_port.mode = 'uart'
gyro_port.mode = 'uart'

us_port.set_device = 'lego-ev3-us' 
ir_port.set_device = 'lego-ev3-ir'
Пример #18
0
#!/usr/bin/env micropython

from ev3dev2.sound import Sound

player = Sound()
player.play_song((
    ('D4', 'e3'),  # intro anacrouse
    ('D4', 'e3'),
    ('D4', 'e3'),
    ('G4', 'h'),  # meas 1
    ('D5', 'h'),
    ('C5', 'e3'),  # meas 2
    ('B4', 'e3'),
    ('A4', 'e3'),
    ('G5', 'h'),
    ('D5', 'q'),
    ('C5', 'e3'),  # meas 3
    ('B4', 'e3'),
    ('A4', 'e3'),
    ('G5', 'h'),
    ('D5', 'q'),
    ('C5', 'e3'),  # meas 4
    ('B4', 'e3'),
    ('C5', 'e3'),
    ('A4', 'h.'),
))
Пример #19
0
#!/usr/bin/env python3

from __future__ import absolute_import
from ev3dev.ev3 import *
from roberta.ev3 import Hal
from ev3dev2.motor import LargeMotor, MediumMotor
from ev3dev2.motor import MoveSteering, OUTPUT_A, OUTPUT_D
from ev3dev2.motor import MoveTank, OUTPUT_A, OUTPUT_D
from ev3dev2.sound import Sound
from ev3dev import ev3 as ev3dev

#lm = LargeMotor(OUTPUT_A)
#rm = LargeMotor(OUTPUT_D)
mm = MediumMotor(OUTPUT_B)

sound = Sound()
opts = '-a 200 -s 130 -v'

text = 'Saluton amikoj, mi estas Robi! mi sxatas muziki kaj danci'
sound.speak(text, espeak_opts=opts+'eo')

class BreakOutOfALoop(Exception): pass
class ContinueLoop(Exception): pass

_brickConfiguration = {
    'wheel-diameter': 5.6,
    'track-width': 18.0,
    'actors': {
        'A':Hal.makeLargeMotor(ev3dev.OUTPUT_A, 'on', 'foreward', 'right'),
        'D':Hal.makeLargeMotor(ev3dev.OUTPUT_D, 'on', 'foreward', 'left'),
    }
Пример #20
0
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B, SpeedPercent, MoveTank
from ev3dev2.sensor import INPUT_1
from ev3dev2.sensor.lego import TouchSensor
from ev3dev2.led import Leds

ts = TouchSensor(INPUT_1)
leds = Leds()

print("Press the touch sensor to change the LED color!")

# m = LargeMotor(OUTPUT_A)
# m.on_for_rotations(SpeedPercent(75), 5)

from ev3dev2.sound import Sound

sound = Sound()
sound.speak("LICKo is going to win it all this year!  Lets goooooooooooo!")

flip = True
while True:
    # if ts.is_pressed:
    if flip:
        leds.set_color("LEFT", "GREEN")
        leds.set_color("RIGHT", "GREEN")
    else:
        leds.set_color("LEFT", "RED")
        leds.set_color("RIGHT", "RED")
    flip = not flip
    # don't let this loop use 100% CPU
    sleep(0.2)
Пример #21
0
class Gripp3r:
    def __init__(self,
                 left_motor_port: str = OUTPUT_B,
                 right_motor_port: str = OUTPUT_C,
                 grip_motor_port: str = OUTPUT_A,
                 touch_sensor_port: str = INPUT_1,
                 ir_sensor_port: str = INPUT_4,
                 ir_beacon_channel: int = 1):
        self.tank_driver = MoveTank(left_motor_port=left_motor_port,
                                    right_motor_port=right_motor_port,
                                    motor_class=LargeMotor)

        self.grip_motor = MediumMotor(address=grip_motor_port)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)

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

        self.speaker = Sound()

    def keep_driving_by_ir_beacon(self, speed: float = 100):
        while True:
            if self.ir_sensor.top_left(channel=self.ir_beacon_channel) and \
                    self.ir_sensor.top_right(channel=self.ir_beacon_channel):
                # go forward
                self.tank_driver.on(left_speed=speed, right_speed=speed)

            elif self.ir_sensor.bottom_left(channel=self.ir_beacon_channel) and \
                    self.ir_sensor.bottom_right(channel=self.ir_beacon_channel):
                # go backward
                self.tank_driver.on(left_speed=-speed, right_speed=-speed)

            elif self.ir_sensor.top_left(channel=self.ir_beacon_channel) and \
                    self.ir_sensor.bottom_right(channel=self.ir_beacon_channel):
                # turn around left
                self.tank_driver.on(left_speed=-speed, right_speed=speed)

            elif self.ir_sensor.top_right(channel=self.ir_beacon_channel) and \
                    self.ir_sensor.bottom_left(channel=self.ir_beacon_channel):
                # turn around right
                self.tank_driver.on(left_speed=speed, right_speed=-speed)

            elif self.ir_sensor.top_left(channel=self.ir_beacon_channel):
                # turn left
                self.tank_driver.on(left_speed=0, right_speed=speed)

            elif self.ir_sensor.top_right(channel=self.ir_beacon_channel):
                # turn right
                self.tank_driver.on(left_speed=speed, right_speed=0)

            elif self.ir_sensor.bottom_left(channel=self.ir_beacon_channel):
                # left backward
                self.tank_driver.on(left_speed=0, right_speed=-speed)

            elif self.ir_sensor.bottom_right(channel=self.ir_beacon_channel):
                # right backward
                self.tank_driver.on(left_speed=-speed, right_speed=0)

            else:
                self.tank_driver.off(brake=False)

    def grip_or_release_by_ir_beacon(self, speed: float = 50):
        while True:
            if self.ir_sensor.beacon(channel=self.ir_beacon_channel):
                if self.touch_sensor.is_pressed:
                    self.speaker.play_file(
                        wav_file='/home/robot/sound/Air release.wav',
                        volume=100,
                        play_type=Sound.PLAY_NO_WAIT_FOR_COMPLETE)

                    self.grip_motor.on_for_seconds(speed=speed,
                                                   seconds=1,
                                                   brake=True,
                                                   block=True)

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

                    self.grip_motor.on(speed=-speed, brake=False, block=False)

                    self.touch_sensor.wait_for_pressed()

                    self.grip_motor.off(brake=True)

                while self.ir_sensor.beacon(channel=self.ir_beacon_channel):
                    pass

    def main(self, speed: float = 100):
        self.grip_motor.on_for_seconds(speed=-50,
                                       seconds=1,
                                       brake=True,
                                       block=True)

        while True:
            Process(target=self.grip_or_release_by_ir_beacon).start()

            self.keep_driving_by_ir_beacon(speed=speed)
Пример #22
0
class Dinor3x(IRBeaconRemoteControlledTank):
    """
    Challenges:
    - Can you make DINOR3X remote controlled with the IR-Beacon?
    - Can you attach a colorsensor to DINOR3X, and make it behave differently
        depending on which color is in front of the sensor
        (red = walk fast, white = walk slow, etc.)?
    """

    def __init__(
            self,
            left_motor_port: str = OUTPUT_B, right_motor_port: str = OUTPUT_C,
            jaw_motor_port: str = OUTPUT_A,
            touch_sensor_port: str = INPUT_1,
            ir_sensor_port: str = INPUT_4, ir_beacon_channel: int = 1):
        super().__init__(
            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.jaw_motor = MediumMotor(address=jaw_motor_port)

        self.touch_sensor = TouchSensor(address=touch_sensor_port)

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

        self.button = Button()
        self.speaker = Sound()

    def calibrate_legs(self):
        self.tank_driver.on(
            left_speed=10,
            right_speed=20)

        self.touch_sensor.wait_for_released()

        self.tank_driver.off(brake=True)

        self.left_motor.on(speed=40)

        self.touch_sensor.wait_for_pressed()

        self.left_motor.off(brake=True)

        self.left_motor.on_for_rotations(
            rotations=-0.2,
            speed=50,
            brake=True,
            block=True)

        self.right_motor.on(speed=40)

        self.touch_sensor.wait_for_pressed()

        self.right_motor.off(brake=True)

        self.right_motor.on_for_rotations(
            rotations=-0.2,
            speed=50,
            brake=True,
            block=True)

        self.left_motor.reset()
        self.right_motor.reset()

    def close_mouth(self):
        self.jaw_motor.on(
            speed=20,
            block=False,
            brake=False)
        sleep(1)
        self.jaw_motor.off(brake=True)

    def roar(self):
        self.speaker.play_file(
            wav_file='/home/robot/sound/T-rex roar.wav',
            volume=100,
            play_type=Sound.PLAY_NO_WAIT_FOR_COMPLETE)

        self.jaw_motor.on_for_degrees(
            speed=40,
            degrees=-60,
            block=True,
            brake=True)

        for i in range(12):
            self.jaw_motor.on_for_seconds(
                speed=-40,
                seconds=0.05,
                block=True,
                brake=True)

            self.jaw_motor.on_for_seconds(
                speed=40,
                seconds=0.05,
                block=True,
                brake=True)

        self.jaw_motor.on(
            speed=20,
            brake=False,
            block=False)

        sleep(0.5)

    def walk_until_blocked(self):
        self.steer_driver.on(
            steering=0,
            speed=-40)

        while self.ir_sensor.proximity >= 25:
            pass

        self.steer_driver.off(brake=True)

    def run_away(self):
        self.steer_driver.on_for_rotations(
            speed=75,
            steering=0,
            rotations=3,
            brake=True,
            block=True)

    def jump(self):
        """
        Dinor3x Mission 02 Challenge: make it jump
        """
        ...

    # TRANSLATED FROM EV3-G MY BLOCKS
    # -------------------------------

    def leg_adjust(
            self,
            cyclic_degrees: float,
            speed: float = 40,
            leg_offset_percent: float = 0,
            mirrored_adjust: bool = False,
            brake: bool = True):
        ...

    def leg_to_pos(
            self,
            speed: float = 40,
            left_position: float = 0,
            right_position: float = 0):
        self.tank_driver.stop(brake=True)

        self.left_motor.on_for_degrees(
            speed=speed,
            degrees=left_position -
                    cyclic_position_offset(
                        rotation_sensor=self.left_motor.position,
                        cyclic_degrees=360),
            brake=True,
            block=True)

        self.right_motor.on_for_degrees(
            speed=speed,
            degrees=right_position -
                    cyclic_position_offset(
                        rotation_sensor=self.right_motor.position,
                        cyclic_degrees=360),
            brake=True,
            block=True)

    def turn(self, speed: float = 40, n_steps: int = 1):
        ...

    def walk(self, speed: float = 40):
        ...

    def walk_steps(self, speed: float = 40, n_steps: int = 1):
        ...
Пример #23
0
def play_random_quote():
    '''A word from our sponsor, Anatoly Dyatlov'''
    index = random.randint(0, len(soundList) - 1)
    # keep moving while speaking
    Sound().speak(soundList[index], play_type=Sound.PLAY_NO_WAIT_FOR_COMPLETE)
Пример #24
0
ent_sc_dir = INPUT_4
ent_us_lat = INPUT_2
ent_us_fr = INPUT_1

steering_pair = MoveSteering(ent_motor_esq, ent_motor_dir)
tank = MoveTank(ent_motor_esq, ent_motor_dir)
tank.cs = ColorSensor(ent_sc_esq)
garra_g = LargeMotor(ent_motor_grande)
garra_m = MediumMotor(ent_motor_medio)

cor_esq = ColorSensor(ent_sc_esq)
cor_dir = ColorSensor(ent_sc_dir)
usl = UltrasonicSensor(ent_us_lat)
usf = UltrasonicSensor(ent_us_fr)

sound = Sound()
btn = Button()

#Funções

#Cor
#Locomoção

# Reconhecimento de cor


def RGBtoHSV(rgb):
    x = max(rgb)
    y = min(rgb)
    if x == y:
        z = 1
Пример #25
0
def play_beep(hz=300.0, length=1.0):
    Sound().play_tone(hz, length)
Пример #26
0
#!/usr/bin/env python3
from ev3dev2.motor import LargeMotor, SpeedPercent, MoveTank, MediumMotor, OUTPUT_A, OUTPUT_B, OUTPUT_C, OUTPUT_D
from ev3dev2.sensor import INPUT_1, INPUT_2, INPUT_3, INPUT_4
from ev3dev2.sensor.lego import TouchSensor, ColorSensor
from ev3dev2.led import Leds
from ev3dev2.sound import Sound
import time, os
os.system('setfont ' + 'Lat15-Terminus24x12')

sound = Sound()
sound.speak('hello')
Пример #27
0
from ev3dev2.motor import LargeMotor, OUTPUT_A, OUTPUT_B, OUTPUT_C, OUTPUT_D, SpeedPercent, MoveTank, MediumMotor#gives us accses to everything we need to run EV3 dev
from ev3dev2.sensor import INPUT_1, INPUT_2, INPUT_3, INPUT_4
from ev3dev2.sensor.lego import ColorSensor
from ev3dev2.sensor.lego import GyroSensor
from ev3dev2.button import Button
from ev3dev2.sound import Sound
from ev3dev2.display import Display
import time
import sys
btn = Button() # variable so we can get buttons pressed on EV3
color = ColorSensor(INPUT_4) # color sensor for checking attachment color
tank_drive = MoveTank(OUTPUT_B, OUTPUT_C)  # Creates a variable so we can control the drivetrain
motorA = MediumMotor(OUTPUT_A) # left medium motor
motorD = MediumMotor(OUTPUT_D) # right medium motor
gyro = GyroSensor(INPUT_1) # gyro variable
Sound_ = Sound() # beepity beep
Display_ = Display() # for displaying text
Sound_.play_tone(frequency=400, duration=0.5, volume=50) #plays a note so we know when the code starts
#---------------------------------------------------------------------------------------------------------------------------------------------------

#------------------------------------------------Distance conversion--------------------------------------------------------------------------------
# Distance Conversion
wheelDiameter_mm = 56 # Look at the first number on the NUMBERxNUMBER on wheel
wheelCircumference_cm = (wheelDiameter_mm/10) * 3.14159265358979323846284338 # Convert to cm and multiply by pi for circumference
wheelCircumference_in = (wheelDiameter_mm/25.4) * 3.14159265358979323846284338 # Convert to in and multiply by pi for circumference
# inches to rotations:
# example: drive.on_for_rotations(SpeedPercent(100), SpeedPrecent(100), inToRotations(5))
# to go 5 inches
def inToRotations(inches):
    return inches/wheelCircumference_in
# centimeters to rotations:
Пример #28
0
#!/usr/bin/env python3
from ev3dev2.button import Button
from time import sleep
from ev3dev2.led import Leds
from ev3dev2.sound import Sound
import os
import sys
os.system('setfont Lat15-TerminusBold14')

btn = Button()
loop = True
leds = Leds()
sound = Sound()
while loop:
    if btn.left == True:
        leds.set_color('LEFT', 'RED')
    elif btn.right == True:
        leds.set_color('RIGHT', 'RED')
    elif btn.up == True:
        leds.set_color('RIGHT', 'YELLOW')
    elif btn.down == True:
        leds.set_color('LEFT', 'AMBER')
    elif btn.enter == True:
        loop = False
    else:
        print('Do something!')
sound.play_tone(1500, 1)
sleep(0.5)
sound.play_tone(1400, 1)
sleep(0.5)
sound.play_tone(1300, 1)
Пример #29
0
#!/usr/bin/env python3
import numpy as np
from ev3dev2.sensor import INPUT_1, INPUT_3
from ev3dev2.sensor.lego import ColorSensor, UltrasonicSensor
from ev3dev2.button import Button
from ev3dev2.sound import Sound
import time
"""load up peripherals. sensors motors buttons etc"""
button = Button()
l_sensor3 = ColorSensor(INPUT_3)
l_sensor1 = ColorSensor(INPUT_1)
u_sensor = UltrasonicSensor()
sound = Sound()


def return_pressed_button(button):
    """waits for center button to be pressed and then returns the button object"""

    pressed_button = None
    while True:
        sound.play_tone(400, 0.5)
        #print(button.buttons_pressed)
        print("press button:")
        if button.enter:
            print(button.enter)
            sound.play_tone(300, 0.5)
            pressed_button = button
            break
    return True, pressed_button

from ev3dev2.sensor import INPUT_1, INPUT_2, INPUT_3, INPUT_4
from ev3dev2.sensor.lego import ColorSensor
from ev3dev2.sensor.lego import GyroSensor
from ev3dev2.button import Button
from ev3dev2.sound import Sound
from ev3dev2.display import Display
import time
import sys

btn = Button()
color = ColorSensor(INPUT_4)
tank_drive = MoveTank(OUTPUT_B,
                      OUTPUT_C)  #This is the template whenever we code
motorA = MediumMotor(OUTPUT_A)
motorD = MediumMotor(OUTPUT_D)
Sound_ = Sound()
Display_ = Display()
Sound_.play_tone(frequency=400, duration=0.5,
                 volume=50)  #plays a note so we know when the code starts


#yellow = forwards
def swing_and_safety():
    tank_drive = MoveTank(OUTPUT_B, OUTPUT_C)
    motorA = MediumMotor(OUTPUT_A)
    motorD = MediumMotor(OUTPUT_D)
    tank_drive.on_for_rotations(SpeedPercent(50), SpeedPercent(50),
                                6.67)  #ROBOT MOVES FORWARD FROM BASE
    tank_drive.on_for_rotations(SpeedPercent(20), SpeedPercent(20),
                                .8)  # ROBOT MOVES INTO SWING
    tank_drive.on_for_rotations(SpeedPercent(-30), SpeedPercent(-30),
Пример #31
0
from ev3dev2.button import Button
from ev3dev2.sound import Sound
from ev3dev2.display import Display
from PIL import Image
import array
import random
import os

#logging
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(levelname)5s: %(message)s')

log=logging.getLogger(__name__)
log.info("Starting Snake")

btn=Button()
sound=Sound()
display=Display()

# declare the variables
# direction x: 0-no move; 1-left; -1-right
dx=0
# direction y: 0-no move; 1-down; -1-up
dy=0
# Set burger position x
hx=random.randint(10, 170)
# set burger position y
hy=random.randint(20, 120)
# set the start x position of snake
Sx=[80]
# set the start y position of snake
Sy=[60]
Пример #32
0
 def sound(self):
     return Sound()