862-1-Programmation des sorties
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