{{toc}}
Ce Wiki regorge de liens vers de la documentation et des tutoriels pour faire communiquer une Arduino et une Raspberry Pi.
h1. Les bibliothèques : où les trouver ?
h2. Pour l'Arduino : http://playground.arduino.cc/Main/LibraryList#Comm
Les bibliothèques Arduino : la sélection d'e-gab (ce qui pourrait être intéressant pour le robot ^^)
h2. Pour la Raspberry Pi (Applications et bibliothèques) : http://playground.arduino.cc/Main/InterfacingWithSoftware
Les bibliothèques Raspberry Pi : la sélection d'e-gab
h2. Autres liens
http://robotsbigdata.com/ Des biblios pour Arduino
http://www.raspberrypi-spy.co.uk/ Pleins de choses concernant la Raspberry Pi
h1. Communication Raspberry-Arduino avec bus I2C
Nous (sbentz et tbenhnini) avons choisi le bus I2C pour faire communiquer Raspi et Arduino.
On a réussi à transférer des mesures (= des floats) et des ordres (= des int)...
...mais...
. les floats sont chiants à transférer
. les floats devaient être compris entre -100 et +100
. le floats reçu par la Raspi n'était pas égal au float envoyé par l'Arduino : si sa partie décimale était non nulle, il y avait une erreur relative de 10^-7
warning. Possible problème de tension entre la RasPi (3.3V) et l'arduino (5V) (Uno, Nano et Mega = 5V)
tip. Des solutions simples existent avec quelques résistances http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
h2. Tutoriels
Raspberry-Pi - Arduino par l'intermédiaire d'un bus I2C Au S7, on (sbentz et tbenhnini) s'en est inspiré pour faire communiquer Arduino-Raspi et coder https://github.com/E-gab-ECM/Link_Raspberry-Arduino
http://mchobby.be/wiki/index.php?title=ArduPi-I2C
Tuto de Julien Enselme ! : La communication série avec arduino (et Python)
http://www.jujens.eu/posts/2014/May/05/Communication-serie/
Raspberry Pi – Arduino – Lier les deux via le bus I2C
http://www.pihomeserver.fr/2013/08/13/raspberry-pi-home-server-arduino-lier-les-deux-via-bus-i2c/
Arduino Serial communication
http://www.oxgadgets.com/2011/07/arduino-serial-communication.html
h2. Documentation
Arduino lit octet par octet, cf fonction read()
Arduino peut interpréter l'octet comme nombre (type int) ou string (type char)
Connecteurs I2C de l'Arduino : où sont-ils ?
Regarder la page de Wire Library (cf lien ci-dessous)
Regarder la page officielle de la carte (Uno pour l'exemple) : https://www.arduino.cc/en/Main/ArduinoBoardNano
Wire Library (I2C)
https://www.arduino.cc/en/Reference/Wire
Wikipedia I2C
wikipedia>I²C
h1. Communication Raspberry-Arduino ou Raspberry-Carte moteur MD25 avec bus Sériel
warning. Toujours faire attention au 3.3V de la Raspi, ajoutez des résistances si nécessaire
tip. pour résoudre le problème, cf http://blog.oscarliang.net/raspberry-pi-and-arduino-connected-serial-gpio/
h2. Raspberry Pi
h3. Bibliothèque python : pySerial https://pypi.python.org/pypi/pyserial
Documentation de pySerial : http://pythonhosted.org/pyserial/
h3. Tutos
Lecture/Ecriture sur le port série de la Raspi:
http://www.instructables.com/id/Read-and-write-from-serial-port-with-Raspberry-Pi/
h2. Carte commande MD25 (utilisée pour l'asservissement des moteurs du grand robot)
Documentation:
http://www.robot-electronics.co.uk/htm/md25tech.htm
notice. Comme indiqué il y a les deux modes I2C ou Serial de disponible pour la carte commande. Au choix.. mais le mode série est beaucoup plus clair.
h2. Arduino
h3. Bibliothèque officielle Arduino
notice. Elle s'appelle SoftwareSerial. A l'époque (2013) elle était appelée NewSoftSerial.
Documentation
http://arduiniana.org/libraries/NewSoftSerial/
https://www.arduino.cc/en/Reference/Serial
A savoir
Le port Seriel (pins 0 et 1) est lié au port USB. Ce sont les mêmes. On ne peut pas connecter son PC par le port USB et la RasPi aux pins 0 et 1. Cependant, il semble qu'on peut tout de même téléverser ;) (cf le tuto)
L'Arduino Mega a 3 autres ports sériels : Seriel3 (pins 14 et 15), Seriel2 (16,17) et Seriel3 (18,19).
La biblio Arduino (SoftwareSerial) permet d'utiliser d'autres pins.
Tutos
http://codeandlife.com/2012/07/29/arduino-and-raspberry-pi-serial-communication/
h1. Archives
Mis à jour par Sylvain Bentz il y a presque 9 ans · 89 révisions