Skip to content

Atividade

Cronómetro táctil

Intermédio | MakeCode, Python | Botões, Ecrã LED, Logótipo Touch | Entrada/Saída, Lógica Booleana, Medições, Operações aritméticas, Variáveis

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.