Projet

Général

Profil

Wiki » Historique » Version 86

Sylvain Bentz, 28/01/2016 02:13

1 86 Sylvain Bentz
{{toc}}
2 77 Sylvain Bentz
3 86 Sylvain Bentz
Ce Wiki regorge de liens vers de la documentation et des tutoriels pour faire communiquer une Arduino et une Raspberry Pi.
4 1 Sylvain Bentz
5 25 Sylvain Bentz
6 1 Sylvain Bentz
7 86 Sylvain Bentz
h1. Les bibliothèques : où les trouver ?
8 72 Sylvain Bentz
9 1 Sylvain Bentz
10 86 Sylvain Bentz
h2. Pour l'Arduino : http://playground.arduino.cc/Main/LibraryList#Comm
11 1 Sylvain Bentz
12 86 Sylvain Bentz
[[Les bibliothèques Arduino]] : la sélection d'e-gab (ce qui pourrait être intéressant pour le robot ^^)
13 1 Sylvain Bentz
14 1 Sylvain Bentz
15 86 Sylvain Bentz
h2. Pour la Raspberry Pi (Applications et bibliothèques) : http://playground.arduino.cc/Main/InterfacingWithSoftware
16 71 Sylvain Bentz
17 86 Sylvain Bentz
[[Les bibliothèques Raspberry Pi]] : la sélection d'e-gab
18 63 Sylvain Bentz
19 85 Sylvain Bentz
20 1 Sylvain Bentz
21 86 Sylvain Bentz
h1. Communication Raspberry-Arduino avec bus I2C
22 1 Sylvain Bentz
23 86 Sylvain Bentz
Nous (sbentz et tbenhnini) avons choisi le bus I2C pour faire communiquer Raspi et Arduino.
24 86 Sylvain Bentz
On a réussi à transférer des mesures (= des floats) et des ordres (= des int)...
25 86 Sylvain Bentz
...mais...
26 86 Sylvain Bentz
. les floats sont chiants à transférer
27 86 Sylvain Bentz
. les floats devaient être compris entre -100 et +100
28 86 Sylvain Bentz
. 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
29 64 Sylvain Bentz
30 86 Sylvain Bentz
warning. Possible problème de tension entre la RasPi (3.3V) et l'arduino (5V) (Uno, Nano et Mega = 5V)
31 66 Sylvain Bentz
32 1 Sylvain Bentz
tip. Des solutions simples existent avec quelques résistances http://playground.arduino.cc/Main/I2CBi-directionalLevelShifter
33 1 Sylvain Bentz
34 1 Sylvain Bentz
35 86 Sylvain Bentz
h2. Tutoriels
36 49 Sylvain Bentz
37 86 Sylvain Bentz
_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 et Raspi et coder*  https://github.com/E-gab-ECM/Link_Raspberry-Arduino
38 86 Sylvain Bentz
http://mchobby.be/wiki/index.php?title=ArduPi-I2C
39 86 Sylvain Bentz
40 1 Sylvain Bentz
_Tuto de Julien Enselme ! : La communication série avec arduino (et Python)_
41 1 Sylvain Bentz
http://www.jujens.eu/posts/2014/May/05/Communication-serie/
42 1 Sylvain Bentz
43 35 Sylvain Bentz
_Raspberry Pi – Arduino – Lier les deux via le bus I2C_
44 35 Sylvain Bentz
http://www.pihomeserver.fr/2013/08/13/raspberry-pi-home-server-arduino-lier-les-deux-via-bus-i2c/
45 36 Sylvain Bentz
46 8 Tarek Benhnini
_Arduino Serial communication_
47 1 Sylvain Bentz
http://www.oxgadgets.com/2011/07/arduino-serial-communication.html
48 1 Sylvain Bentz
49 21 Sylvain Bentz
50 86 Sylvain Bentz
h2. Documentation
51 83 Sylvain Bentz
52 1 Sylvain Bentz
Arduino lit octet par octet, cf fonction read()
53 1 Sylvain Bentz
54 68 Sylvain Bentz
Arduino peut interpréter l'octet comme nombre (type int) ou string (type char)
55 1 Sylvain Bentz
56 86 Sylvain Bentz
_Connecteurs I2C de l'Arduino : où sont-ils ?_
57 86 Sylvain Bentz
Regarder la page de Wire Library (cf lien ci-dessous)
58 86 Sylvain Bentz
Regarder la page officielle de la carte (Uno pour l'exemple) : https://www.arduino.cc/en/Main/ArduinoBoardNano
59 1 Sylvain Bentz
60 1 Sylvain Bentz
_Wire Library (I2C)_
61 1 Sylvain Bentz
https://www.arduino.cc/en/Reference/Wire
62 1 Sylvain Bentz
63 1 Sylvain Bentz
_Wikipedia I2C_
64 1 Sylvain Bentz
[[wikipedia>I²C]]
65 1 Sylvain Bentz
66 1 Sylvain Bentz
67 86 Sylvain Bentz
68 86 Sylvain Bentz
h1. Communication Raspberry-Arduino ou Raspberry-Carte moteur MD25 avec bus Sériel
69 86 Sylvain Bentz
70 1 Sylvain Bentz
warning. Toujours faire attention au 3.3V de la Raspi, ajoutez des résistances si nécessaire
71 1 Sylvain Bentz
72 1 Sylvain Bentz
tip. pour résoudre le problème, cf http://blog.oscarliang.net/raspberry-pi-and-arduino-connected-serial-gpio/
73 1 Sylvain Bentz
74 1 Sylvain Bentz
75 86 Sylvain Bentz
h2. Raspberry Pi
76 34 Sylvain Bentz
77 86 Sylvain Bentz
h3. Bibliothèque python : pySerial https://pypi.python.org/pypi/pyserial
78 86 Sylvain Bentz
79 86 Sylvain Bentz
_Documentation de pySerial_ : http://pythonhosted.org/pyserial/
80 86 Sylvain Bentz
81 84 Sylvain Bentz
h3. Tutos
82 13 Sylvain Bentz
83 84 Sylvain Bentz
_Lecture/Ecriture sur le port série de la Raspi:_
84 65 Sylvain Bentz
http://www.instructables.com/id/Read-and-write-from-serial-port-with-Raspberry-Pi/
85 37 Sylvain Bentz
86 34 Sylvain Bentz
87 86 Sylvain Bentz
h2. Carte commande MD25 (utilisée pour l'asservissement des moteurs du grand robot)
88 86 Sylvain Bentz
89 75 Sylvain Bentz
_Documentation_:
90 75 Sylvain Bentz
http://www.robot-electronics.co.uk/htm/md25tech.htm
91 48 Sylvain Bentz
92 86 Sylvain Bentz
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.
93 78 Tarek Benhnini
94 78 Tarek Benhnini
95 86 Sylvain Bentz
h2. Arduino
96 86 Sylvain Bentz
97 86 Sylvain Bentz
h3. Bibliothèque officielle Arduino
98 86 Sylvain Bentz
99 86 Sylvain Bentz
notice. Elle s'appelle SoftwareSerial. A l'époque (2013) elle était appelée NewSoftSerial.
100 86 Sylvain Bentz
101 86 Sylvain Bentz
_Documentation_
102 86 Sylvain Bentz
http://arduiniana.org/libraries/NewSoftSerial/
103 78 Tarek Benhnini
https://www.arduino.cc/en/Reference/Serial
104 86 Sylvain Bentz
105 86 Sylvain Bentz
_A savoir_
106 86 Sylvain Bentz
Le port Seriel (pins 0 et 1) est lié au port USB. Ce sont les mêmes. On ne peut pas brancher 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)
107 86 Sylvain Bentz
L'Arduino Mega a 3 autres ports sériels : Seriel3 (pins 14 et 15), Seriel2 (16,17) et Seriel3 (18,19).
108 86 Sylvain Bentz
La biblio Arduino (SoftwareSerial) permet d'utiliser d'autres pins.
109 86 Sylvain Bentz
110 86 Sylvain Bentz
_Tutos_
111 86 Sylvain Bentz
http://codeandlife.com/2012/07/29/arduino-and-raspberry-pi-serial-communication/
112 86 Sylvain Bentz
113 86 Sylvain Bentz
114 86 Sylvain Bentz
h1. Archives
115 86 Sylvain Bentz
116 86 Sylvain Bentz
[[Arduino - Raspberry Pi w/ USB]]
117 86 Sylvain Bentz
118 86 Sylvain Bentz
[[ArduinoLampone]]