Set principal MINDSTORMS EV3

Crear un Coche sin conductor

Diseñar un vehículo autónomo que siga órdenes de conducción definidas por el usuario.

120+ min.
Intermedio
4º de ESO a Bachillerato
roaming-vehicles-gps

Plan de la lección

Preparar
- Lea este material para el profesor.
- Si lo considera necesario, prepare una lección con el material de primeros pasos que hay en la Aplicación de programación EV3 o el Software de Laboratorio EV3. Así, los alumnos pueden ir familiarizándose con LEGO® MINDSTORMS® Education EV3.

Despertar el interés (30 min.)
- Aproveche las ideas de la sección Debate abierto para animar a los alumnos a hablar sobre temas relacionados con este proyecto.
- Explique el proyecto.
- Ponga a los alumnos en parejas.
- Deles tiempo para que piensen en todas las ideas que se les ocurran.

Explorar (30 min.)
- Pida a los alumnos que creen varios prototipos.
- Anímeles a explorar tanto el montaje como la programación.
- Haga que cada pareja monte y pruebe dos soluciones.

Explicar (60 min.)
- Pida a los alumnos que prueben sus soluciones y elijan la mejor.
- Asegúrese de que son capaces de crear sus propias tablas de prueba.
- Deje tiempo para que cada equipo termine su proyecto y reúna datos para documentar su trabajo.

Desarrollar (60 min.)
- Dé a los alumnos tiempo para que preparen sus informes finales.
- Organice una sesión en la que cada equipo presente sus resultados.

Evaluar
- Valore el trabajo que ha hecho cada alumno.
- Puede usar las rúbricas de evaluación facilitadas para simplificar el proceso.

Debate abierto

Hoy en día, en los coches se usan muchos sistemas de navegación. Algunos de estos sistemas ya están asumiendo la responsabilidad de los conductores de llevar a los pasajeros a su lugar de destino de forma segura. Antes de determinar cuál es la mejor ruta entre los puntos A y B, los coches autónomos tienen que ser capaces de ejecutar una serie de movimientos basados en la información dada por el usuario.

roaming-vehicles-gps

Anime a los alumnos a hacer una lluvia de ideas.
Pídales que se planteen estas preguntas:

  • ¿Qué es un coche autónomo y cómo funciona?
  • ¿De dónde obtiene un coche autónomo las instrucciones?
  • ¿Qué movimientos tiene que hacer el coche para moverse por las calles de una localidad en una cuadrícula con líneas norte, sur, este, oeste?

Dé a los alumnos tiempo para que contesten estas preguntas:

Anímeles a que documenten sus ideas iniciales y expliquen por qué han elegido la solución que van a usar para hacer su primer prototipo. Pídales que describan cómo van a evaluar sus ideas durante el proyecto. Así, mientras revisan y comprueban su trabajo, tendrán información específica que pueden usar para evaluar su solución y decidir si es o no efectiva.

El pseudocódigo es una buena herramienta para ayudar a los alumnos a organizar sus ideas antes de comenzar a programar.

Consejos de montaje

Lo primero es montar un vehículo. Los alumnos pueden usar cualquiera de los modelos sugeridos para la base de conducción LEGO® MINDSTORMS® EV3 o diseñar el suyo propio. Asegúrese de que se puede acceder bien a los botones en la parte superior del Ladrillo EV3 porque en esta actividad se van a usar para controlar la dirección.

ev3-robot-driving-base

Consejos de programación

Explique a los alumnos que van a programar su robot para que se mueva siguiendo una serie de instrucciones grabadas que le enviarán con los botones del Ladrillo EV3. Use estos parámetros:

  • Botón Arriba pulsado, el robot avanza 30 cm
  • Botón Abajo pulsado, el robot retrocede 30 cm
  • Botón Izquierda pulsado, el robot gira 90 grados a la izquierda
  • Botón Derecha pulsado, el robot gira 90 grados a la derecha

Grabar una acción para que el robot se mueva

coding-08-01

Explicación del Programa

  1. Iniciar el programa.
  2. Crear un Bloque Variable denominado «Conducir».
  3. Esperar a que se pulse un botón del ladrillo.
  4. Reproducir sonido «Click 2».
  5. Grabar el valor numérico del botón presionado en la variable «Conducir».
  6. Esperar dos segundos.
  7. Reproducir sonido «G02».
  8. Leer el número guardado en la variable «Conducir» y enviar el valor a un Interruptor.
  9. Interruptor numérico:

    a. Si Conducir = 0 (caso predeterminado), no hacer nada.
    b. Si Conducir = 1, girar el robot a la izquierda.
    c. Si Conducir = 3, girar el robot a la derecha.
    d. Si Conducir = 4, mover el robot en línea recta hacia adelante dos rotaciones de las ruedas.
    e. Si Conducir = 5, mover el robot en línea recta hacia atrás dos rotaciones de las ruedas.

  10. Reproducir sonido «Game Over 2».

