Raspberry Pi 4 Pins – Guide Pratique Complet

La carte Raspberry Pi 4 a un en-tête GPIO avec 40 broches. Cet en-tête GPIO est également le même pour les cartes Raspberry Pi 3. Ce guide s'applique donc aux deux versions.

Les GPIO vous permettent d'utiliser facilement les fonctionnalités matérielles et la communication, directement depuis un ordinateur - le microprocesseur Raspberry Pi. Il rapproche beaucoup le Raspberry Pi 4 des applications matérielles, le rendant parfait pour être intégré dans une application ou un produit matériel : un robot, une application de rétro-gaming, etc.

Dans ce guide complet des broches Raspberry Pi 4, je vais décomposer toutes les broches de l'en-tête GPIO et vous apprendrez ce que vous pouvez/ne pouvez pas faire avec elles.

En cours de route, je ferai quelques comparaisons avec les broches des cartes Arduino. Vous découvrirez que les broches peuvent être assez similaires pour certaines fonctionnalités. À la fin, je vous donnerai plus de détails sur les différences entre les broches Arduino et Raspberry Pi. Si vous êtes intéressé par les broches Arduino, consultez ce tutoriel : Arduino Uno Pinout Guide .

>> Regardez cette vidéo comme ressource supplémentaire à cet article :

Vous apprenez à utiliser Raspberry Pi pour construire vos propres projets ?

Découvrez Raspberry Pi pour les débutants et apprenez étape par étape.

Après avoir regardé la vidéo, abonnez-vous à la chaîne Youtube Robotics Back-End pour ne pas rater les prochains tutoriels !

Table des matières

Présentation du Raspberry Pi 4 broches

Voici un aperçu complet de tous les GPIO et de leur fonction principale.

Maintenant, décomposons chaque broche ou groupe de broches et voyons ce qu'elles peuvent faire.

Un mot d'avertissement

Avant de brancher quoi que ce soit sur une broche Raspberry Pi 4, vous devez savoir que vous pouvez facilement endommager la carte si vous faites quelque chose de mal. Il n'y a pas de réelle sécurité matérielle en ce qui concerne les broches matérielles du Raspberry Pi.

Si vous connectez directement une broche de masse (GND) à une broche 3,3 V, eh bien… Vous risquez de détruire votre carte Raspberry Pi à la seconde où ces broches sont connectées ensemble.

Alors, soyez très prudent lorsque vous branchez quelque chose ou lorsque vous créez un circuit de test . Si vous avez le moindre doute, vérifiez deux fois, trois fois et demandez de l'aide à quelqu'un avant de brûler votre planche.

Mais si vous suivez quelques règles de base et du bon sens, vous n'aurez rien à craindre !.

Broches de terre

La masse est très utile pour faire une référence commune entre tous les composants de votre circuit. N'oubliez jamais de connecter tous les composants à la terre.

Si vous connectez 2 circuits ensemble, ajoutez un fil entre les deux masses pour le rendre commun. Si vous ajoutez un nouveau capteur/actionneur à un circuit existant, connectez la masse du composant à la masse du circuit.

C'est très important. Sans cela, vous risquez de brûler certaines parties du circuit, vous pouvez avoir des composants qui ne fonctionnent pas correctement, donner des valeurs erronées, etc.

8 des 40 GPIO sont connectés à la terre. Vous pouvez les trouver avec les 3 lettres GND.

Un avertissement supplémentaire : ne jamais connecter la masse directement à une broche d'alimentation (3,3V ou 5V) ! Cela crée un court-circuit et peut définitivement brûler votre carte Raspberry Pi 4.

Broches d'alimentation

Vous pouvez trouver 2 broches apportant 3,3V et 2 broches apportant 5V.

Ces broches peuvent être utilisées pour alimenter des composants tels que des capteurs ou de petits actionneurs. A noter qu'ils ne sont certainement pas assez puissants pour actionner des moteurs tels que des servomoteurs ou des moteurs pas à pas. Pour cela, vous aurez besoin d'une source d'alimentation externe.

