Go Down

Topic: Firmata + Java (Read 447 times) previous topic - next topic

guigs63

Bonjour,

Voilà un petit moment que je cherche et je tourne en rond à ce sujet. A savoir d'utiliser la bibliothèque Firmata pour communiquer avec mon Arduino.
J'ai déjà réussi à faire un programme qui fait communiquer les deux parties en utilisant RxTx, cependant je n'ai pas envie de réinventer la roue et recréer un protocole maison pour faire la communication.
Du coup je me suis dis que Firmata pouvait être une bonne solution pour faire ce que je veux.

Pour situer ce que je veux faire, j'ai un programme Java qui récupère la position de mon joystick et je les envoi à l'Arduino. Pour vérifier que l'Arduino récupère les bonnes valeurs je veux qu'ils les retournent à mon programme Java.

Voici mon code Arduino (Prog de base d'echo Firmata)

Code: [Select]

#include <Firmata.h>

byte analogPin;

void stringCallback(char *myString)
{
   Firmata.sendString(myString);
}


void sysexCallback(byte command, byte argc, byte*argv)
{
   Firmata.sendSysex(command, argc, argv);
}

void setup()
{
   Firmata.setFirmwareVersion(0, 1);
   Firmata.attach(STRING_DATA, stringCallback);
   Firmata.attach(START_SYSEX, sysexCallback);
   Firmata.begin(57600);
}

void loop()
{
   while(Firmata.available()) {
       Firmata.processInput();
   }
}


Et voici la Fonction SerialEvent de mon Prog Java

Code: [Select]

/**
* Handle an event on the serial port. Read the data and print it.
*/
public synchronized void serialEvent(SerialPortEvent oEvent) {
if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
String inputLine=input.readLine();
System.out.println(inputLine);
} catch (Exception e) {
System.err.println(e.toString());
}
}
// Ignore all the other eventTypes, but you should consider the other ones.
}


SerialEvent est bien appelé mais rien ne s'affiche dans la console.

Si quelqu'un à une idée ou une autre solution que d'utiliser Firmata.

Merci d'avance.

guigs63

Bonjour,

Pas d'idée pour mon soucis svp?



skywodd


Pas d'idée pour mon soucis svp?

Tu as regardé du côté de la librairie "arduino" pour processing ?
C'est du java qui fait directement le lien avec l'arduino en série via le protocole firmata.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

guigs63

J'ai regardé rapidement mais je ne m'y suis pas penché plus que ça. Je vais regarder ça plus précisément et je vous tiens au courant.

merci

Go Up