Sostieni il forum con una donazione! Il tuo contributo ci aiuterà a rimanere online!
Immagine

FTDI (Arduino) e Java

Tutto ciò che riguarda l'elettronica digitale, dalla porta not al protocollo midi... e oltre!
Rispondi
Avatar utente
davidefender
Garzone di Roger Mayer
Garzone di Roger Mayer
Messaggi: 1437
Iscritto il: 11/02/2008, 23:51
Località: Roma
Contatta:

FTDI (Arduino) e Java

Messaggio da davidefender » 08/09/2010, 13:07

Salve a tutti!

Dopo giorni estenuanti di ricerche e lavoro sono finalmente riuscito a trovare un valido sistema per interfacciare Arduino e un QUALSIASI PC! Le classiche librerie che trovate online (RXTX e derivate) hanno un grandissimo problema, ovvero non supportano Baudrate non standard, e per noi chitarristici questo vuol dire: inutilità totale! (Ricordate che il protocollo MIDI ha una baudrate di 31250... NON standard). Vi giuro che le ho provate di tutte, l'unica soluzione plausibile fino a 3 giorni fa sembrava il modulo pySerial di Python. Python però, è un linguaggio che non amo particolarmente quando si tratta di fare progetti complessi (detesto la non tipizzazione delle variabili... c'è da uscire scemi!), e volevo a tutti i costi una soluzione nel più familiare Java.

Finalmente ci sono riuscito, e in una maniera che supera addirittura le mie aspettative: non utilizzo le classiche interfacce seriali, ma colloquio DIRETTAMENTE con l'integrato posto all'interno dell'Arduino: il chip FTDI FT232R (per chi non sapesse cosa fa questo chip, brevemente trasforma la comunicazione USB a seriale in maniera da connettere i classici uC alla USB del computer). Questo è reso possibile grazie alle API messe a disposizione dal loro sito, e sapientemente wrappate da tale Mike Werner : http://www.ftdichip.com/Support/Softwar ... tforms.htm

Ma in pratica cosa permette di fare? Oltre che colloquiare con il nostro uC a qualsiasi baudrate voi vogliate, si possono gestire più dispositivi, e per ognuno di questi controllarne fin nel dettaglio le funzionalità. Ecco qui un PDF con una panoramica delle funzioni disponibili: http://www.ftdichip.com/Support/Documen ... 00071).pdf

Ma allora cosa vi ho allegato in questo post? Si tratta del codice da me fino ad ora sviluppato per la parte PC del mio MidiMind (voglio che sia possibile programmare l'apparecchio anche tramite USB! :lol1: ), per ora è ad uno stadio embrionale, ma voglio condividere con voi il codice perchè, con piccolissime modifiche atte a eliminare le parti che non vi interessano, costituisce una buona base per chi vuole sviluppare una sua applicazione che possa colloquiare con questi chippetti (e dunque con Arduino).
Oltre ai sorgenti (progetto Eclipse) vi distribuisco anche un piccolo eseguibile per un test veloce veloce, ecco qui le istruzioni per installare il tutto, l'unica cosa che vi serve è una Board Arduino! :lol1:

1 - Assicuratevi di non aver connesso MAI l'arduino al vostro computer, nel caso aveste già installato i driver come suggerito nelle pagine di Arduino, disinstallate i driver dal pannello di controllo di Windows.
2 - Staccate il cavo USB dal computer.
3 - Scaricate i driver FTDI D2XX da questa pagina web: http://www.ftdichip.com/Drivers/D2XX.htm ed eseguite l'exe.
4 - Al termine collegate il cavo usb al computer e attendete che Windows vi dica che il dispositivo è stato installato e pronto all'uso.

Ora avete i driver necessari per sfruttare le librerie FTDI, ricordate che in questo momento avete ancora la possibilità di programmare l'Arduino con il vostro IDE proprio come facevate di solito, basta impostare correttamente la porta COM. Ma ora vediamo come far girare il piccolo JAR che vi ho allegato:

5 - Sconnettete il cavo usb dal computer.
6 - da una console spostatevi nella directory "FTDI Test" dove avete estratto l'archivio e digitate il comando:
java -jar FTDITest.jar
7 - Fatto questo avete ben 10 secondi per connettere il cavo USB al computer.

Se tutto è andato a buon fine l'applicazione terminerà confermandovi il rilevamento del dispositivo e dandovi alcune informazioni base su di esso.

Passo successivo? spulciatevi i sorgenti e cominciate a programmare! :lol1:
:ciao:

NB: questa libreria è stata testata personalmente su Windows Vista e Windows 7, se provate altri sistemi operativi (soprattutto Linux) lasciate un commento! :ciao:
Allegati
sorgente.zip
Progetto Eclipse
(144.61 KiB) Scaricato 244 volte
FTDI Test.zip
Eseguibile JAR di test
(142.72 KiB) Scaricato 230 volte

Avatar utente
Hades
Roger Mayer Jr.
Roger Mayer Jr.
Messaggi: 2615
Iscritto il: 10/09/2008, 11:56
Località: Carpi (MO)

Re: FTDI (Arduino) e Java

Messaggio da Hades » 30/04/2012, 16:02

Per completezza, aggiungo che la nuova versione ad oggi delle librerie Java RxTx supportano i baud rate non standard, testato personalmente su Mac OSX 10.6 e Windows XP. :ciao:
Live another day, climb a little higher, find another reason to stay...

Avatar utente
Kagliostro
Amministratore
Amministratore
Messaggi: 9366
Iscritto il: 03/12/2007, 0:16
Località: Prov. di Treviso

Re: FTDI (Arduino) e Java

Messaggio da Kagliostro » 01/05/2012, 1:31

Ciao Davidefender

Pur non essendo in grado di utilizzare le risorse che hai messo a disposizione mi rendo ben conto del tuo sforzo e della tua apertura nel condividere qui sul forum il frutto delle tue ricerche e dei tuoi sforzi :numb1:

Bravo ! sia per l'mpegno che per la condivisione con il gruppo

Kagliostro

Rispondi