Matériel utilisé
Introduction
L’utilisation du Raspberry Pi 4 pour piloter des composants extérieurs nécessite l’utilisation d’un matériel permettant de câbler facilement les montages. D’autre part, il est important d’assurer la mise en œuvre sans risque pour les composants. Ce chapitre présente le matériel utilisé dans le livre.
Les projets décrits dans ce livre sont réalisés avec un Raspberry Pi 4. Le système d’exploitation est Raspberry Pi OS (07-2021). Les versions précédentes du Raspberry Pi et/ou du système d’exploitation conviendront également.
Carte de prototypage
Le Raspberry Pi est souvent utilisé conjointement à une carte d’essais encore appelée carte de prototypage ou breadboard (planche à pain en français).
La breadboard se présente comme une plaque percée de trous. Il existe différents modèles, plus ou moins longs. En général, la plaque de prototypage comporte une partie centrale avec des blocs de cinq trous. Sur les bords de la plaque, on trouve des lignes colorées qui bordent d’autres blocs de cinq trous. L’image ci-dessous explique l’organisation de cette plaque.
Conventionnellement, la ligne rouge représente le pôle positif de l’alimentation, et la ligne bleue indique le pôle négatif de l’alimentation. Le fait de disposer de deux lignes d’alimentation de chaque côté de la carte permet de distribuer les tensions d’alimentation 5 volts et 3,3 volts par exemple.
À gauche du schéma précédent, la carte breadboard est vue de dessus. De chaque côté de la plaque, deux lignes verticales repèrent les trous utilisés pour l’alimentation des montages. Au centre, des blocs horizontaux de cinq trous sont prévus pour le montage des composants.
La partie droite du schéma représente les connexions existant dans la breadboard : verticales pour les lignes d’alimentation...
Câbles Dupont
Les câbles Dupont sont utilisés pour établir les connexions sur la carte et entre la carte et le connecteur GPIO du Raspberry Pi 4.
Ils existent en différents longueurs et types. Les fils de 10 cm sont un peu courts pour relier la breadboard au GPIO, mais conviennent bien pour des liaisons entre les contacts de la breadboard elle-même. Il vaut mieux choisir des fils de 20 cm qui sont d’un emploi plus universel. Les fils sont souvent livrés sous forme de nappe de 40 fils, équipés de leurs connecteurs. Il faut prévoir des fils mâle/femelle (M/F), femelle/femelle (F/F) et mâle/mâle (M/M) de 20 cm pour couvrir tous les besoins.
Principe de la résistance
La résistance est la propriété d’un matériau conducteur à s’opposer au passage d’un courant électrique. Par extension, c’est devenu le nom d’un composant qui s’oppose au passage du courant. La valeur de la résistance s’exprime en ohm dont le symbole est Ω. On utilise également les multiples et sous-multiples de l’ohm.
La valeur des résistances peut être écrite en clair sur le corps du composant, ou indiquée par un ensemble d’anneaux colorés, chacun correspondant à une valeur, un multiplicateur ou une précision.
Diode LED
Sur le Raspberry Pi, l’accès au GPIO peut se faire directement en ligne de commande ou en utilisant des bibliothèques ou des interfaces développées dans ce but. Pour visualiser l’état d’une sortie GPIO, la diode LED (Light Emitting Diode = diode électroluminescente) est un moyen simple et facile à mettre en œuvre.
Les programmeurs ont une coutume : le premier programme qu’ils réalisent dans un langage de programmation affiche "Hello world" ou "Bonjour monde". Cette coutume a été transposée dans le monde des systèmes embarqués : le premier programme consiste à faire clignoter une LED.
1. Principe de la LED
La diode LED est une diode particulière : elle laisse passer le courant dans un seul sens, de l’anode (pôle positif) vers la cathode (pôle négatif). Lorsqu’un courant la traverse dans ce sens, elle émet de la lumière.
Si on applique une tension inverse à une diode LED, elle bloque le passage du courant. La tension inverse que supporte chaque modèle est différente, mais souvent faible ~5 V.
L’image précédente donne les informations nécessaires pour repérer l’anode et la cathode d’une LED en boîtier traversant. Elle est appelée ainsi car les pattes de la LED traversent...
Bouton poussoir/interrupteur
Un bouton poussoir établit un contact momentané entre deux bornes lors d’un appui sur le bouton. Le contact disparaît lorsque l’appui est relâché.
Un interrupteur établit un contact stable entre deux bornes. Il possède deux positions stables. L’une établit le contact, l’autre position ouvre le contact.
1. Utilisation du GPIO en entrée
Les broches du GPIO du Raspberry Pi peuvent également être configurées en entrée. Elles peuvent alors détecter si le niveau présent sur l’entrée est haut ou bas. Configurée en entrée, la broche GPIO est flottante, c’est-à-dire qu’elle n’a pas de niveau de tension défini. Pour garantir le bon fonctionnement de l’entrée, il faudra fixer son niveau avec une résistance de tirage.
RAPPEL IMPORTANT : les broches GPIO du Raspberry Pi ne sont pas protégées. Elles ne doivent pas être soumises à une tension inverse (négative) ni à une tension supérieure à 3,3 V sous peine de destruction. Il est impératif de vérifier soigneusement les circuits avant de les mettre sous tension.
Lorsqu’il est nécessaire de déclencher une action sur le Raspberry Pi, un interrupteur connecté sur une entrée du GPIO est souvent...
LED RVB
Licence CC BY 2.0 Sparkfun
Les fabricants de composants ont assemblé en un seul boîtier (ci-avant) des LED de différentes couleurs. Parmi celles-ci, la LED RVB (rouge, vert, bleu) aussi dénommée LED RGB (red, green, blue) permet de créer un grand nombre de couleurs différentes.
Les LED RVB sont munies de quatre contacts. Elles existent en version anode commune ou cathode commune.
Pour la LED RVB cathode commune, la cathode est mise à la masse et les entrées RVB reçoivent la tension d’alimentation positive à travers une résistance de protection.
La LED RVB anode commune voit son anode reliée au + 3,3 V. Les broches RVB sont reliées à la masse via une résistance de protection.
Chaque LED peut être allumée ou éteinte. Les combinaisons suivantes peuvent être obtenues :
R |
V |
B |
Couleur |
Éteinte |
Éteinte |
Éteinte |
Pas de couleur |
Éteinte |
Éteinte |
Allumée |
Bleu |
Éteinte |
Allumée |
Éteinte |
Vert |
Éteinte |
Allumée |
Allumée |
Cyan |
Allumée |
Éteinte |
Éteinte |
Rouge |
Allumée |
Éteinte |
Allumée |
Magenta |
Allumée |
Allumée |
Éteinte |
Jaune |
Allumée |
Allumée |
Allumée |
Blanc |
Si on compte la première ligne (absence de couleur), ce type de LED peut facilement afficher huit teintes.
Il est également...
LED adressable
Licence CC BY 2.0 Sparkfun
La LED adressable WS2812 est un composant qui intègre trois LED (R, V, B) et un circuit de commande des LED capable de recevoir des informations pour le pilotage des LED, de récupérer parmi une série d’octets celui qui lui est adressé (sur Din) et de transférer les octets restants vers les LED suivantes (sur Dout).
Une LED adressable seule ne présente que peu d’intérêt. Elle prend toute sa valeur lorsqu’elle équipe des anneaux ou des rubans de LED.
VCC est l’alimentation du circuit de commande, VDD l’alimentation des LED. NC n’est pas connecté.
Anneau et ruban de LED adressables
Ces anneaux et rubans sont équipés de LED RVB adressables. Ceci permet de piloter la couleur de chaque LED séparément.
Licence CC BY 2.0 Sparkfun
Sur l’image ci-dessus figurent un anneau de seize LED et un ruban de huit LED. Il existe différentes tailles d’anneaux ainsi que des rubans souples de grande longueur.
Le pilotage de ces LED est basé sur l’envoi d’une trame de données VRB (vert-rouge-bleu) longue de 24 bits par LED. Chaque WS2812 récupère le premier bloc de 24 bits et attribue à chaque LED la valeur de couleur contenue dans l’octet correspondant.
Chaque LED reçoit une valeur parmi 256 (8 bits). En combinant les couleurs, il est possible de créer 256x256x256 = plus de 16 millions de couleurs.
La WS2812 envoie les octets restants aux WS2812 suivantes. Il faudra donc informer le programme du nombre de WS2812 à gérer. Chaque LED a une adresse qui lui est propre et qui représente sa position dans la chaîne constituée par toutes les LED.
Matrice de LED
1. Principe
Les matrices de LED de base comportent une matrice de 8x8 LED. Chaque LED peut être adressée séparément. Ces matrices permettent d’afficher du texte ou des images en allumant les points correspondants sur les matrices. Elles sont le composant de base pour les journaux lumineux.
Un circuit intégré de type 7219 joue le même rôle que le circuit de commande des LED adressables. Une trame de données est envoyée sur Din du premier circuit. Celui-ci prélève les données qui lui sont destinées en début de trame et les affiche sur la matrice de LED. Il renvoie ensuite les données restantes via Dout vers l’entrée Din du circuit suivant.
Le circuit 7219 était prévu à l’origine pour commander 8 afficheurs 7 segments + Point décimal (DP). Son utilisation a été étendue à la commande d’une matrice de LED.
2. Module 7219 + matrice
On trouve sur le marché des modules comportant le circuit intégré 7219 et la matrice de 8x8 LED. Ces modules comportent des broches de connexion. Le connecteur d’entrée est situé vers le 7219. Il amène l’alimentation (+5 V et Masse), les données en entrée (Din), la sélection du circuit (CS) et l’horloge (CLK) au module.
3. Chaînage des modules...
Servomoteur
1. Principe
Un servomoteur est un système utilisé dans de nombreuses applications industrielles. C’est un système asservi, capable de maintenir sa position lorsqu’il est soumis à des forces extérieures.
Licence CC BY 2.0 Sparkfun
Il existe des servomoteurs de taille réduite, réservés à des utilisations ne demandant pas un couple important. On retrouve cette famille de servomoteurs miniatures dans les modèles réduits (voitures, avions, hélicoptères…). C’est un de ces modèles de type SG90 que nous allons utiliser avec le Raspberry Pi. Le servomoteur est équipé d’un connecteur à trois fils : deux pour l’alimentation et un pour lui envoyer un signal de commande.
L’axe du servomoteur est prévu pour recevoir des bras ou des roues destinés à entraîner un mécanisme. En fonction du signal envoyé sur son entrée, l’axe du servomoteur se positionne sur un angle de 0 à 180°. Cette valeur peut différer selon le modèle de servomoteur.
2. Commande PWM
Les servomoteurs utilisés en radio modélisme sont commandés par un signal à 50 Hz (période = 20 ms). La position de l’axe du servomoteur est asservie à la largeur du créneau positif du signal.
-
1 ms : l’axe...
Codeur incrémental
Le codeur incrémental est destiné à fournir une information sur le sens de rotation du bouton.
Il dispose de deux sorties appelées ici S1 et S2 (mais l’appellation peut changer selon le modèle).
Il comporte un système optique ou électromécanique qui génère des créneaux. Les signaux sont décalés et il faut observer quand un des signaux passe à 1 (front montant) pendant que l’autre signal est stable à 1. Selon le sens de rotation, c’est un signal ou l’autre qui présentera ce front montant.
Selon le modèle, il faudra peut-être inverser les sorties S1 et S2, A et B pour obtenir une information en sortie de programme conforme au sens de rotation réel.
Matériel complémentaire
Il faudra prévoir du matériel pour assembler les projets :
-
Tournevis divers
-
Pinces
-
Fer à souder et accessoires
-
Multimètre (ohmmètre, voltmètre…)
-
Différentes résistances
-
LED