Pages: [1]   Go Down
Author Topic: Port série reçevoir et envoyer  (Read 2359 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir à tous,

J'ai une Arduino Bluetooth et une Arduino UNO et je voudrais savoir si je peux avec mon port série d'ordinateur faire communiquer les deux.
Je m'explique, je voudrais que l'arduino UNO (connecté au PC via) puisse envoyer des données au PC qui lui les enverraient à l'Arduino Bluetooth. Est-ce que l'Arduino UNO et l'Arduino Bluetooth seront connecté au même port série ? Ou alors faudra-t-il que les données reçu dans le port série (COM2 par exemple) soit envoyé via un autre port (COM3 par exemple) ?

Merci d'avance smiley
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai jamais essayé avec plusieurs Arduino, mais c'est peut-être possible avec Processing :

http://processing.org/reference/libraries/serial/Serial.html


Eventuellement comme ça :

Code:
myPort1 = new Serial(this, Serial.list()[1], 9600);
 myPort2 = new Serial(this, Serial.list()[2], 9600);
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Euh... c'est quoi Processing ?

Sinon ce que je voudrais faire en fait c'est récupérer les valeurs d'un ou plusieurs potentiomètre envoyées au PC avec l'Arduino UNO puis renvoyer ces valeurs à l'aide du PC à un Arduino Bluetooth pour diriger des servos.

Voilà, je te remercie de ta réponse en tout cas ! (j'essaye de me renseigner sur Processing actuellement)
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Processing est un compilateur dont l'IDE est la même que celle de l'environnement Arduino, tu codes presque de la même façon, ça compile en Java donc portable sur les principales plateforme.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok merci  smiley-wink

Donc tu penses que c'est possible de recevoir des données dans un port série (COM1) pour les envoyer via un autre port série (COM2) et tout cela sur PC ?
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

je me suis souvent posé cette question, mais je n'ai jamais eu de projet pour le quel j'ai du faire cet essais... mais je pense que ça doit être faisable.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, merci bien ! smiley-wink

J'essayerais de le faire dans les jours à venir et je reviendrais poster pour vous dire comment ça se passe smiley
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bon... en gros ça fonctionne, j'ai fais un essai avec les bouts de code ci-dessous.
Le premier Arduino envoi "A", Processing lit sur le port série  s'il reçoit "A", il envoie la valeur lue, le deuxième Arduino lit le port série et lorsqu'il reçoit quelque chose l'envoi sur le sérial-monitor sur ce dernier s'affiche un.... A  smiley-grin

L'Arduino qui envoie :

Quote
void setup() {
  Serial.begin(9600);   // opens serial port, sets data rate to 9600 bps
}

void loop() {

  delay(1000);
  Serial.print ("A");
}




L'arduino qui reçoit :

Quote
void setup() {
  Serial.begin(9600);   // opens serial port, sets data rate to 9600 bps
}

void loop() {

  // send data only when you receive data:
  if (Serial.available() > 0) {

    Serial.print("I received: ");
    Serial.println(char(Serial.read()));
  }
}





Entre les deux Arduinos,  Processing :

Quote

char val=' ';
import processing.serial.*;

Serial myPort1; 
Serial myPort2; 

void setup() {

  println(Serial.list());

  myPort1 = new Serial(this, Serial.list()[4], 9600);
  myPort2 = new Serial(this, Serial.list()[2], 9600);
}
void draw() {
  val= myPort1.readChar();
  if (val =='A') {
    myPort2.write(val);
    val=' ';
    myPort2.clear();
  }
}


Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3763
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je confirme, on peut ouvrir autant de port COM sur un PC qu'on en a.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir à tous,

Merci à toi Jean-François, ton code me sera d'une grande aide =)
Je voudrais tout de même savoir quelques trucs :
- "char val=' ';" pour avoir mis cela ? (c'est plus les ' ' que je ne comprends pas)
- "myPort1 = new Serial(this, Serial.list()[4], 9600);" que signifie le "this, Serial.list()[4]" ?

Merci bien !

Ps : super forum d'entre aide  smiley
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3231
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est pour que val soit initialisé avec.... rien (on est au moins sur de ne pas avoir une valeur aléatoire).

Pour ton autre question, c'est pour initialiser myPort (ou le nom que tu donnes) sur la position 4 des port listés et ça l'initialise à 9600 Bauds, tu peux changer cette valeur, mais il faut que ce soit la même chose coté Processing et coté Arduino.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Pages: [1]   Go Up
Jump to: