Da display lcd a monitor vga con arduino

salve in questo periodo mi sta balenando in testa di utilizzare arduino per un progetto che in realtà non so se sia fattibile o meno.
Sostanzialmente vorrei sostituire un display come questo
con un monitor vga e arduino avrebbe il compito di "tradurre" le informazioni.

Ora, premetto che sicuramente questo progetto va molto aldilà delle mie conoscenze attuali, perciò prima di dedicarmi anima e corpo a questo progetto vorrei sapere se qualcuno sa qualcosa in merito a questo argomento, per capire quanto complicato possa essere realizzare una cosa del genere e se sia effettivamente possibile.

Inoltre chiedo se secondo voi dovrei orientarmi verso un'altra sponda... non so mi viene in mente la raspberry pi (ma non vorrei fare concorrenza al "nemico" :P)

Puoi fare una via di mezzo. Ti suggerisco una Arduino MEGA, o ancora meglio una DUE, che accompagna un bel display TFT touchscreen da 7"

Puoi fargli fare quasi qualsiasi cosa, non è particolarmente impegnativo (esistono librerie molto molto potenti), ed infine il costo finale non è poi eccessivo.

Raspberry??? Auguri!

Qua un mio coso in azione:

raspberry mi è venuta in mente perchè ha l'uscita video già predisposta, ma visto che con arduino è possibile preferisco rimanere su questo :stuck_out_tongue:

Provo a spiegarti meglio cosa voglio fare, cosi magari mi dai un consiglio piu preciso su quale board usare.
Essenzialmente vorrei sostituire quel display con un monitor, perché in questo modo potrei usare il monitor anche per altre cose, esempio una retrocamera! Ovviamente devo poter visualizzare tutte le informazioni che ora vedo anche con il monitor e selezionare il secondo ingresso solo quando desiderato.

Detto questo Visto dove voglio andare a parare, non ho bisogno di una display touch e quindi diciamo che salvo imprevisti che non conosco userei un banalissimo monitor da auto. Dissipazione e assorbimento non sono un problema.

Hai percaso idea se un monitor del genere sia pilotato in maniera standard?

grazie

  1. Arduino NON gestisce assolutamente un flusso video degno di essere chiamato tale (al massimo qualche frame a bassissima risoluzione)

  2. Dovresti ingegnarti in un commutatore che separi il controller video (Video composito o altro) da quello digitale (16 bit paralleli + segnali di controllo). Non mi sembri all'altezza.

Guarda questo coso:

http://www.ebay.it/itm/7-Inch-TFT-LCD-Monitor-For-Raspberry-Pi-Touch-Screen-Driver-Board-HDMI-VGA-2AV-/301148347141?pt=LH_DefaultDomain_0&hash=item461dd71b05&_uhb=1

Il display da 7" è pilotato da un controller Video-composito e VGA, ma quello stesso display può essere inserito (il flat) in un controller digitale parallelo (di solito cè un SSD1963).

Con un un pò di arte, si può usare lo stesso display con i due circuiti driver.

non so se ho capito male io o non mi sono spiegato.

Visto che ho intenzione di utilizzare un monitor a piu ingressi che autogestisce la selezione, non ho necessità di utilizzare arduino per il secondo flusso video. Quindi occupiamoci solamente di convertire il segnale.

I passi dovrebbero essere:
1)Prelevare il segnale (e quindi capire come viene gestito il display originale)
2)Riadattare la schermata al nuovo monitor che sicuramente avrà una risoluzione maggiore
3)Ottenere un segnale in uscita.

  1. http://imageshack.us/a/img189/2376/img3408xb.jpg
    Non ho idea di come sia pilotato, domani provo a cercare se c'è qualcosa in rete.

heko:
non so se ho capito male io o non mi sono spiegato.

Visto che ho intenzione di utilizzare un monitor a piu ingressi che autogestisce la selezione, non ho necessità di utilizzare arduino per il secondo flusso video. Quindi occupiamoci solamente di convertire il segnale.

I passi dovrebbero essere:
1)Prelevare il segnale (e quindi capire come viene gestito il display originale)
2)Riadattare la schermata al nuovo monitor che sicuramente avrà una risoluzione maggiore
3)Ottenere un segnale in uscita.

  1. ImageShack - Best place for all of your image hosting and image sharing needs
    Non ho idea di come sia pilotato, domani provo a cercare se c'è qualcosa in rete.

