Skip to content

Actividad

Sensor de proximidad

Avanzado | MakeCode, Python | Pantalla LED, Radio | Comunicación, Ondas de radio, Operadores aritméticos

Paso 1: Hazlo

¿Qué es?

Usa la radio para detectar qué tan cerca está otro micro:bit y luego haz un juego de búsqueda del tesoro o úsalo para ayudar a la gente a saber que está a una distancia social segura.

Introducción

Guía de codificación

Cómo funciona

  • Necesitas al menos 2 micro:bits para esto. Crearemos dos programas diferentes, uno para la baliza que envía constantemente un mensaje de radio de baja potencia. El otro programa va en el receptor.
  • Cuando el receptor recibe un mensaje de la baliza, guarda su intensidad en una variable llamada signal y la muestra en su pantalla de LED.
  • Las señales de radio se vuelven más fuertes cuanto más cerca está el transmisor, así que si la señal aumenta significa que probablemente otro micro:bit está cerca.
  • Si la señal es débil, el otro micro:bit posiblemente esté más lejos.
  • El micro:bit muestra un gráfico de barras que se agranda cuanto más fuerte es la señal y más cerca esté. Utiliza el bloque matemático map para asignar a la intensidad de señal de radio, que va de -95 (débil) a -42 (fuerte), números en el rango de 0 a 9 que son utilizados para dibujar un gráfico de barras.

Versión de Python

  • Python no tiene un gráfico de barras o función de mapa incorporados, así que funciona de una forma algo diferente. Todas las luces LED se encienden cuando te acercas a la baliza, y cuanto más te acerques más brillan.
  • Las lecturas de la intensidad de radio se obtienen con el comando radio.receive_full() Éste devuelve el mensaje, la intensidad de la señal de radio y una marca de tiempo. Solo nos interesa saber la fuerza de la señal por lo que utilizamos signal = message[1] para extraerla y almacenarla en la variable llamadasignal.
  • La intensidad de la señal se encuentra en un rango de -98 (más débil) a -45 (más fuerte), y el programa de Python define una función llamada mappara convertir a los números en ese rango en unos del 0 al 9 que podemos utilizar para cambiar el brillo de las luces LED: 0 es apagado y 9, el nivel de luz más brillante. (Puede que quieras reutilizar esta función en otros proyectos de Python ya que funciona como el bloque map en MakeCode).
  • El programa de Python crea una imagen en blanco de 5x5 llamada light utilizando el comando light = Image(5,5)
    Su brillo cambia con el comando light.fill().

Qué necesitas

  • 2 micro:bits con pilas
  • Editor de MakeCode o de Python
  • pilas (opcionales)

Paso 2: Prográmalo

Transmisor / baliza

Receptor

Paso 3: Mejóralo

  • Combina el código de la baliza y el receptor para tener un micro:bit que cumpla ambas funciones.
  • Fabrica muñequeras para que puedas llevar tus detectores de proximidad.
  • ¿Qué tan fuerte es la señal cuando estás a 1 o dos metros? Modifica el código para que se active una alarma visual o sonora cuando alguien está demasiado cerca.
  • usa estos programas para crear un juego de caza tesoros: esconde el ejemplo y coloca el codigo receptor en miles de micro:bits
  • Si estás al aire libre o en un lugar grande, experimenta cambiando la potencia del transmisor. Puede ser cualquier número del 0 al 7