
Un tester per monitor per PC basato sulla generazione di immagini raster. Il progetto fa uso principalmente del microprocessore della Atmel ATTINY2313 programmato in assembler.
Un tester per monitorare il funzionamento dei Monitor per PC. Il goal è quello di disporre di un “oggetto” elettronico meno ingombrante rispetto ad un PC con il compito di generare immagini test (raster image).
Una immagine raster, chiamata anche bitmap , è un modo per rappresentare le immagini digitali. L'immagine raster assume una grande varietà di formati, tra cui il familiare. Gif, Jpg e Bmp; rappresenta un'immagine in una serie di bit di informazioni che si traducono in pixel sullo schermo. Questi pixel formano punti di colore che creano un'immagine complessiva finito. Quando un'immagine raster è stato creato, l'immagine sullo schermo è convertito in pixel. Ogni pixel è assegnato un valore specifico che determina il colore. Il sistema utilizza le immagini raster rosso, verde, blu (RGB). Un valore RGB di 0,0,0 sarebbe nero, e i valori vanno fino in fondo a 256 per ogni colore, consentendo l'espressione di una vasta gamma di valori di colore.
Il progettista di questo interessante circuito ha pensato di utilizzare un microprocessore AVR (ATTINY2313) della Atmel per un potenziamento della trasmissione dati. Nulla però ci vieta di pensare di poter usufruire di altri processori, vedi i PIC; questi ultimi più economici ma con buone potenzialità in termini di velocità e prestazioni dei registri. ATTINY2313 è un microcontrollore RISC che racchiude straordinaria potenza in un piccolo package a 20 pin, con frequenza di clock fino a 20MHz per applicazioni avanzate. In grado di eseguire un'istruzione in un singolo ciclo di clock, consente di ottimizzare il consumo di potenza nei confronti della velocità di esecuzione, anche sfruttando le modalità di basso consumo.
Ha un flash da 2K bytes che con la funzionalità ISP (In-System-Programming) può essere programmata con interfaccia SPI dopo che il microcontrollore è già stato montato sulla scheda che lo deve ospitare.
I Microcontrollori Microchip e Atmel più o meno si equivalgono. Quello che si deve considerare è la disponibilità di tools come compilatori free e a pagamento, programmatori e schede varie. Inoltre devi considerare la diffusione del micro anche nel tuo paese. In Italia probabilmente, soprattutto a livello hobbistico, è più diffuso il PIC. Quindi se cerchi aiuto o documentazione in italiano, probabilmente trovi di più. Una volta capito come funziona un microcontrollore e hai imparato un linguaggio, passare da un micro all'altro non e' difficilissimo.
La programmazione dei registri, per abilitarli alla generazione dei raster, dovrà essere fatta considerando appunto di generare delle immagini di una certa quantità specificando il range di colori. In questo progetto Tester per Monitor PC, ogni registro rappresenterà un suo “modo” di colore che evidenzierà il valore assegnato al raster. La varietà delle risoluzioni ci permette di adattarlo ad un certo numero di monitor senza dover settare nuovi parametri. L’utilizzo della batteria inoltre lo rende portatile. Ovviamente, essendo alimentato a batteria, richiede un certo risparmio di corrente che può essere effettuato con il xx2950. Se non siamo interessati ai consumi allora nulla ci vieta di sostituirlo con un regolatore più economico come il 7805 facendo attenzione al range di alimentazione per il processore. Il circuito è abbastanza semplice e non richiede complessità nel PCB che evidentemente è a singola faccia.
Il software di programmazione, infine, è in assembler sviluppato con AVRstudio. AVRstudio ti permette di programmare tutti i prodotti Atmel sia in C (compilatore gcc) che in assembler; cosa importante qualore si decisse di sviluppare il circuito con dei microprocessori PIC. La cosa bella di questo sistema di sviluppo è la possibilità di creare nuovi progetti partendo da un progetto dimostrativo già esistente. Questo da la possibilità di avere già una base software funzionante su cui apportarci modifiche che, agli inizi, non è cosa da poco.