I problemi incomincialo con il punto 1) perché non troverai il protocollo/ tipo di interfaccia e proseguno col problea che Arduino UNO e MEGA hanno troppo poca memoria/potenza di calcolo e non hanno una uscita VGA per il monitor che vuoi mettere. LA Due potrebbe essere abbastanza potente ma non ha un uscita video VGA.
Potrebbe andare la rasberry o hardware simile come potenza di calcolo e come uscita VGA, ma dovrai scrivere Tu la lettura del segnale che arriva al display vecchio.

Ciao Uwe

sul punto uno sono dubbioso anche io, dici che non si riesce proprio secondo te?
io ho ipotizzato che potesse essere gestito come un qualsiasi display a matrice mhmm
in realtà mi basta il composito che arduino riesce a gestire, al massimo ho visto una shield per una risoluzione maggiore e per il colore.

Arduino non puó funzionare come frame grabber. Dubito che quel display venga pilotato da un segnale video. penso che viene pilotato in modo digitale.

Ciao Uwe

Molto probabilmente, quel display viene pilotato o mediante seriale da una BSA o anche detto Body Computer o molto più facilmente, da CAN Bus (molti sistemi sono così oggi) in ogni caso, per far funzionare il tuo progetto, dovresti fare un'analisi per capire quale dei due sistemi usa, qualche mese fa ho letto su un sito/blog di un tizio che ha spiegato come intercettare i dati CAN Bus indirizzato ai display del cruscotto, e dopo svariati datalog delle comunicazioni per sgamare i dati sulla CAN Bus, ha fatto delle prove e è riuscito a scrivere sul display ciò che voleva, segno che si può fare, ma mi è sembrato decisamente uno del mestiere, dubito che io o tu (mi sembra di capire che sei alle prime armi, no?) siamo in grado di fare altrettanto, almeno, non ora.

Per il display, forse una possibilità esiste, la 4D Systems produce un PCB che consente a qualsiasi MCU di avere un'output verso monitor VGA, pilotato tutto in seriale con comandi tutto sommati semplici. Certamente, la qualità dei testi scritti a video ricordano i primi computer anni 80, quindi nulla di "bellino" . Altrimenti, usando un monitor come quelli visti in foto (usati da Babbuino) potresti avere una bella grafica, ma si dovrebbe studiare come poi fargli fare le altre cose che Arduino non potrebbe gestire (come la il monitor retromarcia ecc).

Mi sembra di ricordare anche qualche altro prodotto visto forse su Robot Italy, qualcosa come un OSD che consente di sovrascrivere testi su file/segnali VGA, in tal caso, potresti avere le due cose...

PS. come su questo video, purtroppo in lingua Asiatica:

o anche questo per esempio:


metti in ricerca:

VGA OSD Arduino e troverai molte info utili

innanzitutto ringrazio tutti per l'interessamento :%

devo essermi spiegato male su alcune cose, quindi le provo a ridire:

Arduino deve solo occuparsi di convertire il segnale e eventualmente pilotare il monitor tramite il singolo rca giallo, e questo sicuramente riesce a farlo con bassa risoluzione e b/n anche senza nessuna shield o in modo migliore tramite la ?TellyMate Shield?. Visto che l'intenzione comunque è quella di avere sul monitor più o meno la stessa grafica che c'è ora sul display e sono sicuro di risolvere in questo modo almeno il punto 3. Arduino non deve gestire nessun flusso video della retrocamera, per questo utilizzo la predisposizione dei monitor già esistenti che in automatico switchano da un canale all'altro. Non ho nessun interesse a sovrapporre i due flussi, visto che appunto il secondo sarebbe dedicato alla retrocamera.

Quello che mi domando io è... ma alla fin fine lo stesso tipo di display non è gestito sempre allo stesso modo? Cioè se invece di agire sul connettore proveniente dall'auto, andassi proprio a prelevare il segnale prima che arrivi al display non dovrei trovarmi in un situazione standard? Esempio stupido: se andassi a prendere una di quelle sveglie cinesi con il display a 7 segmenti, e prelevassi il segnale subito prima del display vero e proprio, tranne per il dover adattare il livello di tensione dovrei essere in grado di pilotare qualsiasi display a 7 segmenti... o mi sbaglio?!

