ArduPi-I2C
Introduction
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.
Exemple mettant en oeuvre un Raspberry Pi et un Boarduino via le bus I2C
Introduction préalable à I2C
Si vous ne savez pas encore ce qu'est un bus I2C ou si vous désirez vous rafraichir la mémoire, vous pouvez consulter notre tutoriel I2C pour Arduino.
Le tutoriel d'introduction I2C devrait représenter une bonne "intro" pour Arduino ainsi que Raspberry-Pi.
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 :-)
Compatibilité Pi-2 et Pi B PLUS
Avec l'arrivée du Raspberry Pi 3, Raspberry Pi-2 et Raspberry Pi-B PLUS, Raspberry Pi Zero W vient également un GPIO étendu de 40 broches rétro-compatible avec le GPIO des premières générations du Raspberry-Pi qui, lui, n'avait que 26 broches.
Les 26 premières broches du GPIO étant identiques entre le Raspberry-Pi modèle B et le Raspberry-Pi 3, Pi 2 (ou Pi B+), tout ce que vous appendrez sur le GPIO du modèle B fonctionnera à l'identique aussi sur un modèle B+, le Pi 2 et le Pi 3:-) |
La seule vraie différence réside dans la longueur du GPIO du modèle Pi-3, Pi-2 ou B+ qui contient des broches en plus... et le Pi-Cobbler PLUS qui à également grandi pour accueillir les broches en plus.
Avec l'apparition du Pi Zero, nous pouvons reparler de la correspondance des GPIO.
Pour notre plus grand bonheur, le GPIO du Pi Zero et du Pi 3 (ou Pi 2) sont identiques :) chouette.
Exemple pratique: Une plateforme mobile pour 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).
- Moteur continu (DC)
- Servo Moteur
- 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:
- un Raspberry Pi-B PLUS ou un Raspberry Pi B
- un boarduino (un 100% compatible Arduino réalisé par AdaFruit)
- Convertisseur Logique 4 Canaux - Bi-Directionnel - I2C compatible
- Pi-Cobbler PLUS ou un Pi-Cobbler en guise de connecteur Raspberry-Pi
Le tutoriel que nous proposons ici vise justement à pouvoir réaliser un tel montage... en commençant par la communication I2C entre Raspberry-Pi et Arduino
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.