Go Down

Topic: Arduino e TV (Read 14642 times) previous topic - next topic

Francesco_MIRM

Quote
Intendi una specie di file "vettoriale", che so.. qualcosa tipo una sfilza di coord_x, coord_y - coord_x, coord_y - coord_x, coord_y ecc...?
E disegnare i singoli bit?

Si come dici tu, per tenere grafica (coordinate) e messaggi testo esternamente allo sketch, tipo apri il file quadrato.txt e usa il suo contenuto come coordinate, oppure apri messaggio.txt e visualizza il contenuto.

leo72

@redfox:
ti consiglio di leggere il thread che ho linkato qualche post prima perché ad un certo punto c'è una persona che ha realizzato un OSD sfruttando un LM1881. C'è anche un video dimostrativo in cui si vede una ripresa fatta con una telecamera con sovrapposte delle immagini generate con TvOut. E' sicuramente ciò che fa per te. Magari puoi contattare quel tipo e chiedere a lui.

Francesco_MIRM

#47
Jan 13, 2011, 12:48 pm Last Edit: Jan 13, 2011, 01:04 pm by Francy Reason: 1
Il mio pacchettino è arrivato! Peccato che è a Milano e io arrivo stasera.
Un fulmine questi di homotix ordinato ieri alle 18, il pacco già stamattina è arrivato.
Quote

E' lì che è stato postato TvOut ed è lì che hanno affrontato diversi problemi ed hanno sviluppato la libreria.
Sto cercando di capire come mai non riesco a modificare la risoluzione. Lì si dice che è un problema di memoria ma se la libreria è stata sviluppata su un Atmega168, che ha metà memoria di un 328, perché non posso modificare la risoluzione da 120x96? Boh...

Lettura interessante!!
Quote
@redfox:
ti consiglio di leggere il thread che ho linkato qualche post prima perché ad un certo punto c'è una persona che ha realizzato un OSD sfruttando un LM1881. C'è anche un video dimostrativo in cui si vede una ripresa fatta con una telecamera con sovrapposte delle immagini generate con TvOut.

Non trovo il video, hai sottomano il link?
Edit: trovato, http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1272593798/120 spettacolo!

leo72

Aggiornamento di primo pomeriggio  ;) (beate ferie, così posso dedicarmi anima e corpo a questo progettino...)

Non ho ancora trovato il modo per poter variare la risoluzione dai 120x96 impostati di default. Questo usando la Beta 1.
Ma.... se provo ad esempio lo sketch di Hackvision (http://nootropicdesign.com/hackvision/gamedev.html), la schedina basata su TvOut, che usa la versione R6 di 6 mesi fa della libreria, riesco ad ottenere il video a 136x96 dei giochini senza problemi!

leo72

#49
Jan 13, 2011, 02:02 pm Last Edit: Jan 13, 2011, 02:07 pm by leo72 Reason: 1
Altro aggiornamento. Ho compilato un mini-sketch che visualizza solo una lettera "A" con la R6, ed ho impostato la risoluzione a 128x96. Vado alla TV e non ottengo nulla.... resetto 2/3 volte l'Arduino.... alla 4a volta appare il segnale!!!

Quindi parrebbe più un problema di segnale al limite della tolleranza della mia TV. Ora riprovo con la Beta 1 per vedere se si comporta allo stesso modo.

Cmq, leggendo quel thread (che non ho ancora finito...) per lo meno i 96 pixel verticali sono un limite invalicabile per il segnale PAL. Si può fare qualcosa sulla risoluzione orizzontale (non più di tanto, visti i 2 KB di SRAM) ma per quello verticale pare proprio che sia un limite che non dipende dalla RAM ma da come viene generato il segnale video.

AGGIORNAMENTO:
E' andato! Anche con la Beta 1 adesso il mio TV visualizza anche il video a 128x96.

leo72

#50
Jan 13, 2011, 03:18 pm Last Edit: Jan 13, 2011, 03:21 pm by leo72 Reason: 1
Mi son divertito un po'. Ho riprodotto la mini-console Hackvision su una breadboard, ho caricato il suo sketch ed ho provato un po' come andava la grafica sul TV di salotto (che, ricordo, è un CRT). Ecco il risultato (il video fa schifo, lo so, ma di meglio non sono riuscito a fare  ;D ):
[media]http://www.youtube.com/watch?v=XAESjNcu_Ek[/media]

P.S.:
la Hackvision riproduce anche l'audio. Per ora non l'ho fatto, ma conto di costruirmi un cavettino anche per il sonoro.

Francesco_MIRM

Quote

Ho compilato un mini-sketch che visualizza solo una lettera "A" con la R6, ed ho impostato la risoluzione a 128x96. Vado alla TV e non ottengo nulla.... resetto 2/3 volte l'Arduino.... alla 4a volta appare il segnale!!!
...
Ora riprovo con la Beta 1 per vedere se si comporta allo stesso modo.
...
AGGIORNAMENTO:
E' andato! Anche con la Beta 1 adesso il mio TV visualizza anche il video a 128x96.

ciao grande! Avevo sospettato fossi in ferie ;)
stai andando come un missile!
Potresti spiegarmi come a risolto il problema della risoluzione?
Adesso la beta1 va senza resettare più volte?
Se non ti disturba potresti postare lo sketch con risoluzione a 128x96?
perchè la libreria R6 permette comunque una risoluzione maggiore?
Quote
Mi son divertito un po'. Ho riprodotto la mini-console Hackvision su una breadboard, ho caricato il suo sketch ed ho provato un po' come andava la grafica sul TV di salotto (che, ricordo, è un CRT). Ecco il risultato (il video fa schifo, lo so, ma di meglio non sono riuscito a fare  ):

