Ubuntu 12.04, Tvout, IDE 0022

Ciao a tutti, ho un problema che cerco di risolvere da diverse ore senza neanche un risultato positivo. In poche parole ho bisogno di utilizzare la libreria TVout per un progetto, ho provato a caricare dall'IDE 1.0.1 e poi dal 1.0.3 i programmi di esempio (PAL e NTSC) ma sulla TV si oscura lo schermo quando alimento Arduino UNO.

Ho pensato fosse un problema di IDE (ho provato tutte le versioni della libreria TVout) allora ho scaricato l'IDE 0022 ed appena ho cliccato sul tasto "upload" mi ha dato il seguente errore:

In file included from /usr/lib/gcc/avr/4.5.3/../../../avr/include/util/delay.h:44:0,
                 from /usr/lib/gcc/avr/4.5.3/../../../avr/include/avr/delay.h:37,
                 from /home/federico/Scrivania/arduino-0022/hardware/arduino/cores/arduino/wiring_private.h:30,
                 from /home/federico/Scrivania/arduino-0022/hardware/arduino/cores/arduino/WInterrupts.c:34:
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected identifier or ‘(’ before ‘double’
/usr/lib/gcc/avr/4.5.3/../../../avr/include/math.h:426:15: error: expected ‘)’ before ‘>=’ token

Se avete mooooolta pazienza mi spiegate cosa significano questi errori? Grazie :)

PS: da quello che ho capito in rete è un problema della funzione di temporizzazione "delay" e dei pacchetti avr-gcc con dei bug.. -se sbaglio correggetemi, non ci sto capendo quasi piu nulla...-

L'IDE 1.0.x contiene una versione della toolchain Avr (l'insieme delle librerie e degli eseguibili utilizzate per compilare gli sketch) modificate con le patch Atmel. La vecchia versione 002x no, ed attinge alla toolchain Avr che trova sul sistema. Questa toolchain, per funzionare correttamente, deve essere quella patchata. Quella "vanilla" distribuita da Gnu non va bene, devi modificarla.

Il problema del file delay.h del core di Arduino che duplica una #define contenuta in questa toolchain. Apri il file /arduino-002x/hardware/arduino/cores/arduino/wiring.h e commenta questa riga:

#define round(x)     ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))

Non so se poi devi correggere altre cose, non mi ricordo.

leo72: L'IDE 1.0.x contiene una versione della toolchain Avr (l'insieme delle librerie e degli eseguibili utilizzate per compilare gli sketch) modificate con le patch Atmel.

Dalla versione 1.x in poi per tutti e tre i sistemi operativi è stato unificato il compilatore ed è il vecchio gcc avr 4.3.2, non ha nessuna patch Atmel.

astrobeed:

leo72: L'IDE 1.0.x contiene una versione della toolchain Avr (l'insieme delle librerie e degli eseguibili utilizzate per compilare gli sketch) modificate con le patch Atmel.

Dalla versione 1.x in poi per tutti e tre i sistemi operativi è stato unificato il compilatore ed è il vecchio gcc avr 4.3.2, non ha nessuna patch Atmel.

Vero, non ricordavo.

C'è un altro problema, con l'IDE 0022 mi da un altro errore adesso, anche con il programma Blink:

In file included from Blink.cpp:8:0:
/home/federico/Scrivania/arduino-0022/hardware/arduino/cores/arduino/WProgram.h:4:20: fatal error: stdlib.h: File o directory non esistente
compilation terminated.

Invece con l'IDE 1.0.3 va tutto bene con i programmi di esempio tranne che per il programma TVout che riesce a compilarlo e caricarlo ma non si vede nulla in tv.

Non è che hai disinstallato la toolchain Avr dal tuo sistema? Controlla di avere i pacchetti binutils-avr, gcc-avr e avr-libc sul tuo sistema.

Eventualmente se vuoi mettere l'ultimissima toolchain, puoi seguire anche la mia guida.

leo72: Non è che hai disinstallato la toolchain Avr dal tuo sistema? Controlla di avere i pacchetti binutils-avr, gcc-avr e avr-libc sul tuo sistema.

