Ardulink

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. Al momento la connessione avviene attraverso cavo USB sfruttando il collegamento seriale (libreria RXTX) se la scheda Arduino lo consente oppure 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 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/).

Share