top of page
Buscar

Robô que responde a comandos por voz no lego mindstorms

Atualizado: 6 de dez. de 2024


Neste post, iremos ver como criar um robô que interaje com comandos de voz no lego mindstorms ev3.


Para fazer isso, é necessário instalar o ev3dev(https://www.ev3dev.org/) em um cartão sd e inserí-lo no módulo brick. Após isso, configure os comandos que você deseja no seu sensor de voz, seguindo este vídeo(https://www.youtube.com/watch?v=3bhzUneC3aQ).


Em seguida, conecte-o no lego, inserindo o pino rx no rx do cabo e o tx do módulo no tx do cabo.


código:


#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor,
                                 InfraredSensor, UltrasonicSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Button, Color
from pybricks.tools import wait, StopWatch, DataLog
from pybricks.robotics import DriveBase
from pybricks.media.ev3dev import SoundFile, ImageFile
from pybricks.iodevices import UARTDevice


# This program requires LEGO EV3 MicroPython v2.0 or higher.
# Click "Open user guide" on the EV3 extension tab for more information.


# Create your objects here.
ev3 = EV3Brick()

voice = UARTDevice(Port.S1, baudrate=9600, timeout=None)

ma = Motor(Port.A)
md = Motor(Port.D)

leitura = 0

# Write your program here.
ev3.speaker.beep()

voice.write(b'\xAA')
voice.write(b'\x37')
wait(1000)
voice.write(b'\xAA')
voice.write(b'\x21')

while True:
    leitura = voice.read(length=1)

    if leitura == b'\x11':
        ma.run(-500)
        md.run(-500)
        ev3.screen.clear()
        ev3.screen.draw_text(50, 50, "frente", text_color=Color.BLACK, background_color=None)

    if leitura == b'\x15':
        ma.stop()
        md.stop()
        ev3.screen.clear()
        ev3.screen.draw_text(50, 50, "parar", text_color=Color.BLACK, background_color=None)

    if leitura == b'\x12':
        ma.run(500)
        md.run(500)
        ev3.screen.clear()
        ev3.screen.draw_text(50, 50, "trás", text_color=Color.BLACK, background_color=None)
    
    if leitura == b'\x13':
        ma.run(500)
        md.run(-500)
        ev3.screen.clear()
        ev3.screen.draw_text(50, 50, "esquerda", text_color=Color.BLACK, background_color=None)

    if leitura == b'\x14':
        ma.run(-500)
        md.run(500)
        ev3.screen.clear()
        ev3.screen.draw_text(50, 50, "direita", text_color=Color.BLACK, background_color=None)

Vídeo demonstrativo:



 
 
 

コメント


Seja o primeiro a saber das novidades

2024 Mundo do Arduino

bottom of page