Domanda

Di recente ho letto sull'applicazione Hello World di Arduino e ho pensato, " Mi chiedo se posso farlo con l'hardware che ho in questo momento. "

Dato che non ho un Arduino, ho preso una chiavetta USB che avevo in giro e ho iniziato a cercare su Google informazioni su di esso. Non ho trovato molte informazioni utili in quest'area, quindi ora sto chiedendo qui: è possibile per me accedere all'hardware di un'unità USB (ad esempio il LED) e interagire con esso tramite un ambiente di programmazione (pensavo che C # avrebbe dovuto probabilmente hai modo di farlo)?

Inoltre, in relazione a questo argomento - qualcuno sa che tipo di comandi usano le unità USB? Ad esempio, i dispositivi di archiviazione SCSI hanno un set di comandi standardizzato; I dispositivi ATA hanno un protocollo simile. Come vengono emessi comandi di lettura / scrittura semplici su un dispositivo di archiviazione USB?

È stato utile?

Soluzione

Sebbene il protocollo USB sia abbastanza generico, i dispositivi periferici sono realmente specifici per funzione e richiedono un qualche tipo di driver di dispositivo sull'host per funzionare correttamente.

Mentre un'unità flash USB ha un microcontrollore, la maggior parte dei dispositivi di archiviazione USB segue un protocollo comune. Ecco perché non è necessario installare un driver di dispositivo diverso per ogni unità che si collega a Windows.

Sono abbastanza sicuro che il protocollo di archiviazione di massa non abbia un " Accendi il LED " Messaggio :) E mentre la società che ha implementato l'unità USB potrebbe effettivamente disporre di un comando speciale per farlo (forse per il debug), dubiterei che sarebbe stata pubblicata.

Anche se non sono un guru su Windows, credo che per poter accedere direttamente allo stack USB, è necessario scrivere il proprio driver di dispositivo e caricarlo nel kernel. Riesci a immaginare se un'applicazione normale potrebbe inviare il formato "tutto" " comando a un dispositivo USB arbitrario.

Altri suggerimenti

Ecco un link a una lampada LED controllata da USB fai-da-te, è un piccolo più lavoro che collegare una chiavetta USB.

Se vuoi accendere la luce su un disco rigido USB, devi solo scrivere i dati in un file su quell'unità, anche se penso che alcune unità lasceranno la luce sempre accesa, la maggior parte di loro si accendono mentre i dati vengono scritti.

Quindi se l'unità USB è montata come F :, puoi semplicemente creare un file come F: \ lights.txt e scrivere anche qualche k di dati su di esso, quindi cancellare il file e ricominciare.

Uno svantaggio è che le unità Flash si consumano dopo un po 'e questo lo consumerà. Puoi anche provare a leggere i dati dall'unità.

Se desideri un controllo più preciso, puoi ottenere dispositivi di acquisizione dati USB come questi che ti consentirà di pilotare un'uscita elettrica specifica, per alimentare tutto ciò che desideri, tra cui lampadine o LED. Sono stati originariamente utilizzati dagli scienziati per misurare input provenienti da apparecchiature di laboratorio, ho usato cose del genere durante il mio corso di fisica al college, sebbene all'epoca usassimo RS-232.

Vorrei qui . Usano qualcosa chiamato Mass Storage.

Le unità USB in Linux sembrano unità SCSI, quindi puoi fare RICHIESTA, LEGGERE, SCRIVERE, ecc. Di solito il produttore del controller dell'unità flash può avere un "backdoor" specifico del fornitore ", che è sconosciuto al grande pubblico.

Puoi controllare l'USB come la porta RS232, spero che questo collegamento MSDN ti aiuti di più http://www.microsoft. com / downloads / Details.aspx FamilyID = 075318ca-e4f1-4846-912c-b4ed37a1578b & amp;? DisplayLang = it

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top