mercredi 1 février 2017

Une interface graphique pour contrôler les sorties du Raspberry Pi (Python / Tkinter)

Cet article a été mis à jour le 1er novembre 2020 afin d'être pleinement compatible avec Python 3.

Il y a quelques années, j'avais partagé quelques scripts en Python permettant d'interagir avec les pins GPIO du Raspberry Pi.  Dans cette nouvelle version, j'utilise la bibliothèque Tkinter afin de réaliser en Python un programme comportant une interface graphique.


Lors de l'exécution du programme, une fenêtre comportant 3 cases à cocher s'affiche à l'écran.  Il s'agit de cocher une case pour que la pin GPIO correspondante se mette à l'état logique "haut", et de décocher la case pour que la pin GPIO correspondante se mette à l'état logique "bas".


Le circuit

Afin de pouvoir visualiser facilement l'état logique des pins GPIO, une LED associée à une résistance de protection est branchée à chacune des broches suivantes:  GPIO 2, GPIO 3 et GPIO 4 (notation BCM).

Évidemment, il est facile de modifier le programme afin d'utiliser d'autre sorties.


Le script

Deux bibliothèques sont essentielles au bon fonctionnement de notre programme, et elles sont toutes deux incluses par défaut avec Python dans la distribution de base de Raspbian:  il s'agit de RPi.GPIO et de Tkinter.

Avec la commande "fenetre.geometry("250x150+300+300")", nous créons un objet fenêtre, que nous nommons "fenetre", dont les dimensions initiales sont 250 pixels de large et 150 pixels de hauteur, et positionnée à 300 pixels à droite du côté gauche de la fenêtre, et 300 pixels plus bas que le haut de la fenêtre.

Chaque case à cocher est associée à une variable ainsi qu'à une procédure ("command"):

"bouton = Checkbutton(fenetre, text="GPIO 2", variable=gpio2, command=miseAjour)".

La variable "gpio2" prend automatiquement la valeur "1" lorsque la case est cochée, et "0" lorsque la case n'est pas cochée (c'est géré automatiquement par la bibliothèque).

La routine "miseAjour" se met en branle chaque fois qu'une des cases à cocher est cliquée (que ce soit pour la cocher, pour pour la décocher).  Cette routine règle le niveau logique des broches GPIO 2, 3 et 4 à la valeur de la variable qui leur est associée (gpio2, gpio3 et gpio4).



Yves Pelletier   (TwitterFacebook)

2 commentaires:

  1. Bonjour j aimerai avoir le fichier sur mon bureau et en un simple clique je dois tomber sur la fenêtre avec les choix des leds a cocher et non rentrer et l’ouvrir par des lignes de code, pouvez vous m'aider sil vous plait..

    RépondreSupprimer