Persistence of Vision Display

From FabLabGenovaWiki
Revision as of 18:03, 7 November 2013 by Bond (talk | contribs) (Primi test)

Jump to: navigation, search

Il progetto consta nella realizzazione di un display basato sul principio della Persistence of Vision. In questo genere di display un array di led controllato da un microcontrollore viene mosso molto rapidamente, in modo che occupi successivamente nello spazio le posizioni di diverse colonne di una matrice virtuale di led. Variando la configurazione dei led in ogni posizione della matrice virtuale, se la velocità è sufficente perchè tutta l'immagine resti impressa sulla retina, si ottiene come effetto una matrice di led virtuali costituita da una sola colonna che viene utilizzata per rappresentare tutte le colonne della matrice in una sorta di multiplex fisico. I metodi per ottenere quest'effetto sono essenzialmente due: tramite una rotazione o tramite un oscillazione orizzontale. Noi ci siamo concentrati sul primo metodo in quanto un'oscillazione orizzontale è più complessa da realizzare meccanicamente e se eseguita in maniera non motorizzata necessita di dispositivi di controllo notevolmente più dispendiosi ( leggi accellerometri ) per poter dare una sincronizzazione accettabile, e quindi una buona leggibilità. Il sistema che abbiamo intenzione di realizzare noi è invece più semplice sia da un punto di vista meccanico che elettronico/informatico. Meccanicamente è essenzialmente una bici in cui la ruota posteriore è stata distanziata ed elevata rispetto al suo originale asse ( quindi con una catena lunghissima ); su questa ruota così posizionata sono fissati i led e l'elettronica di controllo. Elettronicamente la problematica principale è legata al fatto che la ruota essendo azionata a pedali non avrà una velocità di rotazione fissa e costante, ma oscillerà intorno ad un valor medio, quindi è necessario che il microcontrollore conosca ( teoricamente ad ogni istante ) la velocità di rotazione effettiva.

Primi test

I primi test sono stati eseguiti utilizzando un PIC16F1519 che controllava direttamente 9 LED, alimentato cone due batterie ministilo. In questa prima versione realizzata solo come prototipo per testare le potenzialità del sistema non vi era integrato nessun sistema di controllo della velocità di rotazione ( o traslazione, a seconda di come si sceglieva di usarlo ). Il prototipo ha funzionato ragionevolmente bene, anche senza alcun tipo di sincronizzazione riuscire a 'beccare' la velocità di movimento giusta perchè la scritta resti ferma non è affatto facile, questo ci ha convinto dell'opportunità di inserire un dispositivo di controllo nella versione definitiva. Inoltre ci ha permesso di valutare a che velocità dovesse girare la ruota di bicicletta per ottenere l'effetto voluto. Il progetto è disponibile anche se al momento non ha molto senso realizzarlo. In futuro sarebbe carino riprenderlo, inserendo un sensore a effetto Hall o un accellerometro per sincronizzarlo: sarebbe molto carino, ma al momento non è tra i programmi.

La scheda di testing
La scheda di testing

Versione 0.1

Elettronica

Per rilevare la velocità angolare abbiamo scelto di utilizzare un sensore ad effetto Hall montato sulla parte in rotazione che invii un segnale ogni qual volta si passi vicino ad un determinato punto su cui è posizionato un magnete permanente. Si è preferito rispetto ad altre soluzioni ( ottiche, a IR o altro ) in quanto presentava meno interferenze ed era più stabile meccanicamente. Il sensore usato è un A1301, che ha caratteristiche adeguate al progetto ed è reperibile ad un costo minimo sia su ebay che sui principali negozi di elettronica. Tale sensore avendo un uscita analogica non può generare direttamente un interrupt per il PIC. Pertanto si utilizza un µA741 come comparatore di tensione per generare un interrupt ( o un input ) digitale, confrontando la tensione in uscita dal sensore con un valore ottenuto da un trimmer, che permette la taratura rispetto al campo magnetico locale. Lo schema e il circuito stampato ( banalissimo ) è disponibile in formato eagle attachment: hall_effect_interrupter.schattachment: hall_effect_interrupter.brd; il led e la sua resistenza saranno omessi nella versione finale dato che servivano solo per debugging.