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.
- 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 utiliza
microfone.set_threshold(SoundEvent.LOUD, 128)
mesmo antes do loopwhile 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.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.