Différences entre versions de « PiFace2-Manuel-Python »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
Ligne 105 : Ligne 105 :
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
from time import sleep
 
from time import sleep
import piface.pfio as pfio
+
import pifaceio as pfio
 
pfio.init()
 
pfio.init()
 
while(True):
 
while(True):

Version du 26 mars 2020 à 20:43


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Premiers pas avec Python

PiFace Digital 2 peut être contrôlé facilement en utilisant Python. Pour commencer, ouvrez un terminal (ligne de commande) et démarrez un interpréteur en saisissant la commande suivante:

python3

Pour utiliser le PiFace Digital 2 depuis Python, il faut importer le module pifacedigitalio :

import pifacedigitalio

Avant d'utiliser la carte PiFace, il faut initialiser la bibliothèque en faisant l'appel suivant:

pifacedigitalio.init()

Lire une entrée

Si vous désirez savoir si un bouton est enfoncé ou non, il faut utiliser la fonction digital_read :

pifacedigitalio.digital_read( numero_de_broche )

La fonction retourne 1 si l'entrée indiquée dans numero_de_broche (1 pour le bouton poussoir S1).

Si le bouton est enfoncé ou l'entrée est connecté sur la masse (GND). Sinon la fonction retourne 0.

Contrôler une sortie

Si vous désirez contrôler une sortie, il faut utiliser la fonction digital_write :

pifacedigitalio.digital_write( numero_de_broche, etat )

La fonction permet de fixer l'état de la broche numero_de_broche sur l'état 0 (inactif) ou 1 (actif).

L'état 1 active le collecteur ouvert (qui laisse passer le courant) et la LED correspondante.

L'instruction suivante active la sortie 2 et la LED 2 correspondante:

pifacedigitalio.digital_write( 2, 1 )

Les pas suivants

Une façon plus puissante et plus explicite de contrôler le PiFace est de passer par un objet PiFaceDigital.

En créant un objet de type PiFaceDigital, vous aurez accès à toutes les fonctionnalités du PiFace (incluant l'activation des pull-ups, l'input_port et output_port).

Démarrer un interpréteur python à l'aide de la commande:

python3

Instanciez ensuite un objet PiFaceDigital à l'aide de l'instruction suivante:

import pifacedigitalio
pfd = pifacedigitalio.PiFaceDigital()

Sorties

Pour fixer la première sortie (celle qui porte le numéro 0) sur l'état 1 (pour activer la sortie):

pfd.output_pins[0].value = 1

Notez le petit cliquetis du relais lorsqu'il s'active. La broche de sortie 0 contrôle également le premier relais.

Vous pouvez également désactiver la sortie numéro 0 (et le relais) en fixant la valeur de la sortie à 0:

pfd.output_pins[0].value = 0

Entrées

Vous pouvez lire la valeur d'une entrée à l'aide de l'instruction suivante:

pfd.input_pins[1].value

Essayez d'exécuter l'instruction ci-dessus en pressant le second bouton (qui porte le numéro 1) PUIS exécutée une seconde fois sans presser le bouton.

Vous devriez voir deux résultats différents.

input_port et output_port

Vous pouvez lire toutes les entrées en une seule opération en utilisant l'attribut input_port :

pfd.input_port.value

Input_port retourne une valeur numérique qui, une fois exprimée en valeur binaire, indique l'état de chaque entrée.

Il est également possible de contrôler toutes les sorties en une opération en manipulant l'attribut output_port :

pfd.output_port.value = 0xAA

Exemples python

Activer un relais

Les relais du PiFace Digital sont respectivement connecté sur les deux premières entrées 0 et 1. Vous pouvez donc contrôler ces deux relais à l'aide de la fonction digital_write().

Start a new Python interpreter and type the following:

import pifaceio as pfio
pfio.init()
# mettre la sortie 0 a l etat 1 (activer)
pfio.digital_write(0,1)

Clignoter une LED

Un programme qui fait clignoter une LED doit l'allumer et l'éteindre de façon répétitive (avec un délai entre chaque activation/désactivation).

from time import sleep
import pifaceio as pfio
pfio.init()
while(True):
    # activer la sortie 0 = allumer la LED
    pfio.digital_write(0,1)  
    # Attendre une seconde
    sleep(1)
    # désactiver la sortie 0 = eteindre la LED
    pfio.digital_write(0,0)
    sleep(1)

Lire une entrée

Il faut utiliser la fonction pfio.digital_read(pin) pour lire l'état d'une entrée. La fonction retourne 1 si le bouton est pressé (ou entrée activée) sinon elle retourne 0 .

Démarrez un nouvel interpréteur Python et saisissez les instructions suivantes:

import piface.pfio as pfio
pfio.init()
# lecture de l entree 0 (correspond au premier bouton)
pfio.digital_read(0)

Python affiche 0.

Maintenez le premier switch enfoncé (celui portant le libellé S0) et saisissez une nouvelle fois la commande pfio.digital_read(0) .

Cette fois Python defait afficher 1.



Traduction basée sur le document Technical DataSheet produit par Farnell

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.