Per ri-prendere dimestichezza con la programmazione, stavo usando lo sketch che visualizza il logo arduino sul display e ho semplicemente aggiunto nella sd-card 3 immagini .bmp che sono queste :
Le ho prese in rete, caricate su Paint, ridotte a 80x45 pixel e sono da 2KB quindi molto meno del logo di arduino.
Purtroppo però non viene visualizzato nulla e non mi segnala nessun errore.
Non ho fatto altro che sostituire nel codice dello sketch la riga dove scrive il logo arduino cambiando il nome e mettendo quello di tutte e 3 le immagini, ma nessuna viene visualizzata. Schermo bianco...
E' banale ma sei sicuro che l'estenzione sia davvero .bmp ? a volte windows ti dice che ha un estensione quando ne ha un altra.. Poi se puoi pubblica il codice e dicci che hardware usi e magari possiamo aiutarti in maniera più sostanziale, ciao
Uso Leonardo con il display lcd tft sempre di arduino.
Il codice è questo :
// include the necessary libraries
#include <SPI.h>
#include <SD.h>
#include <TFT.h> // Arduino LCD library
// pin definition for the Leonardo
#define sd_cs 8
#define lcd_cs 7
#define dc 0
#define rst 1
TFT TFTscreen = TFT(lcd_cs, dc, rst);
// this variable represents the image to be drawn on screen
PImage logo;
void setup() {
// initialize the GLCD and show a message
// asking the user to open the serial line
TFTscreen.begin();
TFTscreen.background(255, 255, 255);
TFTscreen.stroke(255,0,0);
TFTscreen.println();
TFTscreen.println("Arduino prove lettura A0 A1");
TFTscreen.stroke(255,0l, 0);
TFTscreen.println("Open serial monitor");
TFTscreen.println("to run the sketch");
// initialize the serial port: it will be used to
// print some diagnostic info
Serial.begin(9600);
// while (!Serial) {};
delay (3000);
// clear the GLCD screen before starting
TFTscreen.background(255, 255, 255);
// try to access the SD card. If that fails (e.g.
// no card present), the setup process will stop.
Serial.print("Initializing SD card...");
if (!SD.begin(sd_cs)) {
Serial.println("failed!");
return;
}
Serial.println("OK!");
// initialize and clear the GLCD screen
TFTscreen.begin();
TFTscreen.background(255, 255, 255);
// now that the SD card can be access, try to load the
// image file.
logo = TFTscreen.loadImage("arduino.bmp");
if (!logo.isValid()) {
Serial.println("error while loading arduino.bmp");
}
}
void loop() {
// don't do anything if the image wasn't loaded correctly.
if (logo.isValid() == false) {
return;
}
Serial.println("drawing image");
// get a random location where to draw the image.
// To avoid the image to be draw outside the screen,
// take into account the image size.
//int x = random(TFTscreen.width() - logo.width());
//int y = random(TFTscreen.height() - logo.height());
int x = random(1,128);
int y = random(1,160);
// draw the image to the screen
TFTscreen.image(logo, x, y);
// wait a little bit before drawing again
delay(1500);
TFTscreen.background(255, 255, 255);
}
Nella riga logo = TFTscreen.loadImage("arduino.bmp"); vado a sostituire il file . Quando metto arduino.bmp questao viene visualizzato, quando metto un altro file no.
Non ti saprei dire se è un vero .bmp ma credo proprio di si : l'estensione è corretta. Di più non saprei. Ho espressamente detto a Paint di salvarla come bitmap
Fatta la rinomina ma non funziona neanche così. Sempre schermo bianco.
A me esplora risorse dice che sono bitmap. Forse risultano jpeg perchè caricate su picasa. Potrebbe essere?
Proverò anche GIMP ma non mi ci ero mai trovato bene
mgaproduction:
Fatta la rinomina ma non funziona neanche così. Sempre schermo bianco.
A me esplora risorse dice che sono bitmap. Forse risultano jpeg perchè caricate su picasa. Potrebbe essere?
Non so. Io ho solo cliccato su una di quelle immagini e sono Jpeg.
Proverò anche GIMP ma non mi ci ero mai trovato bene
Usa un qualunque programma di tuo gradimento. Ho suggerito GIMP perché è gratuito e completo.
Gimp non mi da la possibilità di salvare in .bmp
A parte questa cosa che mi sembra assurda, la domanda ora è : Arduino può usare solo foto .bmp o anche .jpg o altre estensioni?
mgaproduction:
Gimp non mi da la possibilità di salvare in .bmp
A parte questa cosa che mi sembra assurda, la domanda ora è : Arduino può usare solo foto .bmp o anche .jpg o altre estensioni?
Non dipende dalle estensioni ma del modo come viene memorizzato l' immagine.
bmp ha 3 valori di rosso verde blu per ogni pixel, mentre gli altri modi di memmorizzare immagini li elaborano per diminuire lo spazio neccessario.
Per visualizzare un immagine memorizzata in formato jpg devi decompresarla. Arduino non ha la memoria e il codice per farlo.
mgaproduction:
Gimp non mi da la possibilità di salvare in .bmp
A parte questa cosa che mi sembra assurda, la domanda ora è : Arduino può usare solo foto .bmp o anche .jpg o altre estensioni?
Il formato bildmapp non é compresso come altri formati per esempio GIF o jpg. Per questo Arduino riesce a gestirlo.
Ciao Uwe
Supponevo che non potesse proprio per i motivi che hai esposto.
Quindi foto solo .bmp.
Non che voglia fare chissà quali cose; mi servono giusto solo dei simboletti come quelli di cui sopra.
Ora devo quindi però cercare di capire perchè quelle foto non me le visualizza.
Vi posto qui il link di dropbox Dropbox - Arduino - Simplify your life dove ci sono le foto che sto usando. Qualcuno riesce per caso a scoprire che cos'hanno che non va? Ce ne sono 6 ; ovviamente quelle che uso sono quelle con le dimensioni più piccole.
mgaproduction:
Fatta la rinomina ma non funziona neanche così. Sempre schermo bianco.
Cioè?
Scusa ma io intendo farti fare la cosidetta prova dello "scemo" (non rivolto a te, giuro)
Se il demo funziona con arduino.bmp di 48x48, allora fatti una copia di backup di quel file, poi modifichi arduino.bmp con paint incollandoci una parte del tuo disegno. Se così funziona, allora può essere un problema di dimensioni (ma non credo) oppure del nome del file quando lo cambi.
Se invece non funziona allora paint modifica in qualche modo il file bmp che non è più come prima.
Ti allego file arduino.bmp modificato con paint. (win Xp)
P.S. tra l'altro le tue img da 80x45 affermi siano 2K, mentre il arduino.bmp è circa 7K ma è solo 48x48, come fa ad essere più grosso? Se passi da un gif, quello che diventa un bmp allora è a 256 colori e non a 24milioni di colori (profondità colore).
mgaproduction:
Gimp non mi da la possibilità di salvare in .bmp
A parte questa cosa che mi sembra assurda,
Non te ne offendere, ma non sai usare il programma. Apri un qualunque file JPG, poi clicchi su "File/Esporta come.." e scegli il nome e dai l'estensione .bmp e GIMP te lo salva in automatico in quel formato. Alternativamente, puoi solo mettere il nome e poi scegliere dal menu a tendina più sotto il formato con cui vuoi salvare.
mgaproduction:
Fatta la rinomina ma non funziona neanche così. Sempre schermo bianco.
Cioè?
Scusa ma io intendo farti fare la cosidetta prova dello "scemo" (non rivolto a te, giuro)
Se il demo funziona con arduino.bmp di 48x48, allora fatti una copia di backup di quel file, poi modifichi arduino.bmp con paint incollandoci una parte del tuo disegno. Se così funziona, allora può essere un problema di dimensioni (ma non credo) oppure del nome del file quando lo cambi.
Se invece non funziona allora paint modifica in qualche modo il file bmp che non è più come prima.
Ti allego file arduino.bmp modificato con paint. (win Xp)
P.S. tra l'altro le tue img da 80x45 affermi siano 2K, mentre il arduino.bmp è circa 7K ma è solo 48x48, come fa ad essere più grosso? Se passi da un gif, quello che diventa un bmp allora è a 256 colori e non a 24milioni di colori (profondità colore).
Con la foto che mi hai mandato funziona benissimo e ti ringrazio molto.
Per quanto riguarda Gimp, ho scritto anche io che mi sembrava assurdo ma ho anche scritto che non mi ci sono mai trovato un granchè...
In ogni caso ho trovato la soluzione che spero quindi possa essere di aiuto a molti : con PAINT basta fare un salva come .bmp a 24 bit di profondità colore e funziona.
Ora mi rimetto in marcia per cercare di andare avanti con lo sketch
Un grazie a tutti davvero e se non riesco di nuovo in qualcosa chiederò di nuovo aiuto
Lo so quello che ho scritto
Ma ho anche scritto che mi sembrava assurdo non potesse farlo e in effetti lo fa e ho anche scritto che con quel sw io non mi ci trovo. Quella funziona in tutti i sw del genere, in effetti, è nel "salva con nome" mentre con Gimp devi andartela a trovare da un'altra parte...che è assolutamente legittima...ma è un pò "fuori dal comune".
Tutto li
In ogni caso, l'importante è che Gimp lo faccia ma soprattutto che io abbia risolto il problema e di quetso vi ringrazio tutti