| Ligne 48 : |
Ligne 48 : |
| | </syntaxhighlight> | | </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 (' | + | Comme pour les autres exemples, une fonction de rappel sera associée à chaque bouton. |
| | | | |
| | + | La fonction de rappel qui sera fournie à {{fname|MultiTrellis}} doit recevoir des paramètres supplémentaires, à savoir: |
| | + | * position X, |
| | + | * position Y |
| | + | * type de flan (flan montant avec {{fname|NeoTrellis.EDGE_RISING}} ou flan descendant avec {{fname|NeoTrellis.EDGE_FALLING}}) |
| | + | |
| | + | <syntaxhighlight lang="python"> |
| | + | def blink(xcoord, ycoord, edge): |
| | + | # Allumer la LED sur un flan montant (quand le bouton est enfoncé) |
| | + | if edge == NeoTrellis.EDGE_RISING: |
| | + | trellis.color(xcoord, ycoord, BLUE) |
| | + | # Eteindre la LED sur flan descendant (quand le bouton est relâché) |
| | + | elif edge == NeoTrellis.EDGE_FALLING: |
| | + | trellis.color(xcoord, ycoord, OFF) |
| | + | </syntaxhighlight> |
| | + | |
| | + | La section suivante active la détection des flans montant et descendant pour chaque bouton, associe la fonction de rappel et allume la LED (en violet). |
| | + | |
| | + | <syntaxhighlight lang="python"> |
| | + | for y in range(4): # Lignes de 0 à 3 |
| | + | for x in range(8): # Colonnes de 0 à 7 |
| | + | trellis.activate_key(x, y, NeoTrellis.EDGE_RISING) |
| | + | trellis.activate_key(x, y, NeoTrellis.EDGE_FALLING) |
| | + | trellis.set_callback(x, y, blink) |
| | + | trellis.color(x, y, PURPLE) |
| | + | time.sleep(0.05) |
| | + | </syntaxhighlight> |
| | + | |
| | + | Vient le moment d'éteindre les LEDs en fixant la couleur noir (0,0,0) . |
| | + | |
| | + | <syntaxhighlight lang="python"> |
| | + | for y in range(4): |
| | + | for x in range(8): |
| | + | trellis.color(x, y, OFF) |
| | + | time.sleep(0.05) |
| | + | </syntaxhighlight> |
| | + | |
| | + | Enfin comme, comme dans les autres exemples, le corps du script doit appeler régulièrement la méthode {{fname|trellis.sync()}} . |
| | + | |
| | + | Cela permet à la bibliothèque de détecter l'état des boutons sur les différentes dalle NeoTrellis afin de générer les différents événements. |
| | + | |
| | + | |
| | + | <syntaxhighlight lang="python"> |
| | + | while True: |
| | + | trellis.sync() |
| | + | time.sleep(0.02) |
| | + | </syntaxhighlight> |
| | | | |
| | {{Micropython-neotrellis-TRAILER}} | | {{Micropython-neotrellis-TRAILER}} |