Pergunta

Recentemente eu estava lendo sobre a aplicação Olá Mundo do Arduino, e eu pensei para mim mesmo, "Eu me pergunto se eu posso fazer isso com o hardware que eu tenho agora."

Uma vez que eu não tenho um Arduino, peguei uma unidade flash USB que eu tinha, que volta e começou pesquisando em torno de informações sobre ele. Eu não encontrar muita informação útil nesta área, por isso estou agora a pedir aqui: é possível para mim para acessar o hardware de um drive USB (por exemplo, o LED) e interagir com ele através de algum ambiente de programação (eu estava pensando C # deve provavelmente tem alguma maneira de fazer isso)?

Além disso, relacionada com este assunto - alguém sabe que tipo de comandos drives USB usar? Por exemplo, os dispositivos de armazenamento SCSI tem um conjunto de comandos padronizado; dispositivos ATA tem um protocolo semelhante. Como são coisas como comandos de leitura / gravação simples emitidos para um dispositivo de armazenamento USB?

Foi útil?

Solução

Enquanto o protocolo USB é bastante genérico, os dispositivos periféricos são realmente função específica e exigem algum tipo de driver de dispositivo no host para funcionar corretamente.

Enquanto um Flash Drive USB tem um micro-controlador sobre ele, a maioria dos dispositivos de armazenamento USB seguir um protocolo comum. É por isso que você não tem que instalar um driver de dispositivo diferente para cada unidade que você ligar para janelas.

Eu tenho certeza que o protocolo de armazenamento em massa não tem uma "virada LED em" mensagem :) E enquanto a empresa que implementou o drive USB pode realmente ter um comando especial para fazer isso (talvez para depuração), eu duvido que ele iria ser publicada.

Enquanto eu não sou nenhum guru no Windows, eu acredito que, para você acessar a pilha USB diretamente, você teria que escrever a sua própria carga driver de dispositivo e ligá-lo no kernel. Você pode imaginar se uma aplicação regular poderia enviar o comando "formato de tudo" para um dispositivo USB arbitrária.

Outras dicas

Aqui está um link para uma lâmpada LED DIY USB controlado, é uma pouco mais trabalho, em seguida, ligar um stick USB.

Se você quer transformar a luz em um disco rígido USB, você só tem que escrever dados em um arquivo nessa unidade, embora eu acho que algumas unidades vai deixar a luz acesa o tempo todo, a maioria deles só acendem enquanto os dados estão sendo escritos.

Então, se você está drive USB está montado como F :, você pode simplesmente criar um arquivo como F: \ lights.txt, e escrever alguns k de dados para também ele, em seguida, apagar o arquivo e começar de novo.

Uma desvantagem é que drives Flash desgastar depois de um tempo, e isso vai usá-lo para fora. Você também pode apenas tentar ler dados a partir da unidade também.

Se você quiser um controle mais preciso, você pode obter USB dispositivos de aquisição de dados, como estes que lhe permitirá conduzir uma saída específica elétrica, ao poder o que quiser, incluindo lâmpadas ou LEDs. Eles são originalmente usado por cientistas para medir entradas de equipamento de laboratório, eu usei coisas como essa na minha aula de física da faculdade, embora no momento em que usamos RS-232.

Gostaria de olhar aqui . Eles usam algo chamado de armazenamento em massa.

drives USB em olhar Linux como unidades SCSI, assim você pode fazer investigação, ler, escrever, etc. Normalmente fabricante do controlador da unidade flash podem ter uma específica do fornecedor "backdoor", que é desconhecido para o público em geral.

Você pode controlar USB como como a esperança porta RS232 este link MSDN irá ajudá-lo mais http://www.microsoft. com / download / details.aspx? FamilyID = 075318ca-e4f1-4846-912c-b4ed37a1578b & DisplayLang = en

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