Activer l’interface I2C sur le Raspberry Pi

Activer l'interface I2C sur le Raspberry Pi

I2C est un bus multi-périphérique utilisé pour connecter des périphériques à faible vitesse aux ordinateurs et aux systèmes embarqués. Le Raspberry Pi prend en charge cette interface sur son en-tête GPIO et c’est un excellent moyen de connecter des capteurs et des appareils. Une fois configuré, vous pouvez connecter plusieurs appareils sans utiliser de broches supplémentaires sur l’en-tête.

Étape 1 – Activer l’interface I2C

L’image Raspbian par défaut désactive I2C par défaut, donc avant de pouvoir l’utiliser, l’interface doit être activée. Cela peut être fait en utilisant l’une des deux méthodes. Je vais décrire toutes les méthodes, mais la première est probablement plus facile et plus rapide.

Méthode 1 – Utilisation de « Raspi-config » sur la ligne de commande

Depuis la ligne de commande ou la fenêtre Terminal, commencez par exécuter la commande suivante :

sudo raspi-config

Cela lancera l’utilitaire raspi-config. Sélectionnez « Options d’interfaçage » :

Raspi-Config - Interfaçage

Mettez en surbrillance l’option « I2C » et activez «  ».

Raspi-Config - Interfaçage - I2C

Sélectionnez et activez «  » :

Raspi-Config - Interfaçage - I2C 1

Mettez en surbrillance et activez «  » :Raspi-Config - Interfaçage - I2C 2

Lorsque vous êtes invité à redémarrer, mettez en surbrillance et activez «  » :

Raspi-Config - Invite de redémarrage

Le Raspberry Pi va redémarrer et l’interface sera activée.

Méthode 2 – Utilisation de la « Configuration Raspberry Pi »

Si votre Pi démarre sur le bureau, vous pouvez soit ouvrir une fenêtre de terminal et utiliser la méthode 1, soit utiliser l’outil graphique « Raspberry Pi Configuration ». Celui-ci se trouve sous Menu > Préférences > Configuration Raspberry Pi

Lancement de la configuration Raspberry Pi à partir du menu

Ensuite, il vous suffit de sélectionner l’onglet « Interfaces » et de définir I2C sur « Activé » :

Configuration Raspberry Pi - Onglet Interfaces - I2C

Cliquez sur le bouton « OK ». Si vous êtes invité à redémarrer, sélectionnez « Oui » pour que les modifications prennent effet.

Configuration Raspberry Pi - Invite de redémarrage

Le Raspberry Pi redémarrera et l’interface I2C sera activée.

Étape 2 – Installer les utilitaires

Pour aider au débogage et permettre à l’interface d’être utilisée dans Python, nous pouvons installer « python-smbus » et « i2c-tools » :

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

Étape 3 – Arrêt

Arrêtez votre Pi en utilisant :

sudo halt

Attendez dix secondes, débranchez l’alimentation de votre Pi et vous êtes maintenant prêt à connecter votre matériel I2C.

Vérifier si I2C est activé (facultatif)

Lorsque vous allumez ou redémarrez votre Pi, vous pouvez vérifier que le module i2c est en cours d’exécution en utilisant la commande suivante :

lsmod | grep i2c_

Cela listera tous les modules commençant par « i2c_ ». S’il répertorie « i2c_bcm2708 », alors le module fonctionne correctement.

Test du matériel (facultatif)

Une fois que vous avez connecté votre matériel, vérifiez le câblage. Assurez-vous que 3,3 V va aux bonnes broches et que vous n’avez pas de courts-circuits. Allumez le Pi et attendez qu’il démarre.

Si vous avez un Model A, B Rev 2 ou B+ Pi alors tapez la commande suivante :

i2cdetect -y 1

Si vous possédez un Model B Rev 1 Pi d’origine, tapez la commande suivante :

i2cdetect -y 0

Pourquoi la différence ? Entre les versions Rev 1 et Rev 2 du Pi, ils ont modifié les signaux qui allaient aux broches 3 et 5 de l’en-tête GPIO. Cela a changé le numéro de périphérique qui doit être utilisé avec I2C de 0 à 1.

J’ai utilisé un Pi 2 Model B avec un capteur connecté et ma sortie ressemblait à ceci :

pi@raspberrypi ~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Cela montre que j’ai un appareil connecté et que son adresse est 0x20 (32 en décimal).

Une liste complète des tutoriels présentant cette interface est disponible en cliquant ici.

Enfin, il y a plus d’informations techniques sur I2C sur le Wikipedia pâge Si tu es intéressé.