Haz un automóvil sin conductor
Diseña un vehículo autónomo que siga los comandos de conducción definidos por el usuario.
Plan de la sesión
Preparar - Repasa este material del profesor. - Si sientes que es necesario, planifica una sesión con el material “para empezar” en el software del Laboratorio EV3 o en la Aplicación de programación. Esto les ayudará a tus estudiantes a familiarizarse con LEGO® MINDSTORMS® Education EV3. Despertar el interés (30 min) - Usa las ideas de la sección Iniciar un debate para que tus estudiantes participen en un debate relacionado con este proyecto. - Explica el proyecto. - Divide tu clase en equipos de dos estudiantes. - Dales a tus estudiantes algo de tiempo para generar ideas. Explorar (30 minutos) - Pide a tus estudiantes que creen múltiples prototipos. - Aliéntalos a explorar tanto la construcción como la programación. - Pídele a cada pareja de estudiantes que construya y pruebe dos soluciones. Explicar (60 min) - Pídeles a tus estudiantes que prueben sus soluciones y que elijan la mejor. - Asegúrate de que pueden crear sus propias tablas de pruebas. - Dale tiempo a cada equipo para finalizar su proyecto y recopilar material para documentar su trabajo. Desarrollar (60 min) - Dales a tus estudiantes algo de tiempo para crear sus informes finales. - Haz una sesión de exposiciones en la que cada equipo presente sus resultados. Evaluar - Da retroalimentación sobre el desempeño de cada estudiante. - Puedes usar las rúbricas de evaluación que se proporcionan para simplificar el proceso.
Iniciar un debate
Hoy, hay muchos sistemas de navegación que se utilizan en los automóviles. Hoy en día, algunos de estos sistemas asumen la responsabilidad de los conductores de llevar a los pasajeros seguros a sus destinos. Antes de imaginar la mejor ruta entre los puntos A y B, los automóviles autónomos deben poder llevar a cabo una serie de movimientos según las selecciones del usuario.
Alienta un proceso activo de generación de ideas. Pide a tus estudiantes que piensen en estas preguntas: * ¿Qué son automóviles autónomos y cómo funcionan? * ¿Dónde obtienen sus instrucciones los automóviles autónomos? * ¿Qué movimientos necesitan hacer los automóviles para moverse a través de una serie de calles en una cuadrícula con norte, sur, este y oeste? Dales tiempo a tus estudiantes para responder estas preguntas. Alienta a tus estudiantes a documentar sus ideas finales y a explicar por qué eligieron la solución que usarán para su primer prototipo. Pídeles que describan cómo evaluarán sus ideas durante todo el proyecto. De esa manera, cuando los estudiantes repasen y revisen, tendrán cierta información específica que pueden usar para evaluar su solución y decidir si fue efectiva o no. El pseudocódigo es una herramienta genial para ayudar a los estudiantes a organizar sus pensamientos antes de empezar a programar. ### Consejos de construcción Comienza por construir un vehículo. Tus estudiantes pueden usar los modelos sugeridos de la Base motriz de LEGO MINDSTORMS EV3 o diseñar los suyos. Asegúrate de que hay un acceso claro a los botones de la parte superior del Ladrillo EV3. Se usarán para controlar la dirección en esta actividad.
Consejos de codificación Explícales a tus estudiantes que van a programar a su robot para moverse de acuerdo con una serie de instrucciones grabadas y que fueron previamente dadas por medio de botones en el Ladrillo EV3. Usa estos parámetros: * Botón arriba en contacto, el robot se mueve hacia adelante 30 cm * Botón abajo en contacto, el robot se mueve hacia atrás 30 cm * Botón izquierdo en contacto, el robot gira 90 grados a la izquierda * Botón derecho en contacto, el robot gira 90 grados a la derecha Graba una acción para hacer que el robot se mueva
Explicación del programa > 1. Inicia el programa. > 2. Crea un bloque Variable llamado “Tracción”. > 3. Espera a que se presione un botón del ladrillo. > 4. Reproduce el sonido “Click 2.” > 5. Registra el valor numérico del botón que se presionó en la variable “Tracción”. > 6. Espera 2 segundos. > 7. Reproduce el sonido “G02”. > 8. Lee el número guardado en la variable “Tracción” y envía el valor a un Interruptor. > 9. Interruptor numérico: >> a. Si Tracción = 0 (caso predeterminado), no hace nada. >> b. Si Tracción = 1, el robot gira a la izquierda. >> c. Si Tracción = 3, el robot gira a la derecha. >> d. Si Tracción = 4, el robot se mueve en línea recta hacia adelante por 2 rotaciones de las ruedas. >> e. Si Tracción = 5, el robot se mueve en línea recta hacia atrás por 2 rotaciones de las ruedas. > 10. Reproduce el sonido “Game Over 2”. Graba múltiples acciones para hacer que el robot se mueva El bloque Operaciones secuenciales se usa para guardar una secuencia de datos. Con frecuencia, se describe como una tabla formada por una sola fila y varias columnas.
Explicación de la solución > 1. Inicia el programa. > 2. Crea un bloque Variable llamado “Tracción”. Elige la opción “Escribir secuencia numérica”. > 3. Crea un bucle. El código de ejemplo se configura para ejecutarse 5 veces. > 4. Espera a que se presione un botón del ladrillo. > 5. Reproduce el sonido “Click”. > 6. Lee el bloque Variable “Tracción.” Elige la opción “Leer secuencia numérica”. > 7. Usa el bloque Operaciones secuenciales. Elige “Escribir en índice - numérico”. >> a. Conecta el bloque Variable "Tracción". >> b. Conecta el índice Bucle desde la parte delantera del bucle en el lugar del índice en el bloque Operaciones secuenciales. >> c. Conecta el valor de espera para el botón EV3 en el lugar del valor en el bloque de Operaciones secuenciales. >8. Conecta la salida del bloque Operaciones secuenciales en el bloque Variable “Tracción”. > 9. Espera 2 segundos. > 10. Reproduce el sonido “Go”. > 11. Crea un segundo bucle. El código de ejemplo está configurado para ejecutarse 5 veces, la misma cantidad de veces que el primer bucle. >12. Lee el bloque Variable “Tracción.” Elige la opción “Leer secuencia numérica”. >13. Usa el bloque Operaciones secuenciales. Elige la opción “Leer en índice - Numérico”. >14. Interruptor numérico: >> a. Si Tracción = 0 (caso predeterminado), no hace nada. >> b. Si Tracción = 1, el robot gira a la izquierda. >> c. Si Tracción = 3, el robot gira a la derecha. >> d. Si Tracción = 4, el robot se mueve en línea recta hacia adelante por 2 rotaciones de las ruedas. >> e. Si Tracción = 5, el robot se mueve en línea recta hacia atrás por 2 rotaciones de las ruedas. 15. Reproduce el sonido “Game Over 2”.
Pestañas “1” y “2”
Soluciones del programa MicroPython EV3
Graba una acción para hacer que se mueva el robot ```
#!/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)
```
Graba varias acciones para hacer que se mueva el robot ```
#!/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)
```
Extensión de lenguaje y cultura
Usa la programación basada en texto Pide a tus estudiantes que exploren las soluciones de la programación basada en texto para que puedan comparar los diferentes lenguajes de programación.
Oportunidades de evaluación
Lista de verificación de observación del profesor Crea una escala que se adapte a tus necesidades, por ejemplo: > 1. Logrado parcialmente > 2. Logrado totalmente > 3. Supera las expectativas Usa los siguientes criterios de éxito para evaluar el avance de tus estudiantes: * Los estudiantes pueden identificar los elementos clave de un problema. * Los estudiantes son autónomos al desarrollar una solución que funcione y que sea creativa. * Los estudiantes pueden comunicar sus ideas con claridad. Autoevaluación Una vez que tus estudiantes hayan recopilado información del desempeño, dales tiempo para reflexionar sobre sus soluciones. Ayúdales con preguntas como: * ¿Tu solución cumple con los criterios del informe de diseño? * ¿El/Los movimiento(s) de tu robot se puede(n) hacer más precisos? * ¿Cuáles son algunas formas en que los demás han resuelto este problema? Pídeles a tus estudiantes que piensen en ideas y documenten dos formas en que podrían mejorar sus soluciones. Comentarios de los compañeros Fomente un proceso de revisión entre compañeros en la que cada grupo sea responsable de la evaluación de sus propios proyectos y de los de sus compañeros. Este proceso de revisión puede ayudar a los estudiantes a desarrollar habilidades que les permitan hacer comentarios constructivos y a mejorar sus habilidades para el análisis y el uso de datos objetivos para fundamentar un argumento.
Enlaces profesionales
Los estudiantes que disfrutaron esta sesión podrían estar interesados en explorar estos caminos profesionales: * Negocios y Finanzas (Espíritu empresarial) * Manufactura e Ingeniería (Preingeniería)
Soporte para el profesor
Los estudiantes: Usarán el proceso de diseño para resolver un problema del mundo real
PROGRAMAS DE ESTUDIO PARA EL BACHILLERATO TECNOLÓGICO
TIC/S1
Aprendizaje esperado: Utiliza los elementos básicos de la programación para la elaboración de aplicaciones que resuelvan problemas cotidianos o intereses personales.
PROGRAMA DE ESTUDIOS DGB TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN
CPBTIC5
Aprendizaje esperado: Utiliza la metodología para el desarrollo de software, favoreciendo el trabajo colaborativo y creativo en la resolución de problemas de su contexto.
Material del alumno
Hoja de trabajo para el estudiante
Descarga, ve o comparte como una página HTML en línea o un PDF imprimible.