Skip to content

Atividade

Vela eletrônica

Intermediário | MakeCode, Python | Microfone, Visor LED | Lógica booleana, Seleção, Sensores

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).
Diagrama mostrando as coordenadas do visor LED do micro:bit
  • 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 do while 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;