Coordinate display

Ciao a tutti, una domanda se volessi convertire delle coordinate XY da mm in pixel come posso fare?

ad esempio se volessi disegnare un rettangolo di 5x3 mm nella posizione 10x 6y sempre date in mm
come converto tutto in pixel per poi inserirle nello sketch di Arduino?

Potreste dirmi se c'è un metodo da adattare alle varie dimensioni dei display?

Grazie :slight_smile:

Devi sapere la densità in ppi (pixel per inch) del tuo display ... ci sono da 72 pixel/inch fino ai monitor ad alta risoluzione che arrivano oltre i 200 pixel/inch.

Se non trovi l'informazione devi conoscere sia le dimensioni esatte dello schemo che il numero di pixel lungo l'asse X e lungo l'asse Y e ti calcoli la cosa.

Una volta che sai quale è la risoluzione, ricordando che 1 inch = 25.4 mm fai presto a calcolare la posizione in pixel dati i mm e viceversa.

Guglielmo

Ad esempio, un classico OLED 0.96" ha un display che ha 128x64 pixel ... se fai i conti vedi che abbiamo una densità di circa 133.3 ppi ovvero circa un pixel ogni 0.2 mm. Per l'esattezza ... 0.96" / 128 = 0.0075" che è la dimensione di un pixel in pollici ovvero 0.1905 mm per pixel oppure 5.25 pixel per mm.

Calcoli errati ... vedi dopo ...

Guglielmo

Grazie Gugliemo sempre gentile e chiaro nelle spiegazioni :slight_smile:

Non capisco solo una cosa come ricavi i PPI?

Pensavo si usasse la formula del teorema di Pitagora quindi, usando il tuo esempio otterrei

(radice quadrata di (1282+642))/0,96

cioè 140 PPI

sbaglio?

Hai ragione anche tu 0.96 si riferisce alla diagonale, non al lato più lungo, però bisogna dire che anche i pollici sono approssimati se guardi il datasheet di un display da 096 pollici della vishay OLED-128O064D-BPP3N00000 vedrai che fornisce un dot pitch di 0,17 mm, quindi se trovi il datasheet è quello che fa testo

icio:
Hai ragione anche tu 0.96 si riferisce alla diagonale, non al lato più lungo, però bisogna dire che anche i pollici sono approssimati se guardi il datasheet di un display da 096 pollici della vishay OLED-128O064D-BPP3N00000 ...

Hai ragione, mio errore! Mi ero basato sulle misure fatte con il righello sul mio che ho qui ... misure che, per forza di cose, sono piuttosto approssimate e ... mi ero sbagliato anche sulla dimensione ... ::slight_smile:

Il datasheet che hai indicato è molto più chiaro e da le misure esatte sia dell'area visibile che dell'area veramente utile da cui si ricava il corretto valore del singolo pixel :slight_smile:

Guglielmo

icio:
Hai ragione anche tu 0.96 si riferisce alla diagonale, non al lato più lungo, però bisogna dire che anche i pollici sono approssimati se guardi il datasheet di un display da 096 pollici della vishay OLED-128O064D-BPP3N00000 vedrai che fornisce un dot pitch di 0,17 mm, quindi se trovi il datasheet è quello che fa testo

Ma supponendo di non avere il Datasheet, ed hai solo diagonale in pollici e dimensioni in pixel ci sarà un modo per ridare i dati anche se non precisi al 100%?

Tutto è nato dal fatto che stavo leggendo un tutorial sulle librerie Adafruit per i display, ovviamente ti danno i vari comandi tra cui la funzione disegna rettangolo, cerchio ecc ecc e mi chiedevo

Ma se devo indicare le coordinate in pixel come fai a dire in pixel di disegnare un rettangolo di tot mm di lato nelle coordinate XY del diagramma cartesiano?

a me di primo impulso veniva di ricavare le coordinate cartesiane in pixel tramite proporzione ad esempio

se so che il display è 128x64 pixel, lo misuro con il calibro ed ottengo ad esempio 100mm x 5mm (numeri a caso), voglio sapere come posizionarmi sul pixel presente a 6 mm sull'asse x faccio una proporzione
128:100=x:6 x=7,68 px
teoricamente la x in pixel è 7,68 faccio lo stesso per le y e trovo le coordinate.

Però è un calcolo moooolto azzardato ed approssimativo, non si potrà mai riuscire a misurare un display con il calibro con la sicurezza di aver misurato precisamente tutta la parte "illuminabile", giusto?

quindi mi è venuto questo dubbio come si potrebbe fare un conteggio del genere in maniera più precisa?

Mentre per ricavare le dimensioni del rettangolo alla fine la cosa è più semplice sapendo che ho un tot di px per mm faccio una semplice calcolo ed ottengo quanti px sono 5mm no?

facendo l'esempio con i calcoli precedenti 5,25 px/mm se voglio una linea di 2 mm faccio 5,25x2
e so quanti pc devo fare accendere, ma per le coordinate?

Mah ... se vuoi andare "misurando" (come facevo io, ma con maggior precisione), la cosa migliore è fare il fill completo dello schermo (un rettangolo bianco che prende tutto lo schermo) e misurare con il calibro le dimensioni utili (quindi escludendo l'area non usata e la cornice) di lunghezza e altezza e, a quel punto, fai i calcoli come abbiamo detto. Non sarà precisissimo, ma ci si avvicinerà molto :wink:

Guglielmo

gpb01:
Mah ... se vuoi andare "misurando" (come facevo io, ma con maggior precisione), la cosa migliore è fare il fill completo dello schermo (un rettangolo bianco che prende tutto lo schermo) e misurare con il calibro le dimensioni utili (quindi escludendo l'area non usata e la cornice) di lunghezza e altezza e, a quel punto, fai i calcoli come abbiamo detto. Non sarà precisissimo, ma ci si avvicinerà molto :wink:

Guglielmo

infatti farò così, anche perché il Datasheet del display non lo trovo, ne ho preso uno cinese su Amazon per fare pratica, era in offerta a 4,19€ ed è anche touch.
Alla fine per provare non è male e se sbaglio e lo brucio non perdo moltissimo

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.