Ligne 2 : |
Ligne 2 : |
| | | |
| == Introduction == | | == Introduction == |
− | {{bloc-etroit|text=Cet exemple est certes rudimentaire mais il met en place tous les éléments nécessaires à la communication I2C structurée entre un Raspberry Pi et un Arduino.}} | + | {{bloc-etroit|text=Cet exemple est un peu plus élaboré que le précédent, il met en oeuvre le principe de registres sur un Arduino ([[Arduino I2C Intro-ConceptRegistre|abordé dans ce tutoriel sur I2C]]) afin de permettre une communication structurée entre un Pi (en maître) et un Arduino (en esclave). |
| | | |
| Dans l'exemple suivant: | | Dans l'exemple suivant: |
Ligne 8 : |
Ligne 8 : |
| * <strong>Arduino est le SLAVE LISTENER</strong> (esclave qui écoute)<br />Il attend donc les instructions envoyée sur le bus I2C. | | * <strong>Arduino est le SLAVE LISTENER</strong> (esclave qui écoute)<br />Il attend donc les instructions envoyée sur le bus I2C. |
| | | |
− | Dans cet exemple:
| + | === Quelques opérations simples === |
− | * Le programme Raspberry se content d'envoyer des messages simples. | + | * Le programme Raspberry se content d'envoyer différentes requêtes par l'intermédiaire de registres: |
− | * le programme Arduino se content de renvoyer les informations reçues vers le Moniteur Série | + | ** Demander à Arduino le '''numéro de version''' de son logiciel. |
| + | ** Demander à Arduino de '''faire une addition''' de deux valeurs (c'est une exemple académique). |
| + | ** Demander à Arduino d''''allumer et éteindre la LED''' branchée sur la broche 13 :-) |
| + | * le programme Arduino se content d'effectuer les traitements et de renvoyer les valeurs sur le bus I2C. |
| | | |
− | Grâce à cet exemple, il devient possible d'espionner le processus de communication I2C entre Arduino et Raspberry Pi.}}
| + | === Notes === |
| + | # Le programme Arduino n'affiche pas beaucoup d'information sur le port série. Les transmissions séries perturbent le bon fonctionnement de général du traitement I2C. |
| + | # Le programme Raspberry affiche le résultat des différentes opérations directement dans le terminal.}} |
| + | # Il serait bien entendu possible de développer un protocole complet pour cet exemple... mais utiliser le procédé standardisé des registres sera "plus efficace". |
| | | |
| == Montage == | | == Montage == |
| Nous utilisons ici le [[ArduPi-I2C-Montage|montage général]] décrit dans ce tutoriel. | | Nous utilisons ici le [[ArduPi-I2C-Montage|montage général]] décrit dans ce tutoriel. |
| + | |
| + | [[Fichier:Ardu-Pi (Arduino).jpg]] |
| | | |
| {{ArduPi-I2C-TRAILER}} | | {{ArduPi-I2C-TRAILER}} |