Les broches d'alimentation sont utilisées comme source pour alimenter des composants externes , et non pour alimenter le Raspberry Pi lui-même à partir d'une source externe. (Eh bien, il existe un moyen d'alimenter le Raspberry Pi à partir de l'en-tête GPIO, mais vous avez une forte probabilité de le graver, utilisez donc simplement le port micro-USB)

Et juste un autre mot d'avertissement : comme indiqué précédemment dans la section Broches de masse, ne connectez jamais une des broches d'alimentation directement à l'une des GND du Raspberry Pi 4 !

Broches réservées

Les broches 27 et 28 sont des broches réservées. Ils sont généralement utilisés pour la communication I2C avec une EEPROM.

Si vous commencez juste avec les broches Raspberry Pi 4, ne connectez rien à ces broches. Il existe de nombreuses autres broches disponibles que vous pouvez utiliser.

Eh bien, ce sont 14 emplacements déjà pris pour GND, l'alimentation et les broches réservées. Voyons maintenant comment les 26 autres GPIO sont utilisés pour la communication.

Raspberry Pi 4 GPIO

GPIO signifie entrée/sortie à usage général. Fondamentalement, c'est une broche que vous pouvez utiliser pour écrire des données sur des composants externes (sortie) ou lire des données à partir de composants externes (entrée).

Si vous intégrez votre carte Raspberry Pi avec certains composants matériels, l'en-tête GPIO deviendra très utile.

Les GPIO vous permettront de lire certains capteurs de base (ex : infrarouge), de contrôler certains actionneurs (ceux qui fonctionnent avec un mode ON/OFF), et de communiquer avec d'autres cartes matérielles, telles que Raspberry Pi, Arduino, Beaglebone, Jetson Nano, etc.

Les GPIO sont des broches numériques

Les GPIO Raspberry Pi 4 sont assez similaires à ce que nous appelons les « broches numériques » sur une carte Arduino.

Vous devez d'abord choisir si vous souhaitez les utiliser comme entrée ou sortie. Si vous configurez un GPIO en entrée, vous pourrez y lire une valeur : HAUT ou BAS (1 ou 0). Et si vous configurez un GPIO en sortie, vous pourrez y écrire une valeur, également HIGH ou LOW.

Une broche numérique n'a que deux états. LOW signifie généralement 0V et HIGH signifie 3,3V (avec quelques tolérances). C'est très simple, c'est comme un interrupteur que vous allumez et éteignez.

Remarque : lorsque vous définissez le mode pour un GPIO en tant que sortie, après avoir démarré le Pi, vous pouvez vous attendre à un état par défaut différent pour différents GPIO .

Tension GPIO

Tous les GPIO fonctionnent à 3,3V. Il est important que vous le sachiez, au cas où vous auriez besoin de brancher un composant avec une tension différente.

Parfois, vous trouverez des capteurs alimentés en 5V, mais toutes les broches de communication fonctionnent en 3,3V. Dans ce cas, pas de problème : vous pouvez utiliser la broche d'alimentation 5V du Raspberry Pi pour alimenter le composant, puis utiliser n'importe quel GPIO 3,3V pour la communication. Si vous ne mélangez pas le signal 5V avec les signaux 3,3V, tout devrait bien se passer.

Maintenant, si vous devez faire communiquer directement vos GPIO Raspberry Pi 4 avec des broches 5V (ex: Arduino Uno ou Mega), vous devrez utiliser un décaleur de niveau 3,3V à 5V. Vous pouvez soit en acheter un, soit en construire un vous-même.

Si vous utilisez des cartes Arduino 3,3 V telles que Due, Zero ou M0, vous n'aurez pas besoin d'ajouter un décaleur de niveau 3,3 V à 5 V, et vous pouvez brancher les broches Arduino directement sur les GPIO Raspberry Pi 4.

Comment utiliser les GPIO

Voici à nouveau l'en-tête GPIO :

Pour utiliser un GPIO, vous devez d'abord connaître son numéro.

