Programmation des sorties depuis notre programme graphique



Prérequis:

Chapitre ici.


Programme:


Modification du programme créer pour l'interface graphique. Dans mon cas, led_gui.py.

Ouvrir le programme Python avec notepad++.



On va ajouter les bibliothèques pour utiliser les GPIO.


import RPi.GPIO as GPIO ## Import bibliothèque GPIO


Configuration de l'utilisation des GPIO.


GPIO.setmode(GPIO.BOARD) ## Utilisation des numéros de pin

GPIO.setwarnings(False)  #supression des alertes


Déclaration de la fonction globale cdeled


global cdeled



Maintenant nous allons créer une fonction qui sera appeler pour commander les GPIO du Raspberry. La fonction a deux paramètres: le 1er qui est la sortie et le 2eme qui est l'action.


def cdeled(parametre1,parametre2):

       GPIO.setup(int(parametre1), GPIO.OUT)

       if parametre2=="r":GPIO.cleanup() # reset

       if(parametre2=="off"):GPIO.output(int(parametre1), True) #Arret

       if(parametre2=="on"):GPIO.output(int(parametre1), False)  #marche



Après, nous allons créer un événement dans la fonction SetupUI sur un clique d'un RadioButton.


       self.radioButton_1.clicked.connect(self.buttonClicked)

       self.radioButton_2.clicked.connect(self.buttonClicked)

       self.radioButton_3.clicked.connect(self.buttonClicked)

       self.radioButton_4.clicked.connect(self.buttonClicked)

       self.radioButton_5.clicked.connect(self.buttonClicked)

       self.radioButton_6.clicked.connect(self.buttonClicked)

       self.radioButton_7.clicked.connect(self.buttonClicked)

       self.radioButton_8.clicked.connect(self.buttonClicked)




Ensuite, nous allons créer la fonction buttonClicked dans la class Ui_Form. Suivant le radioButton sélectionné, la fonction envoie la commande de la sortie.


   def buttonClicked(self):

       if self.radioButton_1.isChecked():cdeled("3","on")

       else:cdeled("3","off")

       if self.radioButton_2.isChecked():cdeled("5","on")

       else:cdeled("5","off")

       if self.radioButton_3.isChecked():cdeled("7","on")

       else:cdeled("7","off")

       if self.radioButton_4.isChecked():cdeled("8","on")

       else:cdeled("8","off")

       if self.radioButton_5.isChecked():cdeled("10","on")

       else:cdeled("10","off")

       if self.radioButton_6.isChecked():cdeled("12","on")

       else:cdeled("12","off")

       if self.radioButton_7.isChecked():cdeled("11","on")

       else:cdeled("11","off")

       if self.radioButton_8.isChecked():cdeled("13","on")

       else:cdeled("13","off")




Le programme complet ici.


Lancement du programme.

Dans l’interface graphique, lancer le terminal et taper la commande suivante dans votre dossier. Il faut les droits root pour piloter les entrées/sorties avec cette bibliothèque.


sudo python led_gui.py



Faire un clique sur une LED pour qu'elle s'allume.





Fonctionne en connexion à distance RDP mais pas en VNC.


Mise à jour 09/10/2014

Créé avec HelpNDoc Personal Edition: Environnement de création d'aide complet