MINDSTORMS® EV3 Core Set

Haz un sistema de control de velocidad

Diseña un sistema de control de crucero que cambie la velocidad de un vehículo con el toque de un botón.

Más de 120 minutos
Intermedio
3.º de secundaria-3.º de preparatoria
set-cruise-controle

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ídele 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 activos 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

La función de control automático de velocidad en los automóviles personales es un sistema que controla la velocidad del vehículo de forma automática. Incluso si parece tecnología moderna, se presentó por primera vez en 1958. ¿Cómo funciona?

set-cruise-controle

Alienta un proceso activo de generación de ideas. Pide a tus estudiantes que piensen en estas preguntas: * ¿Cuál es el objetivo del control automático de velocidad en un automóvil? * ¿Cómo le ayuda el control automático de velocidad a un conductor durante recorridos largos? * ¿Cómo se puede mejorar aún más el control automático de velocidad? * ¿Cómo usaría un conductor el sistema de control de velocidad con un botón táctil? * ¿Qué elementos necesitarás incluir en tu programa para convertir toques del botón en cambios en la velocidad del motor? 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. ### Consejos de construcción Comienza construyendo 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 incluyan botones que simulen los botones de un volante de dirección de un automóvil con control automático de velocidad.

ev3-robot-color-sensor

Usa dos sensores táctiles Explica que en la sesión de hoy, tus estudiantes utilizarán dos sensores táctiles para controlar y mantener la velocidad de su modelo de Base motriz. ### Consejos de codificación Será más probable que tus estudiantes usen un bloque Variable para este proyecto. Un bloque Variable es un bloque de programación que puede almacenar datos (es decir, texto, operadores lógicos, valores numéricos o secuencias) que se pueden sobrescribir en cualquier momento mientras se ejecuta el programa. Una variable es una forma de almacenar valores actualizables en un programa. El valor almacenado en una variable se puede sobrescribir una y otra vez, siempre y cuando se esté ejecutando el programa. Aumenta la velocidad con un programa con variables

coding-07-01

Explicación del programa > 1. Inicia el programa. > 2. Crea un bloque Variable llamado “Velocidad” e introduce un valor de 0. > 3. Si se pulsa el Sensor táctil: >> a. Lee la variable llamada “Velocidad”. >> b. Suma "10" al valor de lectura. >> c. Escribe el resultado en la variable llamada “Velocidad”. >> d. Lee la variable llamada “Velocidad”. >> e. Enciende los motores B y C a una velocidad igual al valor guardado en la variable llamada “Velocidad” ELSE (no hacer nada). > 4. Repite los pasos del 3a al 3e siempre. Aumenta y disminuye la velocidad con el bloque Variable

coding-07-02

Explicación del programa > 1. Inicia el programa. > 2. Crea un bloque Variable llamado “Velocidad”, introduce un valor de 0 y comienza dos tareas. > TAREA 1 > 3. Si se pulsa el Sensor táctil 1: >> a. Lee la variable llamada “Velocidad”. >> b. Suma "10" al valor de lectura. >> c. Escribe el resultado en la variable llamada “Velocidad”. >> d. Lee la variable llamada “Velocidad”. >> e. Enciende los motores B y C a una velocidad igual al valor guardado en la variable llamada “Velocidad” ELSE (no hacer nada). > 4. Repite los pasos del 3a al 3e siempre. > TAREA 2 > 5. Si se pulsa el Sensor táctil 2: >> a. Lee la variable llamada “Velocidad”. >> b. Resta "10" del valor de lectura. >> c. Escribe el resultado en la variable llamada “Velocidad”. >> d. Lee la variable llamada “Velocidad”. >> e. Enciende los motores B y C a una velocidad igual al valor guardado en la variable llamada “Velocidad” ELSE (no hacer nada). > 6. Repite los pasos del 5a al 5e siempre. Aumenta y disminuye la velocidad con los bloques Variable y Pantalla Pide a tus estudiantes que usen el bloque Pantalla para mostrar la velocidad de la Base motriz.

coding-07-03

Explicación del programa > 1. Inicia el programa. > 2. Crea un bloque Variable llamado “Velocidad”, introduce un valor de 0 y comienza tres tareas. > Tarea 1 > 3. Inicia Mi bloque “Aceleración”. > Tarea 2 > 4. Inicia Mi bloque “Desaceleración”. > Tarea 3 > 5. Lee la variable llamada “Velocidad”. >> 6. Muestra el valor almacenado en la variable llamada “Velocidad”. > 7. Repite los pasos del 5 al 6 siempre.

DESCARGAR PROGRAMAS DE MUESTRA15 KB, requiere el software del Laboratorio EV3

Soluciones del programa MicroPython EV3

