Skip to content

Prise de température

La carte Micro:Bit n'a pas un capteur de température, la température fournie est en fait la température de la puce de silicium du processeur principal. Comme le processeur chauffe peu en fonctionnement (c'est un processeur ARM à grande efficacité), sa température est une bonne approximation de la température ambiante (on pourra ajuster si nécessaire).

Exercice 1

Écrire un programme qui affiche la température sur la micro:bit lorsqu'on appuie sur le bouton a.

Utiliser display.show(temperature()).

Un code possible

Le -5 utilisé sert à ajuster.

1
2
3
4
5
6
7
from microbit import *

while True:
  if button_a.is_pressed():
    display.show(temperature()-5)
  else:
    display.clear()

Exercice 2 - Température et consigne

Écrire un programme:

  • qui commence par affecter une valeur de température à une variable consigne.

Et tel que:

  • Un appui sur le bouton A affiche la température.
  • Et un appui sur le bouton B affiche:

    • l'image Image.HAPPY si la température est supérieure à la consigne (utiliser la fonction display.show),
    • l'image Image.ANGRY sinon.
Un code possible
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from microbit import *

consigne = 20

while True:
    if button_a.is_pressed():
        display.show(temperature()-5)
    else:
        display.clear()

    if button_b.is_pressed():
        if temperature()-5 > consigne :
            display.show(Image.HAPPY)
        else :
            display.show(Image.ANGRY)

Exercice 3 - Récupérer la température

On souhaite récupérer la température de la micro:bit sur l'ordinateur via le port usb.

Identifier le port

Nous devons trouver le port sur lequel la micro:bit est branchée afin de pouvoir communiquer. Sur une machine Linux, ce port USB est attaché à un périphérique dans le répertoire /dev

Après avoir branché la carte micro:bit, dans un terminal taper la commande ls /dev/tty*

Essayer de trouver le périphérique associé au port USB connecté sur micro:bit.

  • la commande retourne généralement plus de 50 tty.

Cependant:

  • les tty associés au port USB disposent d'une nomenclature différente.
  • ils contiennent habituellement USB ou ACM (Abstract Control Model).

Sur l'image ci-dessus, on identifie le périphérique /dev/ttyACM1.

Pour s'assurer que l'identification soit correcte, vous débranchez la micro:bit de l'ordinateur et vous vérifiez que le périphérique associé disparait également de /dev.

Un programme micro:bit

A flasher dans la carte micro:bit:

1
2
3
4
5
6
7
8
from microbit import *

# protocole de communication (avec vitesse de transmission):
uart.init(baudrate=9600)

while True:
  display.show(temperature()-5)
  print(temperature()-5)

Un programme python

A exécuter sur le pc (avec geany par exemple):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from serial import *
from tkinter import *

# Protocole de transmission (à modifier en fonction de ce
# que vous avez obtenu précédemment) :
serie = Serial("/dev/ttyACM1")
#même vitesse de transmission que sur la carte:
serie.baudrate = 9600

while True :
    print(serie.readline())

A l'éxecution du programme, vous récupérez la température de la carte micro:bit sur votre PC: