input

Le Raspberry-Pi : Introduction GPIO & Programmation

Nous allons maintenant nous intéresser au connecteur3D Raspberry-Pi doté de 26 pins d’entrée/sortie, ou connecteur GPIO. C’est là, l’une des distinctions importantes entre notre Raspberry-Pi et l’ordinateur du commun des mortels 🙂

Introduction au connecteur GPIO

Que sont donc c’est fameux GPIO ?

C’est plutôt simple à comprendre, tout est dans le nom.

GPIO signifie, General Purpose Input Output, ou Entrée/Sortie à usage général.

Il s’agit de ports très utilisés dans le monde des microcontrôleurs, en particulier dans le domaine de l’électronique embarquée. Ils ont fait leur apparition aux débuts des années 1980.

Concrètement, il s’agit de pins mâles espacés d’un pas de 2.54mm.

ARM et GPIO

Parcours du signal, du processeur ARM à la sortie GPIO.

Ces pins sont à relier avec les pins d’un autre circuit (capteurs, relais …), à l’aide de câbles GPIO mâle ou femelle (‘jumper’ ou ‘wire’ en anglais).

Câbles GPIO femelle

Câbles GPIO femelle

Chacune des 26 pins communiquent donc avec un pin du processeur du Raspberry pi (Broadcom ARM).

Logique signaux GPIO

Les signaux vue schématique

On peut donc avec ces pins, relier divers éléments avec le processeur du Raspberry-Pi.

(Tels que des capteurs, relais, servomoteur, jeux de lumière…).

Pour faciliter les tests de montage on utilise une ‘breadboard’, souvent traduit en français sous le terme ‘planche à pain’.

Breadboard

Breadboard

La logique GPIO

C’est à ce moment que nous entrons dans le joyeux monde de la programmation !

Et oui, car vous l’aurez devinés, pour créer un événement*, il va falloir s’exprimer avec des mots que l’ordinateur peut comprendre.

 *Un événement est une action résultant de la modification de l’état (1/0) d’un capteur esclave. Ainsi, communiquer vers le Raspberry Pi, les informations relevées par un capteur, afin qu’il active par exemple, un relais (allumage de la lumière, lorsque le capteur de mouvement se déclenche), est un exemple d’événement.

La programmation va donc nous permettre de donner des ordres au processeur du Raspberry-Pi, qui seront répercutés sur les GPIO. A présent, vous saisissez certainement toute l’importance que peuvent avoir ces deux rangées de pins.

Mais attention, chaque pin à sa fonction !

AttentionUn connecteur GPIO est généralement alimenté en 3.3Vcc (tension maximum supportée par le processeur ARM) et ne peut émettre que des courants de faible capacité, allant de 3mA à 50mA. On dit qu’il ‘travail’ en logique 3.3Vcc. Donc ne branchez jamais 5Vcc directement sur l’un des pins GPIO : Ceci est primordial si vous tenez à votre Raspberry pi. D’une manière générale on ne connecte rien au hasard*, au risque de terminer l’expérience Raspberry-Pi plus tôt que prévu !

 *Note : Les schémas de connexion entre les GPIO du Raspberry-Pi, et les différents éléments que nous souhaitons relever & commander (capteurs, relais…) sont très souvent bien détaillés sur le net, mais pas toujours ! Ceci sera donc l’objet de la rubrique ‘Fiches capteurs’. Cette rubrique viendra regrouper des explications, sur chaque capteur testé, ainsi que sur les montages électroniques réalisables.

Un connecteur GPIO peut être configuré pour jouer le rôle d’une entrée (réception d’un signal ou ‘input’) ou d’une sortie (émission d’un signal ou ‘output’).

Lorsqu’il est configuré en tant que sortie, on peut écrire dans une 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 du registre interne.

Les pins GPIO présentes sur le Raspberry pi ne peuvent traiter que des signaux numériques, soit 1 et 0. Cela à une grande importance lorsque vous choisissez vos capteurs, s’ils sont exclusivement réservés à être branchés sur le Raspberry pi, il faudra choisir des capteurs numériques et non analogiques.

Une connexion analogique (soit acceptant des valeurs de 1 à 1024) peut être envisagée sur le Raspberry pi. Mais elle nécessitera un CAN/CNA (ou Convertisseur Analogique Numérique/Convertisseur Numérique Analogique) comme le MCP3008, ue nous verrons un peu plus tard 😉

Néanmoins, sachez que nous apprendrons prochainement à utiliser un microcontrôleur. Ce dernier sera lui-même doté de sortie analogique, numérique et PWN. Je ne vous en dis pas plus pour l’instant, simplement ne vous focalisez pas sur l’absence de sortie analogique sur le Raspberry pi.

Introduction à la programmation informatique

–>On utilise des langages de programmation qui permettent d’expliquer à l’ordinateur ce qu’il doit faire.

–>L’ordinateur ne comprend qu’un langage très simple constitué de 0 et de 1, le binaire.

–>Les informaticiens ont créé des langages intermédiaires, plus simples que le binaire.

–>Il existe aujourd’hui des centaines de langages de programmation.

Tous les langages de programmation ont le même but : vous permettre de parler à l’ordinateur plus simplement qu’en binaire. Voici comment cela fonctionne :

  1. Vous écrivez des instructions pour l’ordinateur dans un langage de programmation (par exemple le C++)
  2. Les instructions sont traduites en binaire grâce à un programme de « traduction » ;
  3. L’ordinateur peut alors lire le binaire et faire ce que vous avez demandé !

Pour en savoir plus sur la programmation :

http://fr.wikipedia.org/wiki/Programmation_informatique

Pour ceux qui veulent toujours en savoir ++ :

http://fr.openclassrooms.com/informatique/cours/programmez-avec-le-langage-c/qu-est-ce-que-le-c-2


Pour une mise en pratique et plus de détails sur les commandes à exécuter, je vous invite à consulter l'article suivant. Nous y réaliserons notre premier montage électronique simple; commander une LED à l'aide de notre Raspberry-Pi.
Publicités