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!

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!

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!


NB: questa libreria è stata testata personalmente su Windows Vista e Windows 7, se provate altri sistemi operativi (soprattutto Linux) lasciate un commento!
