Paso 1: Hazlo
¿Qué es?
Usa la radio para detectar cómo de 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 el 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 utilizamossignal = 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 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 comandolight.fill(). 
Lo que necesitas
- 2 micro:bits con pilas
 - Editor de MakeCode o de Python
 - pilas (opcionales)
 
Paso 2: Prográmalo
Transmisor / baliza
Receptor
1from microbit import *
2import radio
3radio.config(group=1)
4radio.on()
5light = Image(5,5) # create an empty image
6
7# function to map signal stength to LED brightness
8def map(value, fromMin, fromMax, toMin, toMax):
9    fromRange = fromMax - fromMin
10    toRange = toMax - toMin
11    valueScaled = float(value - fromMin) / float(fromRange)
12    return toMin + (valueScaled * toRange)
13
14while True:
15    message = radio.receive_full()
16    if message:
17        signal = message[1]
18        brightness = map(signal, -98, -44, 0, 9)
19        light.fill(round(brightness))
20        display.show(light)
21Paso 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.
 - ¿Cómo de 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 búsqueda del tesoro: esconde la baliza y coloca el código receptor en una gran cantidad 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
 
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.


