Ardulink (http://www.ardulink.org/) è una libreria, open source, scritta in Java. Si tratta di una libreria capace di far dialogare uno o più PC con una o più schede Arduino. La connessione di default sfrutta un cavo USB (libreria RXTX). Un'altra connessione possibile è sempre con cavo USB ma usando il protocollo di comunicazione proprio della USB (al momento questo collegamento è sfruttato per far funzionare cloni Arduino come ad esempio Digispark e PicoDuino). Inoltre è possibile sfruttare anche una connessione di rete usando due installazioni Ardulink (vedi oltre). La versione 0.4.1 di Ardulink ha aggiunto la connessione Bluetooth fra quelle disponibili.
La libreria offre anche una serie di componenti SWING già pronti che si possono utilizzare per confezionare GUI avanzate e un'applicazione Console che è possibile lanciare su un qualsiasi computer.
Puoi vedere altre screen shot qui: http://www.ardulink.org/screen-shots/
La classe principale della libreria è la classe Link. Una volta ottenuta un'istanza di questa classe:
Link link = Link.getDefaultInstance();
oppure ad esempio
Link link = Link.createInstance("digisparkConnection", new DigisparkUSBConnection());
oppure per connessioni di rete
// Create a NetworkProxy (the Connection implementation to send data over the net) // params are hostname and hostport NetworkProxy connection = new NetworkProxy("127.0.0.1", 4478); // Create a Link class (so now we use this instead of the default one) Link link = Link.createInstance("proxyLink", connection);
si può aprire la connessione con:
boolean connected = link.connect(comPort, baudRate); // comPort could be "COM19" for windows
quindi si possono inviare messaggi dal PC verso Arduino con:
link.sendPowerPinIntensity(pin, powerValue); // To PWM pins (analogWrite) link.sendPowerPinSwitch(pin, IProtocol.POWER_HIGH); // to digitalWrite link.sendCustomMessage("openDoor"); link.sendCustomMessage("goAhead");
o ricevere messaggi da Arduino:
link.addDigitalReadChangeListener(new DigitalReadChangeListener() { @Override public void stateChanged(DigitalReadChangeEvent e) { // do something } @Override public int getPinListening() { return 11; } }); link.addRawDataListener(new RawDataListener() { @Override public void parseInput(String id, int numBytes, int[] message) { // do something } });
Informazioni relative ai messaggi si possono leggere qui: http://www.ardulink.org/ardulink-messages/
Si può realizzare anche una connessione di rete usando la connessione NetworkProxy come spiegato in questo articolo: http://www.ardulink.org/how-control-arduino-from-network/
Se avete bisogno di un chiarimento contattatemi sul mio sito (http://www.ardulink.org/).