Le GPIO - GPIO
lire message

Le GPIO du Raspberry

Le GPIO


General Purpose Inupt/Output

Ou entrée sortie pour un usage generale, sont des ports d'entrée/sortie très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l'électronique embarquée, qui ont fait leur apparition aux débuts des années 1980.


Un connecteur GPIO peut être configuré pour jouer le rôle d'une entrée (réception d'un signal) ou d'une sortie (émission d'un signal). Lorsqu'il est configuré en tant que sortie, on peut écrire dans un registre interne afin de modifier l'état d'une sortie. Lorsqu'il est configuré en tant qu'entrée, on peut détecter son état en lisant le contenu d'un registre interne.


Un connecteur GPIO ne peut traiter que des signaux numériques, 1 ou 0, une connexion sur un support analogique nécessitera un CAN/CNA comme le MCP300816.


Les périphériques GPIO peuvent également produire des interruptions17 et des événements d'accès direct à la mémoire (EDMA).


Un connecteur GPIO est généralement alimenté en 3.3Vcc et ne peut émettre que des courants de faible intensité, allant de 3 mA à 50 mA.


Gpio du Raspberry

Un petit zoom sur les GPIO



Comment use le gpio: 1.Partie électronique...


Nous nous sommes intéressés aux ports GPIO du raspberry PI, ce sont de petites broches (au nombre de 26) qui peuvent se comporter en entrée comme en sortie (recevoir une information ou en envoyer une) ces broches que nous appellerons PIN, ont deux états possibles : 0 (off) ou 1 (on).

...

Dans la suite de ce tutoriel, nous nommerons chaque PIN par leur numéro d’ordre de haut en bas et de gauche à droite (en prenant pour repère que la carte SD représente le haut du raspberry PI)


Ce serait une erreur de penser que chaque port GPIO est utilisable, car nombre d’entre eux sont réservés à d’autres tâches que de servir d’entrée sorties pour nous pauvres mortels.


EN réalité, seuls 8 ports sur les 26 sont vraiment disponibles, ce qui nous laisse la possibilité de contrôler 8 matériels de notre appart diffèrent maximums, a moins d’acheter une carte d’extension des ports.


Voila le schéma explicatif de chacun des PIN (source, le wiki de raspberry):


...

Ça parait peut être compliqué comme ça pour les néophytes de l’électronique comme moi, mais ça ne l’est pas, voila les choses essentielles a retenir :


  • Les numéros sur le schéma ne correspondent pas du tout aux positions "physiques" des pins (c'est vrai, pourquoi se simplifier la vie après tout?) donc considérez que nous vous donnerons toujours les numéros physique et ne tenez pas compte des numéro inscrit sur la schéma.
  • Les pin 1 (en jaune) et 2 (en rouge) sont réservés a fournir du courant, le pin 1 fournis de 3,3 volts, le pin 2 du 5 volts
  • Le pin 6 (en noir) est la masse (donc 0 volts), on s'en servira pour fermer nôtre circuit
  • Les pins 7,11,12,13,15,16,18 et 22 (en vert) sont les ports que nous pouvons utiliser pour nos magouilles
  • Les autres pins sont réservés pour des trucs qui nous dépassent, si il y a un électronicien dans la salle, nous l'invitons a nous fournir une petite explication. Rire

Donc globalement pour allumer une diode nous utiliseront?

Le pin de masse (pin 6 en noir) et un des pin entrée sorties (au choix 7,11,12,13,15,14,16,22 en verts.)

Nous allons monter notre circuit électronique de manière simplissime comme ça:

image

On vas utiliser la broche 11 (position physique) et la mettre a 0 ou 1 (via notre programme php), lorsqu'elle sera sur 1, le courant passera dans une petite résistance de 270 Ohms (pour protéger la LEd et éviter qu'elle claque) puis directement dans nôtre LED qui s'éclairera.

Enfin le circuit sera fermé a l’aide de la broche 6 qui sert de masse.

ça c’est l’idéal, 2 différences sur mon circuit réel:

  1. Je n’ai pas de résistance, j’ai donc fait sans, ce qui rend la LED vulnérable si elle est allumée trop longtemps (nous entendons déjà les électroniciens de l'assistance grogner au fond de la salle xD)
  2. Je n’ai pas branché une, mais 3 led (pour rendre ma maquette un peu plus vivante, pour se faire, rien de plus simple, j'utilise deus ports de plus et je relie tout a la masse :

Pour monter votre circuit, de simples fils suffisent, cependant Nous vous conseillons très vivement d'acheter ou de dégoter quelque part part des connecteurs adaptés aux broches afin d'éviter les faux contacts avec le pin, un câble d'imprimante démonté comme le mien ferait l'affaire aussi :

2012-08-15 01.08.27

pour relier l’autre bout de nos fils aux diodes, Nous avons utilisé une table de connexion que nous avions acheté pour faire un peu d'électronique amateur, évidement vous n'avez pas a investir vous aussi la dedans, c'est juste pplus pratique que d'entortiller voir souder les fils autour des pattes de chaque LED.

Une fois le montage électronique effectué, vous allez devoir signaler au Raspberry PI d'ouvrir ou femrer les PIN (7 11 et 12 dans mon exemple) pour allumer/éteindre les LED que vous souhaiter.

Pour nous faciliter la vie, nous allons installer la vie, nous allons installer une petite librairie toute bête qui nous permettra de faire ce genre de commandes dans la console du Raspberry PI:

qui signifiera : met l’état de la pin 11 à 1

Une fois cette librairie installée, nous utiliseron mon petit script gratuitement mis a vôtre disposition afin de donner une interface wab plus conviviale a ces lignes de commandes

La librairie se nomme wiring PI , pour l’installer depuis la ligne de commande de vôtre Raspberry, suivez les instructions du lien.
Si tout se passe bien et que vôtre circuit éléctronique est correcteùet monté, lorsque vour taperez: