Pregunta

Hace poco estuve leyendo sobre la Hello World de Arduino, y pensé para mí mismo: "Me pregunto si puedo hacer eso con el hardware que tengo en este momento".

Como no tengo un Arduino, agarré una unidad flash USB que tenía y comencé a buscar en Google para obtener información al respecto. No encontré mucha información útil en esta área, así que ahora pregunto aquí: ¿es posible para mí acceder al hardware de una unidad USB (por ejemplo, el LED) e interactuar con él a través de un entorno de programación (estaba pensando que C # debería probablemente tenga alguna forma de hacer esto)?

Además, en relación con este tema, ¿alguien sabe qué tipo de comandos utilizan las unidades USB? Por ejemplo, los dispositivos de almacenamiento SCSI tienen un conjunto de comandos estandarizado; Los dispositivos ATA tienen un protocolo similar. ¿Cómo se emiten cosas como simples comandos de lectura / escritura a un dispositivo de almacenamiento USB?

¿Fue útil?

Solución

Si bien el protocolo USB es bastante genérico, los dispositivos periféricos son realmente específicos de la función y requieren algún tipo de controlador de dispositivo en el host para funcionar correctamente.

Mientras que una unidad flash USB tiene un microcontrolador, la mayoría de los dispositivos de almacenamiento USB siguen un protocolo común. Es por eso que no tiene que instalar un controlador de dispositivo diferente para cada unidad que conecte a Windows.

Estoy bastante seguro de que el protocolo de almacenamiento masivo no tiene un "Encender LED" mensaje :) Y aunque la compañía que implementó la unidad USB podría tener un comando especial para hacerlo (tal vez para la depuración), dudaría que se publicara.

Si bien no soy un gurú en Windows, creo que para poder acceder a la pila USB directamente, tendría que escribir su propio controlador de dispositivo y enchufarlo en el núcleo. ¿Te imaginas si una aplicación normal podría enviar el formato "todo"? comando a un dispositivo USB arbitrario.

Otros consejos

Aquí hay un enlace a una lámpara LED controlada por USB DIY, es un pequeño más trabajo que enchufar una memoria USB.

Si desea encender la luz de un disco duro USB, solo tiene que escribir datos en un archivo en esa unidad, aunque creo que algunas unidades dejarán la luz encendida todo el tiempo, la mayoría de ellas simplemente se iluminan mientras se escriben los datos.

Entonces, si su unidad USB está montada como F :, puede crear un archivo como F: \ lights.txt, y escribir algunos k de datos también en él, luego borrar el archivo y comenzar de nuevo.

Un inconveniente es que las unidades Flash se desgastan después de un tiempo, y esto lo desgastará. También podría intentar leer los datos del disco también.

Si desea un control más preciso, puede obtener dispositivos de adquisición de datos USB como estos que le permitirá controlar una salida eléctrica específica, para alimentar lo que desee, incluidas bombillas o LED. Originalmente los científicos los utilizan para medir los aportes del equipo de laboratorio. Usé cosas así en mi clase de física de la universidad, aunque en ese momento usamos RS-232.

Buscaría aquí . Usan algo llamado almacenamiento masivo.

Las unidades USB en Linux se parecen a las unidades SCSI, por lo que puede hacer INQUIRY, READ, WRITE, etc. Por lo general, el fabricante del controlador de la unidad flash puede tener una puerta trasera específica del proveedor. que es desconocido para el público en general.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top