Différences entre versions de « Rasp-Hack-GPIO Configurer I2C »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(10 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{Rasp-Hack-GPIO-NAV}}
 
{{Rasp-Hack-GPIO-NAV}}
  
L'interface I2C est un standard très utilisé conçu pour permettre à un circuit intégré<br />
+
== A propos de I2C ==
de communiquer avec une autre.  
+
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.  
  
Puisque Raspberry Pi est capable de dialoguer en I2C, nous pouvons donc connecter une<br />
+
Voici quelques projets et produits qui utilisent des modules et composants I2C:
grande variété de composants et modules supportant le protocole I2C.
 
 
 
Voici quelques projets qui utilisent des modules et composants I2C:
 
  
 
* [[Rasp-Hack-MCP230XX|GPIO Expander pour Raspberry Pi]] Ajouter des entrées/sorties digitales à votre Pi.
 
* [[Rasp-Hack-MCP230XX|GPIO Expander pour Raspberry Pi]] Ajouter des entrées/sorties digitales à votre Pi.
 
* [[RASP-LCD-RGB|Afficheur 16x2 lignes + Keypad]] pour Raspberry Pi
 
* [[RASP-LCD-RGB|Afficheur 16x2 lignes + Keypad]] pour Raspberry Pi
* [[Rasp-Hack-RTC-DS1307|Support RTC DS1307]] (horloge temps réel) pour Raspberry PI
+
* [[RASP-PCF8523|Support RTC DS1307]] (horloge temps réel) pour Raspberry PI
 
* [[Rasp-Hack-Led-Backpack|Contrôleur LED (Led Backpack) pour afficheur 4x7 segments et matrice LED]]
 
* [[Rasp-Hack-Led-Backpack|Contrôleur LED (Led Backpack) pour afficheur 4x7 segments et matrice LED]]
 
* [[Rasp-Hack-MCP4725|MCP4725 Convertisseur Digital Analogique 12-Bit]]
 
* [[Rasp-Hack-MCP4725|MCP4725 Convertisseur Digital Analogique 12-Bit]]
Ligne 17 : Ligne 14 :
 
* [[Rasp-Hack-BMP085|Mesure de pression avec le BMP085]]
 
* [[Rasp-Hack-BMP085|Mesure de pression avec le BMP085]]
  
