Ligne 18 : |
Ligne 18 : |
| | | |
| doit afficher une liste de fichiers où vous devez trouver '''Adafruit_I2C.py''' | | doit afficher une liste de fichiers où vous devez trouver '''Adafruit_I2C.py''' |
| + | |
| + | === Préparation pour MasterWriter.py === |
| + | Le programme MasterWriter.py va importer le Adafruit_I2C.py, il est donc capital que ce fichier soit accessible depuis MasterWriter.py. |
| + | |
| + | Il y a deux solutions possibles: |
| + | # copier Adafruit_I2C.py dans le même répertoire que le programme MasterWriter.py (que nous allons créer). |
| + | # créer un lien symbolique vers Adafruit_I2C.py depuis le répertoire où sera stocké notre programme MasterWriter.py . |
| + | |
| + | La deuxième option est de loin la plus propre et évitera la prolifération des version de Adafruit_I2C sur votre Pi. |
| + | |
| + | Le commandes suivantes permettent créer le répertoire de stockage pour MasterWriter.py , voici la marche à suivre: |
| + | |
| + | <nowiki>cd ~ |
| + | mkdir ArdPi-I2C |
| + | cd ArdPi-I2C |
| + | mkdir Pi |
| + | cd Pi |
| + | mkdir MasterWriter |
| + | cd MasterWriter</nowiki> |
| + | |
| + | Voila, maintenant nous allons créer un lien symbolique vers la source Adafruit_I2C que vous avez déjà installé sur votre pi |
| + | |
| + | <nowiki>cd ~/ArdPi-I2C/Pi/MasterWriter |
| + | ln -s ../../../Adafruit-Raspberry-Pi-Python-Code/Adafruit_I2C/Adafruit_I2C.py </nowiki> |
| + | |
| + | Ne reste plus qu'à créer notre programme MasterWriter.py à l'aide de la commande: |
| + | |
| + | <nowiki>cd ~/ArdPi-I2C/Pi/MasterWriter |
| + | nano MasterWriter.py</nano> |
| + | |
| + | Vous pouvez alors taper le code du programme (voir ci-dessous). |
| + | |
| + | Vous pouvez également utiliser la [[PI-Easy-Copy-Paste|méthode Pi-Copier/Pi-Coller]] pour copier/coller facilement le code dans '''MasterWriter.py''' |
| | | |
| == Programme MasterWriter.py == | | == Programme MasterWriter.py == |
| | | |
| + | <nowiki>#!/usr/bin/env python |
| + | # -*- coding: latin-1 -*- |
| + | |
| + | # === ArduPi-I2C ================================================ |
| + | # Communication entre Arduino et Raspberry Pi via le BUS I2C |
| + | # =============================================================== |
| + | # Tutoriel: http://mchobby.be/wiki/index.php?title=ArduPi-I2C |
| + | # |
| + | # Programme Master qui envoi des données données vers un Arduino |
| + | # S'utilise avec le programme Arduino SlaveListerner.ino |
| + | # |
| + | # Ecrit par D. Meurisse pour MCHobby.be |
| + | # www.mchobby.be - Vente de kit et composant Arduino et Raspberry Pi |
| + | # Licence CC-BY-SA |
| + | # |
| + | # Basé sur Adafruit_I2C.py librairie Python écrite par AdaFruit Industries |
| + | # www.adafruit.com |
| + | |
| + | import time |
| + | from Adafruit_I2C import Adafruit_I2C |
| + | |
| + | i2c = Adafruit_I2C( 0x04 ) |
| + | |
| + | # Ecriture de deux bytes, le registre (ici à 0) et la valeur hexa 0x40 |
| + | i2c.write8( 0, 0x40 ) |
| + | |
| + | # Donner un delais au périphérique I2C pour qu'il soit prêt a recevoir |
| + | # une nouvelle communication... sinon on recoit l'erreur |
| + | # Error accessing 0x04: Check your I2C address |
| + | time.sleep( 0.100 ) |
| + | |
| + | # Ecriture d'une liste de bytes |
| + | # d'abord le registre 0x35 (soit le caractère ascii 5) |
| + | # Ensuite les caratères abc convertis en bytes à l'aide de la fonctino ord |
| + | # Finalement la valeur 110 |
| + | i2c.writeList( 0x35, [ord('a'),ord('b'),ord('c'),110] ) |
| + | |
| + | time.sleep( 0.100 ) |
| + | |
| + | # Exemple plus élaboré |
| + | # Le dernier caractère est destiné à recevoir un byte |
| + | __liste = list() |
| + | __texte = 'valeur= ' |
| + | for i in range( len(__texte) ): |
| + | __liste.append(ord(__texte[i])) |
| + | |
| + | |
| + | for i in range(3): |
| + | __liste[len(__liste)-1] = i |
| + | i2c.writeList( 0x35, __liste ) |
| + | time.sleep(0.100)</nowiki> |
| | | |
| {{ArduPi-I2C-TRAILER}} | | {{ArduPi-I2C-TRAILER}} |