GPIO: tout sur les connexions Raspberry Pi 4 et 3

GPIO Raspberry Pi 4

Les Broches GPIO de la carte Raspberry Pi 4, 3, ainsi que ses prédécesseurs, fournissent à la carte SBC des capacités similaires à celles qu'Arduino peut avoir, car avec elles, vous pouvez créer des projets électroniques très intéressants contrôlés depuis le système d'exploitation au moyen de code dans différents langages, tels que Python.

Cela fait de la carte plus qu'un simple ordinateur bon marché. Il vous permettra de connecter une multitude de éléments électroniques que vous pouvez utiliser avec Arduino, mais qui peut également être contrôlé à partir du Pi. Dans ce guide, je vais essayer de vous donner le plus d'informations possible sur ces broches GPIO afin que vous puissiez commencer à en profiter ...

Qu'est-ce que GPIO?

GPIO

GPIO est l'acronyme de General Purpose Input / Output, c'est-à-dire General Purpose Input / Output. Différents produits électroniques peuvent l'avoir, comme les puces elles-mêmes ou certaines cartes PCB telles que ce Raspberry Pi. Comme son nom l'indique, ce sont des broches qui peuvent être configurées pour exécuter différentes fonctions, elles sont donc à usage général et non pour une utilisation spécifique.

Ce sera l'utilisateur au moment de l'exécution qui pourra configurer ces broches GPIO pour qu'ils fassent ce qu'il veut. Cela peut être fait de différentes manières, par exemple avec certains codes ou scripts de la console ou avec le programme Python, qui est l'un des moyens les plus simples et les plus préférés en raison de la quantité d'options dont vous disposez.

De cette façon, le Raspberry Pi a non seulement une série de ports et interfaces pour connecter plusieurs appareils standard, mais ajoutez ces broches GPIO afin de pouvoir ajouter d'autres appareils électroniques ou des projets de création que vous avez créés vous-même. De la même manière que vous le feriez avec Arduino et ses broches d'E / S pour le contrôle.

Y non exclusif à Arduino ou Raspberry Pi, tout comme les autres cartes SBC et produits intégrés similaires.

Fonctionnalités GPIO

Et entre ses caractéristiques le plus remarquable:

  • Ils peuvent être configuré si comme entrée comme sortie. Ils ont cette dualité comme cela arrive à ceux de Arduino.
  • Les broches GPIO aussi peut être activé et désactivé par code. Autrement dit, ils peuvent être réglés sur 1 (niveau de tension élevé) ou 0 (niveau de tension faible).
  • Bien sûr, ils peuvent lire des données binaires, comme les uns et les zéros, c'est-à-dire le signal de tension ou son absence.
  • Valeurs de sortie de Lire et écrire.
  • Les valeurs d'entrée peuvent être configurées dans certains cas comme événements afin qu'ils génèrent un certain type d'action sur la carte ou le système. Certains systèmes embarqués les utilisent comme IRQ. Un autre cas est de configurer que lorsqu'une ou plusieurs broches sont actives par certains capteurs, effectuez une action ...
  • Concernant la tension et l'intensité, il faut bien connaître les capacités maximales acceptables pour la carte, en l'occurrence le Raspberry Pi 4 ou 3. Il ne faut pas les passer pour éviter de l'endommager.

À propos, lorsqu'un groupe de broches GPIO est groupé, comme c'est le cas avec le Raspberry Pi, le groupe est appelé Port GPIO.

Les broches GPIO du Raspberry Pi

PI GPIO FRAMBOISE

Schéma valable pour les versions 4, 3, Zero

Nouveau Cartes Raspberry Pi 4 et version 3 Ils sont équipés d'un grand nombre de broches GPIO. Toutes les versions n'offrent pas le même montant, ni ne sont numérotées de la même manière, il faut donc faire attention à cela pour bien savoir comment établir la connexion en fonction du modèle et de la révision que vous avez.

