Arduino Forum

International => Italiano => Software => Topic started by: mango on Mar 15, 2013, 01:42 am

Title: Gestire video 3D
Post by: mango on Mar 15, 2013, 01:42 am
Salve a tutti, ultimamente sto cercando di creare un programma su arduino per visualizare film in 3d sul mio schermo.
Dopo essermi tanto tanto TANTO informato in giro e dopo aver visto vari progetti mi sono più o meno fatto un idea di cosa voglio costruire.
Il programma in breve prevede che arduino si sincronizzi con la scheda video del pc e trasmetta sotto formato di impulsi ( infrarossi o fisici ) alla stessa velocita di aggiornamento dello schermo (60hz nel mio caso) per poter governare degli occhiali 3d shutter glasses.
il codice lo più o meno abbozato grazzie alla libreria IRremote il problema è come sincronizzo arduino con la scheda video ?
Vi prego datemi una mano a finire questo progetto che credo possa interessare a molti.
Title: Re: Gestire video 3D
Post by: BaBBuino on Mar 15, 2013, 03:52 am
A te serve solo un segnale di sincronismo per agganciare lo schetch di Arduino con il refresh della pagina video. In pratica ti serve il V-Sync.

Questo lo trovi sul Pin 14 del connettore VGA, ma non conosco il valore del livello che poi deve essere adattato ai valori di Arduino (5V).

Il Pin 14 è nella fila più in basso, quasi tutto a sinistra, un pin prima di quello indicato come 15...