Grabar varias acciones para hacer que el robot se mueva

El Bloque Operaciones de matriz se utiliza para guardar una secuencia de datos. Se suele describir como una tabla con una única fila y varias columnas.

coding-08-02

Explicación de la Solución

  1. Iniciar el programa.
  2. Crear un Bloque Variable denominado «Conducir». Elegir la opción «EscribirMatriz Numérica».
  3. Crear un Bucle. El código de ejemplo está establecido para ejecutarse cinco veces.
  4. Esperar a que se pulse un botón del ladrillo.
  5. Reproducir sonido «Click».
  6. Leer el Bloque Variable «Conducir». Elegir la opción «Leer Matriz Numérica».
  7. Usar el Bloque Operaciones de matriz. Elegir «Escribir en Índice - Numérico».

a. Conectar el cable de datos del Bloque Variable «Conducir».
b. Conectar el cable de datos del índice del Bucle desde la parte frontal del Bucle hasta la ubicación del índice en el Bloque Operaciones de matriz.
c. Conectar el cable de datos del valor del Bloque Esperar a botón EV3 a la ubicación del valor en el Bloque Operaciones de matriz.

  1. Escribir el resultado del Bloque Operaciones de matriz en el Bloque Variable «Conducir».
  2. Esperar dos segundos.
  3. Reproducir sonido «Go».
  4. Crear un segundo Bucle. El código de ejemplo está establecido para ejecutarse cinco veces, el mismo número de veces que el primer Bucle.
  5. Leer el Bloque Variable «Conducir». Elegir la opción «Leer Matriz Numérica».
  6. Usar el Bloque Operaciones de matriz. Elegir la opción «Leer en Índice - Numérico».
  7. Interruptor numérico:

a. Si Conducir = 0 (caso predeterminado), no hacer nada.
b. Si Conducir = 1, girar el robot a la izquierda.
c. Si Conducir = 3, girar el robot a la derecha.
d. Si Conducir = 4, mover el robot en línea recta hacia adelante dos rotaciones de las ruedas.
e. Si Conducir = 5, mover el robot en línea recta hacia atrás dos rotaciones de las ruedas.

  1. Reproducir sonido «Game Over 2».
Descargar programas de muestra 32 KB, precisa Software de Laboratorio EV3

Pestañas «1» y «2»

Soluciones de programa MicroPython EV3

Grabar una acción para que el robot se mueva

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor
from pybricks.parameters import Port, Stop, Button, SoundFile
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# The Left, Right, Up, and Down Buttons are used to command the robot.
COMMAND_BUTTONS = (Button.LEFT, Button.RIGHT, Button.UP, Button.DOWN)

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Wait until one of the command buttons is pressed.
while not any(b in brick.buttons() for b in COMMAND_BUTTONS):
    wait(10)

# Store the pressed button as the drive command.
drive_command = brick.buttons()[0]
brick.sound.file(SoundFile.CLICK)

# Wait 2 seconds and then play a sound to indicate that the robot is
# about to drive.
wait(2000)
brick.sound.file(SoundFile.GO)
wait(1000)

# Now drive the robot using the drive command.  Depending on which
# button was pressed, drive in a different way.

# The robot turns 90 degrees to the left.
if drive_command == Button.LEFT:
    robot.drive_time(100, -90, 1000) 

# The robot turns 90 degrees to the right.
elif drive_command == Button.RIGHT:
    robot.drive_time(100, 90, 1000)

# The robot drives straight forward 30 cm.
elif drive_command == Button.UP:
    robot.drive_time(100, 0, 3000) 
    
# The robot drives straight backward 30 cm.
elif drive_command == Button.DOWN:
    robot.drive_time(-100, 0, 3000)

# Play a sound to indicate that it is finished.
brick.sound.file(SoundFile.GAME_OVER)
wait(2000)

Grabar varias acciones para hacer que el robot se mueva

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor
from pybricks.parameters import Port, Stop, Button, SoundFile
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# The Left, Right, Up, and Down Buttons are used to command the robot.
COMMAND_BUTTONS = (Button.LEFT, Button.RIGHT, Button.UP, Button.DOWN)

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Pressing a button stores the command in a list.  The list is empty to
# start.  It will grow as commands are added to it.
drive_command_list = []