Grande grande grande!
Me stai a fa rosicààààà! :)

leo72

Il problema della risoluzione si è risolto da sé, nel senso che forse era la TV che non si agganciava al segnale generato dall'Arduino. Cmq alla fine va anche la beta 1. Basta mettere TV.begin(PAL,128,96) e funziona.

Lo sketch è semplicissimo:
Code: [Select]
#include <TVout.h>
#include <font6x8.h>

TVout TV;

void setup() {
   TV.begin(PAL,128,96);
   TV.select_font(font6x8);
   TV.println("Ciao!");
   TV.println("Vediamo se funziona");
}

void loop() {
}


Cmq puoi prelevare anche lo sketch della Hackvision e mandarlo all'Arduino. Usa però la versione della libreria che trovi su sito di Nootropic (dalla pagina che ti ho linkato trovi tutto), che è la R6. Così hai i giochini che hai visto nel video  ;)

Un'altra cosa. Rileggevo quel lungo thread sulla libreria ed ho trovato una cosa che faceva al caso tuo. QUalcuno ha chiesto se era possibile leggere da una SD e riversare il contenuto su video, ed è stato giustamente risposto di sì.
Un altro ha chiesto perché scrivendo con Serial dati in EEPROM saltava il segnale. L'autore ha risposto che Serial usa gli interrupt e con TVout NON si può usare niente che usi gli interrupt, sennò saltano i timing. Ed ha messo sul repo di Google code una versione modificata di Serial, prelevabile con Mercurial.

Io stasera, dopo un'altra partitina a Invaders  ;D, proverò a vedere se anche l'accesso ad una EEPROM esterna tramite I2C dà problemi. Alternativamente ho una RAM che potrei interfacciare con uno shift register e vedere se riesco a scrivere/leggere da essa senza dar noia a TVout.

Francesco_MIRM

#53
Jan 13, 2011, 09:40 pm Last Edit: Jan 13, 2011, 09:49 pm by Francy Reason: 1
Eccomi qua!, finalmente al lavoro, ehehehe adesso posso curare bene i miei hobby!!
Grazie dello sketch adesso che ho la libreria sottomano per bene con il mio pc, capisco tante cose che ho letto in questi due giorni, qualche curiosità:
Perche quando apro lo sketch DemoPal mi apre anche TVOlogo.h, TVOlogo.cpp, Schematic.h, Schematic.cpp ?
Schematic.h e TVOlogo.h sono #include perchè vedo anche i tab dei .cpp ?
Perchè TVout.h e fontALL.h non sono aperti in tab?
Avrebbe funzionato anche se non li aprivo in ide, avendo, per capirci in ide solo lo sketch ?
Se mi fai una panoramica, non odiarmi!!!
Quote
Cmq puoi prelevare anche lo sketch della Hackvision e mandarlo all'Arduino. Usa però la versione della libreria che trovi su sito di Nootropic (dalla pagina che ti ho linkato trovi tutto), che è la R6. Così hai i giochini che hai visto nel video

