Enviando bits para os pinos da porta USB

Pessoal, gostaria de implementar um sistema eletrônico muito simples para acender quatro LEDS.

Daê gostaria de saber se é possível enviar o bit 1 (que acredito que corresponda a uma tensão de ~ 5V) a um pino de uma dada porta USB?
Tudo isso usando Java.

Usando java nunca vi, mas já vi algumas coisas deste tipo em C e assembly.

Daí, eu recomendo você procurar isso em C e/ou assembly e depois usar o JNI ou o JNA para fazer a ponte para o java.

[quote=engdanilo]Pessoal, gostaria de implementar um sistema eletrônico muito simples para acender quatro LEDS.

Daê gostaria de saber se é possível enviar o bit 1 (que acredito que corresponda a uma tensão de ~ 5V) a um pino de uma dada porta USB?
Tudo isso usando Java.[/quote]

Isso não é possível nem usando C ou Assembly. É que uma porta USB tem 4 pinos (conforme você deve ter visto), sendo que um deles é +5V contínuos (alimentação), outro é terra (seria 0V), e os outros 2 são um par trançado, que têm o sinal em valor positivo e negativo. Não é possível controlar individualmente esses 2 pinos, porque eles sempre estão transmitindo e recebendo dados em uma determinada freqüência, que depende da versão do USB - 1.1 ou 2.0).
Se você puser um osciloscópio, pode ver que a porta USB (nos fios amarelo e azul) fica periodicamente transmitindo um sinal digital.

O que você pode fazer é ver se há um chip que você possa pôr nesse tal circuito que acenda 4 leds e aceite a conexão USB. Normalmente isso é feito usando-se um microcontrolador que tem comunicação USB e algumas entradas e saídas digitais e talvez analógicas.

Outra coisa, infinitamente mais fácil, é usar uma conexão com a porta paralela do computador. Cabe lembrar que hoje em dia portas paralelas só se encontram em alguns desktops - máquinas novas normalmente só têm conexões USB e, talvez, uma ou outra porta PS/2 (teclado e/ou mouse). Em notebooks nem existem mais portas PS/2, apenas USB.

Entendi, Thingol.
Tipo tenho outra dúvida, brother: existe um protocolo específico para a transferência de dados na porta USB?
Ou esse protocolo varia com o dispositivo ligado à porta?

E Victor, o que é JNI ou JNA?

No caso específico da USB, é melhor você ver as especificações - http://www.usb.org é um bom local para iniciar.

JNI = Java Native Interface (em miúdos, é a forma tradicional de você chamar código nativo, contido em uma DLL (Windows) ou .SO (Linux, Unix) a partir do Java. Essa interface é em C.
JNA = Java Native Access - é um pacotão ( https://jna.dev.java.net ) que facilita o acesso a APIs do sistema operacional contidas em uma DLL ou .SO, sem que você precise escrever grandes quantidades de código em C para escrever uma DLL JNI.

Eu encontrei uma ótima interface para acionar reles através da porta USB no site www.nse.com.br

Eles tem várias opções de quantidade de reles com 2, 4 até 16 reles , são baratos e oferecem suporte para programadores…

até o código fonte aberto em algumas linguagens de programação eles disponibilizam… espero ter ajudado!

Abs,