Comme vous pouvez le voir, les numéros de broche et les numéros GPIO sont différents. Les numéros de broche sont en gris et les numéros GPIO en orange. Selon la bibliothèque que vous utilisez pour manipuler les GPIO, vous devrez soit utiliser le numéro de la broche, soit le numéro GPIO. Par exemple, la broche 29 correspond au GPIO 5. Chaque fois que vous avez un doute, vérifiez à nouveau le brochage et vous saurez !

Ainsi, pour utiliser l'un de ces GPIO, vous devez d'abord le configurer en entrée ou en sortie, puis vous pouvez y écrire ou lire à partir de celui-ci.

Maintenant, vous vous demandez peut-être : comment configurer et utiliser les GPIO à partir de votre code ? Avez-vous besoin de vous plonger dans des éléments matériels complexes pour le faire ?

Eh bien, bonne nouvelle pour vous. Il existe au moins 2 bibliothèques qui vous permettront d'utiliser facilement ces broches. Pour Python, vous pouvez utiliser RPi.GPIO, et pour Cpp, vous pouvez utiliser WiringPi.

Ces bibliothèques ont été développées pour que vous puissiez utiliser les broches Raspberry Pi comme vous utiliseriez les broches Arduino , ce qui signifie que toutes les choses complexes sont cachées et que vous pouvez les utiliser avec seulement quelques lignes de code.

Par exemple, pour définir GPIO 17 (broche 11) comme sortie/haut :

// Avec WiringPi (Cpp)

pinMode ( 17, SORTIE ) ; 

digitalWrite ( 17, HAUT ) ;

# avec RPi.GPIO (Python)

GPIO. setmode ( GPIO.BCM ) # Choisissez BCM pour utiliser les numéros GPIO au lieu des numéros de broche

GPIO. configuration ( 17 , GPIO.OUT )

GPIO. sortie ( 17 , GPIO.HIGH )

Pour faire communiquer 2 cartes entre elles, c'est assez simple : vous allez configurer un GPIO en entrée d'un côté, et en sortie de l'autre côté. Vous pouvez ensuite utiliser plus de GPIO pour transférer plus d'informations.

Protocoles de communication via Raspberry Pi 4 broches

Vous pouvez utiliser certains protocoles de communication matériels directement avec les GPIO Raspberry Pi 4. Ces protocoles de communication sont en fait les mêmes que ceux que vous pouvez utiliser nativement sur de nombreuses cartes Arduino.

Avec ces protocoles, vous serez en mesure de transférer beaucoup plus d'informations qu'avec juste un tas de GPIO configurés comme des broches numériques.

Sur les schémas de brochage du Raspberry Pi 4, vous pouvez voir une colonne pour les fonctions alternatives. Eh bien, les protocoles de communication sont tous là !

En fait, dire qu'un GPIO est une broche numérique est une simplification excessivement exagérée. C'est bien plus que ça. Pour chaque GPIO, vous avez au moins une fonction alternative, et parfois beaucoup plus.

Mais gardons les choses simples ici. Vous n'avez pas besoin de connaître toutes les fonctions alternatives pour commencer et développer des applications intéressantes. Si vous êtes intéressé, consultez la page 102 de la fiche technique bmc2835 (il s'agit de la fiche technique de l'ensemble de l'en-tête GPIO), où vous verrez un tableau complet avec toutes les fonctions alternatives pour tous les GPIO.

UART

UART est un protocole de communication multi-maître. Ce protocole est assez simple d'utilisation et très pratique pour communiquer entre plusieurs cartes : Raspberry Pi vers Raspberry Pi, ou Raspberry Pi vers Arduino, etc.

Pour utiliser UART, vous avez besoin de 3 broches :

  • GND que vous connecterez au GND global de votre circuit.
  • RX pour la réception. Vous connecterez cette broche à la broche TX de l'autre composant.
  • TX pour la transmission. Vous connecterez cette broche au RX de l'autre composant.

