Différences entre versions de « Micropython-neotrellis-multi »
Ligne 3 : | Ligne 3 : | ||
== MultiTrellis == | == MultiTrellis == | ||
− | MultiTrellis est une classe permettant de combiner plusieurs NeoTrellis en mosaïque/damier et de pouvoir accéder aux différents boutons/NeoPixels à partir d'un système de coordonnées X et Y | + | MultiTrellis est une classe permettant de combiner plusieurs NeoTrellis en mosaïque/damier et de pouvoir accéder aux différents boutons/NeoPixels à partir d'un système de coordonnées X et Y commun. |
[[Fichier:Micropython-neotrellis-multi-00.jpg|800px]] | [[Fichier:Micropython-neotrellis-multi-00.jpg|800px]] | ||
+ | L'exemple [https://github.com/mchobby/micropython-neotrellis/blob/main/examples/multitrellistest.py multitrellistest.py] visible ci-dessous indique comment combiner plusieurs NeoTrellis. | ||
+ | |||
+ | Comme pour l'utilisation d'un NeoTrellis seul, le script une instance du bus I2C et les instances de NeoTrellis. | ||
+ | |||
+ | Une nuance cependant, les NeoTrellis sont répertoriés dans la variable {{fname|trelli}}, une liste (un entrée par ligne) contenant des sous-listes (ayant un entrée NeoTrellis pour chaque colonne). | ||
+ | |||
+ | Chaque NeoTrellis est créé en précisant l'adresse de chaque dalle (Note: le paramètre False correspond au paramètre interrupt). | ||
+ | |||
+ | <syntaxhighlight lang="python"> | ||
+ | import time | ||
+ | from machine import I2C, Pin | ||
+ | from neotrellis import NeoTrellis | ||
+ | from neotrellis.multitrellis import MultiTrellis | ||
+ | |||
+ | i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 ) | ||
+ | trelli = [ | ||
+ | # 1iere ligne de 2 NeoTrellis de gauche à droite | ||
+ | [NeoTrellis(i2c, False, addr=0x2E), NeoTrellis(i2c, False, addr=0x2F)], # 2 colonnes | ||
+ | ] | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Une fois la structure des dalles définie, il est possible de créer une instance {{fname|MultiTrellis}}. | ||
+ | |||
+ | La classe {{fname|MultiTrellis}} expose une interface similaire à celle de {{fname|NeoTrellis}}. | ||
+ | |||
+ | Chaque appel de méthode sur {{fname|MultiTrellis}} est réparti entre les différentes instances {{fname|NeoTrellis}} renseignées. | ||
+ | |||
+ | <syntaxhighlight lang="python"> | ||
+ | trellis = MultiTrellis(trelli) | ||
+ | trellis.brightness = 0.5 | ||
+ | |||
+ | # Définition de couleurs | ||
+ | OFF = (0, 0, 0) | ||
+ | RED = (255, 0, 0) | ||
+ | YELLOW = (255, 150, 0) | ||
+ | GREEN = (0, 255, 0) | ||
+ | CYAN = (0, 255, 255) | ||
+ | BLUE = (0, 0, 255) | ||
+ | PURPLE = (180, 0, 255) | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Comme pour les autres exemples, une fonction de rappel est associée à chaque bouton. La fonction de rappel fournie à {{fname|MultiTrellis}} doit recevoir des paramètres supplémentaires (' | ||
{{Micropython-neotrellis-TRAILER}} | {{Micropython-neotrellis-TRAILER}} |
Version du 8 mars 2025 à 00:26
MultiTrellis
MultiTrellis est une classe permettant de combiner plusieurs NeoTrellis en mosaïque/damier et de pouvoir accéder aux différents boutons/NeoPixels à partir d'un système de coordonnées X et Y commun.
L'exemple multitrellistest.py visible ci-dessous indique comment combiner plusieurs NeoTrellis.
Comme pour l'utilisation d'un NeoTrellis seul, le script une instance du bus I2C et les instances de NeoTrellis.
Une nuance cependant, les NeoTrellis sont répertoriés dans la variable trelli, une liste (un entrée par ligne) contenant des sous-listes (ayant un entrée NeoTrellis pour chaque colonne).
Chaque NeoTrellis est créé en précisant l'adresse de chaque dalle (Note: le paramètre False correspond au paramètre interrupt).
import time
from machine import I2C, Pin
from neotrellis import NeoTrellis
from neotrellis.multitrellis import MultiTrellis
i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 )
trelli = [
# 1iere ligne de 2 NeoTrellis de gauche à droite
[NeoTrellis(i2c, False, addr=0x2E), NeoTrellis(i2c, False, addr=0x2F)], # 2 colonnes
]
Une fois la structure des dalles définie, il est possible de créer une instance MultiTrellis.
La classe MultiTrellis expose une interface similaire à celle de NeoTrellis.
Chaque appel de méthode sur MultiTrellis est réparti entre les différentes instances NeoTrellis renseignées.
trellis = MultiTrellis(trelli)
trellis.brightness = 0.5
# Définition de couleurs
OFF = (0, 0, 0)
RED = (255, 0, 0)
YELLOW = (255, 150, 0)
GREEN = (0, 255, 0)
CYAN = (0, 255, 255)
BLUE = (0, 0, 255)
PURPLE = (180, 0, 255)
Comme pour les autres exemples, une fonction de rappel est associée à chaque bouton. La fonction de rappel fournie à MultiTrellis doit recevoir des paramètres supplémentaires ('
Traduction augmentée réalisée par Meurisse. D pour shop.MCHobby.be - Licence CC-BY-SA.