Pergunta

Estou pensando em fazer um controlador físico (dispositivo?) Com botões, botões e LEDs. Eu gostaria de interagir com ele usando Java (responda aos botões, LEDs iluminados, etc.). A razão pela qual mencionei Java é dupla: primeiro, eu conheço Java bem1. Segundo, escrevi o restante do programa com o qual preciso interagir no Java (embora existam maneiras de conversar com o programa Java de outro idioma).

Eu gostaria que o dispositivo se conectasse via plataforma USB e Be (Computer-) independente.

Não tenho a menor idéia de por onde começar, exceto para começar a ler o site da Arduino. Esta é a minha melhor/única opção? Existe algo mais adequado para se comunicar com Java?

Observação: Eu sei que o Arduino tem algo a ver com Java (não tenho certeza do quê), mas parece que o código deve ser escrito em um subconjunto de C.

Como eu me mudaria para esse tópico?


1 - Sem risos, por favor.

Foi útil?

Solução

O ambiente de desenvolvimento Arduino está escrito em Java.

Mas o idioma padrão que você escreve um programa para a plataforma Arduino é efetivamente C ++.

A plataforma Arduino é baseada em um chip ATMEL AVR. Há pelo menos um Java VM para chips AVR. Existem outros idiomas disponíveis para o AVR, como Adiante E básico (embora eu só possa encontrar versões comerciais, então, se você quiser encontrá -las, procure "AVR Basic").

O Arduino usa uma porta COM virtual para se comunicar entre o computador host e TI. Uma porta virtual com emula uma linha de série antiga, mas é feita com USB. Você pode usar o API de comunicação Java Para então, ter um programa Java em execução no computador host se comunicar com seu dispositivo físico.

Outras dicas

Para alguns codificadores e botões, você provavelmente deseja implementar um dispositivo HID USB. Se você vai produzir mais do que alguns deles, você deseja fazer uma placa personalizada. Verificação de saída V-USB, uma biblioteca de código aberto para fazer dispositivos HID USB usando microcontroladores Atmel. Eles têm vários exemplos de projetos que usam esta biblioteca.

Você provavelmente poderia fazer com que isso pareça um joystick oculto, usando os codificadores para produzir informações do eixo X/Y e fazer com que os botões atuem como botões. Eles podem usar APIs de jogos Java padrão para ler os valores do joystick.

Você pode expandir sua necessidade de um dispositivo personalizado? Parece -me que o design de hardware tem uma barreira bastante alta à entrada e que a maioria dos aplicativos que eu posso pensar seria melhor resolvida ao reaproveitar uma peça de hardware do controlador de jogo existente. Se você realmente precisa de um novo hardware, sugiro que você comece pesquisando no Google 'USB Development Kit' ou 'USB Development Board', que fará com que você links como isto, isto e isto.

Quanto ao trabalho com hardware USB da Java, brinquei um pouco com a biblioteca JUSB e parece promissor, mas parece estar limitado ao Linux apenas porque a versão do Windows da metade da biblioteca nativa da biblioteca não foi escrita . Alternativas podem, por pesquisar no Google 'Hid Java'.

OK, independente da plataforma de computador? Quais plataformas você está segmentando? Isso dependeria do driver e do suporte para a referida plataforma, o que o dispositivo USB faz? É um dispositivo de armazenamento em massa ... você pode ter que olhar em volta e ver se consegue encontrar um driver de dispositivo que possa conversar com o dispositivo ...

Espero que isso ajude, cumprimentos, Tom.

Eu sei que para a porta serial havia bibliotecas que existiam para interagir com ela (biblioteca RS232). Pesquisando para Java e USB devolveram várias respostas (a primeira foi chamada JUSB). Esse seria o primeiro tipo de coisa que eu estaria procurando.

A imagem está disponível para download em alta resolução por até 1920x1080.

http://javausbapi.blogspot.com/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top