Communication I2C entre un Arduino et un Raspberry Pi

Connecter un Raspberry-Pi et un (ou plusieurs) Arduino par l'intermédiaire d'un bus I2C peut représenter une petite révolution pour vos projets.


Certes, il existe de nombreux périphériques I2C... mais seul un Arduino vous permettra de concevoir un périphérique intelligent qui répondra précisément certaines de vos exigences.

Tutoriel Arduino + I2C + Raspberry
publié sur le wiki de MCHobby
Pourquoi I2C et pas le port série?
Raspberry ne dispose que d'un seul port série... et le condamné pour commander un seul périphérique (Arduino) n'est probablement pas très opportun.
Il est plus intéressant de préserver ce port série pour d'autres éventualités futures.
L'utilisation du bus I2C permettra de raccorder sereinement plusieurs Arduino... sans sacrifier ni le port série du Raspberry, ni le port série d'Arduino :-)

Montage
Voici un exemple de montage de test avec un BoArduino.
Tutoriel Arduino + I2C + Raspberry
publié sur le wiki de MCHobby

Tutoriel Arduino + I2C + Raspberry
publié sur le wiki de MCHobby
Code et Tutoriel
Comme l'article est détaillé est plus long qu'un simple billet, nous vous proposons de passer sur notre Tutoriel pour lire la suite.

Où acheter?
Exemple pratique : Une plateforme mobile pour Raspberry Pi
Un certain nombre de nos clients désirent réaliser un robot mobile à l'aide de Raspberry Pi.
En effet, il sera difficile de réaliser la plateforme mobile suivante à partir d'un Raspberry:
  • piloter 4 moteurs de propulsions,
  • 1 ou 2 servo moteurs pour orienter une tourelle de détection de distance
  • Utiliser un senseur de distance ultra son
  • Effectuer un test de collision élémentaire (pour bloquer la motorisation)
C'est en effet un projet très excitant... mais malheureusement, Raspberry n'est pas une plateforme idéale pour réaliser une telle base mobile. Par contre, il sera très intéressant de piloter une telle base mobile à l'aide d'un Raspberry Pi.
C'est certes possible à grand renfort d'ingéniosité, montage plus ou moins complexe et en sacrifiant toutes les entrées/sorties de votre Pi.

Arduino et Motor Shield

A contrario, réaliser un tel montage est trivial à l'aide d'un Arduino et d'un Motor shield (dont exemple ci-dessous).
Issu du Tutoriel MCHobby sur le Motor Shield

  1. Moteur continu (DC)
  2. Servo Moteur
  3. Moteur pas-à-pas
Pi + (Arduino + Motor Shield) + I2C
Puisque Arduino et un motor shield seraient des outils de contrôle idéal d'une plateforme mobile, pourquoi donc ne pas utiliser un Arduino+MotorShield (comme esclave I2C intelligent) commandé par Raspberry Pi via le bus I2C.

Raspberry resterait alors maître de la logique de mouvement et donnerait ses ordres à la plateforme mobile elle-même motorisée par un Arduino+MotorShield.

Voici donc une proposition de montage permettant de concevoir et commander une telle plateforme mobile pour Raspberry Pi.


Cette suggestion met en oeuvre:
Le tutoriel que nous proposons ici vise justement à disposer des moyens techniques pour pouvoir réaliser un tel montage... en commençant par la communication I2C entre Raspberry-Pi et Arduino :-)

Bonne lecture