Skip to content

Activitat

Cronòmetre tàctil

Intermedi | MakeCode, Python | Botons, Logotip tàctil, Pantalla LED | Entrada/sortida, Lògica booleana, Mesura, Operadors aritmètics, Variables

Pas 1: Crea-ho

En què consisteix?

Fes un cronòmetre real fent servir el logo tàctil de la nova micro:bit com a botó extra.

Introducció

Guia de programació

Què aprendràs

  • Com fer servir el logo tàctil de la nova micro:bit com a botó extra en un projecte pràctic
  • Com utilitzar variables i operadors matemàtics per mesurar el temps
  • Com utilitzar operadors matemàtics per convertir unitats (mil·lisegons a segons)
  • Què és una variable Booleana i com poden ser usades per controlar el flux d'un programa

Instruccions

  • Transfereix el programa a una nova micro:bit amb altaveu incorporat
  • Prem el botó A per posar en marxa el cronòmetre. Mentre el cronòmetre compta el temps, a la pantalla es mostra un cor bategant.
  • Prem el botó B per aturar-lo. Pots arrencar-lo i aturar-lo tantes vegades com vulguis i anirà afegint el temps com un cronòmetre de veritat.
  • Prem el logo tàctil daurat a la part davantera de la micro:bit per mostrar el temps comptat en segons.
  • Per restablir el temps a zero, prem el botó de restabliment a la part posterior de la micro:bit.

Com funciona

  • La micro:bit fa el seguiment del temps que està en funcionament en mil·lisegons (mil·lèsimes de segon). Això s'anomena temps d'execució.
  • Quan prems el botó A, una variable anomenada start (inici) guarda el temps d'execució del moment.
  • Quan prems el botó B, el temps "start (inici)" es resta del nou temps d'execució per calcular quant de temps ha passat d'ençà que vares iniciar el cronòmetre. La diferència s'afegeix al temps total, que està desat en una variable anomenada "time (temps)".
  • Si prems el logo tàctil, el programa mostra el temps total transcorregut a la pantalla dels leds. El temps és convertit de mil·lisegons (mil·lèsimes de segon) a segons dividint-lo per 1000. Fa servir l'operador de divisió d'enters, per obtenir el resultat en nombres enters.
  • El programa també fa servir una variable booleana anomenada "running (funcionant)" per controlar el programa. Les variables Booleanes només poden tenir dos valors: True (Cert) o False (Fals). Si "running" és cert, el cronòmetre ha estat iniciat. Si "running" és fals, el cronòmetre no ha estat iniciat o ha estat aturat.
  • Si "running" és cert, un bucle manté l'animació del cor bategant a la pantalla de leds.
  • Només mostrarà el temps quan premis el logo si el cronòmetre ha estat aturat, si "running" no és cert.
  • El programa evita lectures falses assegurant-se que la variable time (temps) només és canviada quan prems el botó B si el cronòmetre ha estat iniciat, si running (funcionant) és cert.

Què necessites

  • La nova micro:bit amb so (o simulador de MakeCode)
  • Editor MakeCode o Python
  • Piles (opcional)

Pas 2: Programa-ho

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

Pas 3: Millora-ho

  • Modifica el programa perquè puguis reiniciar el temps sacsejant la micro:bit.
  • Fes el cronòmetre més precís utilitzant fraccions de nombres en comptes d'enters.
  • Afegeix un temps de volta de manera que quan premis el logo tàctil mentre el cronòmetre està en funcionament et mostri el temps en aquest moment Recorda d'assegurar-te que aquest temps no sigui afegit al total de la variable time (temps) .