Skip to content

Activité

Chronomètre tactile

Intermédiaire | MakeCode, Python | Boutons, Logo tactile, Écran LED | Entrée / Sortie, Logique booléenne, Mesure, Opérateurs arithmétiques, Variables

Étape 1 : Fais-le

Qu'est-ce que c'est ?

Créez un vrai chronomètre en utilisant le capteur tactile du logo sur le nouveau micro:bit comme bouton supplémentaire.

Introduction

Guide de programmation

Ce que vous apprendrez

  • Comment utiliser le capteur à effleurement tactile du nouveau micro:bit comme un bouton supplémentaire dans un projet concret
  • Comment utiliser les variables et les opérateurs mathématiques pour mesurer le temps
  • Comment utiliser les opérateurs mathématiques pour convertir des unités (millisecondes en secondes)
  • Qu'est ce qu'une variable booléenne et comment elle peut être utilisée pour contrôler le déroulement d'un programme

Comment l’utiliser 

  • Flashez le programme sur un nouveau micro:bit avec haut-parleur intégré.
  • Appuyez sur le bouton A pour démarrer le chronomètre. Un cœur animé est affiché sur l'écran LED pendent qu'il mesure le temps.
  • Appuyez sur le bouton B pour l'arrêter. Vous pouvez le démarrer et l'arrêter autant de fois que vous le souhaitez et il continuera à ajouter du temps, tout comme un chronomètre.
  • Appuyez sur le logo tactile doré à l'avant du micro:bit pour afficher le temps mesuré en secondes.
  • Pour réinitialiser le temps à zéro, appuyez sur le bouton de réinitialisation à l'arrière du micro:bit.

Comment ça marche

  • Le micro:bit enregistre la durée de sa mise sous tension en millisecondes (millièmes de seconde). C'est ce qu'on appelle le temps d'exécution.
  • Lorsque vous appuyez sur le bouton A, une variable appelée start est positionnée sur le temps d'exécution courant.
  • Lorsque vous appuyez sur le bouton B, le temps start est soustrait du nouveau temps courant pour déterminer combien de temps s'est écoulé depuis que vous avez démarré le chronomètre. Cette différence est ajoutée au temps total, qui est stocké dans une variable appelée time.
  • Si vous appuyez sur le logo tactile, le programme affiche le temps total écoulé sur l'écran LED. il convertit le temps de millisecondes (millièmes de secondes) en secondes en le divisant par 1000. Il utilise l'opérateur de division entière pour donner un résultat en nombres entiers.
  • Le programme utilise également une variable booléenne appelée running pour piloter le programme. Les variables booléennes ne peuvent avoir que deux valeurs : vrai ou faux. Si running est vrai, le chronomètre a été démarré. Si running est faux, le chronomètre n'a pas été démarré ou a été arrêté.
  • Si running est vrai, une boucle maintient l'animation du cœur sur l'écran LED.
  • Il ne montrera le temps quand vous appuyez sur le logo que si le chronomètre a été arrêté, si running n'est pas vrai.
  • Le code empêche les fausses lectures en s'assurant que la variable time ne soit modifiée, lors de l'appui sur le bouton B, que si le chronomètre a déjà été démarré, c'est à dire quand running est vraie.

Ce dont vous aurez besoin

  • nouveau micro:bit avec son (ou simulateur MakeCode)
  • MakeCode ou éditeur Python
  • un boîtier de piles (optionnel)

Étape 2 : Programme-le

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

Étape 3 : Améliore-le

  • Modifiez le programme pour que vous puissiez réinitialiser le temps en secouant le micro:bit.
  • Rendez le minuteur plus précis en utilisant des fractions de nombres au lieu d'entiers (nombres entiers).
  • Ajoutez une fonction de temps de tour, de sorte que si vous touchez le logo alors que le chronomètre est en cours d'exécution, cela montre la valeur du temps à ce moment là. N'oubliez pas de vous assurer que cela ne soit pas ajouté à la variable time, qui représente le temps total.