Mais ce qui est plus générique, ce sont les types de GPIO que vous pouvez trouver dans le port des cartes Raspberry Pi. Et ce sera la première chose que je voudrais préciser, puisque c'est ainsi que vous saurez les types de broches vous pouvez compter sur vos projets:

  • AlimentationCes broches sont utilisées pour connecter les lignes électriques ou le câblage de vos projets électroniques. Ils correspondent à des broches similaires à celles de la carte Arduino, et qui fournissent des tensions de 5v et 3v3 (3.3v limité à une charge de 50mA). De plus, vous trouverez également ceux au sol (GND ou Ground). Si vous n'utilisez pas de sources d'alimentation externes telles que des piles ou des adaptateurs, ces broches peuvent être d'une grande aide pour alimenter votre circuit.
  • DNC (ne pas connecter): ce sont des broches qui existent dans certaines versions et qui n'ont aucune fonction, mais que dans les nouvelles cartes, elles ont un autre but. Vous ne les trouverez que dans des modèles plus primitifs du Pi. Dans les nouveaux 3 et 4, ils seront généralement marqués GND, pouvant s'intégrer dans le groupe précédent.
  • Broches configurables: Ce sont les GPIO normaux, et ils peuvent être programmés par des codes comme je l'expliquerai plus tard pour faire ce dont vous avez besoin.
  • Épingles spéciales: ce sont des connexions destinées à des connexions spéciales ou des interfaces telles que les connexions série UART, TXD et RXD, etc., comme cela se produit avec Arduino. Vous en trouverez même comme SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, etc. Ils se démarquent parmi eux:
    • PWM, qui permet de réguler la largeur d'impulsion comme nous l'avons vu dans un article précédent. Sur les Raspberry Pi 3 et 4, ce sont les GPIO12, GPIO13, GPIO18 et GPIO19.
    • SPI est une autre interface de communication dont j'ai également parlé dans un autre article. Dans le cas des nouvelles cartes à 40 broches, ce sont les broches (avec différents canaux de communication comme vous pouvez le voir):
      • SPI0 : MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1 : MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C est un autre lien que j'ai également expliqué dans ce blog. Ce bus est composé du signal de données (GPIO2) et de l'horloge (GPIO3). En plus des données EEPROM (GPIO0) et de l'horloge EEPROM (GPIO1).
    • Série, une autre communication très pratique avec les broches TX (GPIO14) et RX (GPIO15) comme celles que vous pouvez trouver sur la carte Arduino UNO.

Rappelez-vous que les GPIO sont l'interface entre le Raspberry Pi et le monde extérieur, mais ils ont ses limites, en particulier électrique. Une chose que vous devez prendre en compte pour ne pas gâcher la carte est de vous rappeler que ces broches GPIO sont généralement sans tampon, c'est-à-dire sans tampon. Cela signifie qu'ils n'ont pas de protection, il faut donc surveiller les amplitudes de tension et d'intensité appliquées pour ne pas se retrouver avec une plaque inutile ...

Différences GPIO entre les versions

Anciennes broches GPIO Raspberry Pi

Comme j'ai dit, tous les modèles ne sont pas les mêmes brochesVoici quelques schémas pour que vous puissiez voir les différences entre les modèles et ainsi pouvoir vous concentrer sur les Raspberry Pi 4 et 3, qui sont les plus récents et ceux que vous avez probablement en votre possession. Il diffère entre (tous les groupes partagent les mêmes broches):

  • Raspberry Pi 1 Model B Rev 1.0, avec 26 broches légèrement différentes de Rev2.
  • Raspberry Pi 1 modèle A et B Rev 2.0, les deux modèles avec 26 broches.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero et Zero W, ainsi que des modèles 4. Tous avec un connecteur GPIO à 40 broches.

Que puis-je brancher sur les GPIO?

Chapeau Raspberry Pi

Vous pouvez non seulement connecter des appareils électroniques comme transistors, capteurs d'humidité / température, thermistances, moteurs pas à pas, LED, etc. Vous pouvez également connecter des composants ou des modules créés spécifiquement pour le Raspberry Pi et qui étendent les capacités de la carte au-delà de ce qui est inclus dans la base.

Je fais référence au célèbre chapeaux ou chapeaux et des assiettes que vous pouvez trouver sur le marché. Il existe de nombreux types, de ceux utilisés pour contrôler les moteurs avec des pilotes, à d'autres pour créer un cluster informatiqueavec Panneau DEL contrôlable, à ajouter Capacité TV DVB, écran LCD, etc.

Ces chapeaux ou chapeaux Ils sont montés sur la carte Raspberry Pi, correspondant aux GPIO nécessaires à son fonctionnement. Par conséquent, son assemblage est assez simple et rapide. Bien sûr, assurez-vous de la version de plaque compatible avec chaque chapeau, puisque le port GPIO est différent comme vous l'avez vu ...

Je dis cela au cas où vous auriez une assiette plus ancienne, puisque les chapeaux sont compatible uniquement avec le plus récent. Tout comme les modèles Raspberry Pi Model A +, B +, 2, 3 et 4.