# This loop records the commands in the list.  It repeats until 5
# buttons have been pressed.  This is done by repeating the loop while
# the list contains less than 5 commands. 
while len(drive_command_list) < 5:
    # Wait until one of the command buttons is pressed.
    while not any(b in brick.buttons() for b in COMMAND_BUTTONS):
        wait(10)
    
    # Add the pressed button to the command list.
    drive_command_list.append(brick.buttons()[0])
    brick.sound.file(SoundFile.CLICK)

    # To avoid registering the same command again, wait until the Brick
    # Button is released before continuing.
    while any(brick.buttons()):
        wait(10)

# Wait 2 seconds and then play a sound to indicate that the robot is
# about to drive.
wait(2000)
brick.sound.file(SoundFile.GO)
wait(1000)

# Now drive the robot using the list of stored commands.  This is done
# by going over each command in the list in a loop.
for drive_command in drive_command_list:
    # The robot turns 90 degrees to the left.
    if drive_command == Button.LEFT:
        robot.drive_time(100, -90, 1000) 

    # The robot turns 90 degrees to the right.
    elif drive_command == Button.RIGHT:
        robot.drive_time(100, 90, 1000)

    # The robot drives straight forward 30 cm.
    elif drive_command == Button.UP:
        robot.drive_time(100, 0, 3000) 
        
    # The robot drives straight backward 30 cm.
    elif drive_command == Button.DOWN:
        robot.drive_time(-100, 0, 3000)

# Play a sound to indicate that it is finished.
brick.sound.file(SoundFile.GAME_OVER)
wait(2000)

Extensiones

Extensiones de lengua castellana

Opción 1
Uso de programación basada en texto:

  • Pida a los alumnos que exploren soluciones de programación basadas en texto para que puedan comparar diferentes lenguajes de programación.

Opción 2
En esta lección, los alumnos han creado un coche sin conductor que funciona según las instrucciones que se le han aportado por medio de una matriz. ¿Qué pasaría si los coches sin conductor del futuro pudieran programarse para invalidar las instrucciones de sus conductores humanos?
Para incluir el desarrollo de habilidades en lengua castellana, anime a los alumnos a:

  • Escribir a favor del argumento de que los coches sin conductor no deberían poder controlar su velocidad de manera autónoma a pesar de la instrucciones del pasajero
  • Incluir pruebas específicas que respalden la validez de esta afirmación, citando ejemplos de situaciones en las que podría ser desfavorable para el pasajero.
  • Asegurarse de abordar el argumento opuesto de que proporcionar control de velocidad autónomo a los coches sin conductor podría ser una estrategia eficaz para aumentar la seguridad del tráfico o de los conductores

Actividades adicionales de matemáticas

En esta lección, los alumnos han creado una secuencia de instrucciones, giro a giro, para un coche sin conductor. Mediante sensores y aprendizaje automático, los coches sin conductor pueden seguir instrucciones y modificar la ejecución de las mismas en función de nuevas condiciones.
Para incorporar el desarrollo de habilidades matemáticas y explorar las aplicaciones del aprendizaje automático para los coches sin conductor, indique a los alumnos un «presupuesto» de un número determinado de giros. A continuación, anímelos a:

  • Crear una cuadrícula que represente las calles de la ciudad (por ejemplo, cinco calles de este a oeste y cinco calles de norte a sur)
  • Escoger un punto de partida y un destino · Teniendo en cuenta que el mejor recorrido es aquel con el menor número de giros, analizar tres intersecciones entre el punto de partida y el destino
  • Determinar la probabilidad de que su vehículo llegue al destino «dentro de presupuesto» en una dirección aleatoria

Opciones de evaluación

Lista de comprobación de la observación del profesor
Cree una escala que se ajuste a sus necesidades, por ejemplo:

  1. Parcialmente superado
  2. Totalmente superado
  3. Superado con creces

Use estos criterios de logro de resultados para evaluar el progreso de los alumnos:

  • Los alumnos son capaces de identificar los elementos clave de un problema.
  • Los alumnos son autónomos a la hora de desarrollar una solución creativa que funciona.
  • Los alumnos son capaces de expresar sus ideas con claridad.

Autoevaluación
Cuando los alumnos hayan reunido varios datos sobre el funcionamiento, deles tiempo para que analicen sus soluciones. Ayúdeles planteando preguntas como:

  • ¿Cumple tu solución con los criterios de Presentación del diseño?
  • ¿Puedes hacer que los movimientos del robot sean más precisos?
  • ¿Cómo han resuelto otros este problema?

