Questão:
Fazer uma placa Arduino funcionar como um dispositivo de armazenamento USB e um teclado?
teasub
2014-02-28 01:39:43 UTC
view on stackexchange narkive permalink

Estou fazendo um projeto de interface que, quando conectado a um computador, aparece como armazenamento flash USB e pode digitar como um teclado quando alguns botões físicos na placa são pressionados.

Já vi projetos que fazem um ou outro, mas não os dois ao mesmo tempo.

Eu comecei a trabalhar usando um hub USB e dois chips que estão compartilhando o mesmo armazenamento (já que quero que os botões de tecla de atalho digitem as informações armazenadas na unidade flash também), com um agindo como HID e outro agindo como armazenamento USB, mas isso tem alguns problemas. Primeiro, parece redundante. Em segundo lugar, é difícil de programar, pois toda vez que eu conecto a bagunça nele atribuo aleatoriamente um nome a cada chip, sem uma maneira fácil de dizer para qual enviar o código HID e para onde enviar o código do drive USB. Tenho que conectá-los um de cada vez, o que não funcionará, uma vez que o projeto está na mesma placa. O último problema é que os botões funcionam de forma inconsistente, já que, suponho, os dois chips não estão fazendo um bom trabalho ao compartilhar o acesso ao arquivo de texto que está tentando ler para que o texto seja 'digitado' no computador.

Existe uma maneira melhor de fazer isso usando um arduino atuando em ambas as funções acessando o armazenamento flash? Obrigado!

http://www.atmel.com/Images/doc7631.pdf http://www.atmel.com/Images/doc8446.pdf
Trzy respostas:
TheDoctor
2014-03-01 06:52:47 UTC
view on stackexchange narkive permalink

O Leonardo pode ser facilmente usado como teclado. Existem também códigos especiais para transformar o chip USB-para-Serial no novo Unos em um teclado (veja aqui)

O armazenamento em massa USB é outro jogo. O Brondani EasyUSB é um chip simples que expõe 2 MB de espaço de armazenamento no USB e no microcontrolador. Eles dizem que irão liberar capacidades maiores.

O easyUSB também tem um link serial integrado do uC para o computador.

Se você realmente quiser, pode fazer sua própria pilha USB para lidar com isso sozinho, mas a lamentavelmente pequena quantidade de RAM nesses chips impediria isso.

Adam Davis
2014-02-28 07:59:43 UTC
view on stackexchange narkive permalink

Você está tentando criar um dispositivo USB composto. Não vejo nenhum exemplo na comunidade do arduino, mas não vejo uma razão pela qual você não pode usar o 16u2 como um dispositivo composto, só vai exigir mais esforço do que você ' d normalmente colocado em um projeto arduino.

DragonflyRobotics
2020-07-01 22:45:23 UTC
view on stackexchange narkive permalink

Você pode tentar usar um Arduino Mega ADK. Isso ocorre porque ele tem uma porta USB separada para dispositivos USB junto com muitas portas seriais para outros dispositivos seriais.



Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...