Usar Andruino desde Java directamente.

Hola a todos,
soy profedor de FP de informática.
Llevo tiempo queriendo hacer prácticas de programación con los alumnos para encender/apagar motores, leds' etc, pero hasta ahora no escontraba ningún dispositivo económico para poder comprarlo (Los de NI son muy caros) y ayer descubrí que existe Arduino.
Las prácticas las tengo que hacer en Java.
¿Es posible usar Arduino sin usar el IDE de Arduino?
Viendo por los foros me ha parecido que usa el chip FTDI para pasar de Serie a USB. Y en java existe el proyecto jd2xx que permitiría comunicarse con él.
¿Es esto correcto?
¿Cual es el API para manejar Arduino mediante jd2xx?

Muchas gracias.

Te recomiendo que preguntes en la parte del foro que esta en ingles, aqui solo contestan por lo regular dudas basicas, muy muy basicas....
Si deseas programar arduino en lenguaje JAVA va estar dificil, pero puedes hacer que arduino se comunique mediante serial a programas javas e interactuen.
Mira ese chip FTDI se puso para facilitarle la vida a los de MAC y aparte darle energia arduino por el mismo cable USB, ya que tambien existe una version serial. Puedes comunicarte a cualquier PC mediante Serial con el pin 0 y 1 (mismo que utiliza el FTDI para programar el atmega168), e interactuar con programas JAVA que puedar utilizar el puerto serial COMx.

Gracias por tu aclaración.
Eso es realmente lo que necesito:Comunicarme con Arduino desde un PC usando Java.
Lo que no veo claro es pq necesito saber que existe el FTDI.
Según he leido es simplemente para adaptar de Serie a USB.
¿Tiene alguna implicación si le envio mensajes por el puerto serie que esté el FTDI ?¿O es que al estar puede programarse de alguna otra forma?

Gracias.

Hola,

Arduino se puede comunicar con cualquier programa que abra el puerto serie en tu ordenador. Asi que no hace falta utilizar nada que utilice perfiles de USB que no sean el puerto serie.

Nosotros desde Arduino, al igual que la gente de Processing.org empleamos RXTX que es una libreria libre para comunicar por el puerto serie. No tiene mayores problemas que, al ser Java, no consigue comunicar a gran velocidad.

Por otra parte, puedes utilizar la libreria Javacomm que tambien abre el puerto serie y desde ahi lanzar y recibir datos.

Si lo que quieres hacer es reprogramar Arduino desde Java, eso es lo que hace nuestro IDE, para que hacerse uno nuevo? Si lo que quieres es tener una placa preprogramada con un software y desde tus propias aplicaciones Java comunicar con la placa para controlar motores o leer sensores, entonces la pregunta queda respondida un poco mas arriba.

Finalmente, me disculpo por haber estado ausente, a ver si ahora se resuelven preguntas no tan basicas :wink:

Un abrazo,

/d

Gracias por tu respuesta,
pero como voy a usar Windows veo que deberé usar RXTX ya que Javacomm no está para Windows.

Saludos.

Bueno,

javacomm API 2.0 tiene una implementacion para windows que yo tuve corriendo sin problemas en winXP hasta que migre a RXTX y linux :). El link:

http://javashoplm.sun.com/ECom/docs/Welcome.jsp?StoreId=22&PartDetailId=7235-javacomm-2.0-spec-oth-JSpec&SiteId=JSC&TransactionId=noreg

ofrece la descarga. En cualquier caso, si quieres trabajar con RXTX puedes incluse descargarte el codigo fuente del IDE de Arduino para construir tus aplicaciones sobre las clases que ya tenemos listas.

/d

Saludos, alguien me puede decir como puedo capturar datos desde java en linux open suse, ya he instalado el javax.comm, rxtx y aun no consigo que java me reconozca arduino, muchas gracias de antemano

Hola Jhon,
Aquí puede estar tu respuesta:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1244869368/0#0

Saludos!
gps