Utiliser le sense-hat sous MicroPython

Bonjour à tous,

Lorsque Garatronic nous à pondu le PYBStick-HAT-Face, il aura fallut attendre le branchement d'un HAT pour vraiment en comprendre l'intéret et la portée.
C'est pourtant une excellent idée!

PYBStick-HAT-FACE
Cette petite carte permet de connecter la PYBStick sur des HAT pour Raspberry-Pi... tout en faisant correspondre les fonctions principales (I2C, SPI, etc) sur les bonnes broches du GPIO Raspberry.

Brochage du PYBStick-HAT-Face. Source: GitHub du projet

Pour illustrer ton utilisation, nous nous sommes penchés sur le Hat-Sense déjà bien connu dans le monde Raspberry-Pi.

Du coup, après quelques heures de travail, nous avons écrit le pilote MicroPython pour la cart Sense-Hat.

Hat-Sense sous MicroPython avec la PYBStick
 

Le pilote MicroPython pour le Sense-Hat inclus des plans de raccordement avec la PYBStick, la carte Pyboard et aussi avec la carte PYBStick-HAT-Face.

Source: Github du pilote MicroPython pour Sense-Hat

Avant de passer à l'exploration des différents exemples, voici le résultat en vidéo


 

Et comme pour le soft Raspberry, il est bien entendu possible d'afficher du texte....

from machine import I2C
from sensehat import SenseHat
import time

# PYBStick, Hat-Face: Sda=S3, Scl=S5
i2c = I2C( 1 )
hat = SenseHat( i2c )

hat.clear()
hat.scroll( "Sense-Hat running under MicroPython!" )

Mais aussi d'afficher des icones (identique au Micro:Bit).

from machine import I2C
from sensehat import SenseHat
from icons import HEART, HEART_SMALL
import time
from random import randint

# PYBStick, Hat-Face: Sda=S3, Scl=S5
i2c = I2C( 1 )
hat = SenseHat( i2c )

# Afficher un coeur qui pulse
red = hat.color(200, 0, 0)
for i in range(10):
	hat.clear()
	hat.icon( HEART, color=red )
	hat.update()
	time.sleep(1)

	hat.clear()
	hat.icon( HEART_SMALL, color=red )
	hat.update()
	time.sleep(1)

Ou encore lire l'état du joystick

from machine import I2C
from sensehat import *
from icons import ARROW_N,ARROW_S,ARROW_E,ARROW_W,TARGET
import time

# PYBStick, Hat-Face: Sda=S3, Scl=S5
i2c = I2C( 1 )
hat = SenseHat( i2c )
hat.clear()

while True:
	hat.clear(update=False) # Effacer le contenu du FrameBuffer
	j = hat.joystick
	if j == JOY_UP:
		hat.icon(ARROW_N)
	elif j == JOY_DOWN:
		hat.icon(ARROW_S)
	elif j == JOY_RIGHT:
		hat.icon(ARROW_W)
	elif j == JOY_LEFT:
		hat.icon(ARROW_E)
	elif j == JOY_ENTER:
		hat.icon(TARGET)
	hat.update()

Et bien entendu acquérir les données des différents capteurs (et les afficher) est tout aussi simple

from machine import I2C
from sensehat import *
import time

# PYBStick, Hat-Face: Sda=S3, Scl=S5
i2c = I2C( 1 )
hat = SenseHat( i2c )

while True:
	# Lecture de l'humidité et température
	hat.scroll( "%3.1f %%RH, %3.1f Celcius" % hat.humidity )
	time.sleep( 1 )

Le dépôt du projet contient de nombreux autres exemples explorant toutes les fonctionnalités de la carte.

Ressources

N'hésitez pas à consulter ces différents liens pour obtenir plus d'exemples.

 

 


Aucun commentaire