Passo 1: Faz tu mesmo
O que é isto?
Faz um cronómetro a sério usando o sensor do logo táctil do novo micro:bit como botão extra.
Introdução
Guia do código
O que é que vais aprender
- Como usar o sensor de logo de toque do novo micro:bit como um botão extra num projeto prático
 - Como usar variáveis e operadores matemáticos para medir o tempo
 - Como usar operadores matemáticos para converter unidades (milissegundos para segundos)
 - O que é uma variável booleana e como pode ser usada para controlar o desenrolar de um programa
 
Como usá-lo
- Descarrega o programa no teu novo micro:bit com coluna de som integrada.
 - Carrega no botão A para iniciar o cronómetro. Enquanto o tempo está a ser cronometrado, aparece no ecrã de LEDs uma sequência animada de um coração a bate.
 - Carrega no botão B para pará-lo. Podes começar e parar a contagem quantas vezes quiseres, que o tempo vai continuar a ser somado como num cronómetro a sério.
 - Carrega no logo dourado da parte da frente do micro:bit para mostrar a leitura do tempo em segundos.
 - Carrega no botão de reset na parte de trás do micro:bit para reiniciar a contagem do zero.
 
Como é que funciona
- O micro:bit regista há quanto tempo está ligado em milissegundos (milésimos de segundos). A isto chama-se tempo de execução.
 - Quando carregas no botão A, a variável start (início) regista o tempo de execução atual.
 - Quando carregas no botão B, o tempo start é subtraído do novo tempo de execução atual, calculando o tempo que passou desde que ativaste o cronómetro. A diferença é adicionada ao tempo total, que é gravado numa variável chamada time.
 - Se carregares no logo touch, o programa mostra no ecrã de LEDs o tempo total decorrido. O tempo é dividido por 1000 para ser convertido de milissegundos (milésimos de segundo) em segundos. Usa o operador de divisão de números inteiros para dar um resultado em números naturais (números inteiros).
 - O programa também usa uma variável booleana chamada running (em funcionamento) para controlar o programa. Variáveis booleanas só podem ter dois valores: verdadeiro ou falso. Se running for verdade, o cronómetro foi iniciado. Se running é falso, o cronómetro não foi iniciado ou foi parado.
 - Se running é verdadeiro, um loop mantém a sequência animada do coração a aparecer no ecrã de LEDs.
 - Quando carregas no logo o tempo só aparece se o cronómetro tiver sido parado, se running não é verdadeiro.
 - O código evita falsas leituras certificando-se que a variável time só é alterada quando carregas no botão B quando já se deu início ao cronómetro, ou seja, se running é verdade.
 
Do que é que precisas
- novo micro:bit com som (ou simulador MakeCode)
 - Editor MakeCode ou Python
 - Suporte de pilhas (opcional)
 
Passo 2: Cria o teu código
1from microbit import *
2time = 0
3start = 0
4running = False
5
6while True:
7    if running:
8        display.show(Image.HEART)
9        sleep(300)
10        display.show(Image.HEART_SMALL)
11        sleep(300)
12    else:
13        display.show(Image.ASLEEP)
14    if button_a.was_pressed():
15        running = True
16        start = running_time()
17    if button_b.was_pressed():
18        if running:
19            time += running_time() - start
20        running = False
21    if pin_logo.is_touched():
22        if not running:
23            display.scroll(int(time/1000))Passo 3: Melhora-o
- Modifica o programa para que possas redefinir o tempo agitando o micro:bit.
 - Faz com que o temporizador seja mais preciso usando frações de números em vez de números inteiros.
 - Adiciona uma função de tempo de maneira a poderes tocar no logotipo táctil para aparecer no ecrã o tempo nesse ponto. Lembra-te de confirmar que esse valor não é adicionado ao total da variável tempo.
 
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.