{{bloc-etroit|text=
+
{{ambox | text = 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:
 +
 
 +
<syntaxhighlight lang="bash">
 +
sudo apt-get install -y python-smbus
 +
sudo apt-get install -y i2c-tools
 +
</syntaxhighlight>
 +
 
 +
== Installer le support noyau (avec Raspi-Config) ==
 +
 
 +
Exécuter {{fname|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):
 +
 
 +
[[Fichier:Rasp-Hack-GPIO-Config-I2C-10.png|640px]]
 +
 
 +
Pour les plus anciennes versions de Raspi-Config, voyez sous l'entrée '''Advanced''' (Options avancées)
 +
 
 +
[[Fichier:Rasp-Hack-GPIO-Config-I2C-11.png|640px]]
 +
 
 +
Puis I2C
 +
 
 +
[[Fichier:Rasp-Hack-GPIO-Config-I2C-12.png|640px]]
 +
 
 +
Et activez le bus I2C (en répondant Yes / Oui).
 +
 
 +
[[Fichier:Rasp-Hack-GPIO-Config-I2C-13.png|640px]]
  
{{ambox | text = 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 ;-) }}
+
[[Fichier:Rasp-Hack-GPIO-Config-I2C-14.png|640px]]
  
}}
+
Redémarrez votre Pi pour activer le bus I2C!
  
Si vous utilisez Occidentalis, alors votre Pi est déjà prêt à supporter I2C (pour autant qu'il soit possible au programme d'accéder au broches matérielles).  
+
{{ambox|text=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!}}
  
Par contre, si vous utilisez Raspbian, vous aurez besoin d'ouvrir LX Terminal et d'encoder la commande suivante:
+
== 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 :
  
 
  <nowiki>sudo nano /etc/modules</nowiki>
 
  <nowiki>sudo nano /etc/modules</nowiki>
  
et d'ajouter les deux lignes suivantes à la fin du fichier
+
Et ajoutez les deux lignes suivante à la fin du fichier :
  
  <nowiki>i2c-bcm2708  
+
  <nowiki>i2c-bcm2708
 
i2c-dev</nowiki>
 
i2c-dev</nowiki>
  
[[Fichier:Rasp-Hack-GPIO-I2CConfig-1.png|500px]]
+
Ce qui ressemble à ceci :
 +
 
 +
[[Fichier:Rasp-Hack-GPIO-Config-I2C-20.png|640px]]
 +
 
 +
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''' :
  
Après la modification du fichier, vous devrez redémarrer (rebooter) votre Pi pour les modifications soient appliquées.
+
<nowiki>blacklist spi-bcm2708
 +
blacklist i2c-bcm2708</nowiki>
  
Si vous avez des problèmes I2C avec votre Raspbian, il est préférable de passer à la toute dernière version. Les instructions ci-présentes ont été testées sur une "release" datée du 28/10/2012.
+
.. en plaçant un # en début de ligne.
  
Le bus I2C permet à plusieurs périphériques d'être connecté sur votre Raspberry Pi, chacun avec une adresse unique. Cette adresse unique peut souvent être modifiée sur le module à l'aide de cavalier (ou de pontage à souder pour réaliser des connexions).
+
Ouvrir le fichier dans un éditeur en saisissant le commande suivante :
  
Il est très utile de pouvoir visualiser les appareils qui sont connectés au Pi. C'est une façon bien pratique de s'assurer que tout fonctionne correctement.
+
<nowiki>sudo nano /etc/modprobe.d/raspi-blacklist.conf</nowiki>
  
Pour effectuer cette tâche il faut installer des utilitaires I2C, il est préférable d'utiliser la commande suivante dans un terminal poutr les installer
+
.. puis modifier le fichier pour qu'il apparaisse comme sur la capture suivante.
  
<nowiki>sudo apt-get install python-smbus
+
[[Fichier:Rasp-Hack-GPIO-Config-I2C-21.png|640px]]
sudo apt-get install i2c-tools</nowiki>
 
  
Une fois qu'ils sont installer, vous pouvez taper la commande suivantes pour voir tous les périphériques connectés (si vous utilisez un Raspberry Pi Modèle B 512MB)
+
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 {{fname|/boot/config.txt}} . Editer le fichier à l'aide de la commande {{fname|sudo nano /boot/config.txt}} et ajouter le texte suivant en fin de fichier :
 +
 
 +
<nowiki>dtparam=i2c1=on
 +
dtparam=i2c_arm=on</nowiki>
 +
 
 +
Note il s'agit du chiffre "1" dans "i2c1" et non de la lettre "L" en minuscule!
 +
 
 +
[[Fichier:Rasp-Hack-GPIO-Config-I2C-22.png|640px]]
 +
 
 +
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.
  
 
  <nowiki>sudo i2cdetect -y 1</nowiki>
 
  <nowiki>sudo i2cdetect -y 1</nowiki>
Ligne 74 : Ligne 126 :
 
== Brochage ==
 
== Brochage ==
  
Voici le nom des broches I2C 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 :-).  
+
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 :-).  
  
 
[[Fichier:RaspberryPi-GPIO-SPI.png]]
 
[[Fichier:RaspberryPi-GPIO-SPI.png]]
  
 
Elles sont:
 
Elles sont:
* SDA - Broche 3 - GPIO #x (Ligne de donnée du Bus I2C, ligne dite ''DATA'')  
+
* SDA - Broche 3 - GPIO #0 (Ligne de donnée du Bus I2C, ligne dite ''DATA'')  
* SCL - Broche 4 - GPIO #y (Ligne du signal d'horloge du BUS I2C, ligne dite ''CLOCK'' et son diminutif ''CL'' ou ''CLK'')
+
* SCL - Broche 4 - GPIO #1 (Ligne du signal d'horloge du BUS I2C, ligne dite ''CLOCK'' et son diminutif ''CL'' ou ''CLK'')
  
 
{{Rasp-Hack-GPIO-TRAILER}}
 
{{Rasp-Hack-GPIO-TRAILER}}

Version actuelle datée du 29 août 2017 à 20:46


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.