Primeiro passo: o projeto
O que é?
Crie um cronômetro de verdade utilizando o sensor do logo sensível ao toque do novo micro:bit como botão extra.
Introdução
Código
O que você aprenderá:
- Como usar o sensor do logo sensível ao toque do novo micro:bit como um botão extra em 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 ela pode ser usada para controlar o fluxo de um programa.
Como usá-lo:
- Baixe o programa e copie-o para o seu novo micro:bit com alto-falante integrado;
- Pressione o botão A para iniciar o cronômetro. Uma animação de um coração batendo é exibida no visor LED enquanto ele está cronometrando;
- Pressione o botão B para pará-lo. É possível começar e parar a contagem quantas vezes quiser que o tempo continuará sendo somado, como em um cronômetro de verdade;
- Pressione o logo dourado, localizado na parte da frente do micro:bit, para mostrar a contagem do tempo em segundos;
- Pressione o botão reset, que fica na parte traseira do micro:bit, para zerar a contagem.
Como funciona:
- O micro:bit regista há quanto tempo está ligado em milissegundos (milésimos de segundo). Isto é chamado de tempo de execução;
- Ao pressionar o botão A, a variável start (início) passa a registrar o tempo de execução atual;
- Ao pressionar o botão B, o tempo inicial é subtraído do novo tempo de execução atual, calculando o tempo que passou desde que o cronômetro foi ativado. A diferença é adicionada ao tempo total, que é gravada numa variável chamada time;
- Ao pressionar o logo touch, o programa mostra no visor LED o tempo total decorrido. O tempo é dividido por 1000 para ser convertido de milissegundos (milésimos de segundo) em segundos. O programa utiliza o operador de divisão de números inteiros, para dar um resultado em números naturais;
- 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 o resultado de running for verdadeiro, então o cronômetro foi iniciado; porém, se o resultado de running for falso, o cronômetro não foi iniciado ou foi parado;
- Enquanto o resultado de running for verdadeiro, um laço de repetição (loop) manterá a sequência animada do coração aparecendo no visor LED;
- O tempo só aparecerá quando você pressionar o logo se o cronômetro tiver sido parado, caso o resultado de runningnão seja verdadeiro;
- O código evita leituras incorretas certificando-se de que a variável time só é alterada ao pressionar o botão B, que é quando já se deu início ao cronômetro caso o resultado de running seja verdadeiro.
Itens necessários:
- Novo micro:bit com alto-falante (ou o simulador MakeCode);
- Editor MakeCode ou Python;
- Conjunto de baterias (opcional).
Segundo passo: é hora de programar
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))
Terceiro passo: vamos deixar o código ainda melhor
- Modifique o programa para ser possível redefinir o tempo ao agitar o micro:bit;
- Faça com que o temporizador seja mais preciso por meio de números fracionários em vez de inteiros;
- Adicione uma função de tempo de volta, para que, enquanto o cronômetro estiver funcionando, ao pressionar o logo touch, o tempo seja exibido naquele instante. Certifique-se de 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.