Eventualmente se vuoi mettere l'ultimissima toolchain, puoi seguire anche la mia guida.

Ho reinstallato i pacchetti avr-libc e gcc-avr, ora sembra andare tutto bene, poi ho fatto come hai detto te, ho commentato quel #define e sembra andare tutto bene ma i programmi PAL e NTSC di TVout li compila ma non vanno...

Mi potresti descrivere come hai collegato i pin dell'Arduino al cavetto video?

E che risoluzione dichiari?

EDIT: e che versione usi... sorry per le tante domande :sweat_smile:

utilizzo Arduino UNO come gia detto: pin 9 --- 1k --- centro; pin 7 --- 470 --- centro; GND --- esterno.

Ho provato le versioni di TVout 3 fino a R5.91 con gli stessi risultati: esempio PAL ---> schermo nero; esempio NTSC ->schermo tremolante;

leo72: E che risoluzione dichiari?

EDIT: e che versione usi... sorry per le tante domande :sweat_smile:

No scusami tu per i miei problemi XD se è un problema di risoluzione come dovrei fare?

Ok. I collegamenti sono giusti.
All’epoca io usai la R6, che ora dovrebbe essere stata ridenominata in 5.90.
Questo sketch a me funzionava. Provalo:

#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() {
}

La risoluzione max PAL deve essere 120x96 o 128x96.
Di default prende 128x96.

Ho provato il tuo codice con il 5.90 e 5.91, mi da una sfilza di errori di sintassi perche credo che le funzioni sono state riscritte, però non va nemmeno se correggo le funzioni. Poi ho scaricato questo che contiene sia la libreria font sia una libreria TVout dalla quale esce il seguente errore:

sketch_jan21a.cpp.o: In function `global constructors keyed to TV':
sketch_jan21a.cpp:17: undefined reference to `TVPrint::select_font(unsigned char const*)'
TVout/TVout.cpp.o: In function `TVout::noTone()':
/home/federico/Scrivania/arduino-0023/libraries/TVout/TVout.cpp:631: undefined reference to `TVPrint::write(unsigned char)'
collect2: ld returned 1 exit status

:~

Hai usato un cavetto RCA, vero? Se il televisore non "sente" l'impedenza di 75 ohm di questo genere di cavetti, non "vede" l'ingresso video, ignorando il segnale che trasmette l'Arduino.

Non so se lo conosci, esiste un piccolo giochino denominato Hackvision: http://nootropicdesign.com/hackvision/index.html E' basato sulla TVout ma ne ha una versione vecchiotta, mi sembra la stessa che usavo io 2 anni fa. Prova a scaricarla: http://nootropicdesign.com/hackvision/downloads/TVout.zip

Se ti funziona, puoi "giocare" con Asteroids e Pong come feci io 2 anni fa: http://nootropicdesign.com/hackvision/downloads/Hackvision.zip

http://www.youtube.com/watch?v=XAESjNcu_Ek

leo72:
E’ basato sulla TVout ma ne ha una versione vecchiotta, mi sembra la stessa che usavo io 2 anni fa. Prova a scaricarla:
http://nootropicdesign.com/hackvision/downloads/TVout.zip

e infatti questa libreria funziona! Sia sull’IDE 1.0.3 sia sul 0023 pero va bene solo l’esempio PAL, quello NTSC genera una sorta di schermo tremolante e l’immagine appare a tratti si e a tratti no…

Pero è strano, perché non dovrebbero funzionarmi le librerie nuove?..

FedericoC:

leo72: E' basato sulla TVout ma ne ha una versione vecchiotta, mi sembra la stessa che usavo io 2 anni fa. Prova a scaricarla: http://nootropicdesign.com/hackvision/downloads/TVout.zip

e infatti questa libreria funziona! Sia sull'IDE 1.0.3 sia sul 0023 pero va bene solo l'esempio PAL, quello NTSC genera una sorta di schermo tremolante e l'immagine appare a tratti si e a tratti no...

Pero è strano, perché non dovrebbero funzionarmi le librerie nuove?...

Non lo so. Non ho più riprovato quella lib da tanto. Non so se il tuo problema può dipendere da essa oppure dalla tolleranza del tuo televisore.