Teach Lecciones con laboratorios remotos

Lección Teach

Robot Arduino Visual (3/4): sensores de proximidad sin choques

El alumnado usa lecturas del sensor de proximidad en código visual para evitar choques, probar umbrales y explicar cómo cambia el comportamiento del robot.

  • Robot arduino (visual)
  • 55 min
  • Secundaria (14–16 años)
  • Español
  • Robótica · Sistemas embebidos

Inicia sesión con una cuenta docente para preparar una sesión. El alumnado entra con un código de clase.

Robot arduino (visual)
Robot arduino (visual) · Ver información del laboratorio

Resultados de aprendizaje

  • Leer sensores de proximidad antes de tomar una decisión.

  • Calibrar un umbral sencillo a partir de observaciones.

  • Programar una reacción segura ante un obstáculo cercano.

Vista previa de la actividad del estudiante

Contenido de la actividad

Solo vista previa. En una sesión de clase, los estudiantes pueden completar respuestas y entregar su trabajo al docente.

1

Sensor antes que decisión

8 min

Un sensor mide algo y devuelve una lectura. El recuento de proximidad responde a luz infrarroja reflejada; no es una distancia en centímetros. La superficie, el ángulo y la posición influyen. Compara lecturas reales en posiciones seguras antes de decidir si un recuento mayor indica menor distancia en tu prueba.

Un umbral es el número de corte que separa "seguro" de "demasiado cerca". El programa:

  1. Lee los sensores.
  2. Compara la lectura con un umbral.
  3. Elige una reacción.
  4. Observa si la reacción fue segura.

Si una lectura de proximidad aumenta cuando un objeto está más cerca, ¿qué significa usar la condición lectura >= 3? ¿Por qué no conviene elegir el umbral sin observar primero?

2

Medir antes de reaccionar

20 min

Posicionamiento remoto: mueve el robot; no puedes mover un objeto físico en la sala. Al subir el programa, selecciona Only robots on 8-shaped circuits (circuitos en forma de ocho). El suelo blanco, la línea negra y la pared son referencias fijas. Localiza el frente del robot en la cámara y comprueba el espacio libre. Añade el esquema de posicionamiento siguiente. Cada nueva pulsación de B produce un único avance de 100 ms; suelta antes de volver a pulsar. A y C pueden usar el mismo patrón de pulsación única para girar (−125,125 o 125,−125). Lee solo cuando ambos motores estén parados. No avances contra una pared para forzar una lectura alta; conserva una separación visible e indica las posiciones que no puedas medir con seguridad.

[Button B as stepButton]  (Buttons)
[Setup Serial speed 9600]
Arduino run first:
  [Change two motors speed] Left: 0 Right: 0
Arduino loop forever:
  if [stepButton single press]:
    [Change two motors speed] Left: 125 Right: 125
    [wait] 100 milliseconds
    [Change two motors speed] Left: 0 Right: 0
  ... lee los sensores y muestra el valor aquí ...
  [wait] 50 milliseconds

Usa single press, no is pressed: se activa una sola vez por pulsación nueva, aunque mantengas el botón. Deja el bloque independiente Button B as stepButton en el espacio de trabajo y selecciona stepButton en la condición. La parada va dentro de la condición, después del pulso. Prueba una pulsación en espacio libre y observa tres segundos: debe permanecer parado hasta una nueva pulsación. Si no se mueve, comprueba carga, botón y espacio; no alargues el pulso sin comprobarlos.

El editor en inglés etiqueta el bloque central/izquierdo center sensor detect on his left; elige center y left en sus dos menús.

  1. Después de la condición de posicionamiento, añade Read proximity sensors, imprime center sensor detect on his left y espera 300 ms. Usa siempre el mismo lado. Con los motores parados, mide tres posiciones seguras a distintas distancias de la misma pared; descríbelas según la cámara sin inventar centímetros. Si no ves la salida serie, construye ya la decisión con LED de abajo con umbral provisional 3 y anota LED encendido/apagado y el umbral, sin inventar números. Después elige un umbral según la tabla. Si las lecturas no distinguen posiciones, regístralo y explica por qué la calibración no es concluyente.

  2. ```text

  3. [Read proximity sensors]

  4. if [center sensor detect on his left >= el número que has elegido]: [Set red led to HIGH] [Set blue led to LOW]

  5. else: [Set red led to LOW] [Set blue led to HIGH]

  6. [Change two motors speed] Left: 0 Right: 0

  7. ```

Situación observada Sensor usado Lectura (número, o dónde reacciona el LED) ¿Debería reaccionar? Notas

Elige un umbral provisional de aviso con dos observaciones. Si no distinguen posiciones, explica por qué el umbral aún no está justificado y propone otra prueba segura.

3

Programar una reacción segura

18 min

Construye un aviso de proximidad con el robot parado y tu umbral calibrado. Solo la condición de posicionamiento puede moverlo. Las dos ramas del aviso dejan los motores parados. Prueba una posición más lejana y otra más cercana, ambas seguras, y comprueba si el LED las distingue. Si el umbral no separa las observaciones, la calibración no es concluyente; no demuestra conducción autónoma segura.

[Read proximity sensors]
if [center sensor detect on his left >= el número que has elegido]:
  [Set red led to HIGH]
  [Set blue led to LOW]
else:
  [Set red led to LOW]
  [Set blue led to HIGH]
[Change two motors speed] Left: 0 Right: 0

¿La reacción ocurrió demasiado pronto, demasiado tarde o en el momento adecuado? Indica qué cambiarías: umbral, velocidad o tiempo de espera.

Describe una limitación de este sensor o de tu prueba. Por ejemplo: objeto mal colocado, lectura inestable, robot en otra posición o falta de tiempo de cámara.

4

Entrega de evidencia

9 min

Programa de reacción por proximidad

Entrega tu umbral, una captura o descripción del programa y una observación de una prueba en la que el robot reaccionó o debería haber reaccionado.

Convierte esta vista previa en una sesión de clase real

Continúa a LabsLand Teach para usar esta lección con tu alumnado y revisar el acceso disponible para tu cuenta.