Si! già scaricato tutto, se quando torno il mio coinquilino non c'è, penso che farò mattina, comunque per riprodurre l' hackvision il collegamento a a video è come TvOut, devo solo vedere dove disporre i bottoni vero?
EDIT: scaricato la TvOutbeta1 e hackvision, aperti gli esempi di entrambi e compilati, nessun errore, quindi le cartelle sono al posto giusto, adesso manca solo di attaccare Arduino!

superlol

non lo proverò mai, ma volevo chiedervi se c'è un sistema per utilizzare l'HDMI invece del classico RCA.

insomma i segnali sono diversi e c'è molta risoluzione, l'arduino riuscirebbe a "tenere" il tutto?
Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

leo72

#55
Jan 13, 2011, 10:18 pm Last Edit: Jan 13, 2011, 10:21 pm by leo72 Reason: 1
@Francesco:
1) dipende dal fatto che chi ha creato lo sketch ha "aggiunto" quei file nell'IDE (menu "Sketch/Add file"), sicuramente per averli sotto mano mentre ci lavorava, così da avere una vista d'insieme di cosa stava scrivendo.

2) Certo che avrebbe funzionato. Basta che quei file siano presenti.

3) Hackvision si ricostruisce molto facilmente. Usa i pin 7 e 9 per il segnale video (rispettivamente dati e massa), poi attacca i pulsantini sui pin:
Fuoco -> D10
Su -> D4
Giù -> D5
SX -> D3
DX -> D2

(D sta per pin digitale di Arduino)

E tutti a una massa comune.

Solite resistenze da 470 e 1K e basta.

EDIT:
quasi me ne dimenticavo!
Ricordati di mettere a massa il pin D12 di Arduino quando carichi lo sketch di Hackvision oppure di modificare il codice togliendo il controllo iniziale perché altrimenti di default imposta NTSC e non PAL.

@superlol:
non credo che allo stato attuale l'Arduino riesca a gestire un tale segnale. Il max che riesce a fare lo puoi vedere con l'Uzebox. Poi non so, sto iniziando a scoprire ora questo mondo.

Francesco_MIRM

Quote
Solite resistenze da 470 e 1K e basta.

Per il video.

Sui pulsanti non metti le resistenze?

leo72

Andrebbero messe per evitare cortocircuiti... è vero. Però su una breadboard diventa un casino perché tra ponticelli e resistenze poi non si riesce più a premere i pulsantini....

A me per ora non si è fulminato nulla...  ::)

Ah, ho appena terminato i cablaggi della EEPROM sulla breadboard, montata accanto al resto dello schema che hai visto sul video. Adesso provo a vedere se riesco a leggere dei dati ed a visualizzarli sullo schermo  :)

leo72

FUNZIONA FUNZIONA  ;D

Adesso devo studiarmi la libreria e vedere se è possibile riversare o la mappa caratteri o, meglio ancora, addirittura il frame buffer. Se mi riuscisse, sarebbe stupendo perché sarei al 1° passo per la realizzazione del mio microcomputer dual-cpu  ;D

Francesco_MIRM

Quote
Un'altra cosa. Rileggevo quel lungo thread sulla libreria ed ho trovato una cosa che faceva al caso tuo. QUalcuno ha chiesto se era possibile leggere da una SD e riversare il contenuto su video, ed è stato giustamente risposto di sì.
Un altro ha chiesto perché scrivendo con Serial dati in EEPROM saltava il segnale. L'autore ha risposto che Serial usa gli interrupt e con TVout NON si può usare niente che usi gli interrupt, sennò saltano i timing. Ed ha messo sul repo di Google code una versione modificata di Serial, prelevabile con Mercurial.

A parte Mercurial, scoperto stasera e già fatto i film, io la cartella "arduino-tvout" l'ho tirata giù, ma questo Serial modificato non l'ho trovato.
Anche perchè a parte l'SD anche la PS/2 per la tastiera va in interrupt, devo vedere bene, mi puoi dire dove accenna sull'altro thread a questa versione di Serial disponibile su Mercurial?

p.s. complimenti per l'eeprom!!!

Go Up