Per il discorso del display dell'auto... magari fosse così facile e standarizzato! ma purtroppo, il mondo automotive non è così, ogni costruttore decide di adoperare i suoi protocolli, anche nel caso di utilizzo di standard ormai conosciutissimi e diffusi come l'uso di CAN Bus, LIN o antri, la scelta dell'organizzazione dei packets di dati resta a insindacabile discrezione del fabricante, quindi quello che per la vettura X può andare bene, non necessariamente sarà identico alla vettura Y anche magari usando la stessa CAN Bus, stessa marca ma modelli diversi separati da qualche anno al massimo, magari possono essere uguali, ma non sempre è così, io ci lavoro con le auto e so di cosa sto parlando.

Quindi, per usare i dati che vengono spediti al display della vettura, devi conoscere:

-tipo di collegamento (protocollo): Seriale, SPI, I2C, 1 Wire, CAN Bus, LIN, KWP2000, ecc.
-organizzazione dei packets dati,
-fattori di conversione dati packets a unità di misura ingegneristiche.

Come vedi, non è semplice come accendere un display a 7 segmenti, che lo puoi fare tramite 3 tecniche:

-decodifica binaria BCD (se dal micro al IC che gestisce il display vi sono solo 4 fili dati + Alim. e GND
-Pilotaggio diretto, se il display è pilotato pin to pin dalla MCU
-pilotaggio diretto ma con inmezzo integrato dedicato.

e questi sono solo alcuni dei metodi esistenti (quelli con cui ho avuto a che fare), poi mettici anche che sui display a più cifre viene usato anche il multiplexing con e senza Integrati dedicati...

Per il discorso Arduino ed il display VGA, Senza Shield dedicate allo scopo, lo potresti fare SOLO se il tuo VGA ha ingresso Seriale o USB con funzione visualizzazione DATI, e che io sappia, non ricordo di averne visto di monitor con tali caratteristiche.

praticamente mi è impossibile conoscere tutte quelle cose, tranne che parlare con l'ingegnere cinese che le ha progettate XD

in ogni caso avrei usato il composito non il vga :zipper_mouth_face:

Usando il composito, il tuo monitor si comporterebbe come un TV, quindi dovrebbe possedere le capacità per visualizzare i dati in entrata sul display, così lo potresti fare, ma usando uno shield o PCB appositamente creato per consentire l' OSD, ovvero ON SCREEN DISPLAY, mandare dati ad un device con ingresso composito come TV, Telecamere, VCR ecc... Diversamente la vedo dura.

Per il discorso del display vettura, purtroppo le cose sono così, non è impossibile, basta fare le ricerche per il web e tentare tante volte fino a che ci si riesce (o ci si arrende, dipende tutto da te!) Oggi giorno, sulle vetture esiste una quantità immane di elettronica ed è sempre più sofisticata, per rendere il tutto più "interconnesso" vengono usati protocolli come il CAN Bus, ma come ho detto, da nessuna parte troverai scritto (ufficialmente intendo) come sono organizzati i dati in packets, e conversioni e comandi vari. Questo fa solo più duro il lavoro di chi si predispone a fare Reverse Engineering per risalire a che comando indica invio di un determinato dato al display esterno, come viene trasmesso (se più di un byte intendo), e cosa significa, nel senso che nel display, a sua volta vi è una piccola MCU che riceve i dati e sa che deve fare una determinata conversione per visualizzare il messaggio nella giusta maniera.

Purtroppo, fare questo reverse engineering è duro già avendo delle competenze specifiche in elettronica e sistemi embedded, figurati per l'utente hobbystico, per esempio qui c'è un sito dedicato al CAN bus Hacking, con tanto di corsi organizzati:
http://www.canbushack.com/blog/index.php

Qui qualcosa che ti fa capire come si fa per "Hack Car electronics" ma dedicato a BMW:

ciao Heko,
vedo che è passato più di un anno, sei ancora interessato al progetto di questo post?
Recentemente è stata creata una libreria VGA da Smaffer che potrebbe fare al caso tuo, se ti accontenti della risoluzione (120x60 pixel per quattro colori).
Io l'ho usata per fare un paio di giochini, puoi dare un'occhiata a questo post e ai video su YouTube che cita.
Come vedi puoi disegnare della semplice grafica e del testo.

Io ho un monitor con due ingressi VGA (come quasi tutti), su uno ho collegato il PC e sull'altro l'Arduino che vedi nei video. Quando programmo Arduino da questo stesso PC, posso vedere se il codice funziona switchando da un ingresso all'altro.

Se sei interessato ai dettagli, scrivimi pure nel post.
Ciao,
Rob Cai