Introduction à l'utilisation de GPIO sur le Raspberry Pi

Sortie de commande de brochage

Source: Raspberry Pi

Pour commencer, sur Raspbian, vous pouvez ouvrir la console et taper la commande brochageCe qu'il vous renverra est une image dans le terminal avec les broches GPIO disponibles sur votre carte et à quoi chacune sert. Quelque chose de très pratique pour l'avoir toujours présent au moment du travail pour ne pas être confus.

Premier projet: faire clignoter une LED avec les GPIO

GPIO avec LED sur Raspberry Pi

La façon la plus simple de créer une sorte de "Bonjour tout le monde" avec les GPIO consiste à utiliser une simple LED connectée aux broches du Raspberry Pi afin que vous puissiez voir comment elles fonctionnent. Dans ce cas, je l'ai connecté à GND et l'autre à la broche 17, bien que vous puissiez choisir une autre des broches normales ...

Une fois connecté, vous pouvez les contrôler depuis Raspbian utiliser le terminal. Sous Linux, des fichiers spécifiques sont utilisés comme ceux du répertoire / sys / class / gpio /. Par exemple, pour créer un fichier avec la structure nécessaire pour commencer à travailler:

echo 17 > /sys/class/gpio/export

Ensuite vous pouvez configurer comme une entrée (in) ou comme une sortie (out) cette broche 17 choisie pour notre exemple. Vous pouvez le faire très facilement avec:

echo out > /sys/class/gpio/gpio17/direction

Dans ce cas en tant que sortie, puisque nous voulons envoyer une impulsion électrique à la LED pour l'allumer, mais s'il s'agissait d'un capteur, etc., vous pouvez l'utiliser. Maintenant pour activer (1) ou désactiver (0) la LED que vous pouvez utiliser:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Si vous souhaitez passer à un autre projet et supprimer l'entrée créé, vous pouvez le faire de cette façon:

echo 17 > /sys/class/gpio/unexport

En passant, vous pouvez également rassembler toutes les commandes nécessaires à votre projet, comme toutes les précédentes, les enregistrer dans un type de fichier script bash puis exécutez-les en lots tous à la fois, au lieu de les taper un par un. Ceci est pratique lorsque vous répétez le même exercice plusieurs fois, vous n'avez donc pas à réécrire. Courez et partez. Par exemple:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Une fois que vous avez terminé, vous enregistrez et vous pouvez lui donner les autorisations d'exécution et d'exécution appropriées le scénario pour que la LED s'allume, attendez 1.3 seconde et éteignez comme ça en boucle ...

chmod +x led.sh
./led.sh

Progression de la programmation

code source du langage de programmation

Évidemment, ce qui précède fonctionne pour les petits projets électroniques avec peu de composants, mais si vous voulez créer quelque chose de plus avancé, au lieu des commandes, vous pouvez utiliser langages de programmation pour créer différents scripts ou codes sources qui automatisent l'opération.

Ils peuvent être utilisés différents outils à programmer, avec des langages très différents. Les bibliothèques que la communauté a développées vous facilitent grandement les choses, telles que WiringPi, sysfs, pigpio, etc. Les programmes peuvent être très variés, de Python, qui est l'option préférée de beaucoup, en passant par Ruby, Java, Perl, BASIC et même C #.

Officiellement, le Raspberry Pi vous propose de nombreuses installations pour programmer vos GPIO, tels que:

  • Scratch, pour ceux qui ne savent pas programmer et veulent utiliser les blocs de puzzle de ce projet avec lesquels Arduino peut également être programmé, etc. La programmation avec des blocs graphiques est assez intuitive et très pratique pour le domaine de l'éducation.
  • Python: Ce langage de programmation interprété simple vous permet de créer des codes simples et puissants, avec une multitude de bibliothèques à votre disposition pour faire presque tout ce que vous imaginez.
  • C / C ++ / C #: ce sont des langages de programmation plus puissants pour créer des binaires avec lesquels interagir avec les GPIO. Vous pouvez le faire de plusieurs manières, en utilisant le formulaire standard ou l'interface du noyau via la bibliothèquelibgpiod, mais aussi via une bibliothèque tierce telle que cochon.
  • Traitement3, similaire à l'Arduino.

Choisissez de manière flexible celui que vous aimez le plus ou que vous pensez être simple.


4 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   ennemi dit

    Très bel article sur le démarrage chez Rasperry

    1.    Isaac dit

      Merci beaucoup.

      1.    Ruth Médine dit

        êtes-vous l'auteur?

        1.    Isaac dit

          Oui