Interessante progetto non tanto per la sua utilità (anche se per utile potrebbe esserlo per chi ripara ancora monitor PC con ingresso VGA…oramai si è passato al DVI o HDMI e la VGA, se vogliamo, è stata un po’ sorpassata) quanto per il suo aspetto didattico. Si di mostra infatti come sia possibile generare dei segnali video a colori utililizzando un microcontrollore dal core essenziale (perché a 8bit, nell’era del 32bit sembra sempre più strano abbinare ad un progetto relativamente complesso un micro low cost a 8bit) ma potente visto che l’Atmel, con i sui micro, ci ha abituato da sempre a grandi performance e a grandi velocità di esecuzione delle istruzioni (ogni istruzione dura solo un ciclo di clock).
C’è da dire che ho avuto modo di imbattermi in questo progetto non tantissimo tempo fa ed è stato in occasione di una discussione sollevata sul forum di Elettronica Open Source riguardante l’utilizzo della libreria TVout per Arduino. Nel caso di TVout, questa libreria permette di utilizzare un qualunque monitor tv come un display grafico in black and white con una risoluzione di 64×96 pixel…molto poco rispetto alle risoluzioni a cui siamo abituato con in nostri monitori / TV di ultima generazione o alla risoluzione che riescono a restituire le console neanche poi così nuove. Per aumentare sensibilmente il numero di pixel rinunciando però ad una tonalià di grigio e accontentandosi davvero del solo bianco e nero, è possibile farlo associando ad ogni singolo bit di una parola da 8bit salvata in ram l’accensione o lo spegnimento di un pixel. Il problema di questa sistema di generazione delle immagine è insito nel fatto che sia le immagini, che i testi ecc… comunque le schermate da visualizzare, devono essere preventivamente caricate in ram e quindi il microcontrollore devo contenere una memoria dati (un buffer) che abbia almeno (righexcolonne)/8 celle di memoria disponibili. Il “/8” tiene conto del fatto che ogni singolo bit di un singolo byte codifica acceso / spento un dato pixel della riga. Con questo enhancement della libreria si riescono a coprire risoluzioni di gran lunga maggiori rispetto la versione base.
Per quanto riguarda l’hardware, nel caso del VGAtester, l’ingresso VGA dispone di 3 canali RGB separati la cui gestione è regolata dallo standard PAL /NTSC. Per ogni canale, il microcontrollore dedica due pin digitali i quali fanno capo ad un convertitore D/A a 2 bit realizzato con 2 resistenze chiuse a formare un partitore con l’impedenza interna del canale pari a 75ohm. In pratica, in funzione della combinazione di questi bit, l’uscita del partitore si porterà 4 possibili valori di tensione. Uno dei due bit genera l’impulso di sync (che serve a delimitare due righe successive) e l’altro serve essenzialmente ad accendere o spegnere il singolo pixel. Visto che i canali sulla VGA identificano i colori RGB, l’accensione del singolo pixel del particolare canale contribuirà a dare il relativo colore. È bello notare che miscelando più colori su un solo pixel si riescono ad ottenere diverse combinazioni di colore.
Se volessimo rendere questo progetto un po’ più ludico, si potrebbe pensare di realizzare una versione più avanzata (a colori, appunto) della console creata da “hackvision.com” basato sulla piattaforma Arduino. Questa al momento sfrutta l’ingresso AV di un qualunque televisore e non disponendo di grandi capacità di calcolo e di memoria,ci si limita a visualizzare i giochi in w/b.
Il prodotto è indubbiamente utile per chi va in giro per testare prodotti da riparare o meno, ma esistono software che permettono di testare i monitor, forse con un eeepc si potrebbe fare altrettanto, magari collegandolo con un database relativo alle problematiche incontrate nei monitor provati.
Indubbiamente il prodotto è utile per chi va in giro per testare ma didatticamente è interessante; ci fa capire, per esempio, come generare immagini raster. Quello di creare una versione basata su Arduino non è niente male! Si potrebbe pensare di incrementare le capacità di calcolo diversamente con nuova tecnologia.
Sono nuovo di open source e non capisco molto il funzionamento, ma sono molto interessato al progetto, come posso fare per avere tutto il necessario (schema elettrico e codice assembler)? E’ postato, o bisogna cliccare da qualche parte sul post, oppure devo richiedere direttamente a chi ha pubblicato?