La présence de Thomas Pesquet dans la Station Spatiale Internationale (ISS) a permis à l’ESA de proposer un concours aux écoliers, collégiens et lycéens européens.
De nombreux participants français ont été retenus pour proposer des applications qui seront exécutées sur les Raspberry Pi embarqués dans l’ISS.
J’ai reçu plusieurs demandes d’aide auxquelles je réponds de mon mieux. Pour aider ceux qui démarrent et ont du mal à travailler sur leurs programmes avec la SenseHat, je vous propose de voir comment installer un émulateur de cartes SenseHat sur le Raspberry Pi, puis un émulateur de matrice à LED pour la SenseHat qui pourra aider à la création d’animations ou de blasons/logos destinés à accompagner les programmes.
Au sommaire :
AstroPi, la SenseHat dans l’espace
Rappel des caractéristiques de la SenseHat
Je vous avais présenté la SenseHat lors de sa sortie, fin 2015. Vous pouvez aussi consulter le WiKi de McHobby qui propose un traduction en français de la documentation de la SenseHat. Dominique publie de nombreuses traductions, n’hésitez pas à faire un tour sur son site 🙂
La carte est équipée d’accéléromètres et de gyroscopes réalisés en nano-technologie, qui enregistrent les mouvements selon les 3 axes Pitch, Yaw et Roll. Si ça ne vous parle pas, le schéma ci-dessous devrait vous éclairer ?
La carte SenseHat embarque
- Une matrice d’affichage LED 8 × 8
- Un accéléromètre, un gyroscope et un magnétomètre
- Un capteur de pression atmosphérique
- Des capteur de température et d’humidité
- Un Joystick miniature
Émulateur de SenseHat
Il existe deux émulateurs pour la carte SenseHat : un émulateur en ligne proposé par Trinket une société partenaire de la fondation Raspberry Pi et um émulateur à installer sur le Raspberry Pi.
Émulateur en ligne
L’émulateur en ligne autorise l’écriture de programmes Python qui peuvent être testés sur le simulateur (à droite de l’image).
Des curseurs situés en bas à droite de la fenêtre permettent de simuler les capteurs de température, pression et humidité de la carte. Ceci est utilisé pour tester des programmes qui doivent réagir en fonction de la valeur retournée par les capteurs.
Cet émulateur peut être utilisé avec n’importe quel navigateur et permet aux participants au challenge de tester leurs réalisations, même s’il n’y a pas de SenseHat ou de Raspberry Pi disponible.
Émulateur sur le Raspberry Pi
Pour les participants qui ont déjà un ou plusieurs Raspberry Pi, il est possible d’installer un émulateur, développé par Dave Jones, qui permet de simuler la carte SenseHat. Des curseurs sont ici aussi utilisés pour modifier les valeurs envoyées par les capteurs pendant que le code est en cours d’exécution.
Pourquoi avoir créé cette deuxième version ?
- Utilisation hors ligne, ce qui est l’utilisation la plus courante des Raspberry Pi dans une salle de classe.
- Recyclage des plus vieux modèles de Raspberry Pi 256 Mo qui ne peuvent pas exécuter la version web.
- Mise en œuvre d’un programme SenseHAT avec tous les modules Python disponibles, ou avec d’autres fonctionnalités du Raspberry Pi comme le module caméra.
Comment ça marche ?
Vous trouverez l’émulateur dans la rubrique Programmation du Menu de Raspbian PiXel. Lorsque vous cliquez dessus, la fenêtre Sense Hat Emulator s’ouvre.
Vous disposez alors de curseurs simulant les capteurs et de boutons en lieu et place du mini joystick.
Vous allez pouvoir piloter l’émulateur de carte SenseHat en Python : pour mes tests j’ai ouvert un Python 2 (IDLE) et saisi
from sense_emu import SenseHat sense = SenseHat() red = (255, 0, 0) sense.show_message('framboise314', text_colour = red)
et le message s’affiche en rouge sur l’afficheur (ici le début de ‘framboise314’).
Un émulateur de matrice à LED
C’est Denis, enseignant de technologie à Brioude (43) qui m’a posé des questions à propos de cet émulateur. La version originale est disponible sur le github d’AstroPi.
J’en ai fait un fork que j’ai francisé, adapté à la nouvelle version de SenseHat (les anciens appels se faisaient sur AstroPi). J’ai aussi fait quelques modifications cosmétiques pour que les textes en français tiennent dans les boutons. Cette version est bien entendu disponible si vous souhaitez la modifier ou l’adapter à vos besoins.
Installer l’émulateur de matrice à LED
Si git n’est pas installé sur votre version de Raspbian, installez le
sudo apt-get install git
pi@raspberrypi:~ $ git clone https://github.com/framboise314/RPi_8x8GridDraw Clonage dans 'RPi_8x8GridDraw'... remote: Counting objects: 81, done. remote: Compressing objects: 100% (27/27), done. remote: Total 81 (delta 16), reused 0 (delta 0), pack-reused 54 Dépaquetage des objets: 100% (81/81), fait. Vérification de la connectivité... fait. pi@raspberrypi:~ $
La copie du répertoire est rapide et ne devrait pas poser de problème.
pi@raspberrypi:~/RPi_8x8GridDraw $ ls 8x8grid-astropi.py  8x8grid-unicorn.py  buttons.py  led.py  licence.md  README.md
Dans le dossier on trouve les classes led et buttons nécessaire au fonctionnement du programme émulateur de matrice : 8x8grid-astropi.py.
N’hésitez pas à le renommer. Je trouvais le nom un peu long, je l’ai rebaptisé 8×8.py…
Lancer l’émulation
Dans le terminal entrez python 8x8grid-astropi.py
pi@raspberrypi:~/RPi_8x8GridDraw $ python 8x8grid-astropi.py
ce qui va ouvrir la fenêtre de l’émulateur :
Si vous cliquez sur une LED elle prendra la couleur sélectionné (rouge par défaut). Il faudra cliquer sur le bouton Joue sur LED en bas à droite pour transférer l’image sur les LED de la matrice.
Il est possible d’enregistrer une animation trame par trame, puis de l’enregistrer pour la recharger plus tard.
[stextbox id= »alert » caption= »A noter »]La sauvegarde d’une animation ou d’une image se fait toujours avec le même nom. Si vous voulez garder des fichiers, il faudra penser à les renommer, sinon il seront écrasés lors des prochaines sauvegardes.[/stextbox]
La vidéo ci-dessous vous montre le fonctionnement de cet émulateur.
Vidéo
Et pour mémoire les premiers essais de la SenseHat sur framboise314
Conclusion
Avec les outils présentés dans cet article vous pouvez préparer le challenge de l’ESA ou tout simplement vous entraîner à la programmation de la SenseHat sans disposer de la carte.
Pour ceux qui seraient tentés par l’achat de la SenseHat, ces émulateurs vous donnent les moyens de vérifier si elle correspond à votre attente.
Sources
- https://trinket.io/sense-hat
- https://github.com/astro-pi/RPi_8x8GridDraw
- https://github.com/framboise314/RPi_8x8GridDraw
Bonsoir Francois
On s’amuse bien…
Je vois que les lumières des guirlandes lumineuses de Noel ont inspiré cet article. 😉
Cet émulateur Sense Hat a beaucoup plu .
Je l’avais déjà dit, mais je le répète , je trouve les vidéos particulièrement bien faites et pédagogiques.
Cordialement.
merci:)
Bonjour,
Peut être saurez vous éclairer ma lanterne. Je constate, autant sur vos articles que dans les magazines spécialisés, que le langage prépondérant est chaque fois le Python. J’ai cru comprendre que c’était un bon langage pour l’apprentissage, pourtant j’ai appris avec le C/C Arduino au lycée puis C++/Java en BTS. Ma première expérience avec le Python ne date que de l’année passée, en Licence Professionnelle, en cours de Cryptologie. Du coup je m’interroge, Est-ce une nouvelle lacune de l’éducation française ou simplement une philosophie différente?
PS: Qu’importe la réponse, mon langage préféré reste le C++ 😛
Bonjour Valentin
déjà le Pi de Raspberry Pi vient de Python
Après c’est un langage simple d’utilisation très utilisé par les étudiants et les chercheurs… doctorants etc l’avantage certain c’est que du fait de son utilisation universelle il y a des bibliothèques… à peu près pour tout 🙂
j’en fais parce que de nombreux progs sont en Python dans l’environnement Raspberry Pi. Ne le répétez pas mais d’origine je suis plutôt accro à l’assembleur (6800, Z80, 80X86) et j’ai ensuite basculé en C. Quand je dois écrire un prog rapide en fait… je préfère le C
Ce que je n’aime pas dans le Python c’est cette histoire de blocs faits en indentation. c’est facile pour les débutants (à condition qu’ils ne mélangent pas espaces et TAB). Ça ne vaut pas les {} qui sont (à mon avis) plus lisibles
Mais bon, c’est sans doute parce que j’ai été formé avec ces outils…
Et puis Python est utilisé dans l’éducation Nationale (quand même)
regardez https://www.google.fr/?gws_rd=ssl#safe=off&q=python+%C3%A9ducation+nationale
j’espère avoir répondu à vos questions
cordialement
François
Merci pour votre réponse, c’est en effet beaucoup plus clair, j’ignorais même que le Pi venait de la.
Bonjour François,
Article très bien conçue comme d’habitude.
Et au fait….une très bonne année 2017 à vous pleine de petits Rpi…Pendant que j’y penses, savez vous si une nouvelle version du Rpi est dans les tuyaux pour 2017 (un Rpi 4) ?
conçu…
j’y pense…
argh…les accords
Bonjour,
J’ai ma petite théorie la dessus. Si vous voyais des promotions dans les enseignes françaises, alors dans peu de temps il y aura une nouvelle version. Je pense surtout au mois de février pour le lancement de leur produit, donc dans pas longtemps !
c’est vrai, à surveiller donc…
la pi 3 a le défaut de chauffer pas mal quand on soumet son processeur à un régime un peu soutenu.
La présence de la hat, placée si près de la raspi, ne représente pas un risque de surchauffe ?
bonjour
ma foi on ne peut pas trop faire autrement…
sur les pi3 que je sollicite beaucoup je monte un radiateur
cela ne gêne pas la mise en place de la SenseHat
Après… est-ce que le flux d’air est optimisé ? pas sûr !
il faudrait tenir le RasPi vertical pour assurer une circulation de l’air entre les deux cartes ou alors monter un petit ventilateur
mais jusqu’à maintenant tout ce petit monde fonctionne sans problème
cordialement
François
Bonjour François
J’ai une pifcace2 sur mon PI3
Peut-on monter la SenseHat en plus ??
Il semble y avoir conflit sur le bus SPI, même en changeant l’adresse de la piface
Bonne Journée
bonsoir
rapidement sensehat est en I2C voir https://fr.pinout.xyz/pinout/sense_hat
il faudrait monter la piface au dessus de la sense hat ? ça masquerait la matrice de LEDS…
La PiFace2 est sur le bus SPI… il ne devrait pas y avoir d interférence.
http://www.piface.org.uk/guides/Install_PiFace_Software/Enabling_SPI/
et
https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial
cordialement
François
Bonjour
Merci de me conforter, c’est bien ce que je pensais.
Pour le montage, j’utilise le IO-SHIM de Piface (chez KUBII)
Avec une nappe sur le côté vers la SenseHat qui sera montée en face avant
la Piface2 restant sur le PI3.
Il faut que je regarde un peu plus
Cordialement
d’accord je comprends mieux 🙂
tenez moi au courant !
cordialement
François
Tout semble fonctionner
J’affiche les mesures sur la matrice
Mon prog de capture photo qui utilise la Piface2 fonctionne
Mais quand j’appuie sur un bouton de la piface qui est en listener
c’a allume la matrice alors que la sensehat n’est pas utilisée dans ce programme
et pas importée
il n’y a pas assez d’éléments pour comprendre ce qui se passe
si le prog est en Python il faut essayer d’ajouter des « mouchards » pour débugger et voir ce qui se passe
Bonsoir
J’ai fait un prog python qui commande la SenseHat avec des boutons
sur les entrées de la Piface2.
Choix d’afficher la Temp ou la Temp+Humi…..etc
C’a fonctionne parfaitement
Le seul défaut est que l’activation d’une entrée de la Piface
allume la matrice plein pot avec l’arc-en -ciel
Un autre prog avec la Piface qui n’utilise pas la SenseHat fait pareil
Dès que j’appuie sur un bouton, la matrice s’allume
et comme le prog ne l’utilise pas….impossible de l’éteindre
Il y a vraiment une action de l’interruption générée par la Piface en listener sur la sensehat
Comment mettre ce prog sur le site ?
Dans le Forum ?