8x32 PI
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
"""
|
||||
=============================================================================
|
||||
TEST DE LA MATRICE — branchement, orientation, alimentation
|
||||
Workshop « Vitrine pixels »
|
||||
=============================================================================
|
||||
|
||||
À lancer EN PREMIER, après chaque nouveau montage :
|
||||
sudo ~/vitrine-env/bin/python test_matrice.py
|
||||
|
||||
(ou, pour voir à quoi ça ressemble sans matériel :
|
||||
python3 test_matrice.py --simulateur)
|
||||
|
||||
Trois tests s'enchaînent, puis tout s'éteint :
|
||||
|
||||
1. LES COINS : un pixel de couleur dans chaque coin, 5 secondes.
|
||||
ROUGE en haut à gauche VERT en haut à droite
|
||||
BLEU en bas à gauche BLANC en bas à droite
|
||||
Sinon : changez INVERSER_X / INVERSER_Y dans matrice.py.
|
||||
|
||||
2. L'ORDRE DE LA CHAÎNE : un point orange parcourt les 256 LED
|
||||
dans l'ordre où le signal les traverse. On voit le serpentin.
|
||||
Si le point s'arrête en route : une LED ou une soudure est abîmée
|
||||
à cet endroit (tout ce qui suit reste éteint).
|
||||
|
||||
3. LES COULEURS PLEINES : tout en rouge, puis vert, puis bleu, puis
|
||||
blanc. Vérifie l'ordre des couleurs (GRB) et l'alimentation.
|
||||
Le blanc est le plus gourmand : si la matrice devient orangée ou
|
||||
clignote, l'alimentation est à sa limite (voir README, partie 10).
|
||||
"""
|
||||
|
||||
import matrice
|
||||
from matrice import LARGEUR, HAUTEUR, NB_LEDS, ROUGE, VERT, BLEU, BLANC, ORANGE
|
||||
|
||||
|
||||
def test_coins():
|
||||
print("1. Test des coins : rouge ↖ vert ↗ bleu ↙ blanc ↘")
|
||||
matrice.effacer()
|
||||
matrice.pixel(0, 0, ROUGE)
|
||||
matrice.pixel(LARGEUR - 1, 0, VERT)
|
||||
matrice.pixel(0, HAUTEUR - 1, BLEU)
|
||||
matrice.pixel(LARGEUR - 1, HAUTEUR - 1, BLANC)
|
||||
matrice.montrer()
|
||||
matrice.attendre(5000)
|
||||
|
||||
|
||||
def test_ordre_des_leds():
|
||||
print("2. Ordre de la chaîne : le point orange suit le serpentin")
|
||||
# Pour suivre l'ordre de la CHAÎNE (et pas l'ordre des coordonnées),
|
||||
# on cherche, pour chaque numéro de LED, la position (x, y) qui lui
|
||||
# correspond grâce à XY().
|
||||
position = {}
|
||||
for x in range(LARGEUR):
|
||||
for y in range(HAUTEUR):
|
||||
position[matrice.XY(x, y)] = (x, y)
|
||||
|
||||
matrice.effacer()
|
||||
for numero in range(NB_LEDS):
|
||||
x, y = position[numero]
|
||||
matrice.pixel(x, y, ORANGE) # la tête du serpent
|
||||
matrice.montrer()
|
||||
matrice.pixel(x, y, (60, 20, 0)) # laisse une trace plus sombre
|
||||
matrice.attendre(15)
|
||||
matrice.attendre(1000)
|
||||
|
||||
|
||||
def test_couleurs_pleines():
|
||||
print("3. Couleurs pleines : rouge, vert, bleu, blanc")
|
||||
for nom, couleur in [("rouge", ROUGE), ("vert", VERT), ("bleu", BLEU), ("blanc", BLANC)]:
|
||||
print(" tout en", nom)
|
||||
matrice.effacer(couleur)
|
||||
matrice.montrer()
|
||||
matrice.attendre(2000)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
matrice.demarrer()
|
||||
try:
|
||||
test_coins()
|
||||
test_ordre_des_leds()
|
||||
test_couleurs_pleines()
|
||||
print("Terminé.")
|
||||
except KeyboardInterrupt:
|
||||
print("\nArrêt demandé.")
|
||||
finally:
|
||||
matrice.eteindre()
|
||||
Reference in New Issue
Block a user