Aumenta la velocidad con el bloque Variable ```
#!/usr/bin/env pybricks-micropython

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

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)

Set up the Touch Sensor on Port 1. It is used to increase the speed

of the robot.

increase_touch_sensor = TouchSensor(Port.S1)

Initialize the "old_speed" variable to "None." It is used to check

whether the speed variable has changed. Setting it to "None" ensures

this check will be "True" when the speed variable is initialized with

a value.

old_speed = None

Initialize the speed variable to 0.

speed = 0

This is the main part of the program. It is a loop that repeats

endlessly.

while True:

# Check whether the Touch Sensor is pressed, and increase the speed
# variable by 10 mm per second if it is.
if increase_touch_sensor.pressed():
    speed += 10

# If the speed variable has changed, update the speed of the robot.
if speed != old_speed:
    old_speed = speed
    robot.drive(speed, 0)

# Wait 200 milliseconds before starting the loop again.
wait(200)

Aumenta y disminuye la velocidad con el bloque Variable ```
#!/usr/bin/env pybricks-micropython

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

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)

Set up the Touch Sensor on Port 1. It is used to increase the speed

of the robot.

increase_touch_sensor = TouchSensor(Port.S1)

Set up the Touch Sensor on Port 2. It is used to decrease the speed

of the robot.

decrease_touch_sensor = TouchSensor(Port.S2)

Initialize the "old_speed" variable to "None." It is used to check

whether the speed variable has changed. Setting it to "None" ensures

this check will be "True" when the speed variable is initialized with

a value.

old_speed = None

Initialize the speed variable to 0.

speed = 0

This is the main part of the program. It is a loop that repeats

endlessly.

First, increase the speed variable if Touch Sensor 1 is pressed.

Second, decrease the speed variable if Touch Sensor 2 is pressed.

Finally, the robot updates its speed if the speed variable was

changed.

Then the loop starts over after a brief pause.

while True:

# Check whether Touch Sensor 1 is pressed, and increase the speed
# variable by 10 mm per second if it is.
if increase_touch_sensor.pressed():
    speed += 10

# Check whether Touch Sensor 2 is pressed, and decrease the speed
# variable by 10 mm per second if it is.
if decrease_touch_sensor.pressed():
    speed -= 10

# If the speed variable has changed, update the speed of the robot.
if speed != old_speed:
    old_speed = speed
    robot.drive(speed, 0)

# Wait 200 milliseconds before starting the loop again.
wait(200)

Aumenta y disminuye la velocidad con los bloques Variable y Pantalla ```
#!/usr/bin/env pybricks-micropython

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

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)

Set up the Touch Sensor on Port 1. It is used to increase the speed

of the robot.

increase_touch_sensor = TouchSensor(Port.S1)

Set up the Touch Sensor on Port 2. It is used to decrease the speed

of the robot.

decrease_touch_sensor = TouchSensor(Port.S2)

Initialize the "old_speed" variable to "None." It is used to check

whether the speed variable has changed. Setting it to "None" ensures

this check will be "True" when the speed variable is initialized with

a value.

old_speed = None

Initialize the speed variable to 0.

speed = 0

This is the main part of the program. It is a loop that repeats

endlessly.

First, increase the speed variable if Touch Sensor 1 is pressed.

Second, decrease the speed variable if Touch Sensor 2 is pressed.

Finally, the robot updates its speed if the speed variable was

changed, and displays it on the screen.

Then the loop starts over after a brief pause.

while True:

# Check whether Touch Sensor 1 is pressed, and increase the speed
# variable by 10 mm per second if it is.
if increase_touch_sensor.pressed():
    speed += 10

# Check whether Touch Sensor 2 is pressed, and decrease the speed
# variable by 10 mm per second if it is.
if decrease_touch_sensor.pressed():
    speed -= 10

# If the speed variable has changed, update the speed of the robot
# and display the new speed in the center of the screen.
if speed != old_speed:
    old_speed = speed
    robot.drive(speed, 0)
    brick.display.clear()
    brick.display.text(speed, (85, 70))

# Wait 200 milliseconds before starting the loop again.
wait(200)

Extensión de lenguaje y cultura

Para incorporar el desarrollo de habilidades de lenguaje y cultura, pide a tus estudiantes que: * Usen su trabajo escrito, dibujos y/o fotos para resumir el proceso de su diseño y crear un informe final * Creen un video que demuestre su proceso de diseño comenzando con sus ideas iniciales y terminando con su proyecto finalizado * Creen una presentación sobre su programa * Creen una presentación que conecte su proyecto con aplicaciones en el mundo real de sistemas similares y que describan los inventos nuevos que se podrían realizar según lo que han creado

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.

Compartir con:

Google ClassroomGoogle Classroom
Legal NoticePrivacy PolicyCookies

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.