Si le composant avec lequel vous communiquez n'est pas déjà alimenté, vous devrez également utiliser une broche d'alimentation (3,3 V ou 5 V) pour allumer ce composant.

En utilisant un convertisseur UART vers USB, vous pouvez communiquer entre votre ordinateur portable et Raspberry Pi avec UART.

Maintenant, pour utiliser UART dans votre code, vous pouvez utiliser la bibliothèque Serial en Python et WiringPi en Cpp.

Si vous souhaitez communiquer entre une carte Raspberry Pi et une carte Arduino via Serial, consultez ce tutoriel Raspberry Pi Arduino Serial .

I2C

I2C est un protocole de bus maître-esclave (enfin, il peut avoir plusieurs maîtres mais vous l'utiliserez principalement avec un maître et plusieurs esclaves). L'utilisation la plus courante d'I2C est de lire les données des capteurs et d'actionner certains composants.

Le maître est le Raspberry Pi, et les esclaves sont tous connectés au même bus. Chaque esclave a un identifiant unique, donc le Raspberry Pi sait à quel composant il doit parler.

Pour utiliser I2C, vous aurez besoin de 3 broches :

  • GND : Je suppose que vous commencez à vous y habituer !
  • SCL : horloge de l'I2C. Connectez tous les esclaves SCL au bus SCL.
  • SDA : données échangées. Connectez tous les esclaves SDA au bus SDA.

Et comme la plupart du temps vous aurez besoin d'allumer le composant, vous aurez également besoin d'une broche d'alimentation (3,3V ou 5V), reliée à la broche Vcc du composant. Assurez-vous de savoir quelle tension est acceptée par le composant avant de brancher quoi que ce soit. Mais ne vous inquiétez pas trop : généralement, les composants de loisir acceptent 3,3 V et/ou 5 V.

Notez que les broches SDA et SCL sur le Raspberry Pi sont des fonctions alternatives pour GPIO 2 et 3. Lorsque vous utilisez une bibliothèque (Python, Cpp, etc.) pour I2C, ces deux GPIO seront configurés afin qu'ils puissent utiliser leur fonction alternative.

Certaines des meilleures bibliothèques faciles à utiliser pour I2C sont SMBus pour Python et WiringPi pour Cpp.

SPI

SPI est encore un autre protocole de communication matérielle. C'est un protocole de bus maître-esclave. Il nécessite plus de fils que I2C, mais peut être configuré pour fonctionner plus rapidement.

Alors, quand utiliser I2C vs SPI sur votre Raspberry Pi 4 ? Eh bien, la réponse est assez simple. Parfois, vous trouverez un capteur uniquement compatible I2C ou SPI. Et parfois, vous voudrez juste avoir un équilibre entre ces protocoles, donc par exemple, vous choisirez d'utiliser I2C si vous avez déjà de nombreux composants utilisant le SPI. Au fur et à mesure que vous progressez, vous commencerez à mieux connaître les différences et serez en mesure de faire un meilleur choix entre ces deux protocoles. Mais pour l'instant, gardons les choses simples.

Comme vous pouvez le voir, vous obtenez 2 SPI par défaut : SPI0 et SPI1. Cela signifie que vous pouvez utiliser le Raspberry Pi comme maître SPI sur deux bus SPI différents en même temps.

Et, comme pour I2C, SPI utilise les fonctions alternatives des GPIO.

Pour utiliser SPI, vous aurez besoin de 5 broches :

  • GND : quelle surprise ! Assurez-vous de connecter tous les GND de tous vos composants esclaves et du Raspberry Pi ensemble.
  • SCLK : horloge du SPI. Connectez toutes les broches SCLK ensemble.
  • MOSI : signifie Master Out Slave In. C'est la broche pour envoyer les données du maître à un esclave.
  • MISO : signifie Master In Slave Out. C'est la broche pour recevoir les données d'un esclave vers le maître.
  • CS : signifie Chip Select. Faites attention ici : vous aurez besoin d'un CS par esclave sur votre circuit. Par défaut, vous disposez de deux broches CS (CS0 – GPIO 8 et CS1 – GPIO 7). Vous pouvez configurer plus de broches CS à partir des autres GPIO disponibles.

Dans votre code, vous pouvez utiliser la bibliothèque spidev pour Python et WiringPi pour Cpp.

La différence entre les broches Raspberry Pi 4 et les broches Arduino

Nous comparons souvent les broches du Raspberry Pi 4 avec les broches des cartes Arduino. Au point que de nombreuses bibliothèques utilisent le même nom de fonction pour actionner ces broches ! Par exemple, WiringPi utilise le

void digitalWrite ( pin int , valeur int )

pour définir l'état d'un GPIO, qui est exactement la même fonction dans Arduino pour définir l'état d'une broche numérique.

Mais ce n'est pas tout à fait pareil.

Tout d'abord, Raspberry Pi a un microprocesseur, exécutant souvent un système Linux (par exemple Raspbian), tandis qu'Arduino a un microcontrôleur. Cela fait une énorme différence, en particulier lorsque l'on considère les contraintes de temps réel .

De plus, et c'est quelque chose que vous ne pouvez pas voir directement sur la carte, de nombreuses fonctionnalités matérielles d'Arduino ne sont pas présentes dans une carte Raspberry Pi .

Vous n'avez pas de broches analogiques sur une carte Raspberry Pi. Si vous souhaitez utiliser un capteur analogique, vous devrez utiliser un ADC (convertisseur analogique-numérique) externe et peut-être obtenir la valeur en utilisant le protocole I2C ou SPI.

De plus, il n'y a pas de PWM natif sur Raspberry Pi. Les PWM sont très utiles pour contrôler des composants avec une commande non binaire. Vous pouvez simuler le PWM à partir d'un logiciel (par exemple avec WiringPi), mais ce n'est clairement pas recommandé car cela prendra beaucoup de CPU et ne sera pas très rapide.

Je ne ferai pas la liste complète ici, mais vous voyez le point. Arduino est beaucoup plus proche du matériel que Raspberry Pi , et il existe donc de nombreuses fonctionnalités matérielles natives que vous ne pouvez pas obtenir sur une carte Raspberry Pi.

Donc, avant de choisir entre ces 2 types de cartes pour votre projet, assurez-vous de savoir ce dont vous avez besoin : plus de puissance de calcul, le besoin d'utiliser des langages de haut niveau (Raspberry Pi), ou quelque chose de plus proche du matériel, avec des ressources limitées ( Arduino) ?

Premiers pas avec Raspberry Pi 4 broches

Eh bien, il y a beaucoup de choses que vous pouvez faire avec les broches Raspberry Pi 4.

Je le répète ici : vous ne pouvez jamais être trop prudent lorsque vous manipulez les épingles ! Une erreur peut détruire votre planche en moins d'une seconde. Mais si vous faites attention et vérifiez tout, il n'y a aucune raison que vous brûliez quoi que ce soit.

Maintenant, si vous vous sentez perdu avec tant d'informations et que vous ne savez pas par où commencer, voici une liste d'étapes que vous pouvez suivre à partir de là :

  • Obtenez des exemples simples et faites-les, comme allumer une LED , lire la valeur d'un bouton, etc. Pour cela, vous devrez créer un petit circuit sur une planche à pain, et vous utiliserez les broches avec leur fonction principale ( GPIO).
  • Une fois que vous êtes familiarisé avec le fonctionnement des circuits de base (GND, Vcc et broches de communication), essayez d'obtenir un capteur plus complexe, par exemple un accéléromètre I2C, afin de pouvoir mesurer si votre carte est sur une surface plane ou non.
  • Une fois que vous savez comment communiquer avec un capteur, essayez de communiquer entre votre carte Raspberry Pi et un autre Raspberry Pi/Arduino/Ordinateur, en utilisant les 3 protocoles : UART, I2C, SPI. Vous apprendrez beaucoup en faisant cela.


Créé avec HelpNDoc Personal Edition: Améliorez votre documentation d'aide avec un outil de création d'aide