Rasp-Hack-GPIO Configurer I2C
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:
- GPIO Expander pour Raspberry Pi Ajouter des entrées/sorties digitales à votre Pi.
- Afficheur 16x2 lignes + Keypad pour Raspberry Pi
- Support RTC DS1307 (horloge temps réel) pour Raspberry PI
- Contrôleur LED (Led Backpack) pour afficheur 4x7 segments et matrice LED
- MCP4725 Convertisseur Digital Analogique 12-Bit
- Controleur PWM/Servo 16 canaux pour Raspberry Pi
- Mesure de pression avec le BMP085
Avec le temps, nous traduirons de plus en plus des tutoriels mentionnés ci-dessus... mais peut-être oublierons nous de remplacer les liens. N'hésitez pas a nous envoyer un petit mail (soyez précis svp) depuis le formulaire de contact de www.mchobby.be ;-) |
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):
Pour les plus anciennes versions de Raspi-Config, voyez sous l'entrée Advanced (Options avancées)
Puis I2C
Et activez le bus I2C (en répondant Yes / Oui).
Redémarrez votre Pi pour activer le bus I2C!
Nous recommandons également de survoler les étapes de la configuration manuelle. Cela permet de vérifier que Raspi-Config a bien amené les modifications nécessaires! |
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 :
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.
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!
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
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.
Les 26 premières broches du GPIO étant identiques entre le Raspberry-Pi modèle B et le Raspberry-Pi 3, Pi 2 (ou Pi B+), tout ce que vous appendrez sur le GPIO du modèle B fonctionnera à l'identique aussi sur un modèle B+, le Pi 2 et le Pi 3:-) |
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.
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 :-).
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.