Passo 1: Faz tu mesmo
O que é isto?
Usa rádio para perceber quão perto está outro micro:bit e a seguir faz um jogo de caça ao tesouro ou o usa-o para saber se estás a uma distância social segura.
Introdução
Guia do código
Como é que funciona
- Para isto precisas pelo menos de 2 micro:bits. Vamos criar dois programas diferentes, um deles para o sinalizador que envia constantemente uma mensagem rádio de fraca potência. O outro programa é descarregado no receptor.
- Quando o receptor apanha uma mensagem lançada pelo sinalizador, ele guarda a sua intencidade numa variável chamadasinal e depois mostra-a no ecrã de LEDs.
- Quanto mais próximo estiveres do transmissor mais forte é o sinal rádio; nesse caso, se o sinal for forte quer dizer que provavelmente o outro micro:bit está por perto.
- Se o sinal rádio é fraco, é provavel que o outro micro:bit esteja afastado.
- O micro:bit mostra um gráfico de barras que cresce quanto mais forte for o sinal e mais próximo tu estiveres. Ele usa o bloco matemático map para mapear os números que representam a força do sinal de rádio, que vão desde -95 (fraco) até -42 (forte) que são conertidos a um intervalo de 0 a 9 para desenhar um gráfico de barras.
Versão Python
- O Python não tem uma função de mapa ou gráfico predefinida, então funciona de uma forma um pouco diferente. Quando te aproximas do sinalizador, todos os LEDs se acendem; e a luz fica mais intensa quanto mais perto estás perto estiveres.
- As leituras da intensidade do sinal rádio são feitas com o comando
radio.receive_full()
. Isto fornece a mensagem, a intensidade do sinal e uma referência horária. Queremos saber apenas a intensidade do sinal, por isso usamossignal = message[1]
para extraír este valor e alojá-lo numa variável chamada signal. - A intensidade do sinal pode estar entre -98 (mais fraco) e -45 (mais forte) e o programa Python define uma função chamada map para converter os números deste intervalo num valor entre 0 e 9 que podemos usar para alterar o brilho dos LEDs: 0 significa desligado, 9 é o LED mais máximo de intensidade. (Podes querer reutilizar esta função noutros projetos em Python, já que ela funciona de forma identica ao bloco map no MakeCode).
- O programa Python cria uma imagem 5x5 em branco chamada light (luz) usando o comando
light = Image(5,5)
A luminosidade é alterada usando o comandolight.fill()
.
Do que é que precisas
- 2 micro:bits e suporte de pilhas
- Editor MakeCode ou Python
- Suporte de pilhas (opcional)
Passo 2: Cria o teu código
Transmissor / Sinalizador
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)
21
Passo 3: Melhora-o
- Combina o sinalizador e o código receptor de maneira a que possas ter um micro:bit a fazer as duas tarefas.
- Faz umas pulseiras onde possas usar os detectores de proximidade.
- Qual é a força do sinal quando estás a 1 ou 2 metros de distância? Altera o código para ativar um alarme visual ou sonoro quando alguém estiver demasiado próximo.
- Usa estes programas para fazer uma caça ao tesouro: esconde o sinalizador e descarrega o código de receptor em vários micro:bits
- Se estás no exterior ou num espaço amplo, experimenta mudar a potência do transmissor. Pode ser qualquer número entre 0 e 7
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.