Pyboard: Utiliser un keypad 16x16 touches

Bonjour à tous,
Nous venons d'ajouter un petit extra à notre github de pilotes pour MicroPython avec la classe Keypad et Keypad4x4.
Brancher un keypad sur une carte Pyboard
Source: GitHub esp8266-upy
Bibliothèque Keypad
La bibliothèque keypad.py disponible ici.
Celle-ci contient deux classes:
  • Keypad : une classe générique qui scan une matrice clavier the N ligne et M colonnes. Celle-ci ne retourne que des n° de touche.
  • Keypad4x4 : une classe supportant le clavier 16x16 tels que celui-présenté ci-dessus. C'est cette classe qui expose la méthode read_key() et qui retourne le libellé de la touche pressé (et non le n° de touche).
En surchargeant la classe Keypad, il devient possible de gérer une grande variété de clavier avec très peu d'effort.

La bibliothèque keypad apporte également quelques fonctionnalités intéressantes:
  • Support Timeout:
    La méthode read_key() accepte un paramètre optionnel qui est un timeout de saisie (s'il est omis, la méthode attend indéfiniment). En cas de timeout, la méthode retourne None si aucune touche n'est pas pressée dans le délai imparti.
  • Support anti-rebond:
    La classe de base Keypad accepte également un paramètre optionnel debounce_ms (à 300ms par défaut). Cela empêche de saisir un doublon d'une même touche durant ce délai de 300 ms, cela améliore nettement le confort d'utilisation.

Exemple
Le pilote contient différents exemples. Le plus intéressant reste test_readkey.py  repris ci-dessous qui attend la saisie d'une touche sur le clavier et qui en affiche la valeur.
    from keypad import Keypad4x4
    from time import sleep
    
    k = Keypad4x4()
    
    while True:
     # remove timeout parameter for infinite timeout
     key = k.read_key( timeout=2 )
     print( key )


    Ce qui produit le résultat suivant:
    Les None sont retournés suite au Timeout de saisie.

    None
    None
    None
    1
    2
    3
    6
    5
    D
    #
    None
    None
    


    Ressources
    Où acheter

    Aucun commentaire