Pages: 1 [2] 3   Go Down
Author Topic: [supporto playground]Comunicazioni Java e Arduino  (Read 3011 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

innanzitutto grazie per avermi risposto così velocemente, poi io non ho arduino UNO ma duemilanove, quindi su questa sheild le librerie presenti nei repository di ubuntu vanno bene o mi devo comunque scaricare quelle che trovo qui http://www.cloudhopper.com/opensource/rxtx/ ??(devo usare le librerie del 2008 perchè sono le uniche che sono per la versione 64bit di linux).
in java ho sviluppato un anno fa applicazioni sia da console che a interfaccia grafica, ovviamente anche usando gli oggetti.
se può servire la mia versione di jre e jdk sono
Code:
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9.10) (6b20-1.9.10-0ubuntu1~10.04.3)
OpenJDK 64-Bit Server VM (build 19.0-b09, mixed mode)
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao

dovrebbero andare bene, ma la prova è subito fatta... collega arduino, compila ed esegui il semplice programma che ti elenca le seriali disponibili sul PC e scopri se rxtx "vede" la nuova seriale di Arduino:
http://embeddedfreak.wordpress.com/2008/08/07/enumerating-serial-port-using-rxtx/
Logged

lucadentella.it

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

ho seguito le indicazioni del sito che mi hai riportato ho copiato il sorgente in eclipse
Code:
public static String[] listSerialPorts() {

Enumeration ports = CommPortIdentifier.getPortIdentifiers();
ArrayList portList = new ArrayList();
String portArray[] = null;
while (ports.hasMoreElements()) {
CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
    if (port.getPortType() == CommPortIdentifier.PORT_SERIAL) {
    portList.add(port.getName());
    }
}
portArray = (String[]) portList.toArray(new String[0]);
return portArray;
}
ma mi da 3 errori
Code:
public static String[] listSerialPorts()   "Syntax error on tokens, ClassHeader expected instead"
String portArray[] = null;   "Syntax error on token ";", { expected after this token"
} (parentesi di fine programma)   "Syntax error, insert "}" to complete ClassBody"
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

quello è solo il metodo per enumerare le porte seriali, naturalmente dovrai costruirci attorno un semplice programmino che te le stampa in console...
Logged

lucadentella.it

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

il problema è questo che io in java non ho mai usato queste librerie per la comunicazione con l'USB e non saprei come fare, su internet non ho trovato guide.
sennò se al posto del java uso il python con la libreria pyusb o pyserial?? il python mi sembra un linguaggio molto più semplice
Logged

0
Online Online
Shannon Member
****
Karma: 132
Posts: 10496
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

sul sito RXTX ci sono un bel pò di esempi funzionanti...

comunque questo più che un problema con la documentazione della libreria, mi pare un problema di conoscenze di java smiley-mr-green
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

il problema è questo che io in java non ho mai usato queste librerie per la comunicazione con l'USB e non saprei come fare, su internet non ho trovato guide.

ciao

ma qui non si tratta di saper usare o meno le librerie... quello è un semplice metodo statico che devi richiamare da una tua classe java (basta anche dal main): è una cosa semplicissima se hai già scritto codice java (addirittura senza scomodare Swing!)
Logged

lucadentella.it

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

si lesto anche  smiley-sweat perchè l'ho studiato a scuola ma tra la prof che non sapeva spiegarlo bene (mentre ce lo spiegava molte istruzioni che abbiamo sempre dovuto importare nei programmi non ci ha spiegato a cosa servivano realmente ma ci diceva solo di importarle) e tra me venendo dal C il java non mi è mai piaciuto com linguaggio, inoltre adesso è passato del tempo dall'ultima volta che l'ho usato quindi ora la mia preparazione in java non è un gran che, infatti anche vedendo gli esempi sulle librerie RXTX faccio molta difficoltà a capire cosa fa quel programma.
invecie gia il C o python mi sembrano molto più belli e semplici come linguaggi (praticamente leggere un programma scritto in questi linguaggi è cone leggere l'inglese  smiley ), per questo preferirei visto le mie difficoltà con il java, a programmare in C o python, secondo voi cosa è meglio fare? visto che questo progetto deve essere pronto e funzionante entro aprile (o forse maggio??  smiley-roll-sweat) per la consegna della tesina, non vorrei che facendolo in java perdessi troppo tempo e per fare alla svelta non viene fuori un copia e incolla.
Logged

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

più che altro lucadentella il problema è che il java non mi è stato spiegato bene a scuola quindi faccio difficoltà a creare un programma da zero, infatti per il motivo che ho detto prima (che molte istruzioni da mettere nel programma non mi è mai stato detto il funzionamento) tutti i programmi che facevo erano quasi un copia e incolla dai programmi vecchi.
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

non l'ho provato ma dovrebbe andare...salvalo come ListCom.java

Code:
import java.util.ArrayList;
import java.util.Enumeration;
import gnu.io.*;

public class ListCom {

public static String[] listSerialPorts() {

Enumeration ports = CommPortIdentifier.getPortIdentifiers();
ArrayList portList = new ArrayList();
String portArray[] = null;
while (ports.hasMoreElements()) {
CommPortIdentifier port = (CommPortIdentifier) ports.nextElement();
    if (port.getPortType() == CommPortIdentifier.PORT_SERIAL) {
    portList.add(port.getName());
    }
}
portArray = (String[]) portList.toArray(new String[0]);
return portArray;
}

public static void main(String[] args) {

for(String name : listSerialPorts())
System.out.println(name);
}
}
Logged

lucadentella.it

0
Online Online
Shannon Member
****
Karma: 132
Posts: 10496
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se hai scadenze da rispettare usa i linguaggi che già conosci, credimi ci risparmi un sacco di tempo
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

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

grazie luca per avermi scritto questo programma, però mi da un errore quando importo la classe
Code:
import gnu.io.*;   "The import gnu cannot be resolved"
dopo ci sono altri errori ma penso siano dovuti alla mancanza di questa libreria, perchè da errore in tutte le righe in cui è presente
Code:
CommPortIdentifier
Logged

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

comunque adesso vede se riesco a far comunicare il PC con arduino usando Java, provo a continuare in java studiandolo di più senò passo a pyserial o pyusb (non so quale sia meglio)
Logged

Bergamo
Offline Offline
God Member
*****
Karma: 1
Posts: 663
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao

ma hai configurato Eclipse per utilizzare la libreria rxtx?
http://rxtx.qbang.org/wiki/index.php/Using_RXTX_In_Eclipse

comunque sì, sicuramente prima ti servono delle basi maggiori sul linguaggio che decidi di utilizzare, sia questo Java, C# (vedi tutorial sul mio sito) o Python...
Logged

lucadentella.it

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

avevo letto su internet che una volta installate le librerie eclipse le caricava in automatico senza bisogno di caricarle manualmente
Logged

Pages: 1 [2] 3   Go Up
Jump to: