• # Oui, il y a tout

    Posté par (Mastodon) . En réponse au message codes python pour faire marcher une mini télécommande sans fil (bluetooth) sur mon Raspberry pi. Évalué à 6. Dernière modification le 17 octobre 2023 à 18:37.

    Oui, ça doit marcher tel quel, et comme t'es un peu perdu je t'explique vite fait :

    import keyboard

    Ça utilise la librairie keyboard. Les fonctions et constantes commençant par keyboard sont censé venir de là (dans notre cas c'est keyboard.read_event() et keyboard.KEY_DOWN)

    Bien sûr, tu auras au préalable installé la librairie sur ton RPi avec la commande sudo pip3 install keyboard (à ne faire qu'une fois puisque c'est une installation)

    VOLUME_UP = 115

    Définition de la constante du numéro de la touche attendue.

    def do():
     print("Button was pressed")

    Définition d'une fonction. C'est cette fonction qui est appelée lors de l'appui de la touche (elle s'appelle do mais elle peut s'appeler n'importe comment c'est une fonction quoi). Je te conseille de la laisser telle quelle ne serait-ce que pour vérifier que tout marche bien. Ensuite tu complexifieras en mettant ce que tu veux faire réellement à chaque appui sur le bouton.

    while True:
     ev = keyboard.read_event()
     if ev.scan_code == VOLUME_UP and ev.event_type == keyboard.KEY_DOWN:
     do()

    Boucle infinie qui attends un événement clavier (read_event), puis qui regarde si c'est la bonne touche et un appui (il y a un autre événement quand on lâche la touche qu'on ne veut pas ici) : elle appelle do. Pour info en python les boucle et autre if n'ont pas d'accolade, c'est l'indentation qui défini la portée des instructions.

    Tu mets tout ça tel quel dans un fichier demo.py par exemple (attention, ne le nomme surtout pas keyboard.py ça foutra en l'air l'import) et tu l'exécutes par sudo python3 demo.py (il faut être root car tu interceptes le clavier).

    C'est censé afficher "Button was pressed" à chaque fois que tu appuies sur ton bouton.

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.