Arduino + Java + Linux [~Solved]

Ciao a tutti...

vorei poter ricevere in input (tramite comunicazione seriale) dei dati provenienti da Arduino ed utilizzare il mio pc (Linux) con un programma scritto in java per manipoarli.

Ho un pc con istallato

Linux Xubuntu v9.04 Arduino v0017 porta su cui viene riconosciuto il microcontrollore: /dev/ttyUSB0

Ho fatto l'upload del seguente codice su Arduino:

void setup()
{
     Serial.begin(9600);
}

void loop(){
    Serial.println("Hello world");
    delay (1000); 
}

Con eclipse ho scritto il seguente codice da far girare sul Pc:

import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.InputStream;
import java.io.OutputStream;
import processing.app.Preferences;

public class Test {

    static InputStream input;
    static OutputStream output;

      public static void main(String[] args) throws Exception{

            Preferences.init();
            System.out.println("Using port: " + Preferences.get("serial.port"));

            CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(
                        Preferences.get("serial.port"));

            SerialPort port = (SerialPort)portId.open("serial madness", 4000);
        input = port.getInputStream();
        output = port.getOutputStream();
        port.setSerialPortParams(
                        Preferences.getInteger("serial.debug_rate"),
                        SerialPort.DATABITS_8,
                        SerialPort.STOPBITS_1,
                        SerialPort.PARITY_NONE);
            while(true){
                  while (input.available()>0)
                        System.out.print((char)(input.read()));
            }
      }

}

Ho incluso le seguenti librerie *.jar, presenti nella directory lib di arduino0017:

pde.jar core.jar RXTXcomm.jar antlr.jar ecj.jar jna.jar oro.jar

Il problema e che l'istruzione:

Preferences.init();

presente nel codice java non viene riconosciuta, come se non ci fossero le librerie per queta istruzione...

Qualcuno saprebbe dirmi perchè? e cosa dovrei fare?

Grazie mille!

P.s. se utilizzo Arduino + C oppure Arduino + C++ per far comunicare Arduino con il mio Pc tutto funziona correttamente.

Sono riuscito a risolvere il problema... o meglio credo di averlo semplicemente aggirato!

Adesso riesco a catturare l'output da Arduino a Java!

Ho dovuto installare la versione arduino0016 ed includere nel mio main le seguenti librerie:

pde.jar RXTXcomm.jar oro.jar registry.jar

Io ho continuato a lavorare con eclipse (è il mio IDE preferito). Qui si può trovare una ottima guida per NetBeans: http://silveiraneto.net/2009/03/01/arduino-and-java/

P.s. Qualcuno saprebbe dirmi perchè le librerie java della versione arduino0017 sono diverse dalle librerie java della versione arduino0016? La mia è solo curiosità.

Ciao...

Ciao ho letto il tuo post e o trovo interessante! ti inoltro il link ma nn so se ti puo esseere di aiuto ma ci provo http://www.benjohansen.com/arduino-in-eclipse-via-processing

Poi ti volevo chiedere una cosa.Io devo pilotare da pc utilizzando java (eclipse) il controllo di un motore o meglio la velocità. Ho pronto il programma da arduino ora dovrei interfacciarlo con java e creare un interfaccia che mi permetta di fare questo. Siccome non ho mai programmato in java mi puoi dare delle dritte?ho capito che devo inserire una libreria per la comunicazione seriale , ma non ho capito come dire a java leggi e dillo ad arduino. ciaoo