Rasp-Hack-GPIO Configurer I2C

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

A propos de I2C

I2C est un standard utilisé très souvent, standard conçu pour permettre à un composant de communiquer avec un autre. Etant donné que le Raspberry Pi est capable de communiquer en I2C nous pouvons donc brancher une multitude de composant et modules I2C sur un Raspberry-Pi.

Voici quelques projets et produits qui utilisent des modules et composants I2C:

Le bus I2C permet de connecter plusieurs périphériques sur le Raspberry-Pi, chacun ayant une adresse unique (qui peut souvent être modifiée à l'aide de cavaliers présents sur la carte). Il est très utile de pouvoir voir les périphériques connectés sur le Pi (cela permet également d'être certain que tout fonctionne bien).

L'outil i2c-tools permet de faire cela! Il est cependant nécessaire de l'installer en utilisant les commandes suivantes:

sudo apt-get install -y python-smbus
sudo apt-get install -y i2c-tools

Installer le support noyau (avec Raspi-Config)

Exécuter sudo raspi-config et suivre les options suivantes pour installer le support i2c pour le coeur ARM et le noyau linux

Rendez-vous dans Interfacing Options (Options d'interface):

Rasp-Hack-GPIO-Config-I2C-10.png

Pour les plus anciennes versions de Raspi-Config, voyez sous l'entrée Advanced (Options avancées)

Rasp-Hack-GPIO-Config-I2C-11.png

Puis I2C

Rasp-Hack-GPIO-Config-I2C-12.png

Et activez le bus I2C (en répondant Yes / Oui).

Rasp-Hack-GPIO-Config-I2C-13.png

Rasp-Hack-GPIO-Config-I2C-14.png

Redémarrez votre Pi pour activer le bus I2C!

Installer le support noyau (à la main)

Si vous n'utilisez pas une version moderne de Raspbian ou si vous désirez réaliser une installation à la main, cela est possible! Ouvrez un LXTerminal ou une console ou une session ssh puis saisissez les commandes suivantes :

sudo nano /etc/modules

Et ajoutez les deux lignes suivante à la fin du fichier :

i2c-bcm2708
i2c-dev

Ce qui ressemble à ceci :

Rasp-Hack-GPIO-Config-I2C-20.png

Puis sauvez le fichier avec la combinaison de touche Contrôle-X Y puis la touche "retour clavier".

En fonction de la distribution, vous pourriez également avoir un fichier nommé /etc/modprobe.d/raspi-blacklist.conf

Il n'y a rien à faire si le fichier n'est pas présent. Par contre, s'il est présent, il sera nécessaire d'en éditer le contenu pour mettre les deux lignes suivantes en commentaire :

blacklist spi-bcm2708
blacklist i2c-bcm2708

.. en plaçant un # en début de ligne.

Ouvrir le fichier dans un éditeur en saisissant le commande suivante :

sudo nano /etc/modprobe.d/raspi-blacklist.conf

.. puis modifier le fichier pour qu'il apparaisse comme sur la capture suivante.

Rasp-Hack-GPIO-Config-I2C-21.png

Pour finir, sauver le fichier en utilisant la combinaison de touche Contrôle-X et Y.

config.txt

Si vous utilisez un Raspberry Pi avec un système d'exploitation récent (noyau 3.18 ou supérieur) il sera également nécessaire de modifier le fichier /boot/config.txt . Editer le fichier à l'aide de la commande sudo nano /boot/config.txt et ajouter le texte suivant en fin de fichier :

dtparam=i2c1=on
dtparam=i2c_arm=on

Note il s'agit du chiffre "1" dans "i2c1" et non de la lettre "L" en minuscule!

Rasp-Hack-GPIO-Config-I2C-22.png

Redémarrer le Pi après la modification!

sudo reboot

Tester I2C

Une fois installé, vous pouvez saisir la commande suivante pour détecter tous les périphériques connectés sur le bus I2C.

sudo i2cdetect -y 1

Rasp-Hack-GPIO-I2CConfig-2.png

Cela montre deux adresses I2C en cours d'utilisation – 0x40 et 0x70.

Notez que si vous utilisez l'un des tout premiers modèle de Raspberry Pi (Raspberry Pi Modèle B 256MB ) alors vous aurez besoin de changer la commande comme suit:

sudo i2cdetect -y 0

En effet, les concepteurs du Raspberry Pi on modifier le brochage du port I2C entre les deux "release" de Raspberry.

Pi B et Pi B+: la compatibilité du GPIO

Avec l'arrivée du Raspberry Pi 3, Raspberry Pi-2 et Raspberry Pi-B PLUS, Raspberry Pi Zero W vient également un GPIO étendu de 40 broches rétro-compatible avec le GPIO des premières générations du Raspberry-Pi qui, lui, n'avait que 26 broches.

GPIO-Compatibility-00v3.jpg

La seule vraie différence réside dans la longueur du GPIO du modèle Pi-3, Pi-2 ou B+ qui contient des broches en plus... et le Pi-Cobbler PLUS qui à également grandi pour accueillir les broches en plus.

Avec l'apparition du Pi Zero, nous pouvons reparler de la correspondance des GPIO.

Pour notre plus grand bonheur, le GPIO du Pi Zero et du Pi 3 (ou Pi 2) sont identiques :) chouette.

RASP-PIZERO-Correspondance-GPIO v2.jpg
Cliquez pour agrandir


Brochage

Voici le nom des broches du bus I2C matériel et leurs positions sur le GPIO.

Les 26 premières broches étant identiques entre le modèle Pi B et Pi B+, le schéma ci-dessous s'applique donc aussi à votre Pi PLUS :-).

RaspberryPi-GPIO-SPI.png

Elles sont:

  • SDA - Broche 3 - GPIO #0 (Ligne de donnée du Bus I2C, ligne dite DATA)
  • SCL - Broche 4 - GPIO #1 (Ligne du signal d'horloge du BUS I2C, ligne dite CLOCK et son diminutif CL ou CLK)

Source: GPIO Setup, créé par Simon Monk pour AdaFruit Industries.

Traduit et augmenté par Meurisse D. pour MCHobby.be, également basé sur des informations provenant du GitHub RaspberryPi

Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.