Infrared porta usb dados

1 resposta
B

Boa noite caros amigos,

Eu preciso implementar o seguinte:

  1. receptor de sinais infravermelho (infrared) conectado em uma porta USB.
  2. receptor de sinais bluetooth a partir de qualquer equipamento móvel que suporte esse tipo de conexão; para tal, dois tipos de funcionamento são esperados:
    a) a partir de um emulator de controle remoto instalado no equipamento móvel;
    b) a partir das teclas universais existentes em todo e qualquer tipo de dispositivo.

Achei um tópico aqui, mas de 2009 e o usuário não falou se conseguiu ou não resolver o problema.

Alguém já manipulou a API jUSB, RXTX ou USB4JAVA que possa me dar uma ajuda de como implementar?

Desde já obrigado pela atenção.

1 Resposta

Henrique.tenorio

Boa noite, de uma olhada nesses posts, acredito que irá ajudar:


Em um post tinha dito certa vez:

Desde já, deixo claro que o Java não tem nenhuma API oficial que implemente o protocolo USB, existem soluções alternativas que são:
jUSB http://javanoroeste.com.br/javanoroeste/novo/artigos/java_e_usb.html, http://www.steelbrothers.ch/jusb/, http://www.tel.fer.hr/_download/repository/JavaUSBforWindowsWeb.pdf . É importante ressaltar que o projeto para o S.O windows foi abandonado.

javax.usb -> Esta pretendia ser a API oficial conforme a JCP, http://www.ibm.com/developerworks/library/j-usb/index.html,
http://javax-usb.sourceforge.net/faq.html, http://www.ibm.com/developerworks/ibm/library/it-0701art35/, http://javax-usb.sourceforge.net/

USB4Java pode ser utilizada junto com a javax.usb, http://kayahr.github.com/usb4java/

Eu tentei utilizar todas estas bibliotecas tanto no windows e no linux, obtive erros, uns porque o S.O era 32 bits, problemas com dll, falhas na enumeração dos dispositivos e
problemas na comunicação com o dispositivo.

No começo eu queria criar um hardware meu, que usasse de fato o protocolo USB, eu fiz um hardware estilo o Arduino. O problema do Arduino é que ele é conectado via porta USB,
mas não existe comunicação USB de fato, o que ocorre é que o Arduino possui um chip ftdi que converte os pulsos da porta usb em serial, ou seja, o que existe é uma comunicação serial, para muitas pessoas isso já é o suficiente, se for, o que ocorre é que o Arduino será visto como uma porta COM no PC por causa do driver do chip ftdi embarcado nele.

O CLP (ATMEGA 386-P) do Arduino(UNO) não possui módulo USB nativo, sendo assim ele não pode ser visto com um dispositivo HID (mouse, teclado, etc), se fosse não era
necessário criar um driver para ele. Atualmente existe uma versão do Arduino (Arduino Leonardo) que possui um CLP com módulo USB nativo, mas não tenho muito conhecimento quanto a isso.

Eu não uso o Arduino, nem vejo muita vantagem nele, para leigos talvez seja bom. Quem usa o Java, é possivel comunicar com o Arduino utilizando a biblioteca serial RxTx, bem fácil mesmo. Dependendo do projeto seja mais que suficiente este tipo de comunicação.
Links:
http://arduino.cc/en/Reference/Serial (biblioteca serial do arduino)
http://rxtx.qbang.org/wiki/index.php/Main_Page (Jar e dlls para se comunicar com o arduino)

Desenvolvi minha placa usando o CLP da microchip http://www.microchip.com/, o CLP 18F4550
que possui módulo USB nativo, e consigo que ele seja visto pelo S.O como um dispositivo HID. O problema é que como gosto do Java, queria implementar um comunicação USB com o Java, testei todas as bibliotecas citadas acima, mas por enquanto não obtive sucesso na transferência de dados.

No entanto, consegui utilizar a tal da comunicação CDC, neste caso utilizo a biblioteca serial para se comunicar com o 18F4550, é necessário também utilizar um driver do fabricante. Por enquanto isto está me quebrando o galho.

Tentei escrever minha própria biblioteca USB para o java, porém é necessário entender muito bem o protocolo USB, e como vocÊ sabe é muito complexo, sem contar que também é necessário escrever códigos nativos, ou seja, a pessoa tem que ter tempo.

Existem muitos projetos legais utilizando o Arduino, mas nada impede de criar o seu próprio Hardware!

Criado 13 de junho de 2013
Ultima resposta 13 de jun. de 2013
Respostas 1
Participantes 2