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.
Inicia sesión con una cuenta docente para preparar una sesión. El alumnado entra con un código de clase.
¿Primera vez en LabsLand? Crea tu cuenta de docente
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.
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:
- Lee los sensores.
- Compara la lectura con un umbral.
- Elige una reacción.
- 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?
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.
Después de la condición de posicionamiento, añade
Read proximity sensors, imprimecenter sensor detect on his lefty 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.```text
[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
```
| 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.
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.
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.
¿Primera vez en LabsLand? Crea tu cuenta de docente