Raspberry Pi

Introduction

../../_images/RaspberryPi0WH.jpg

L’esieabot est équipé d’un Raspberry Pi 0 WH. - 0 : édition du Raspberry Pi, le Raspberry Pi 0 étant le « petit » modèle basse consommation - W : édition « wireless », équipé du Wi-Fi 2.4Ghz et du Bluetooth 4.1 - H : édition « headers », c’est-à-dire avec les pins pré-soudés (en haut de l’image)

../../_images/RaspberryPi0WH-with-infos.jpg

C’est un mini-ordinateur, aussi puissant qu’un smartphone du milieu des années 2010, capable de faire fonctionner Linux. Il est équipé d’un processeur mono-cœur cadencé à 1Ghz et de 512 Mo de mémoire vive. Ce n’est pas énorme comparé à votre ordinateur personnel mais amplement suffisant pour un grand nombre de tâches.

Différences avec votre ordinateur personnel

Le système d’exploitation que vous allez installer est basé sur Debian, une distribution Linux très populaire. Si vous utilisez Ubuntu au quotidien, sachez qu’il est lui aussi basé sur Debian. Toutes les commandes sont donc extrêmement similaires. La différence fondamentale entre votre Raspberry Pi et votre ordinateur est l’architecture du processeur. Sur votre ordinateur, vous devriez tous avoir un processeur AMD ou Intel de l’architecture x86. Sur le Raspberry Pi, le processeur a une architecture ARM, comme sur un téléphone ou une tablette. C’est simplement une conception différente du processeur et de son fonctionnement. Mais de votre point de vue cela ne change pas grand-chose. La seule différence que vous devez savoir c’est qu’un programme compilé sur votre ordinateur personnel par gcc sera compilé pour votre ordinateur, c’est-à-dire en x86. Alors que si vous compilez le même programme sur votre Raspberry Pi avec gcc également, il sera compilé pour des processeurs d’architecture ARM. Aucune différence donc au niveau de votre code en C. La différence est juste au niveau des exécutables compilés qui ne sont pas interchangeables.

Se brancher au Raspberry Pi

Comme c’est un véritable ordinateur, vous pourriez brancher une carte micro-SD qui sert de « disque dur », une alimentation USB sur le port « PWR », un clavier sur le port « USB » et un écran sur le port micro-HDMI. Vous auriez alors le contrôle de votre Raspberry Pi comme un ordinateur classique. Mais cela n’est pas très pratique. Nous allons toujours avoir besoin de la carte micro-SD comme support de stockage pour le système d’exploitation mais nous allons plutôt utiliser une batterie USB pour alimenter le Raspberry Pi. A la place de brancher un clavier et un écran pour avoir un terminal, nous allons plutôt ouvrir un terminal distant en réseau. Pour installer le système d’exploitation et ouvrir un terminal distant en réseau, veuillez consulter le document Utiliser un esieabot.

Les GPIOs

Avertissement

Le Raspberry Pi 0 n’est pas équipé de fusible. Un mauvais branchement peut causer sa destruction.

Les ports GPIO (General Purpose Input/Output) sont littéralement des ports à usage général d’entrée/sortie. Ce sont des ports généralement sous forme de broche qui sont présents sur des microcontrôleurs et ordinateurs de développement. Comme leur nom l’indique, ils peuvent être utilisés pour de multiples fonctions. Vous en avez déjà peut être déjà manipulé sur Arduino. Vous aviez alors à votre disposition une série de ports pouvant servir d’entrée/sortie logique ou alors d’entrée analogique. Chaque carte de développement a des GPIO différents. Par exemple le Raspberry Pi possède plus de ports qu’un Arduino Uno mais ne possède pas d’entrée analogique.

Votre esieabot est doté d’un ordinateur Raspberry Pi Zero WH. Voici un schéma expliquant la fonction et la numérotation des broches :

../../_images/RaspberryPi0-GPIO.png

Les ports « Power » correspondent à l’alimentation, 3,3V ou 5V. Les ports « Ground » correspondent à la masse. Les ports « GPIO » sont nos fameux GPIOs. A noter que certains ports ont des fonctions spéciales (I²C, UART, SDI, etc). A noter également que vous pourrez trouver sur internet des schémas avec une numérotation différente. Chaque numérotation correspond à une bibliothèque de programmation différente. Faites attention à ne pas vous mélanger les pinceaux. La numérotation WiringPi est dépréciée, car la bibliothèque n’existe plus.

Avertissement

Le Raspberry Pi utilise une tension de 3.3V pour ses GPIO. Si vous tentez d’envoyer 5V vers un des GPIO, vous risquez de détruire votre esieabot.

Vous trouverez sur https://fr.pinout.xyz/ une vue dynamique et expliquée en détails des GPIO du Raspberry Pi. Vous y trouverez également des informations sur les GPIOs speciaux, comme ceux permettant d’émettre un signal PWM cadencé au niveau matériel.

Note

Différente manière de compter les GPIOs existent. Dans cette documentation, nous n’allons utiliser que la numérotation « BCM ». Par exemple, le port en bas à droite est le GPIO 21.