Différences entre versions de « Pi-WiringPi-Utilitaire-GPIO »
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 108 : | Ligne 108 : | ||
Disposer des deux numéros d'identification (wiringPi et BCM_GPIO) permet de réaliser facilement des tableaux en références croisées. | Disposer des deux numéros d'identification (wiringPi et BCM_GPIO) permet de réaliser facilement des tableaux en références croisées. | ||
− | == | + | == Commande de chargement module == |
=== gpio load spi === | === gpio load spi === | ||
− | <nowiki>gpio load spi [buffer | + | <nowiki>gpio load spi [taille du buffer en KB]</nowiki> |
− | + | Charge le module kernel de gestion du bus SPI et permet, optionnellement, de définir la taille de la mémoire tampon (buffer) en KB (par multiple de 1024). | |
− | + | La valeur par défaut est de 4KB, ce qui est généralement plus que suffisant pour la plupart des applications qui échangent un octet/byte ou deux 2 à la fois sur le bus SPI. | |
+ | |||
+ | Les entrées /dev/spi* sont détenues (''owned'') par la personne utilisant le programme '''gpio''', il n'est donc pas nécessaire de faire fonctionner les programmes suivants en Root (a moins qu'il n'utilise d'autres fonctions de wiringPi) | ||
=== gpio load i2c === | === gpio load i2c === | ||
− | <nowiki>gpio load i2c [ | + | <nowiki>gpio load i2c [débit en Kb/sec]</nowiki> |
+ | |||
+ | Permet de charge le module kernel de gestion du bus I2C et permet, optionnellement, de fixer le débit (''baud rate'' en anglais) à une certaine vitesse en Kb/sec (par multiple de 1000). | ||
− | + | La débit est fixé à 100Kb/sec par défaut. | |
− | + | Les entrées /dev/I2c* sont détenues (''owned'') par la personne utilisant le programme '''gpio'', il n'est donc pas nécessaire de faire fonctionner les programmes suivants en Root (a moins qu'il n'utilise d'autres fonctions de wiringPi) | |
− | == /sys/class/gpio | + | == Commandes du mode /sys/class/gpio == |
=== gpio export === | === gpio export === | ||
− | <nowiki>gpio export < | + | <nowiki>gpio export <broche> in/out</nowiki> |
+ | |||
+ | Exporte la broche mentionnée (numéro de broche BCM-GPIO) comme entrée ou sortie et la rend disponible pour les programme utilisateur (fonctionnant sous le même utilisateur que le programme '''gpio'''). | ||
+ | |||
+ | Utilisez "in" pour déclarer la broche en entrée ("in" pour "input") | ||
− | + | Utilisez "out" pour déclarer la broche en sortie ("out" pour "output") | |
=== gpio unexport === | === gpio unexport === | ||
− | <nowiki>gpio unexport < | + | <nowiki>gpio unexport <broche></nowiki> |
− | + | Retire l'exportation pour la broche mentionnée. | |
=== gpio unexport all === | === gpio unexport all === | ||
<nowiki>gpio unexportall</nowiki> | <nowiki>gpio unexportall</nowiki> | ||
− | + | Retire toutes les broches exportées dans /sys/class/gpio . | |
=== gpio exports === | === gpio exports === | ||
<nowiki>gpio exports</nowiki> | <nowiki>gpio exports</nowiki> | ||
− | + | Cette commande imprime une liste de toutes les broches exportées via l'interface /sys/class/gpio (ainsi que leur mode). | |
=== gpio edge === | === gpio edge === | ||
− | <nowiki>gpio edge < | + | <nowiki>gpio edge <broche> rising/falling/both/none</nowiki> |
+ | |||
+ | Cela permet d'activer la capture d'un signal d'interruption sur la broche spécifiée. | ||
+ | |||
+ | L'interruption est activée sur base de la variation de signal sur la broche en fonction du mode mentionné. | ||
− | + | * rising: lorsque le signal de la broche passe du niveau bas vers le niveau haut. | |
+ | * falling: lorsque le signal de la broche passe du niveau haut vers le niveau bas. | ||
+ | * both: equivalent à rising + falling, donc sur les deux variations de niveau logique (vers le haut et vers le bas) | ||
+ | * none: pour désactiver la capture d'interruption | ||
− | + | {{ambox-stop|text=Le numero de broche dans mode système sont toujours les numéros de broches BCM-GPIO. }} | |
== Exemples == | == Exemples == | ||
Ligne 178 : | Ligne 193 : | ||
== Commandes PiFace == | == Commandes PiFace == | ||
− | + | PiFace est quelque peu limité car il dispose seulement de 8 broches d'entrées et de 8 broches de sorties qui sont fixés définitivement de façon matériel. | |
+ | |||
+ | Par conséquent, seul les commandes d'écriture (write) et de lecture (read) sont implémentée: | ||
+ | |||
+ | <nowiki>gpio -p write <broche> 0/1</nowiki> | ||
− | + | Ecrit la valeur 0 (éteind) ou 1 (actif) sur la broche de sortie du PiFace | |
− | + | <nowiki>gpio -p read <broche></nowiki> | |
− | + | Lit et affiche la valeur lue sur une broche d'entrée du PiFace. | |
− | + | <nowiki>gpio -p mode <broche> up/tri</nowiki> | |
− | + | Ce active (up) ou désactive (tri) la résistance pull-up interne sur la broche d'entrée mentionnée. Vous devez activer ces résistances Pull-Up si vous voulez utiliser les boutons poussoirs disponibles sur la carte PiFace. | |
− | |||
{{Pi-WiringPi-TRAILER}} | {{Pi-WiringPi-TRAILER}} |
Version actuelle datée du 2 octobre 2013 à 21:29
La commande "gpio"
WiringPi est distribué avec une programme séparé pour facilité la gestion du GPIO. Ce programme, appelé gpio, peut également être utilisé dans des scripts pour manipuler les broches du GPIO – lire les entrées et fixer l'état des sorties. Il est même possible d'écrire un programme entier en shell-script en utilisant la commande gpio... même si cela n'est pas terriblement efficace. Une autre façon d'atteindre le même but serait d'utiliser les fonctions system() en C/C++ ou leurs équivalents dans d'autres langages de programmation.
La commande gpio est conçue pour être installé comme un programme setuid et appelé par un utilisateur normal sans avoir besoin de sudo (ou d'être loggé en root). |
En plus de pouvoir contrôler les broches, l'utilitaire GPIO permet de:
- Export/Unexport des broches via l'interface /sys/class/gpio permettant d'accéder aux GPIO comme un système de fichier. L'interface est accessible aux programmes utilisateurs (donc pas besoin d'exécuter vos programmes en root ou avec sudo)
- Export des broches pour activer le déclenchement d'interruption (sur changement d'état) par l'intermédiaire de l'interface /sys/class/gpio.
- Contrôler les broches du périphérique PiFace.
- Charger les modules SPI et I2C et initialiser les permissions de /dev/ pour autoriser les lectures/écritures par les utilisateurs exécutant le programme gpio.
- Permet de configurer:
- La tailler du buffer SPI (la mémoire tampon SPI)
- le débit I2C ("baud rate" en anglais) au moment du chargement du module.
- Envoyer/écrire des valeurs vers le convertisseur digital/anaglogique (DAC) du Gertboard.
- Recevoir/lire les valeurs d'entrée du convertisseur Analogique/digital (ADC) du Gertboard.
- Déterminer la révision du Raspberry Pi.
Voir aussi les pages man pour le programme gpio pour avoir un aperçu de toutes les fonctionnalités disponibles.
Tapez la commande suivante dans un terminal pour accéder aux pages man de gpio.
man gpio
Utilisation
Version
Depuis une ligne de commande Linux:
gpio -v
Convention du brochage
Affiche la version du programme gpio.
gpio -g …
Le flag -g est optionel. Il permet d'interpréter le numéro de broche comme une broche BCM_GPIO plutôt que d'utiliser la numérotation standard adoptée par wiringPi.
Commandes d'entrée/sortie standard
Un peu d'anglais
Avant de sauter dans ce chapitre, il est peut-être opportun de faire un petit rappel d'anglais.
Les commandes utilisent des termes anglais... et en comprendre le vocabulaire permet de mieux les maîtriser.
- input : entrée (identifie une entrée). Souvent identifier par "in".
- output: sortie (identifie une sortie). Souvent identifier par "out".
- pin: broche.
- down: bas. Indique une niveau logique bas (0v), parfois identifier par "low".
- up: haut. Indique une niveau logique haut (3.3v), parfois identifier par "high".
- write: écrire. Symbolise généralement une opération où l'on modifie quelque-chose (comme l'état d'une broche du GPIO).
- read: lire. Symbolise une opération d'acquisition/lecture d'une information (comme lire l'état d'une broche du GPIO)
gpio mode
gpio [-g] mode <broche> in/out/pwm/up/down/tri
permet de configurer le mode d'une broche... si celle-ci est utilisée en entrée, en sortie, en PWM, ect. Cette commande permet également d'activer les résistances internes de pull-up/down, voire les désactiver.
- in: Activer la broche en entrée
- out: Activer la broche en sortie
- pwm: activer la broche en sortie PWM.
- up: activer la résistance pull-up
- down: activer la résistance pull-down
- tri:
Note: Voir notre article "Entrée Bouton - Résistance pull-up, pull-down et déparasitage" pour en appendre plus sur l'usage des résistances pull-up/pull-down.
gpio write
gpio [-g] write <broche> 0/1
Permet de modifier l'état d'une broche de sortie.
- 0: place la sortie à l'état bas ("low" en anglais), soit 0v.
- 1: place la sortie à l'état haut ("high" en anglais), soit 3.3v.
gpio pwm
gpio [-g] pwm <broche> <valeur>
Modifie le signal de PWM de la broche.
- Valeur: valeur du cycle utile, de 0 à 1023 pour un cycle utile de 0% à 100%.
Note: Voir notre article "PWM - La modulation de la largeur d'impulsion" pour en apprendre plus sur le signal PWM.
gpio read
gpio [-g] read <broche>
Lit et affiche la valeur logique correspond à la broche mentionnée.
Il affiche/retourne:
- 0 pour un état bas, "low" en anglais. Cela correspond à 0v.
- 1 pour un état haut, "high en anglais. Cela correspond à la tension de 3.3v .
gpio readall
gpio readall
Lit toutes les broches normalement accessible et retourne une table constituée de:
- leur numéro (les deux, celle de wiringPi et BCM_GPIO),
- le mode de la broche
- la valeur actuelle.
Disposer des deux numéros d'identification (wiringPi et BCM_GPIO) permet de réaliser facilement des tableaux en références croisées.
Commande de chargement module
gpio load spi
gpio load spi [taille du buffer en KB]
Charge le module kernel de gestion du bus SPI et permet, optionnellement, de définir la taille de la mémoire tampon (buffer) en KB (par multiple de 1024).
La valeur par défaut est de 4KB, ce qui est généralement plus que suffisant pour la plupart des applications qui échangent un octet/byte ou deux 2 à la fois sur le bus SPI.
Les entrées /dev/spi* sont détenues (owned) par la personne utilisant le programme gpio, il n'est donc pas nécessaire de faire fonctionner les programmes suivants en Root (a moins qu'il n'utilise d'autres fonctions de wiringPi)
gpio load i2c
gpio load i2c [débit en Kb/sec]
Permet de charge le module kernel de gestion du bus I2C et permet, optionnellement, de fixer le débit (baud rate en anglais) à une certaine vitesse en Kb/sec (par multiple de 1000).
La débit est fixé à 100Kb/sec par défaut.
Les entrées /dev/I2c* sont détenues (owned) par la personne utilisant le programme 'gpio, il n'est donc pas nécessaire de faire fonctionner les programmes suivants en Root (a moins qu'il n'utilise d'autres fonctions de wiringPi)
Commandes du mode /sys/class/gpio
gpio export
gpio export <broche> in/out
Exporte la broche mentionnée (numéro de broche BCM-GPIO) comme entrée ou sortie et la rend disponible pour les programme utilisateur (fonctionnant sous le même utilisateur que le programme gpio).
Utilisez "in" pour déclarer la broche en entrée ("in" pour "input")
Utilisez "out" pour déclarer la broche en sortie ("out" pour "output")
gpio unexport
gpio unexport <broche>
Retire l'exportation pour la broche mentionnée.
gpio unexport all
gpio unexportall
Retire toutes les broches exportées dans /sys/class/gpio .
gpio exports
gpio exports
Cette commande imprime une liste de toutes les broches exportées via l'interface /sys/class/gpio (ainsi que leur mode).
gpio edge
gpio edge <broche> rising/falling/both/none
Cela permet d'activer la capture d'un signal d'interruption sur la broche spécifiée.
L'interruption est activée sur base de la variation de signal sur la broche en fonction du mode mentionné.
- rising: lorsque le signal de la broche passe du niveau bas vers le niveau haut.
- falling: lorsque le signal de la broche passe du niveau haut vers le niveau bas.
- both: equivalent à rising + falling, donc sur les deux variations de niveau logique (vers le haut et vers le bas)
- none: pour désactiver la capture d'interruption
Le numero de broche dans mode système sont toujours les numéros de broches BCM-GPIO. |
Exemples
gpio mode 0 out gpio write 0 1
This uses the wiringPi pin numbers to set pin 0 as an output and then sets the pin to a logic 1.
gpio -g mode 0 in gpio -g read 0
This uses the BCM_GPIO pin numbering scheme and reads pin 0 (SDA0 on a Rev. 1 Raspberry Pi)
Internal pull up/down resistors
The GPIO lines have internal pull up or pull-down resistors which can be controlled via software when a pin is in input mode.
gpio mode 0 up gpio mode 0 down gpio mode 0 tri
These set the resistors to pull-up, pull-down and none respectively on wiringPi pin 0.
Commandes PiFace
PiFace est quelque peu limité car il dispose seulement de 8 broches d'entrées et de 8 broches de sorties qui sont fixés définitivement de façon matériel.
Par conséquent, seul les commandes d'écriture (write) et de lecture (read) sont implémentée:
gpio -p write <broche> 0/1
Ecrit la valeur 0 (éteind) ou 1 (actif) sur la broche de sortie du PiFace
gpio -p read <broche>
Lit et affiche la valeur lue sur une broche d'entrée du PiFace.
gpio -p mode <broche> up/tri
Ce active (up) ou désactive (tri) la résistance pull-up interne sur la broche d'entrée mentionnée. Vous devez activer ces résistances Pull-Up si vous voulez utiliser les boutons poussoirs disponibles sur la carte PiFace.
Source: WiringPi.com. WiringPi est une libraire sous licence GPL écrite par Gordon Henderson. Crédit: wiringpi.com
Traduit de l'anglais par Meurisse D. pour MCHobby.be
Traduit avec l'accord de Gordon Henderson, créateur de wiringPi - Translated with authorization of Gordon Henderson, creator of wiringPi
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.