Skip to content

Atividade

Vela

Intermédio | MakeCode, Python | Ecrã LED, Microfone | Lógica Booleana, Seleção, Sensores

Passo 1: Faz tu mesmo

O que é isto?

Cria uma vela electrónica que possas apagar! O novo microfone incorporado no micro:bit deteta o som da tua respiração e apaga a vela e depois acende-a novamente.

Introdução

Guia do código

O que vais aprender

  • Como utilizar os números aleatórios para ativar os LEDs aleatoriamente.
  • Como mudar a saída (output) em função da entrada (input) do sensor
  • Como usar a lógica booleana para que um interruptor se ligue e desligue quando ativado pelo mesmo evento.

Como funciona

  • O micro:bit escolhe um número aleatório e armazena-o numa variável chamada flicker (cintila).
  • O número é usado para ligar e desligar os LEDs aleatoriamente para parecerem uma chama a cintilar.
  • Os LEDs do micro:bit estão organizados numa matriz com colunas e linhas numeradas de 0 a 4. O programa liga e desliga diferentes LEDs na linha superior, dependendo do número aleatório armazenado na variável flicker
  • As coordenadas dos LEDs são sempre dadas a partir da primeira coluna (eixo x, horizontal) e da primeira linha (eixo y, vertical). O centro da chama está na coordenada 2, 0.
Grelha das coordenadas do ecrã de LEDs do micro:bit
  • Um loop infinito executa a animação ininterruptamente.
  • O código usa uma variável chamada lit (iluminada) para registar se a vela está ou não acesa. Esta é uma variável booleana. As variáveis booleanas só podem ter dois valores: verdadeiro (ligado/on) ou falso (desligado/off).
  • Quando o sensor do microfone deteta um som alto (quando sopras a vela, por exemplo), o código alterna o valor da viarável lit definindo-o como não aceso. Então, quando sopras no microfone, se (if) a variável lit fôr verdadeira (true), torna-se falsa (false) e o ecrã de LEDs apaga-se.
  • Se a variável lit fôr falsa (false), torna-se verdadeira (true) e a animação no ecrã de LEDs volta a ligar-se.

Do que é que precisas

  • Um micro:bit
  • Editor MakeCode ou Python
  • Suporte de pilhas (opcional)

Passo 2: Cria o teu código

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()

Passo 3: Melhora-o

  • Cria o teu próprio desenho para uma animação que liga e desliga com o som.
  • Podes tornar o bloco "on loud sound" (com som alto) mais ou menos sensível acrescentando o bloco "set loud sound threshold" (define limite de som alto) no bloco "on start" (no início). Encontras isto em Entrada e "...mais." Usa números menores para sons mais baixos, números maiores para sons mais altos.
  • Em Python, para alterar o limite dos sons altos utilizamicrofone.set_threshold(SoundEvent.LOUD, 128) mesmo antes do loop while True: (enquanto Verdadeiro), alterando o número 128 para o valor sonoro desejado. Este pode ser um número entre 0 e 255, sendo 255 o som mais alto.