Projet

Général

Profil

Ce Wiki regorge de liens vers de la documentation et des tutoriels pour faire communiquer une Arduino et une Raspberry Pi.

Les bibliothèques : où les trouver ?

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 )

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

Autres liens

http://robotsbigdata.com/ Des biblios pour Arduino
http://www.raspberrypi-spy.co.uk/ Pleins de choses concernant la Raspberry Pi

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

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

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

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/

Raspberry Pi

Bibliothèque python : pySerial https://pypi.python.org/pypi/pyserial

Documentation de pySerial : http://pythonhosted.org/pyserial/

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/

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.

Arduino

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/

Archives

Arduino - Raspberry Pi w/ USB

ArduinoLampone