(http://www.ingegnerando.it/technology/mame/monitor/connettore%20vga2.jpg)

Nel caso di un connettore DVI lo trovi sul pin 8:

(http://www.atelettronica.it/ASSISTENZA/IMAGECONNETTORI/CONN_DVI.jpg)

Spero per te che tu abbia un abuona manualità e dimestichezza con il saldatore su oggetti molto piccoli...
Title: Re: Gestire video 3D
Post by: cyberhs on Mar 15, 2013, 06:06 am
Eventualmente puoi anche usare un LM1881
Title: Re: Gestire video 3D
Post by: astrobeed on Mar 15, 2013, 08:35 am

Eventualmente puoi anche usare un LM1881


Non serve a nulla visto che il segnale della VGA è di tipo RGB con i sincronismi separati.
Title: Re: Gestire video 3D
Post by: astrobeed on Mar 15, 2013, 08:39 am

A te serve solo un segnale di sincronismo per agganciare lo schetch di Arduino con il refresh della pagina video. In pratica ti serve il V-Sync.


Purtroppo non è così semplice, il V-Sync ti riporta solo quando inizia un nuovo frame, per il 3D hai bisogno di sapere anche se è il frame di destra oppure quello di sinistra, ovvero non è possibile ottenere il 3D partendo dal segnale VGA, serve una apposita scheda che va messa sul bus pci e deve essere supportata dal player/game altrimenti niente 3D.
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 10:34 am
Grazie per la tempestiva risposta,  :smiley-eek: per quanto riguarda l'uscita vga so che posso sincronizzare arduino con quel segnale, è gia stato fatto e sembra con buoni risultati.
Il problema è che non ho quel uscita sul pc quindi volevo fare tutto usb ( anche per una maggiore flessibilita e semplicita a livello di saldature ) .
Per quanto riguarda il sincrono sinistro destro non è un problema, o meglio è risolvibile con una facile scappatoia:
Il video comincia con una sequenza ( credo che faro di 10 sec ) con dei freim alternati con scritto R e L, cosi facendo si puo successsivamente invertire la sequenza di otturazione per regolarne la stereoscopia ( basta un pratico pulsante ).
Cosa non detta al inizio il progetto teoricamente puo gia funzionare cosi, ma per esserne più sicuri e renderlo più semplice possibile per chi volesse provarci sto progettando un programma in c++ ( plughin per vlc) che alterni i fotogrammi R L di un formato Side-by-Side 3D usando ovviamente come master clok il sistema di aggiornametno della scheda video.
Grazie ancora delle tempestive risposte.
Title: Re: Gestire video 3D
Post by: BaBBuino on Mar 15, 2013, 10:51 am
Una cosa è certa però: l'Inglese non è il tuo forte eh! :D
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 10:58 am
no  :smiley-roll:
Title: Re: Gestire video 3D
Post by: lestofante on Mar 15, 2013, 11:40 am
fico ma io sapevo che a il monitor/televisore deve essere di almeno 120Hz per avere un buon risultato..
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 11:56 am
Ci sono varie frequenze a cui si puo lavorare, ovviamente a 120 il risultato è migliore ma anche a 60 ... mi spiego meglio:
Se si pensa che nel formato americano NTSC i fotogrammi si alternano a pocomeno di 30 al secondo, e in quello italiano PAL i fotogrammi sono a 25 i conti sono facili da fare.
In buona sostanza in un secondo devi alternare dai 25 ai 30 fotogrammi per occhio quindi da 50 a 60 fotogrammi al secondo per avere l'inlusione di un immagine stereoscopica.
In ogni caso la velocita puoi successivamente cambiarla in base alla frequenza che imposti nella scheda video, la mia si ferma a 60 ma tranquillamente ora trovi schede che vanno fino a 120.
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 02:01 pm
Non devo collegare uno schermo esterno al mio pc per vedere in 3d, vorrei usare lo schermo del mio poratile.
Vi prego ditemi che e possibile prelevare il clock di aggiornamento della scheda video senza prenderlo dalla porta VGA  =(
(http://res2.windows.microsoft.com/resbox/it/windows%20vista/main/009a0d2a-5921-4a1c-a57f-3f35af61833c_0.png)
Title: Re: Gestire video 3D
Post by: BaBBuino on Mar 15, 2013, 02:57 pm
*******, da dove vorresti prenderlo "dentro" il portatile, quel segnale?
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 03:04 pm
Se intendi la frequenza di aggiornamento del monitor la risposta è si, in pratica devo mandare un segnale ogni volta che il monitor si agiorna
Title: Re: Gestire video 3D
Post by: lestofante on Mar 15, 2013, 03:10 pm
credo che mango intenda intercetarlo via sofware e inviare un impulso via usb/seriale all'arduino, giusto? CREDO sia fattibile, ma non sono sicuro sia semplice

devi spiegarti bene, mango, altrimenti sembra che vuoi che magicamente l'arduino sappia che il monitor si è refreshato.
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 03:30 pm
Avete ragione vi chiedo scusa a tutti se mi spiego un po' male, non sono troppo pratico di queste cose, so la teoria ma la pratica mi manca.
In ogni caso Lesto ha ragione, voglio intercettare la frequenza di aggiornamento del monitor per sincronizzarci gli occhiali.
Il problema è che non so in pratica come si fa.
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 03:44 pm
Il software è molto semplice, praticamente ogni ambiente ti permette di gestire un evento che si scatena al ridisegno dello schermo
Anche se WPF non è l'ambiente più adatto per questo genere di cose perché il thread di rendering e di UI sono separati ecco un esempio di programma:

Code: [Select]

       public MainWindow()
       {
           InitializeComponent();
           CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
       }        
       long ticks = 0; // 1 tick = 100ns = 0.1uS = 0.0001mS
       // 60Hz = 16.6ms = 166.000 ticks
       void CompositionTarget_Rendering(object sender, EventArgs e)
       {
           TimeSpan t = (e as RenderingEventArgs).RenderingTime;
           long diffTicks = t.Ticks - ticks;
           textBlock1.Text = diffTicks.ToString(); // Aggiungere un textBlock alla Window
           ticks = t.Ticks;            
       }


La funzione CompositionTarget_Rendering viene chiamata prima del rendering e sarà visualizzato a schermo un numero prossimo a 166.000 che equivale a 60Hz. Non si ha il valore preciso per la limitazione detta prima, se ci si aggiunge una trasmissione seriale si va inevitabilmente fuori sincronia se non si ha una comunicazione molto veloce.

Utilizzando DirectX o altri ambienti la situazione migliora anche se personalmente prenderei il segnale dalla VGA, alla fine fai prima

Ciao
Title: Re: Gestire video 3D
Post by: lestofante on Mar 15, 2013, 03:58 pm

Avete ragione vi chiedo scusa a tutti se mi spiego un po' male, non sono troppo pratico di queste cose, so la teoria ma la pratica mi manca.
In ogni caso Lesto ha ragione, voglio intercettare la frequenza di aggiornamento del monitor per sincronizzarci gli occhiali.
Il problema è che non so in pratica come si fa.


senza offesa ma ci risiamo

Quote
voglio intercettare la frequenza di aggiornamento del monitor per sincronizzarci gli occhiali

allora usa il sistema della VGA

tu forse intendi

Quote
voglio intercettare via software sul PC la frequenza di aggiornamento del monitor per comunicarla tramite seriale all'arduino che la comunicherà tarmite (?bho, bluetooth? perche non usi direttamente una chiavetta) agli occhiali (o sono gli occhiali che con arduino rivevono il seganel?
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 04:17 pm
Ciao flz47655 grazie 1000 per la risposta e del codice fornito.  :)
Scusami se ti faccio un po' di domande ( anche banali ) sul suo funzionamento ma voglio capire ed imparare:
1 Cosa è DirectX ?
2 Come funziona il codice? e cosa vuole dire ogni singola riga?, lo chiedo per capire meglio come ragiona e poterlo implementare al codice che sto abozzando.
3 Cosa intendi per ambiente WPF?
4 Questo programma può essere lanciato solo dal compilatore arduino o basta attaccare la scheda al pc e si sincronizza da solo ?
5 Il programma mi da errore sketch_mar15b:-1: error: expected unqualified-id before 'public'
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 04:30 pm
Scusami ancora Lesto se non mi faccio capire bene, io voglio comunicare via IR a dei normali occhiali 3d attivi quando cabiare oturatore, il fatto è che ne esistono di vari tipi oltre a quelli governati via infrarossi, ci sono anche quelli che si collegano tramite un semplice cavo jack 3.5 il software che sto cercando di creare deve poter gestire tutte e 2 le cose.
Ribadisco il fatto che non so come sia possibile prendere questo segnale dal pc se ci deve essere un programma interno al computer per inviarlo ad arduino o se basta collegarlo al pc e se lo trovi lui ( non ho la presa VGA ).
io so come ragionano entrambi i modelli quindi per quello so arangiarmi io.
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 05:03 pm
Mettiamola più semplice, così non ci si incasina con la storia degli occhiali 3D:
Supponiamo che io voglia far accendere e spegnere un led alla stessa frequenza di aggiornamento dello schermo del mio portatile, io non riesco a fare questo.
ci penso io poi a prendere l'impulso del led e a girarlo per mandare un segnale ir agli occhiali.
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 05:25 pm
Il software è semplice se si è un programmatore con molti anni di esperienza  ]:D

Lascia perdere l'idea di scriverlo da solo, dalle domande che fai non sei del settore. Ti propongo una strada alternativa più alla tua portata:
Girando un potenziometro sincronizzi manualmente gli occhiali 3d, la frequenza del tuo schermo è sempre quella (60hz), col potenziometro diciamo che anticipi o ritardi la frequenza per allinearla a quella dello schermo.
Non sarà il massimo ma girando lentamente il potenziometro è possibile, con gli occhialini addosso, trovare un buon risultato.
Ora devi solamente aggiungere un potenziometro al tuo progetto e scrivere lo sketch di Arduino.

Ciao
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 05:41 pm
Si è vero non sono troppo del settore, e sono mooolto auto didatta  :smiley-roll: .
Il problema del sincronizzare manualmente degli occhiali con il monitor e che non ci si riesce ( lo dico con cognizione di causa )
rimane in sincrono si e no per 1 secondo.
Potrei prendere il segnale direttamente dalla porta VGA, farlo entrare in arduino e da li mandarlo agli occhiali.
Ma da quello che ho letto anche cosi non sarebbe troppo preciso e poi non ho la porta VGA .
Io vorrei provare a fare il programma da me ma oviametne non ne sono in grado.  =(
te riusciresti a farlo se ti spiego nel detaglio come si comunica agli ochiali ?
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 06:15 pm
Perché rimane in sincrono per 1 secondo massimo secondo te con una regolazione manuale?
Comunque avrai un uscita video VGA o DVI sul tuo pc?
Altrimenti potresti comunque prelevare il segnale con un cavo "vga splitter", una multipla in pratica dove puoi collegare sia lo schermo che Arduino.

Ciao

PS: Naturalmente non ti puoi agganciare semplicemente al pin VSYNC così com'è senza sapere bene quello che stai facendo a meno che non vuoi distruggere la scheda video e il monitor in un colpo solo ]:D
Title: Re: Gestire video 3D
Post by: lestofante on Mar 15, 2013, 06:20 pm
perchè secondo te rilevare l'aggiornamento via SW, inviarlo via seriale (massimo circa 100.000 caratteri al secondo, quindi 0.00001secondo a carattere) + elaborarlo lato arduino+inviare il segnale + elaborazione occhiale...

se prendo il dato da VGA via interrupt e attivi un pin siamo nell'ordine dei nanosecondi
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 06:36 pm
Ho seguito altri progetti di questo genere che non usavano arduino ma cip logici, in pratica prendevano il segnale di clock dalla porta vga.
Il problema di sincronizzare il segnale con un potenziometro è il potenziometro stesso, e la precisione che ovviamente non è a questi livelli.
qui vi linko 2 proggetti analoghi :
http://www.benryves.com/journal/tags/LCD_shutter_glasses_adaptor
http://codelab.wordpress.com/2012/03/02/vsync-driven-shutter-glasses/
Qui di seguito inserisco il programma fatto fino ad ora che prende il clock dalla porta VGA ( se già avete suggerimenti su come migliorarlo o renderlo più efficente )

Code: [Select]

int VGAclock=0;
int SINCswic=0;

void setup(){
 
 pinMode ( 13, OUTPUT );  // il pin 13 e 12 servono per comandare gli occhiali tramite cavo non IR
 pinMode ( 12, OUTPUT );
 pinMode (8, INPUT);     // da qui faccio entrare il segnale di di clock VGA
 pinMode (9, INPUT);     // interutore per girare la fase
}

void loop() {
 VGAclock=digitalRead(8);
 SINCswic=digitalRead(9);
 
 if(VGAclock==HIGH , SINCswic==LOW ){
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
 }
 else{
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
 }
 
 if(VGAclock==HIGH , SINCswic==HIGH  ){
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
 }
 else{
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
 }

}
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 06:55 pm
Quote
Il problema di sincronizzare il segnale con un potenziometro è il potenziometro stesso, e la precisione che ovviamente non è a questi livelli


Dipende da come si implementa il tutto, con Arduino leggi il valore del potenziometro e quando trovi il valore corretto lo "blocchi" in modo che non si sposta neanche se si gira il potenziometro

Potresti implementare alcuni accorgimenti per avere due o più modalità "fine" e "grossa" con diverse sensibilità per tarare meglio il tutto, alla fine il potenziometro in se non deve essere precisissimo, potresti addirittura fare senza potenziometro e variare in continuazione lentamente lo sfasamento, quando vedi bene vuol dire che hai trovare il sincronismo giusto e con un pulsante che leggi tramite Arduino lo "blocchi"

Ciao
Title: Re: Gestire video 3D
Post by: astrobeed on Mar 15, 2013, 07:06 pm

Dipende da come si implementa il tutto, con Arduino leggi il valore del potenziometro e quando trovi il valore corretto lo "blocchi" in modo che non si sposta neanche se si gira il potenziometro


Non può funzionare in questo modo perché il V-sync ha sempre un pochino di jitter e non è raro che ci sono delle leggere pause, anche di qualche decina di us, tra due frame consecutivi, il video ti rimane stabile per poco tempo poi l'immagine comincia a scorrere verticalmente per la perdita del sincronismo.
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 07:09 pm
Mi dispiace ma ho già letto di gente che ha provato con scarsi risultati.
Per quanto riguarda il world clock ho un po di esperienza, a lavoro uso complesse schede audio che devono essere sincronizzate da un macchinario apposito ( master clock ).
Io pensavo di usare appunto la frequenza della scheda video come master clock cosi che anche il plughin per VLC ( in fase di progettazione ( non da me  XD ) ) possa sincronizzarsi alla stessa frequenza e alternare i fotogrammi.
Percui diciamo che è esenziale che si sincronizi corettamente con la frequenza di agiornamento video.
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 07:14 pm
Andrebbe sincronizzato in continuazione in effetti...
Anch'io sono per la strada del segnale di VSYNC della VGA, viene una cosa molto migliore
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 07:23 pm
Si anche io ma non ho possibilita di ottenerlo :-( il programmino che ho critto qui su teoricamente lo prende da li, ma sono convinto che ai vostri occhi esperti ho scritto il peggio codice del mondo.
Ma proprio non ce modo di otenerlo anche dalla porta usb?
Title: Re: Gestire video 3D
Post by: astrobeed on Mar 15, 2013, 07:23 pm
Dimenticavo, il V-sync è generato in hardware dalla scheda video, non importa se poi è collegata al monitor tramite VGA (analogica) oppure in digitale tramite VDI/HDMI, il segnale è ottenibili in software tramite le apposite API, molti giochi prevedono il V-sync come opzione per sincronizzare la generazione dei frame con la visualizzazione sul monitor.
In tutti i casi non è possibile in nessun modo ottenere il V-sync sulla USB in modo fedele perché la USB ha le sue latenze (non costanti e possono arrivare a svariate decine di ms), non sono trascurabili per questo genere di applicazione.
Per non parlare delle latenze software, un normale programma è soggetto a rallentamenti e fermi in funzione di quello che fa il pc, solo questo è più che sufficiente per impedire la perfetta sincronizzazione con gli occhiali, ovviamente c'è un modo per ovviare a questa cosa, però tocca essere molto bravi a scrivere software per pc e avere un'ottima conoscenza di Windows/Linux.
Title: Re: Gestire video 3D
Post by: superlol on Mar 15, 2013, 07:30 pm
comunque ti dico per esperienza (possessore di un nvidia 3d vision kit con schermo samsung syncmaster 2233) che se gli schermi per il 3D partono da 100Hz e che se uno schermo normale oscilla tra i 60 e i 75Hz il motivo è che se scendi sotto i 50Hz per occhio ti si affatica la vista e ti provoca un gran mal di testa dopo anche una sola ora (indifferentemente dalla profondità che dai all'immagine stereoscopica).

se proprio vuoi fare un 3D in casa per un portatile utilizza una cosa chiamata barriera di parallasse che almeno non ti rovini gli occhi.

se però vuoi continuare devi usare una porta esterna, non credo che il tuo pc non abbia nemmeno una HDMI o DVI o VGA. Certo se fossi in grado di gestire le directx come nulla potresti farlo via software ma già il tempo necessario per comunicare via seriale e credo andresti out of sync
inoltre abilitare il v-sync riduce le prestazioni del gioco/programma
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 07:38 pm
Ok ho più o meno capito quello che vuoi dire, mi domando se a questo punto una soluzione potrebbe essere che il plughin stesso si sincronizzi con gli occhiali ( è il plughin che alterna i 2 fotogrammi del formato Side-by-Side 3D )
ma cosi mi vengono in mente molti altri problemi.
Chi sta provando a farmi il plughin non sa nemmeno se farlo in c++ o in java ( stavamo giusto ragionandoci ora ) e non abbiamo la più pallida idea di come interfacciarlo con arduino.
Il plughin lo stiamo pensando per VLC.
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 07:46 pm
Quote
però tocca essere molto bravi a scrivere software per pc e avere un'ottima conoscenza di Windows/Linux.


E anche di DirectX o similare secondo me  ;)

Quote
Chi sta provando a farmi il plughin non sa nemmeno se farlo in c++ o in java ( stavamo giusto ragionandoci ora ) e non abbiamo la più pallida idea di come interfacciarlo con arduino.


Se vuoi avere una chance per il plugin devi andare su C++ e NON si deve interfacciare con Arduino che il segnale lo deve prendere direttamente dalla VGA
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 07:49 pm
Quote
comunque ti dico per esperienza (possessore di un nvidia 3d vision kit con schermo samsung syncmaster 2233) che se gli schermi per il 3D partono da 100Hz e che se uno schermo normale oscilla tra i 60 e i 75Hz il motivo è che se scendi sotto i 50Hz per occhio ti si affatica la vista e ti provoca un gran mal di testa dopo anche una sola ora (indifferentemente dalla profondità che dai all'immagine stereoscopica).


Io ho visto usare con un discreto successo anche con la frequenza di 60 Hz.
In ogni caso se avessi un ipotetica shcedavideo che arriva fino a 120 l'intero dispositivo si adaterebbe alla nuovo frequenza.
Il progetto e pensato solo per la visualizazioni di video.
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 07:52 pm


E anche di DirectX o similare secondo me  ;)



Domanda stupida cosa intendete per DirectX ?
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 07:53 pm
http://it.wikipedia.org/wiki/DirectX
Title: Re: Gestire video 3D
Post by: lestofante on Mar 15, 2013, 08:39 pm
o meglio ancora le openGL, così fai win, linux e mac :)
Title: Re: Gestire video 3D
Post by: mango on Mar 15, 2013, 08:46 pm
Ok ho letto quello che riguarda il DirectX, è molto bella come cosa ma decisamente troppo complessa secondo me.
ora non mi rimane che riordinare le idee.
In ogni caso vorrei realizzare un programma su arduino per prendere il clock dal vsinc della presa vga ( lasciando per ora perdere la porta usb ) per poi mandarlo ai vari occhiali, cosi almeno potrò effettuare maggiori test.
Il dubbio che mi rimane ora è se riuscirò a creare il tanto agoniato plughin e nel caso riuscire a sincronizzarlo .

PROPOSITI FUTURI:
Spero di riuscire ad ottenere almeno un risultato accettabile e speriamo che il progetto prenda piede in maniera da poter essere sempre più sviluppato.

INTANTO:
Secondo voi questo codice va bene ? o si potrebbe quasi sicuramente renderlo più snello e veloce?

Code: [Select]
int VGAclock=0;
int SINCswic=0;

void setup(){
 
 pinMode ( 13, OUTPUT );  // il pin 13 e 12 servono per comandare gli occhiali tramite cavo non IR
 pinMode ( 12, OUTPUT );
 pinMode (8, INPUT);     // da qui faccio entrare il segnale di clock VGA
 pinMode (9, INPUT);     // interruttore per girare la fase
}

void loop() {
 VGAclock=digitalRead(8);
 SINCswic=digitalRead(9);
 
 if(VGAclock==HIGH , SINCswic==LOW ){
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
 }
 else{
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
 }
 
 if(VGAclock==HIGH , SINCswic==HIGH  ){
  digitalWrite(13,LOW);
  digitalWrite(12,HIGH);
 }
 else{
  digitalWrite(13,HIGH);
  digitalWrite(12,LOW);
 }

}
Title: Re: Gestire video 3D
Post by: tazzo on Mar 15, 2013, 11:22 pm

o meglio ancora le openGL, così fai win, linux e mac :)


Facile dire openGL ma in questo caso non si avrebbe qualcosa di molto portabile a meno di non scrivere codice specifico per le tre piattaforme, il VSYNC con la scheda video non è inclusa nelle specifiche principali ed è delegata alla piattaforma

Ciao
Title: Re: Gestire video 3D
Post by: lestofante on Mar 16, 2013, 10:35 am
ah, non sapevo questo particolare, mi aspettavo che invece ci fosse un qualcosa.

@mango: direi che può andare bene, ma se usi le macro guadagni microsecondi preziosi, vedi http://www.billporter.info/2010/08/18/ready-set-oscillate-the-fastest-way-to-change-arduino-pins/
Title: Re: Gestire video 3D
Post by: mango on Mar 16, 2013, 11:25 am
Ok recuperato pc con porta VGA, ora mi metto a provare a creare il circuito e a tampinare per vedere come sistamare la parte in c++ per vlc.
Title: Re: Gestire video 3D
Post by: tazzo on Mar 16, 2013, 11:38 am
Leggiti le specifiche VGA prima di agganciarti alla porta. La massa deve essere in comune con Arduino.

Ciao
Title: Re: Gestire video 3D
Post by: mango on Mar 16, 2013, 12:37 pm
Si si lo so, è che non riesco a trovare la tensione di uscita del Vsync per capire se devo amplificarlo un pelo oppure no.
Title: Re: Gestire video 3D
Post by: tazzo on Mar 16, 2013, 12:43 pm
VSYNC se non ricordo male è a 5v quindi non serve amplificazione
Title: Re: Gestire video 3D
Post by: mango on Mar 17, 2013, 11:00 am
OK il progetto sta andando avanti anche in C++ con questa libreria da assemblase http://wiki.videolan.org/SoC_2011/Stereoscopic_Video
se qualcuno fosse interressato a darmi una mano anche con questa parte questo è il link.
Ora ho anche bisogno di racogliere un pò di segnali IR dai vari tv per poterli copiare in arduino.
E anche qui ho bisogno della vostra mano, se potete intercettare i segnali con IRrecord e poi comunicarmi il codice e il modello del tv ve ne sarei grato  :D
Title: Re: Gestire video 3D
Post by: lestofante on Mar 18, 2013, 11:18 am
esiste già una libreria arduino con i codici dei produttori più famosi, la IReciver mi pare, quindi la trovi e dal codice "rubi" i codici
Title: Re: Gestire video 3D
Post by: mango on Mar 21, 2013, 10:38 am
Dove la trovo questa libreria ?
Title: Re: Gestire video 3D
Post by: lestofante on Mar 21, 2013, 10:58 am
http://arduino.cc/forum/index.php?topic=20794.0
Title: Re: Gestire video 3D
Post by: mango on Mar 21, 2013, 11:57 am
Grazie ora ci do una bella letta, intanto se qualcuno e interessato questo è il codice fatto fino ad ora.
Se avete consigli su come migliorarlo ditemi pure.

Code: [Select]
#include <IRremote.h>
IRsend irsend;
int VGAclock=0;
int SINCswic=0;
int IR=2;
int CR=0x20DFDF20; // inserisci dopo 0x il codice per il segnale R
int CL=0x20DFDF20; // inserisci dopo 0x il codice per il segnale L
void setup(){
  pinMode (7, INPUT);     // VGAclock da qui faccio entrare il segnale di clock VGA
  pinMode (6, INPUT);     // SINCswic interruttore per girare la fase
  pinMode (IR, OUTPUT);    // uscita led IR
  Serial.begin(9600);
}
void loop() {
  VGAclock=digitalRead(7);
  SINCswic=digitalRead(6);
    if(VGAclock==HIGH , SINCswic==LOW ){
   irsend.sendNEC(CR, IR); // inserisci dopo 0x il codice
  }
  else{
   irsend.sendNEC(CL, IR);
  }
    if(VGAclock==HIGH , SINCswic==HIGH  ){
   irsend.sendNEC(CL, IR);
  }
  else{
   irsend.sendNEC(CR, IR);
  }
}