Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
raspberrypi:linux:gpio [2021/08/11 09:19] – modification externe 127.0.0.1 | raspberrypi:linux:gpio [2021/08/12 08:25] (Version actuelle) – phil |
---|
{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[raspberrypi:linux:raspilinux|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]] | [[raspberrypi:linux:raspilinux|{{ :iconemaison.jpg?nolink&25|Sommaire Raspberry Pi sous Linux}}]] |
| |
====== Le port GPIO ====== | ===== Raspberry Pi - Le port GPIO ===== |
| |
[Mise à jour le 7/7/2019] | [Mise à jour le 7/7/2019] |
{{ :raspberrypi:iconraspi.png?nolink&60|}}{{ :raspberrypi:linux:python.png?nolink&80|}} | |
| |
=== Sources === | * **Sources** |
* Python et le port GPIO : <html><a href="https://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/" target="_blank">Developper.com</a></html> | * Python et le port GPIO : <html><a href="https://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/" target="_blank">Developper.com</a></html> |
* Un module pour contrôler les entrées, sorties du Raspberry pi : <html><a href="https://pypi.org/project/RPi.GPIO/" target="_blank">RPi.GPIO x.x.x</a></html> | * Un module pour contrôler les entrées, sorties du Raspberry pi : <html><a href="https://pypi.org/project/RPi.GPIO/" target="_blank">RPi.GPIO x.x.x</a></html> |
* Exemples et documentation : <html><a href="https://sourceforge.net/p/raspberry-gpio-python/wiki/Home/" target="_blank">raspberry-py-gpio-python</a></html> | * Exemples et documentation : <html><a href="https://sourceforge.net/p/raspberry-gpio-python/wiki/Home/" target="_blank">raspberry-py-gpio-python</a></html> |
| |
| * **Opérations nécessaires à la mise en oeuvre du port GPIO Python** \\ Pour mettre en oeuvre le port GPIO en Python : |
=== Opérations nécessaires à la mise en oeuvre du port GPIO Python === | - Mettre à jour le module RPi.GPIO (préinstaller dans Raspbian) |
Pour mettre en oeuvre le port GPIO en Python : | - Dans le programme : |
- Mettre à jour le module RPi.GPIO (préinstaller dans Raspbian) | - Importer le module Rpi.GPIO |
- Dans le programme : | - Identifier le mode de numérotation des broches utilisées |
- Importer le module Rpi.GPIO | - Configurer les broches (entrée, sortie) |
- Identifier le mode de numérotation des broches utilisées | - Lire ou écrire les broches |
- Configurer les broches (entrée, sortie) | |
- Lire ou écrire les broches | |
| |
Ces opérations sont décrites ci-dessous. | Ces opérations sont décrites ci-dessous. |
| |
{{ :raspberrypi:linux:thonny.png?nolink&60|}} | {{ :raspberrypi:linux:thonny.png?nolink&60|}} |
=== IDE utilisé === | * **IDE utilisé** |
* Environnement de développpement intégré disponible avec Raspbian : <html><a href="https://korben.info/thonny-un-ide-python-pour-les-debutants.html">Thonny</a></html> | * Environnement de développpement intégré disponible avec Raspbian : <html><a href="https://korben.info/thonny-un-ide-python-pour-les-debutants.html">Thonny</a></html> |
| |
---- | ---- |
| |
===== Aspect matériel ===== | ==== 1. Aspect matériel ==== |
==== Le connecteur GPIO du raspberry Pi 3 ==== | |
| === 1.1 Le connecteur GPIO du raspberry Pi 3 === |
Les broches GPIO((Les ports **GPIO** (anglais : **G**eneral **P**urpose **I**nput/**O**utput, littéralement Entrée-sortie à **usage général**) sont des ports d'entrées-sorties très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l'électronique embarquée.<html><a href="https://fr.wikipedia.org/wiki/General_Purpose_Input/Output" target="_blank">Wikipédia</a></html> )) du Raspberry Pi 3 sont reliées à un connecteur **40 points**. **26 broches GPIO sont accessibles** (GPIO2 à GPIO27). Ce sont des entrées/sorties((Dans un système à base de processeur, de microprocesseur, de microcontrôleur ou d'automate, on appelle entrées-sorties les échanges d'informations entre le processeur et les périphériques qui lui sont associés. De la sorte, le système peut réagir à des modifications de son environnement, voire le contrôler. Elles sont parfois désignées par l'acronyme I/O, issu de l'anglais Input/Output ou encore E/S pour Entrées/Sorties. <html><a href="https://fr.wikipedia.org/wiki/Entr%C3%A9es-sorties" target="_blank">Wikipédia</a></html> )) logiques capables de fournir ou de recevoir des signaux sous la forme de tensions (0 ou 3,3V). Certaines broches permettent de constituer un bus (I2C, SPI, UART). | Les broches GPIO((Les ports **GPIO** (anglais : **G**eneral **P**urpose **I**nput/**O**utput, littéralement Entrée-sortie à **usage général**) sont des ports d'entrées-sorties très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l'électronique embarquée.<html><a href="https://fr.wikipedia.org/wiki/General_Purpose_Input/Output" target="_blank">Wikipédia</a></html> )) du Raspberry Pi 3 sont reliées à un connecteur **40 points**. **26 broches GPIO sont accessibles** (GPIO2 à GPIO27). Ce sont des entrées/sorties((Dans un système à base de processeur, de microprocesseur, de microcontrôleur ou d'automate, on appelle entrées-sorties les échanges d'informations entre le processeur et les périphériques qui lui sont associés. De la sorte, le système peut réagir à des modifications de son environnement, voire le contrôler. Elles sont parfois désignées par l'acronyme I/O, issu de l'anglais Input/Output ou encore E/S pour Entrées/Sorties. <html><a href="https://fr.wikipedia.org/wiki/Entr%C3%A9es-sorties" target="_blank">Wikipédia</a></html> )) logiques capables de fournir ou de recevoir des signaux sous la forme de tensions (0 ou 3,3V). Certaines broches permettent de constituer un bus (I2C, SPI, UART). |
| |
{{ :raspberrypi:linux:kit_composants_gpio_01.png?nolink&600 |}} | {{ :raspberrypi:linux:kit_composants_gpio_01.png?nolink&600 |}} |
| |
===== Aspect logiciel ===== | ====2. Aspect logiciel ==== |
==== Mise à jour du module RPi.GPIO ==== | ===2.1 Mise à jour du module RPi.GPIO === |
Le module <html><a href="https://pypi.python.org/pypi/RPi.GPIO" target="_blank">RPi.GPIO</a></html> facilite l'accès aux GPIO en Python. Il est installé par défaut dans Raspbian. Pour effectuer une mise à jour, consulter ce <html><a href="https://sourceforge.net/p/raspberry-gpio-python/wiki/install/" target="_blank">lien</a></html>. | Le module <html><a href="https://pypi.python.org/pypi/RPi.GPIO" target="_blank">RPi.GPIO</a></html> facilite l'accès aux GPIO en Python. Il est installé par défaut dans Raspbian. Pour effectuer une mise à jour, consulter ce <html><a href="https://sourceforge.net/p/raspberry-gpio-python/wiki/install/" target="_blank">lien</a></html>. |
| |
> **Remarque** : Ce module n'est pas prévu pour des applications temps réel. | <note>Ce module n'est pas prévu pour des applications temps réel.</note> |
| |
==== Numérotation des broches dans le programme ==== | ===2.2 Numérotation des broches dans le programme === |
{{ :raspberrypi:linux:brochep1rpy.png?nolink|}} | {{ :raspberrypi:linux:brochep1rpy.png?nolink|}} |
Dans RPi.GPIO, il existe deux façons de numéroter les broches d'entrée / sortie dans un programme Python. | Dans RPi.GPIO, il existe deux façons de numéroter les broches d'entrée / sortie dans un programme Python. |
</code> | </code> |
| |
==== Exemples de mise en oeuvre du GPIO ==== | ===2.3 Exemples de mise en oeuvre du GPIO === |
* **Affichage de la version de RPi.GPIO** | * **Affichage de la version de RPi.GPIO** |
| |
</code> | </code> |
| |
> **Résultat attendu** : vers : x.x.x et des informations sur la carte utilisée | * **Résultat attendu** : vers : x.x.x et des informations sur la carte utilisée |
| |
* **Configuration d'une broche du GPIO en sortie** | * **Configuration d'une broche du GPIO en sortie** |
</file> | </file> |
| |
> **Résultat attendu** : la LED clignote | * **Résultat attendu** : la LED clignote |
| |
* **Configuration d'une broche du GPIO en entrée** | * **Configuration d'une broche du GPIO en entrée** |
* **Lecture de l'état d'un bouton-poussoir** | * **Lecture de l'état d'un bouton-poussoir** \\ A faire |
A faire | |
==== Pour aller plus loin ==== | === Pour aller plus loin... === |
PWM, Interruptions, I2C, SPI : <html><a href="https://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/" target="_blank">Developper.com</a></html> | PWM, Interruptions, I2C, SPI : <html><a href="https://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/" target="_blank">Developper.com</a></html> |