ArduPi-I2C-Support
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.
Force est de reconnaître que Quick2Wire place la "barre un peu haut" pour des débutants, cette librairie est trop complexe pour une première approche. Nous allons donc nous concentrer sur une option alternative basée sur les travaux d'AdaFruit Industries réalisé pour supporter ses propres produits I2C sous Raspberry Pi. |
Si vous désirez investir du temps dans Quick2Wire, nous vous proposons les liens suivants:
- I2C & Python on the Raspberry Pi
- Le GitHub de quick2wire-python-api
- Racine du GitHub de Quick2Wire Une source impressionnante d'information
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!
ET HOOO SURPRISE... le support I2C est assuré par un seul et unique fichier Python nommé AdaFruit_I2C.py partagé entre tous les produits I2C AdaFruit pour Raspberry! |
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.