| 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 unique. | + | 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}} |