Come creare dispositivi USB usando un microcontrollore PIC18F. 4/4

microcontrollore PIC18F

In questo articolo verrà mostrato come realizzare un dispositivo generico USB HID (Human Interface Device, dispositivi che interagiscono con gli umani e da loro ricevono input, per poi restituirglieli), utilizzando un microcontrollore PIC18F e infine creando l’interfaccia Windows per il dispositivo che permetterà di controllare un LED dal PC. Con l’avvento di Windows 7 c’è bisogno di una certificazione di validazione costosa per creare driver USB personalizzati (senza di essa molti utenti non possono neppure installare il software creato).

Connettere il dispositivo

Dopo aver seguito i passi precedenti e aver scaricato il firmware sul proprio dispositivo USB, si è pronti per collegarlo al proprio PC. Visto che si stanno usando dei driver USB generici HID, non c’è bisogno di installare nulla sul PC prima di connetterlo, basta semplicemente inserire il cavo USB nel dispositivo e poi inserire l’altra estremità del cavo nel PC. Windows 7 dovrebbe riconoscere il nuovo dispositivo e mostrare il solito avviso di installazione di un nuovo hardware; alcuni secondi dopo, dovrebbe comparire la seguente finestra di dialogo:

Se poi si accede al menu di avvio e si seleziona “dispositivi e stampanti” (se si possiede una versione più vecchia di Windows bisognerà cercare da qualche altra parte, ma poi si ottiene sempre la stessa finestra), quindi viene visualizzato sullo schermo il nuovo dispositivo.

Dovrebbe apparire qualcosa di simile a quanto mostrato nella successiva immagine:

Questo è quanto, il dispositivo USB è enumerato e pronto ad essere utilizzato.

Adesso, quindi, è il momento di spostarsi sul lato host della programmazione e andare a vedere come comunicare con il proprio dispositivo usando Microsoft Visual C++ 2008. Il software host. Il software host è abbastanza lineare e in pratica consiste in 3 parti, tutte contenute all’interno del file Form1.h: – Monitorare il dispositivo USB per assicurarsi che è collegato (e disabilitare l’input dell’utente e la comunicazione con il dispositivo se non lo è) – Visualizzare e processare il modulo dell’interfaccia utente per permettere all’utente di interagire con l’applicazione – Comunicare con il dispositivo USB e aggiornare lo stato del dispositivo. Il software host è stato basato sul software Microchip Generic PnP HID che viene fornito con lo stack USB. Per poter avviare il software host bisogna prima scompattare il file zip Visual Studio 2008 Express e poi andare sulla directory “Release” e quindi fare doppio click sul file “WFF Generic HID Demo.exe”. Fatto questo, dovrebbe comparire la finestra di dialogo mostrata qui di seguito:

Per testare il rilevamento del dispositivo, basta semplicemente scollegare il cavo USB dal PC e la finestra di dialogo dovrebbe quindi cambiare come segue:

Ora, dopo aver riconnesso il dispositivo USB, attendere fino a che la finestra di dialogo si aggiorni (e indichi lo stato “connesso”) e provare a cliccare sul tasto “Toggle LED”; si dovrebbe vedere il LED sulla breadboard accendersi e spegnersi. Il passo successivo consiste nell’assicurarsi che lo stato del LED indicato nella finestra corrisponda in effetti al reale stato del LED; questo è il comando 0x82 del firmware in operazione. Infine, provare a premere il bottone sulla breadboard e verificare se si vede lo stato del pulsante a pressione cambia in maniera coerente nella finestra. Compiuti con successo questi step, potete essere orgogliosi di possedere il vostro primo dispositivo USB fai da te. Nel file di Visual Studio è stato anche inserito tutto il codice sorgente, in modo che sia possibile, per chi lo volesse, vedere il progetto in Visual Studio per avere un’idea più chiara e completa di ciò che è stato fatto.

STAMPA     Tags:,

Leave a Reply