sexta-feira, 5 de maio de 2017

Controlando o arduino a partir do Java usando JArduino

Quando queremos integrar Java com Arduino geralmente utilizamos a porta serial como desmonstrado no livro JavaFX 8: Introduction by Example no capítulo sobre Arduino.O problema com essa abordagem é que teremos que programar em duas linguagens e ainda definir a forma de comunicação.

Outra possibilidade é usar JArduino, que possibilita o uso de código Java para diretamente interagir com o Arduino. O que você precisa fazer é seguir o tutorial do README da página do JArduino. Uma vez usando Java podemos utilizar qualquer API já bem conhecida

Problemas




O seguinte erro me tomou alguns minutos:

java.lang.UnsatisfiedLinkError: no rxtxSerial64 in java.library.path thrown while loading gnu.io.RXTXCommDriver

Ele vem por causa da falta da API nativa RxTx. Simplesmente baixe a API para o seu sistema aqui aqui e colocou na lib da sua JDK. No meu caso o diretório que usei foi: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64



Lendo um sensor de luz (LDR) a partir do Java

 

O "olá mundo" do mundo arduino é fazer um led piscar. Eu queria começar com algo mais interativo, então criei uma aplicação simples que lê uma entrada analógica conectada a um LDR, como descrito nesse tutorial. Coisas para se notar sobre o código



  • A classe JArduino imita um código Arduino. Você simplesmente estende a classe JArduino e implementa suas coisas no método loop e configura as portas no método setup;
  • Eu estou usando maven e tive que adicionar alguns repositórios no meu pom.xml pois algumas dependências não estão disponíveis na central do Maven;
  • A única coisa que precisamos fazer no lado do arduino é subir o código provido pelo JArduino. Lembre-se de usar a porta certa na sua classe;
  •  O circuito é o mesmo do tutorial Using an LDR Sensor with Arduino: A Tutorial for Beginners, a diferença aqui é que uso o Garagino:

Aqui está o código:

O resultado é simplesmente a intensidade da luz no console:




Agora em breve no blog Aprendendo JavaFX iremos postar algo visual. Até mais!

Nenhum comentário:

Postar um comentário