Utilisation des LED du module Sense Hat pour Raspberry Pi

Rasberry-Pi2

Je continue encore et toujours sur ma série d’articles concernant le Raspberry Pi. A l’heure où le Raspberry Pi 3 vient d’être annoncé, j’ai eu l’occasion de tester le module d’extension appelé Sensor Hat. Il s’agit d’un module qui s’ajoute sur votre Raspberry Pi pour en étendre les possibilités. C’est un modèle officiel qui s’alimente et se branche directement sur votre Raspberry Pi.

51rcbdZzb8L

Ce module est composé notamment des éléments suivants :

  • Gyroscope,
  • Accéléromètre,
  • Magnétomètre,
  • Capteur de température,
  • Capteur de pression et d’humidité,
  • Affichage LED RGB 8×8,
  • Ainsi qu’un bouton !

Pour l’installation, c’est très simple vous le positionner directement sur votre Raspberry Pi. Celui-ci va utiliser l’ensemble des pins disponibles sur le connecteur principal. Attention, si vous disposez déjà d’une boîte pour votre Raspberry Pi, il est possible qu’avec ce module additionnel votre boîte ne puisse pu accueillir le Raspberry Pi.

Pour ma part, j’ai testé plusieurs modèles et seule la Pibow Ninja vous permet d’accueillir l’ensemble.

IMG_0855

Notez bien toutefois, que la boîte arrive en kit et qu’il vous appartient de la monter (certes c’est super simple puisqu’il n’y a que 4 visses et que les plaques sont numérotées… mais pour ma part, j’avais lu un peu rapidement la présentation produit) ! 🙂

Une fois que vous l’avez installé et que vous démarrez votre Raspberry Pi, vous verrez que l’ensemble fait un genre de tests en mode coloré arc-en-ciel… donc si vous voyez ça c’est que c’est bon ! 🙂

Voyons voir maintenant comment utiliser tout ça… 😉

Etape 0 – Installation du package Python

Pour pouvoir utiliser le code python qui va avec ce module, vous devez installer le package suivant :

sudo apt-get update
sudo apt-get install sense-hat 
sudo pip-install pillow

Personnellement, je n’ai pas eu à le faire et le package était déjà présent.

Etape 1 – Utilisation des LED

Pour faire apparaître et défiler un message texte sur la panneau LED, vous pouvez utiliser le court script qui suit :

from sense_hat import SenseHat
sense = SenseHat()
sense.set_rotation(180)
blue = (0, 255, 255)
sense.show_message("Hello world", text_colour=blue)

Comme vous le comprenez sans aucun doute, nous créons un nouvel objet Sense, nous tournons l’affichage de 180° et nous choisissons de l’afficher dans une couleur RGB équivalente (0,255,255) soit du bleu.

Hello

Jusque là rien de très compliqué puisque l’API de base proposée par Raspberry Pi est très bien foutue.

Dans ce premier exemple, nous avons utilisé une fonctionnalité tout faîte qui se contente d’allumer les LED de manière à afficher un texte et donner l’impression que ce dernier défile. Mais nous pourrions gérer par nous-même l’affichage des LED.

Essayons maintenant de faire quelque-chose d’un peu plus personnel… Cette matrice de LED est composée de 8×8 LED. Nous allons donc les gérer de manière unitaire afin d’afficher quelque-chose de plus personnalisé… et pour cela nous pouvons par exemple utiliser Excel. Si je représente un tableau de 8 sur 8 et que je souhaite par exemple afficher “OK” je vais remplir les LED comme suit :

excel

On va dire que je veux l’afficher en vert et que je souhaite également le faire clignoter un peu… Concrètement le code ressemblerait au suivant :

from time import sleep
from sense_hat import SenseHat
sense = SenseHat()
sense.set_rotation(180)

X = [0, 255, 0] # Green
O = [0, 0, 0] # White

question = [
X, X, X, O, X, O, O, X,
X, O, X, O, X, O, X, O,
X, O, X, O, X, X, O, O,
X, O, X, O, X, X, O, O,
X, O, X, O, X, X, O, O,
X, O, X, O, X, O, X, O,
X, X, X, O, X, O, O, X,
O, O, O, O, O, O, O, O
]

sense.set_pixels(question)
sleep(1)
sense.clear(0,0,0)
sleep(1)
sense.set_pixels(question)
sleep(1)
sense.clear(0,0,0)
sleep(1)
sense.set_pixels(question)
sleep(1)
sense.clear(0,0,0)

On fait donc la chose suivante :

  • On crée toujours un objet Sense ;
  • Puis, on définit un les 2 couleurs qui vont nous permettre d’allumer nos LED (le vert pour le X et le 0 pour le blanc – à noter que le blanc indique ici que la LED ne s’allumera pas) ;
  • On crée ensuite un tableau qui est la traduction ni plus ni moins de notre document Excel. Les X représentants les endroits que nous allons allumer et les O les endroits qui seront en blanc (et donc éteints) ;
  • On ajoute ensuite ensuite un entrecroisement d’allumage (vert) – pause (sleep) – blanc (éteint).

On obtient au final l’aspect suivant :

Ok

Et voilà, vous pourrez désormais afficher n’importe quoi… dans le dernier fichier j’affiche un point d’interrogation de couleur rouge sur fond blanc. 🙂

Téléchargements

Les fichiers en téléchargement pour ceux qui veulent tester rapidement et se rendre compte par eux-mêmes :

  • blue.py (le tout premier test pour afficher le texte défilant en bleu)
  • ok.py (celui qui affiche en clignotant le OK)
  • interr.py (affiche un point d’interrogation rouge sur fond blanc)

Vous pouvez également trouver d’autres excellents exemples d’utilisation sur GitHub et ici aussi.

Dans un prochain article, je m’intéresserai aux possibilités offertes par les autres capteurs 🙂