Pages: [1]   Go Down
Author Topic: Java + Arduino  (Read 2228 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal sou iniciante no arduino e estou querendo desenvolver minhas habilidades, estou tentando criar um programa em java que acende ou desliga o led, mas meu problema acho que esta sendo com o java, pois consigo fazer com que o java receba algo do arduino, mas não consigo fazer o java controlar o arduino.
Desde já obrigado pela atenção de vocês!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nunca tentei comunicar com o arduino usando java, mas sei q com python e php é moleza.

por exemplo, este códido abaixo é tudo q vc precisaria em python para ler o que um arduino uno imprime na porta serial.

import os
import serial

while True:
   ser = serial.Serial('/dev/ttyACM0', 9600)
   print ser.readline()
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

E pretendes que te ajudemos como?

Tens um problema, dizes que não sabes uma das partes do que pode ser o problema, mas assumes que o que está errado é na outra.

E se colocásses o código aqui? E dizeres o que já tentaste para perceber qual é o problema??
Já testaste o programa do arduino só com o terminal?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

São Paulo / Brazil
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aurinojr, esqueça por um segundo a parte java.

Como pretende se comunicar com o Arduino para comandar o LED? Serial RS232, Serial USB, Ethernet, wi-fi, bluetooth?

Se for via serial, você consegue fazer o led acender e apagar por comandos no serial monitor?
Se não conseguir, primeiro tem de resolver a parte do arduíno.
Depois que conseguir fazer isso no arduíno, aí sim você se preocupa em desenvolver uma interface java para o computador.

Poste para nós os seus códigos para que possamos te ajudar.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

MKazan de inicio é isso mesmo, comunicação pela porta serial, e sim já consigo acender e apagar o led pelo serial monitor, só tou errando na hora de comunicar o java com o arduino, consegui um codigo na net e já estou conseguindo abrir a conexão só não consigo enviar nada pra ele, esse é meu problema.
Vlw!
Logged

São Paulo / Brazil
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bom, então a solução já está bem encaminhada.

Mas se não puser o código aí, ninguém vai conseguir te ajudar.
Nossa tecnologia de bola de cristal ainda não está operacional... hehehe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uahushuahsuahs
blz!
tou te adicionando no msn pra conversar melhor, mas mesmo assim vou postar o codigo aqui!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ta aew.
Code:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.util.Enumeration;

public class SerialTest implements SerialPortEventListener {
SerialPort serialPort;
        /** The port we're normally going to use. */
private static final String PORT_NAMES[] = {
"/dev/tty.usbserial-A9007UX1", // Mac OS X
"/dev/ttyUSB0", // Linux
"COM4", // Windows
};
/** Buffered input stream from the port */
private InputStream input;
/** The output stream to the port */
private OutputStream output;
/** Milliseconds to block while waiting for port open */
private static final int TIME_OUT = 2000;
/** Default bits per second for COM port. */
private static final int DATA_RATE = 9600;

public void initialize() {
CommPortIdentifier portId = null;
Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

// iterate through, looking for the port
while (portEnum.hasMoreElements()) {
CommPortIdentifier currPortId = (CommPortIdentifier) portEnum.nextElement();
for (String portName : PORT_NAMES) {
if (currPortId.getName().equals(portName)) {
portId = currPortId;
break;
}
}
}

if (portId == null) {
System.out.println("Could not find COM port.");
return;
}

try {
// open serial port, and use class name for the appName.
serialPort = (SerialPort) portId.open(this.getClass().getName(),
TIME_OUT);

// set port parameters
serialPort.setSerialPortParams(DATA_RATE,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);

// open the streams
input = serialPort.getInputStream();
output = serialPort.getOutputStream();

// add event listeners
serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
} catch (Exception e) {
System.err.println(e.toString());
}
}

/**
* This should be called when you stop using the port.
* This will prevent port locking on platforms like Linux.
*/
public synchronized void close() {
if (serialPort != null) {
serialPort.removeEventListener();
serialPort.close();
}
}

/**
* Handle an event on the serial port. Read the data and print it.
*/
public synchronized void serialEvent(SerialPortEvent oEvent) {
try {
int cmd = 1;
output.write(cmd);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

/*if (oEvent.getEventType() == SerialPortEvent.DATA_AVAILABLE) {
try {
int available = input.available();
byte chunk[] = new byte[available];
input.read(chunk, 0, available);


// Displayed results are codepage dependent
System.out.print(new String(chunk));
} catch (Exception e) {
System.err.println(e.toString());
}
}*/
// Ignore all the other eventTypes, but you should consider the other ones.
}

public static void main(String[] args) throws Exception {
SerialTest main = new SerialTest();
main.initialize();
System.out.println("Started");

}
}
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

manda teu msn por mensagem!
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3262
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Desculpa a questão estúpida... mas nesse código java só vejo uma instrução de envio para o Arduino. E é sempre constante:

Code:
int cmd = 1;
output.write(cmd);

Pretendes fazer isto? E o teu programa do Arduino está preparado para receber algo que não sejam os comandos de ligar e desligar?

Onde estão as instruções para enviares comandos para o Arduino?

Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 18
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Fiz uma pesquisa mais aprofundada e consegui fazer a comunicação!!
Mas vlw por me ajudar.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Posta o codigo pra gente ver e aprender.

valeu!
Logged

Pages: [1]   Go Up
Jump to: