Primeiro passo: o projeto
O que é?
Crie uma vela eletrônica que você pode apagar com um sopro. O novo microfone embutido do micro:bit capta o som do seu sopro e "apaga" a vela e a "acende" novamente.
Introdução
Código
O que você aprenderá:
- Como usar números aleatórios para acender LEDs aleatórios;
- Como trocar as saídas em resposta às entradas do sensor;
- Como usar a lógica booleana para fazer um interruptor ligar e desligar ao ser acionado por uma mesma ação.
Como funciona:
- Um número aleatório entre 1 e 3 está armazenado em uma variável chamada flicker (centelha);
- Este número é usado para ligar e desligar LEDs aleatoriamente, para fazê-lo parecer com uma chama trêmula;
- O LEDs do micro:bit são organizados em grade com colunas e linhas numeradas de 0 a 4. O programa cria uma representação gráfica ligando e desligando diferentes LEDs, dependendo do número aleatório armazenado na variável flicker;
- As coordenadas dos LEDs sempre são dadas na coluna horizontal primeiro (eixo X) e, em seguida, na vertical (eixo Y). O centro da chama é na coordenada (2,0).
- Um laço de repetição infinito mantém a animação em execução;
- O programa também usa uma variável chamadalit (acesa) para verificar se a vela está acesa ou não. Esta é uma variável booleana. Elas podem armazenar apenas dois valores: verdadeiro (ligado) ou falso (desligado);
- Quando o microfone captar um som alto, por exemplo, quando você sopra no microfone, o código muda o valor de aceso para não aceso. Sendo assim, se lit (acesa) é verdadeiro quando você soprar no microfone, isso se tornará falso, limpando a limpa e desligando os LEDs;
- Se o valor da variável lit fosse falso, ele mudaria para verdadeiro e religaria a animação.
Itens necessários:
- Um micro:bit;
- Editor MakeCode ou Python
- Conjunto de baterias (opcional).
Segundo passo: é hora de programar
1from microbit import *
2import random
3
4lit = True
5
6while True:
7 if microphone.was_event(SoundEvent.LOUD):
8 lit = not lit
9 sleep(500)
10 if lit:
11 display.show(Image(
12 "00900:"
13 "09990:"
14 "09990:"
15 "09990:"
16 "09990"))
17 sleep(150)
18 flicker = random.randint(1, 3)
19 if flicker != 2:
20 display.set_pixel(2,0,0)
21 display.set_pixel(flicker,0,9)
22 sleep(150)
23 else:
24 display.clear()
Terceiro passo: vamos deixar o código ainda melhor
- Crie seu próprio desenho e use-o em uma animação que, por meio do som, é ligada e desligada;
- Você pode modificar a sensibilidade do bloco "on loud sound" adicionando o bloco "set loud sound threshold" (definir limiar do som) ao bloco "on start". Encontre-o selecionando o bloco "Input" e depois clique na opção "...more" que aparecerá logo abaixo. Use números menores para sons mais baixos e números maiores para sons mais altos;
- Em Python, para mudar o limiar de sons altos, use o
microphone.set_threshold(SoundEvent.LOUD, 128)
antes dowhile True:
loop (laço de repetição enquanto), mudando o número 128 para o valor que desejar. O valor pode ser qualquer número entre 0 e 255, sendo 255 o som mais alto;
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.