Différences entre versions de « RASP-SENSE-HAT-ASTRO-PI-Temperature »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(6 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{RASP-SENSE-HAT-ASTRO-PI-NAV}}
 
{{RASP-SENSE-HAT-ASTRO-PI-NAV}}
 
{{traduction}}
 
  
 
== Senseur de température ==
 
== Senseur de température ==
 
{{bloc-etroit|text=Le Sense HAT met en oeuvre un certain nombre de senseurs... dont un senseur de température.
 
{{bloc-etroit|text=Le Sense HAT met en oeuvre un certain nombre de senseurs... dont un senseur de température.
  
Le source anglaise de cette traduction se trouve ici [https://www.raspberrypi.org/learning/astro-pi-guide/sensors/temperature.md www.raspberrypi.org/learning/astro-pi-guide/sensors/temperature.md]
+
La source anglaise de cette traduction se trouve ici [https://www.raspberrypi.org/learning/astro-pi-guide/sensors/temperature.md www.raspberrypi.org/learning/astro-pi-guide/sensors/temperature.md]
 
}}
 
}}
  
Ligne 72 : Ligne 70 :
 
== Surveiller la température ==
 
== Surveiller la température ==
  
'''1.''' It would be good to monitor the temperature as it changes, so let's put our code into a {{fname|while}} loop and run it again.
+
'''1.''' Cela serait bien de surveiller les changements de température. Nous allons donc placer notre code dans une boucle {{fname|while}} puis nous allons redémarrer notre programme.
  
 
  <nowiki>while True:
 
  <nowiki>while True:
Ligne 79 : Ligne 77 :
 
   print(temp)</nowiki>
 
   print(temp)</nowiki>
  
When you run the code the temperature values will scroll up the screen with the latest ones at the bottom.
+
Lorsque vous exécutez le code, les valeurs de la température vont s'afficher et défiller à l'écran avec la mesure la plus récente en bas.
  
'''2.''' Put your thumb over the sensor and hold it there. You should see the measurement start to rise.
+
'''2.''' Placez votre pouce au dessus du senseur... et maintenez le là. Vous devriez voir les mesures augmenter.
  
'''3.''' Blow on it (or give the sensors a short blast from an air duster, if available). The measurement should fall.
+
'''3.''' Ventilez le (ou utilisez un peu d'air comprimé). Les mesures devraient chuter.
  
'''4.''' Pressez {{fname|Ctrl + c}} pour arrêter le programme.  
+
'''4.''' Pressez {{fname|Ctrl + c}} pour arrêter le programme.
  
 
== Afficher la température sur la matrice LED ==
 
== Afficher la température sur la matrice LED ==
 +
Réfléchissez au différentes façons d'afficher l'information de température sur la matrice LED (voyez [[RASP-SENSE-HAT-ASTRO-PI-Matrice|le guide consacré à la Matrice LED pour plus d'information]]). Le choix le plus évident est d'utiliser la fonction {{fname|show_message}}, mais même si cela fonctionnerait, il y a probablement de meilleures façon de le faire.
  
Think about how you could show the temperature information on the LED matrix in some way (see the LED Matrix guide for more information). The obvious choice would be to use the show_message function, but, while this would work, there are probably better ways to do it. For example, you could:
+
Par exemple, vous pourriez:
 +
* Utiliser la fonction {{fname|clear}} pour afficher une couleur prédéfinie correspondant à une gamme de température. Par exemple, en bleu pour une température de 0 à 5 degrees.
 +
* Utiliser la fonction {{fname|clear}} pour afficher une seule couleur mais en modulant la quantité de rouge (0 to 255) en fonction de la mesure de la température?
 +
* Utiliser la fonction {{fname|set_pixel}} pour afficher une graphique (bar graph) qui monte ou descend comme le ferait un thermomètre.
  
* Use the {{fname|clear}} function to display some predefined colours based on ranges that the temperature falls in. For example 0 to 5 degrees could be blue?
+
Vous trouverez ci-dessous un embryon de code basé sur la dernière suggestion. Ce code affiche un niveau (une barre) qui couvre 8 degrés Celsius (une ligne horizontal de LEDs pour chaque degré). Le maximum qu'il peut afficher est {{fname|31}} (''hard codé'' dans le programme; n'hésitez pas à modifier cette valeur). Par conséquent, le minimum est {{fname|31 - 8}}, ce qui fait {{fname|23}} degrés celcius. Une erreur survient si la mesure de température se trouve hors de cette gamme de valeur.  
* Use the {{fname|clear}} function to display a single colour but change the brightness of red (0 to 255) based on the measured temperature?
 
* Use the {{fname|set_pixel}} function to display a bar that moves up and down similar to a thermometer.
 
  
Below is some starter code for the final suggestion above. This code will display a bar that has a range of 8 degrees Celsius (one degree per horizontal row of LEDs). The maximum it can display is {{fname|31}} (hard coded; feel free to edit this) and so the minimum is {{fname|31 - 8}} which is {{fname|23}}. If the measured temperature goes outside of that range then errors can occur. You can add code to clamp the measured temperature to prevent these errors if you like.
+
Si vous le voulez, vous pouvez ajouter ajouter du code pour prévenir une telle erreur.
  
 
  <nowiki>  from sense_hat import SenseHat
 
  <nowiki>  from sense_hat import SenseHat
Ligne 114 : Ligne 114 :
 
           for y in range(temp, 8):
 
           for y in range(temp, 8):
 
               sense.set_pixel(x, y, 0, 0, 0)</nowiki>
 
               sense.set_pixel(x, y, 0, 0, 0)</nowiki>
 +
 +
Ce programme fonctionne par soustrayant la valeur minimale à la mesure de température. Cela produit un résultat entre 0 et 8. Nous utilisons ensuite deux boucles {{fname|for}} imbriquée pour l'affichage. La boucle externe pour l'axe des {{fname|x}} et deux boucles pour l'axe {{fname|y}} (ces deux boucles se succèdents). Nous utilisons deux boucles pour {{fname|y}} parce que nous voulons activer toutes les LEDs sous la température en rouge avec {{fname|set_pixel}} tandis que la boucle suivante éteint toutes les LEDs au dessus de la température.
 +
 +
De cette façon, la barre donnera l'impression de monter/descendre sur l'axe Y pour suivre la mesure de la température.
 +
 +
Si vous voulez modifier l'orientation de votre barre, vous pouvez utiliser {{fname|sense.set_rotation(n)}} au démarrage du programme (où n est 0, 90, 180 ou 270) juste après  {{fname|sense.clear()}}.
  
 
{{RASP-SENSE-HAT-ASTRO-PI-TRAILER}}
 
{{RASP-SENSE-HAT-ASTRO-PI-TRAILER}}

Version actuelle datée du 28 septembre 2015 à 07:00


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Senseur de température

Le Sense HAT met en oeuvre un certain nombre de senseurs... dont un senseur de température.

La source anglaise de cette traduction se trouve ici www.raspberrypi.org/learning/astro-pi-guide/sensors/temperature.md

RASP-SENSE-HAT-ASTRO-PI-Temperature-00.jpg

L'image ci-dessus présente un thermomètre clinique. Il sert à prendre votre température (par exemple dans la bouche) afin de savoir si vous êtes malade. Notez que les nombres commencent 35, ce thermomètre ne peut donc être utilisé que pour mesurer la température humaine. Le senseur de température du Sense HAT peut mesurer des températures aussi basse que -40 degrés Celsius jusqu'a +120 degrés Celsius, ce senseur est nettement plus flexible que le thermomètre clinique.

Le Sense HAT dispose de deux senseurs de températures. L'un d'entre eux est incorporé au senseur d'humidité et l'autre est incorporé au senseur de pression. Vous pouvez choisir lequel des deux vous voulez utiliser pour relever la température ou vous pouvez utiliser les deux pour faire une moyenne de la température relevée.

Qu'est ce que la température?

1. Ouvrez Python 3 depuis un terminal en tapant la commande suivante:

sudo idle3 &

2. Saisissez le code suivant dans la nouvelle fenêtre:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

3. Selectionnez File > Save (Fichier > Sauver) et choisissez un nom pour votre programme.

4. Selectionnez Run > Run module Executer > Exécuter module.

5. Si vous voyez l'erreur Humidity Init Failed, alors exécutez le programme en tant que root en utilisant sudo (voyez la dernière ligne en rouge du message), cela signifie que vous n'avez pas scrupuleusement suivit les instructions ci-dessus. Fermer tout er revenez au point 1.

6. Vous devriez voir quelque-chose comme ceci:

Humidity sensor Init Succeeded
28.6293258667

La première ligne "Humidity sensor Init Succeeded" signifie Senseur d'humidité initialisé avec succès. Il se fait que le senseur de température est embarqué sur le senseur d'humidité et c'est via le senseur d'humidité que la température est relevée (un autre senseur de température est embarqué sur le senseur de pression).

7. Juste avant la ligne contenant le print(temp), saisissez la ligne suivante:

temp = round(temp, 1)

8. Vous devriez maintenant voir quelque chose similaire à ceci (il n'y a plus toutes les décimales après le point):

Humidity sensor Init Succeeded
28.6

9. Vous pouvez également essayer les fonctions suivantes à la place de get_temperature.

  • get_temperature_from_humidity (utilise le senseur d'humidité, get_temperature est un raccourcis vers cette fonction)
  • get_temperature_from_pressure (utilise le senseur de pression pour relever la température)

Par exemple:

from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature_from_pressure()
temp = round(temp, 1)
print(temp)

Votre code prend une mesure puis sort du programme.

Surveiller la température

1. Cela serait bien de surveiller les changements de température. Nous allons donc placer notre code dans une boucle while puis nous allons redémarrer notre programme.

while True:
  temp = sense.get_temperature()
  temp = round(temp, 1)
  print(temp)

Lorsque vous exécutez le code, les valeurs de la température vont s'afficher et défiller à l'écran avec la mesure la plus récente en bas.

2. Placez votre pouce au dessus du senseur... et maintenez le là. Vous devriez voir les mesures augmenter.

3. Ventilez le (ou utilisez un peu d'air comprimé). Les mesures devraient chuter.

4. Pressez Ctrl + c pour arrêter le programme.

Afficher la température sur la matrice LED

Réfléchissez au différentes façons d'afficher l'information de température sur la matrice LED (voyez le guide consacré à la Matrice LED pour plus d'information). Le choix le plus évident est d'utiliser la fonction show_message, mais même si cela fonctionnerait, il y a probablement de meilleures façon de le faire.

Par exemple, vous pourriez:

  • Utiliser la fonction clear pour afficher une couleur prédéfinie correspondant à une gamme de température. Par exemple, en bleu pour une température de 0 à 5 degrees.
  • Utiliser la fonction clear pour afficher une seule couleur mais en modulant la quantité de rouge (0 to 255) en fonction de la mesure de la température?
  • Utiliser la fonction set_pixel pour afficher une graphique (bar graph) qui monte ou descend comme le ferait un thermomètre.

Vous trouverez ci-dessous un embryon de code basé sur la dernière suggestion. Ce code affiche un niveau (une barre) qui couvre 8 degrés Celsius (une ligne horizontal de LEDs pour chaque degré). Le maximum qu'il peut afficher est 31 (hard codé dans le programme; n'hésitez pas à modifier cette valeur). Par conséquent, le minimum est 31 - 8, ce qui fait 23 degrés celcius. Une erreur survient si la mesure de température se trouve hors de cette gamme de valeur.

Si vous le voulez, vous pouvez ajouter ajouter du code pour prévenir une telle erreur.

  from sense_hat import SenseHat

  sense = SenseHat()
  sense.clear()

  tmax = 31
  tmin = tmax - 8

  while True:
      temp = sense.get_temperature()
      print(temp)
      temp = int(temp) - tmin
      for x in range(0, 8):
          for y in range(0, temp):
              sense.set_pixel(x, y, 255, 0, 0)
          for y in range(temp, 8):
              sense.set_pixel(x, y, 0, 0, 0)

Ce programme fonctionne par soustrayant la valeur minimale à la mesure de température. Cela produit un résultat entre 0 et 8. Nous utilisons ensuite deux boucles for imbriquée pour l'affichage. La boucle externe pour l'axe des x et deux boucles pour l'axe y (ces deux boucles se succèdents). Nous utilisons deux boucles pour y parce que nous voulons activer toutes les LEDs sous la température en rouge avec set_pixel tandis que la boucle suivante éteint toutes les LEDs au dessus de la température.

De cette façon, la barre donnera l'impression de monter/descendre sur l'axe Y pour suivre la mesure de la température.

Si vous voulez modifier l'orientation de votre barre, vous pouvez utiliser sense.set_rotation(n) au démarrage du programme (où n est 0, 90, 180 ou 270) juste après sense.clear().


Source: Getting Started with Astro PI et Astro-Pi Guide proposé par Raspberry Pi Learning Resource (www.raspberrypi.org)

Licence Creative Commons - CC-BY-SA
The learning resource is provided for free by the Raspberry Pi Foundation under a Creative Commons licence.
Find more at raspberrypi.org/resources and github.com/raspberrypilearning.

Traduction réalisée par Meurisse. D pour shop.MCHobby.be - Licence CC-BY-SA.
Crédit de traduction: Toute référence, mention ou extrait de cette traduction doit également être explicitement accompagné du crédit de traduction suivant : «  Traduction par MCHobby (shop.MCHobby.be) » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.