jeudi 15 janvier 2015

Activation des pins I2C du Raspberry Pi

Mise à jour (11 janvier 2019): Lors de la publication de cet article, en janvier 2015, l'activation du protocole i2c sur le Rasbperry Pi était beaucoup plus complexe qu'elle ne l'est maintenant: il était nécessaire d'éditer manuellement le fichier /etc/modules ainsi que le fichier raspi-blacklist/conf ... Vous lisez présentement une nouvelle version mise à jour, qui décrit la nouvelle procédure, beaucoup plus simple...


1)  Réglage des préférences

Ouvrez "Configuration du Raspberry Pi" dans le menu "Préférence" de Raspbian.


Dans l'onglet "Interfaces", vous vous assurez que I2C est activé.



2)  Installation de i2c-tools

i2c-tools contient les librairies essentielles pour accéder aux broches i2c dans nos scripts en Python. Elles sont maintenant incluses par défaut dans Raspbian et cette étape est donc devenue superflue mais, à tout hasard, voici la commande pour l'installation:

sudo apt-get install python-smbus i2c-tools

3)  Redémarrage du Raspberry Pi

sudo reboot

4)  Vérifications

Suite au redémarrage, on peut vérifier que l'I2C fonctionne en tapant:

sudo i2cdetect -y 1

(ou "sudo i2cdetect -y 0" s'il s'agit du Raspberry Pi modèle A, "sudo i2cdetect -y 2" s'il s'agit d'un Banana Pi M2 Berry )

...qui vous retourne une réponse de ce genre:

Alors qu'aucun périphérique n'est branché:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --  


Après branchement d'un accéléromètre MMA7455:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- 1d -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --  


...ce qui indique que l'adresse I2C de mon accéléromètre (en hexadécimal) est 1D.

Suite à l'ajout d'un deuxième périphérique:  une horloge temps réel (RTC) DS1307:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- UU -- 1d -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --    


On voit s'ajouter l'adresse I2C de l'horloge (68) ainsi que de la mémoire (EEPROM) qui lui est associée (50).

Vos périphériques I2C sont maintenant prêts à être utilisés!

Source

Yves Pelletier (Twitter: @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire