Bonjour,
Pour faire court, j'ai un accéléromètre branché sur arduino, je récupère les données que j'envoie à Processing par le port série, jusqu'ici tout va bien.
Je récupère les données sur Processing :
import oscP5.*; import processing.serial.*; Serial serial; OscSerial osc; int theMessage; String serialName = "/dev/tty.usbmodem1411"; int value; int led = 0; int OscMessage; void setup() { printArray (Serial.list()); serial = new Serial(this, serialName, 115200); osc = new OscSerial(this, serial); osc.plug(this, "myFunction", "/helloFromArduino"); } void draw() { //println(list); } void oscEvent(OscMessage theMessage) { println(theMessage); }
Ce qui me donne ce genre de données :
null:0 | 75,-56,-93 75,-56,-93 75,-56,-93 75,-56,-93 75,-56,-93 75,-56,-93 75,-56,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 76,-57,-92 76,-57,-92 76,-57,-92 76,-57,-92 76,-57,-92 76,-57,-92 76,-57,-92 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-58,-93 76,-58,-93 76,-58,-93 76,-58,-93 76,-58,-93 76,-58,-93 76,-58,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-93 77,-57,-92 77,-57,-92 77,-57,-92 77,-57,-92 77,-57,-92 77,-57,-92 77,-57,-92 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 76,-57,-93 XYZ i
J'aimerai récupérer la variable theMessage qui envoie les informations imprimées dans le moniteur afin de la splitter pour utiliser chacune des données XYZ mais aucun moyen, j'ai essayé en la transformant avec str() mais ça ne fonctionne pas.
Quelqu'un aurait-il une idée?
Merci d'avance !
Hors ligne
bonjour a toi
voila pour toi
coter Arduino
int numberSensor = 2; void setup() { Serial.begin(9600); } void loop() { Serial.print(accX); //change le pour la valeur X de ton Accelerometre Serial.print(","); Serial.print(accY);//change le pour la valeur Y de ton Accelerometre Serial.print(","); Serial.println(accZ);//change le pour la valeur Z de ton Accelerometre delay(100); }
coter Processing
import processing.serial.*; Serial myPort; int[] sensorData = new int[3]; String myPortString; void setup() { size(800,800); myPort = new Serial(this, Serial.list()[1], 9600); myPort.bufferUntil(10); myPort.clear(); } void draw(){ println(sensorData[0]); println(sensorData[1]); println(sensorData[2]); while(myPort.available() > 0) { myPortString = myPort.readStringUntil('\n'); } if(myPortString != null) { int inputs[] = int(split(myPortString.trim(), ',')); sensorData[0] = (inputs[0]); sensorData[1] = (inputs[1]); sensorData[2] = (inputs[2]); } }
grosso modo ca ressemble a cela
Dernière modification par imdidi (2017-11-27 23:36:34)
Hors ligne
Pages: 1