Coder

Le code nécessaire à la réalisation du projet Températures a été écrit en micropython. Vous trouverez ci-dessous :

Le code, étape par étape

  1. Incluons la bibliothèque Micro:bit

    from microbit import *
    
  2. Créons les images qui nous servirons à animer l’écran. La luminosité d’une diode varie de 0 (éteinte) à 9 (maximale).

    Lorsque la température augmente, l’affichage passe progressivement de image1 à image 5.

    image1 = Image(
        '00000:'
        '00000:'
        '00000:'
        '00000:'
        '99999')    
    image2 = Image(
        '00000:'
        '00000:'
        '00000:'
        '99999:'
        '77777')
    image3 = Image(
        '00000:'
        '00000:'
        '99999:'
        '77777:'
        '77777')
    image4 = Image(
        '00000:'
        '99999:'
        '77777:'
        '77777:'
        '77777')
    image5 = Image(
        '99999:'
        '77777:'
        '77777:'
        '77777:'
        '77777')
    
  3. Il y aura deux états dans le jeu :

    • La variable victoire est vrai et l’écran affiche le code secret.
    • la variable victoire est fausse et l’écran affiche l’énigme.

    Au début, la variable est donc fausse.

    victoire = False
    
  4. La phase de configuration est terminée. Passons maintenant à la boucle qui… tourne en boucle.

    Tout ce qui suivra cette codee sera donc indenté (tabulation).

    while True:
    
  5. Nous envisageons trois actions possibles :

    1. le jeu se réinitialise grâce au bouton A ;

          if button_a.is_pressed():
              victoire = False
      

    b) le jeu est gagné et l’écran affiche le code final (après une petite animation);

        if victoire:
            # petite image joyeuse
            display.show(Image.HAPPY)
            sleep(500)
            # code secret à afficher…
            display.scroll("XXXXXX")
    
    1. le jeu est en cours et l’écran affiche les image.

          if not victoire:
      

      Lire la température

              temp = temperature()
      

      Plus la température augmente, plus les images affichées remplissent l’écran

              if temp < 29:
                  display.clear()
              elif 29 <= temp < 30:
                  display.show(image1)
              elif 30 <= temp < 31:
                  display.show(image2)
              elif 31 <= temp < 32:
                  display.show(image3)
              elif 32 <= temp < 33:
                  display.show(image4)
              elif 33 <= temp < 34:
                  display.show(image5)
      

      et enfin, si la température dépasse 34°C, alors là on passe en mode victoire vrai. On ajoute une petite animation pour montrer que la victoire approche.

              elif 34 <= temp:
                  victoire = True
                  # petite animation
                  for i in range(2):
                      display.show(Image.SQUARE_SMALL)
                      sleep(100)
                      display.show(Image.SQUARE)
                      sleep(100)
      

      Pour finir, une pause syndicale de 500ms.

              sleep(500)
      

Le code final

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# -*- coding: utf-8-*-# Encoding cookie added by Mu Editor
from microbit import *

# définir mes images persos
# pour les lignes qui se colorent
image1 = Image(
    '00000:'
    '00000:'
    '00000:'
    '00000:'
    '99999')    
image2 = Image(
    '00000:'
    '00000:'
    '00000:'
    '99999:'
    '77777')
image3 = Image(
    '00000:'
    '00000:'
    '99999:'
    '77777:'
    '77777')
image4 = Image(
    '00000:'
    '99999:'
    '77777:'
    '77777:'
    '77777')
image5 = Image(
    '99999:'
    '77777:'
    '77777:'
    '77777:'
    '77777')

# booléen pour savoir si l'énigme est réussie
victoire = False

# à faire toujours et toujours…
while True:
    # utiliser le bouton A pour réinitialiser
    if button_a.is_pressed():
        victoire = False
    
    # si l'énigme est résolue
    if victoire:
        # petite image joyeuse
        display.show(Image.HAPPY)
        sleep(500)
        # code secret à afficher…
        display.scroll("XXXXXX")
    
    # si  l'énigme n'a pas été résolue
    if not victoire:
        # lire la température (en °C)
        temp = temperature()
        # affichage des images en fonction
        # de temp
        if temp < 29:
            display.clear()
        elif 29 <= temp < 30:
            display.show(image1)
        elif 30 <= temp < 31:
            display.show(image2)
        elif 31 <= temp < 32:
            display.show(image3)
        elif 32 <= temp < 33:
            display.show(image4)
        elif 33 <= temp < 34:
            display.show(image5)
        # victoire !
        elif 34 <= temp:
            victoire = True
            # petite animation
            for i in range(2):
                display.show(Image.SQUARE_SMALL)
                sleep(100)
                display.show(Image.SQUARE)
                sleep(100)
        sleep(500)