Skip to content

Actividad

Cronómetro táctil

Intermedio | MakeCode, Python | Botones, Logotipo táctil, Pantalla LED | Entrada/salida, Lógica booleana, Medición, Operadores aritméticos, Variables

Paso 1: Hazlo

¿Qué es?

Crea un cronómetro real usando el nuevo sensor táctil de micro:bit como botón extra.

Introducción

Guía de programación

Qué aprenderás

  • Cómo utilizar el nuevo sensor táctil micro:bit como botón extra en un proyecto práctico
  • Cómo utilizar variables y operadores matemáticos para medir el tiempo
  • Cómo utilizar operadores matemáticos para convertir unidades (milisegundos a segundos)
  • Qué es una variable booleana y cómo se pueden utilizar para controlar el flujo de un programa

Cómo usarlo

  • Escribir el programa en un nuevo micro:bit con altavoz incorporado.
  • Toca el botón A para iniciar el cronómetro. En la pantalla LED se muestra un corazón animado mientras se sincroniza.
  • Toca el botón B para pararlo. Puedes iniciarlo y detenerlo tantas veces como quieras y seguirá aumentando el tiempo, como un cronómetro real.
  • Presiona el logo dorado táctil en la parte delantera del micro:bit para mostrar el tiempo medido en segundos.
  • Para restablecer el tiempo de vuelta a cero, pulsa el botón de restablecer en la parte trasera del micro:bit.

Cómo funciona

  • El micro:bit monitoriza el tiempo que ha estado encendido en milisegundos (milésimas del segundo). Esto se llama el tiempo de ejecución.
  • Al tocar el botón A, se establece una variable llamada start en el tiempo de ejecución actual.
  • Al tocar el botón B, el tiempo de start se resta del nuevo tiempo de ejecución para averiguar cuánto tiempo ha pasado desde que comenzó el cronómetro. Esta diferencia se añade al tiempo total, que se almacena en una variable llamada time.
  • Si tocas el logo táctil, el programa muestra el tiempo total transcurrido en la pantalla LED. convierte el tiempo de milisegundos (milésimas del segundo) a segundos en dividiéndolo por 1000. Utiliza el operador de división de enteros para dar un resultado en números enteros (enteros).
  • El programa también utiliza una variable booleana llamada running para controlar el programa. Las variables booleanas solamente pueden tener dos valores: true o false. Si running es true, el cronómetro ha sido iniciado. Si running es false, el cronómetro no ha sido iniciado o ha sido detenido.
  • Si running es true, un bucle mantiene la animación del corazón que aparece en la pantalla LED.
  • Solo mostrará el tiempo cuando toques el logo si el cronómetro se ha detenido, si running noes true.
  • El código evita las lecturas falsas asegurándose de que la variable time solo se cambie cuando pulsa el botón B si el cronómetro ya ha sido iniciado, si running es true.

Qué necesitas

  • nuevo micro:bit con sonido (o simulador MakeCode)
  • Editor de MakeCode o de Python
  • pilas (opcionales)

Paso 2: Prográmalo

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

Paso 3: Mejóralo

  • Modifica el programa para que puedas restablecer el tiempo agitando el micro:bit.
  • Haz que el cronómetro sea más preciso usando fracciones de números en lugar de enteros (números completos).
  • Añade una función de tiempo de vuelta para que si tocas el logotipo mientras el cronómetro se está ejecutando muestre la hora en ese punto. Recuerda asegurarte de que esto no se añade a la variable time total.