Oscilloscopio USB: Progetto PitaScope

A questo punto, per chi mi ha seguito in questa sommaria spiegazione riguardante lo standard USB, non resta che mostrare una applicazione che ho realizzato.

Si tratta di un oscilloscopio USB gestito da microcontrollore.

In poche parole il suo lavoro è quello di digitalizzare i dati  provenienti da una sorgente analogica, mandarli al PC e visualizzarli su schermo.

Una doverosa premessa: questo progetto, seppur funzionante, è ancora in fase di sviluppo e risulta quindi molto limitato infatti, come si vede dallo schema elettrico sotto riportato, non ci sono ancora stadi di ingresso per i canali dell'oscilloscopio, e tante altre parti che un oscilloscopio potrebbe avere.

AVVISO IMPORTANTE 8 giugno 2012

Siccome non ho più (momentaneamente) a disposizione un PIC18F4550 per sviluppare ulteriormente l'oscilloscopio e a causa del poco tempo libero, penso che il progetto resterà per un pò di tempo in pausa.

AGGIORNAMENTO 17 settembre 2012

Per farlo funzionare correttamente qualche volta è necessaria l'installazione manuale dei driver, tramite la "Gestione dispositivi" di Windows.

Firmware del microcontrollore Microchip PIC18F4550

Il codice sorgente del firmware è stato scritto in C e compilato usando il compilatore HITECH. Per la simulazione mi è stato comodo usare la suite MPLAB di Microchip.

Interfaccia grafica per Windows

L'interfaccia grafica, funzionante su Windows 7 o Windows XP (quindi penso anche su Vista anche se non ho avuto la possibilità di testarlo), è stata scritta in Visual C#.NET (per l'esecuzione necessita quindi di aver installato nel proprio sistema il Microsoft .Net Framework 4) e sfrutta la comodissima libreria LibUsbDotNet (scaricabile liberamente).

Finora l'interfaccia grafica ha una dimensione di 900x650 pixel; perciò su schermi con risoluzioni inferiori non è assicurata l'ottimale visualizzazione.

Schema della scheda di sviluppo

Per effettuare vere misurazioni di tensione bisogna realizzare un semplice circuito stampato di prova. Per questo lascio lo schema che ho realizzato (probabilmente funziona bene anche su bread-board, anche se non lo assicuro... non vi resta che provare!!). A seguire trovate anche il master per chi decide di realizzare proprio il circuito stampato su basetta, o meglio su un ritaglio di scheda che magari avete avanzato...

Però...se volete semplicemente provare per curiosità il software, nell'applicazione ho aggiunto un hardware virtuale che consente di provare l'interfaccia anche senza avere il vero oscilloscopio, che io ho battezzato PitaScope.

Per ora il firmware è programmato per fornire un unico canale di acquisizione sul piedino RA0/AN0 (cioè sul piedino 2 del PIC18F4550, nella versione a 40 pin). Le altre linee di input/output di PORT-A si possono usare per espandere il progetto e quindi per altri scopi, infatti per ora sono solamente collegate ad un generico connettore (per facilitare lo sviluppo di qualche applicazione); lo stesso vale per tutte le linee di PORT-B. 

Quindi per analizzare un segnale basta collegare il piedino RA0 ad un punto del circuito sotto test, e collegare la massa dell'oscilloscopio alla massa del circuito sotto test.

Ovviamente bisogna stare attenti a non applicare all'ingresso RA0 segnali con ampiezza maggiore di 5 Volt perchè si rischia di danneggiare il PIC.

Inoltre siccome la tensione di riferimento superiore dell'ADC è pari a Vcc (tensione di alimentazione del PIC, pari ai circa 5 Volt dell'alimentazione USB) e quella inferiore è posta a massa (0 Volt), non è possibile misurare tensioni che non rientrano nel range 0 Volt - 5 Volt.

Questa limitazione si può risolvere ponendo in ingresso un adeguato stadio di disaccoppiamento, composto da qualche circuito ad amplificatori operazionali, col quale si può gestire il guadagno del canale di ingresso.

La frequenza massima di campionamento che si può ottenere è poco inferiore ai 50 KHz, quindi è consentito monitorare segnali fino alla metà di questa frequenza (ciò deriva dal teorema di Nyquist), cioè circa 20-25 KHz.
Ovviamente la bassa velocità è dovuta all'ADC interno che è molto lento, se si aggiunge un ADC esterno più veloce o si cambia PIC si può ottenere uno strumento molto più valido. 

Quindi cosa aspettate, cliccate sull'icona sottostante per scaricare tutti i file di progetto, estraete l'archivio e entrate nella cartella:

PitaScope / Interfaccia_VISUAL_STUDIO / Oscilloscopio1 / bin / Release

infine avviate il file:

PitaScope.exe

Interfaccia grafica eseguibile per Windows, firmware PIC18F4550,

Driver, PCB scheda sviluppo

Ecco un'anteprima dell'interfaccia grafica dell'oscilloscopio su Windows XP!! :D

<-- Quinta parte

Ultimo aggiornamento: 20 marzo 2012

Se questo articolo ti è stato utile, condividilo sul tuo social network preferito, basta un clic!