ArduPi-I2C-Support

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.

Les solutions I2C en Python

Comme pour le reste des tutoriels disponibles chez MCHobby, nous nous concentrons uniquement sur la programmation du bus I2C sous Python.

Etant distributeur AdaFruit et sachant qu'Adafruit propose un excellent support de ses produits I2C sous Raspberry, nous avons exploré cette piste sans pour autant négliger une excellent source connue sous le nom de Quick2Wire qui propose également un support python pour Raspberry Pi.

Quick2Wire

Quick2Wire propose un dépôt Git avec du code supportant I2C sous Raspberry-Pi.

Le peu de tests réalisé avec cette librairie (car elle fonctionne avec notre SlaveListener sous Arduino) laisse clairement entrevoir une solution "professionnel".

Le code produit avec cette librairie reste concis et lisible.

Hormis l'exemple que vous trouverez sur la page d'accueil (http://quick2wire.com/2012/06/i2c-python/), nous avons produit le code d'exemple (MasterWriter-Q2Wire.py) suivant qui fonctionne parfaitement.

# A démarrer avec:
# sudo python3 MasterWriter-Q2Wire.py
import quick2wire.i2c as i2c
from quick2wire.i2c import I2CMaster, writing_bytes, reading, writing
import time
address = 0x04
with I2CMaster() as master:
        while True:
                master.transaction(
                        writing( address, b'ABCDEFD' )
                         )
                time.sleep(1)

Cette librairie sera probablement un outil sur lequel s'appuyer pour écrire des applications robustes et professionnel. Quick2Wire produit toute une série d'interface spécifique (API) pour divers composants standard ainsi qu'une documentation pertinente (ex: utiliser le GPIO sans être en ROOT).

MAIS...

  • Comme tout environnement de niveau professionnel, Quick2Wire réclame un investissement non négligeable pour l'installer, l'utiliser et la rendre pleinement fonctionnel.
  • Les nombreuses API rendent l'utilisation de Quick2Wire "moins évident"... un bonne base en programmation est donc préférable.
  • Nécessite impérativement l'utilisation de Python 3 (certes disponible sur Raspberry mais pas l'environnement d'exécution Python par défaut).

Personnellement, j'aime beaucoup Quick2Wire. S'attarder sur Quick2Wire sera un bon investissement Python... qu'il faut peut être réserver à plus tard... après avoir acquis un savoir minimum en I2C, interaction Pi<->Arduino via I2C, être familiarisé avec divers composants I2C.

Si vous désirez investir du temps dans Quick2Wire, nous vous proposons les liens suivants:

AdaFruit_I2C.py

AdaFruit Industries propose également un code open-source pour supporter ses nombreux produits I2C.

AdaFruit produit du code et des tutoriels open-source de qualités, quoi de plus normal que d'aller voir comment ils réalise le support I2C sur Raspberry Pi!

Simple et efficace, sans sur-couche.... et donc plus facile à mettre en œuvre et à intégrer à son propre projet.

Vous pouvez explorer le fichier AdaFruit_I2C.py directement sur GitHub. Ce fichier fait partie du projet plus général Adafruit-Raspberry-Pi-Python-Code (GitHub)

Pour en savoir plus, nous vous proposons de passer à l'étape suivante en cliquant ici


Ecrit par Meurisse D. pour mchobby.be

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.