Pida a los alumnos que hagan una lluvia de ideas y documenten dos formas de mejorar sus soluciones.

Comentarios de los compañeros
Facilite un proceso de revisión con los compañeros en el que cada grupo tenga que evaluar sus propios proyectos y los de otros. Este proceso de revisión puede ayudar a los alumnos a desarrollar habilidades de crítica constructiva y mejorar sus habilidades de análisis y capacidad de usar datos objetivos para justificar un argumento.

Vínculos con carreras profesionales

Es posible que a los alumnos que han disfrutado con la lección les interese explorar estas carreras profesionales:

  • Empresariales y Economía (emprendimiento)
  • Fabricación e Ingeniería (pre-ingeniería)

Apoyo docente

Los alumnos van a:
Usar el proceso de diseño para resolver un problema del mundo real

ANEXO I Materias del bloque de asignaturas troncales
Ciencias Aplicadas a la Actividad Profesional. 4º ESO
- Bloque 3. Investigación, Desarrollo e Innovación (I+D+i), pg.57
- Bloque 4. Proyecto de investigación, pg.58

Dibujo Técnico I. y II. 1º y 2º Bachillerato
- Bloque 1. Geometría y Dibujo técnico, pg.66 y 68
- Bloque 2. Sistemas de representación, pg.67 y 69

Física y Química. 2º, 3º y 4º ESO, 1º y 2º Bachillerato
- Bloque 1. La actividad científica, pg.90, 95, 100 y 105
- Bloque 4. El movimiento y las fuerzas, pg.93 y 98

Lengua Castellana y Literatura. 4º ESO, 1º y 2º Bachillerato
- Bloque 1. Comunicación oral: escuchar y hablar, pg.197, 203 y 207
- Bloque 2. Comunicación escrita: leer y escribir, pg.199, 204 y 208

Matemáticas orientadas a las enseñanzas académicas y aplicadas. 3º y 4º ESO
- Bloque 1. Procesos, métodos y actitudes en matemáticas, pg.223, 227, 231 y 236
- Bloque 3. Geometría, pg.225, 229 y 234
- Bloque 4. Funciones, pg.226, 229, 234 y 238

Matemáticas I. y II. 1º y 2º Bachillerato
- Bloque 1. Procesos, métodos y actitudes en matemáticas, pg.246 y 251
- Bloque 4. Geometría, pg.249 y 253

Tecnología. 4º ESO
- Bloque 1. Tecnologías de la información y de la comunicación, pg.284
- Bloque 3. Electrónica, pg.285
- Bloque 4. Control y robótica, pg.285
- Bloque 6. Tecnología y sociedad, pg.285

ANEXO II Materias del bloque de asignaturas específicas
Dibujo Técnico I. y II. 1º y 2º Bachillerato

  • Bloque 1. Geometría y dibujo técnico, pg.309
  • Bloque 2. Sistemas de representación, pg.310 y 311
  • Bloque 3. Documentación gráfica de proyectos, pg.312

Tecnología Industrial I. 1º Bachillerato
- Bloque 1. Productos tecnológicos: diseño, producción y comercialización, pg.359
- Bloque 3. Máquinas y sistemas, pg.360

Tecnología Industrial II. 2º Bachillerato
- Bloque 2. Principios de máquinas, pg.360
- Bloque 3. Máquinas y sistemas, pg.360
- Bloque 3. Sistemas automáticos, pg.361
- Bloque 4. Circuitos y sistemas lógicos, pg.361
- Bloque 5. Control y programación de sistemas automáticos, pg.361

Tecnologías de la Información y la Comunicación. 4º ESO
- Bloque 3. Organización, diseño y producción de información digital, pg.364
- Bloque 5. Publicación y difusión de contenidos, pg.364

Tecnologías de la Información y la Comunicación I. 1º Bachillerato
- Bloque 3. Software para sistemas informáticos, pg.365
- Bloque 5. Programación, pg.365

Tecnologías de la Información y la Comunicación II. 2º Bachillerato
- Bloque 1. Programación, pg.366
- Bloque 2. Publicación y difusión de contenidos, pg.366

Material para los estudiantes

HOJA DE TRABAJO PARA EL ALUMNO

Download to view and share the student worksheet.

Compartir con:

Google ClassroomGoogle Classroom
CookiesLegal NoticePrivacy Policy

LEGO, the LEGO logo, the Minifigure, DUPLO, the SPIKE logo, MINDSTORMS and the MINDSTORMS logo are trademarks and/or copyrights of the LEGO Group. ©2024 The LEGO Group. All rights reserved. Use of this site signifies your agreement to the terms of use.