Skip to main content

Slike s microSD kartice

Što ovaj primjer prikazuje​

Čita dvije JPEG slike s microSD kartice i prikazuje ih jednu za drugom. Prva se crta prema imenu datoteke pomoću image.draw(), a druga preko objekta SdFile, na način biblioteke SdFat. Na kraju skica isključuje napajanje kartice radi uštede energije.

Prije prijenosa programa formatirajte karticu kao FAT i kopirajte picture1.jpg i picture2.jpg iz mape primjera u korijenski direktorij kartice. Komentar u zaglavlju skice navodi da slike mogu biti BMP, JPEG ili PNG i da moraju biti manje od 600 × 448 piksela da bi stale na zaslon.

Primjer koda​

Select Board
Inkplate7SPECTRA_SD_Pictures.ino
#include "Inkplate.h" // Include Inkplate library to the sketch
Inkplate display; // Create an object on Inkplate library and also set library into 3 Bit mode
SdFile file; // Create SdFile object used for accessing files on SD card

void setup()
{
// Init serial communication
Serial.begin(115200);

display.begin(); // Init Inkplate library (you should call this function ONLY ONCE)
display.clearDisplay(); // Clear frame buffer of display
display.setTextColor(BLACK); // Set text color to black
display.setTextSize(2); // Set font size to 2

// Init SD card. Display if SD card is init propery or not.
if (display.sdCardInit())
{
Serial.println("SD Card OK! Reading image...");

// If card is properly init, try to load image and display it on e-paper at position X=0, Y=0
// NOTE: Both drawImage methods allow for an optional fifth "invert" parameter. Setting this parameter
// to true will flip all colors on the image, making black white and white black. This may be necessary when
// exporting bitmaps from certain softwares.
if (display.image.draw("picture1.jpg", 0, 0, 1))
{
display.display();
delay(5000);
}
else
{
// If is something failed (wrong filename or wrong bitmap format), write error message on the Serial
// Monitor. REMEMBER! You can only use Windows Bitmap file with color depth of 1, 4, 8 or 24 bits with no
// compression! You can turn of dithering for somewhat faster image load by changing the last 1 to 0, or
// removing the 1 argument completely
Serial.println("Image open error");
}


// Now try to load image using SdFat library class (for more advanced users) and display image on epaper.
display.clearDisplay();
if (file.open("picture2.jpg", O_RDONLY))
{
display.image.drawJpegFromSd(&file, 0, 0);
display.display();
delay(5000);
}
else
{
Serial.println("Image open error");
}
}
else
{
// If SD card init not success, display error on screen
Serial.println("SD Card error!");
}

// Turn off the MOSFET that powers the SD card
display.sdCardSleep();
}

void loop()
{
// Nothing...
}

Komentar uz redak Inkplate display; spominje 3-bitni način rada; Inkplate 7SPECTRA ima samo svoj šestobojni način rada, a konstruktor ne prima način rada.

Korištene funkcije​

Inkplate()returns None

Stvara objekt Inkplate. Inkplate 7SPECTRA ima jedan šestobojni način rada, pa konstruktor ne prima argument načina rada.

ReturnsKonstruktor; nema povratne vrijednosti.

display.begin()returns void

Inicijalizira biblioteku, periferiju i međuspremnik slike. Pozovite ga jednom u setup(); kasniji pozivi se zanemaruju.

ReturnsNišta.

display.clearDisplay()returns void

Ispunjava međuspremnik slike bijelom bojom. Ne mijenja prikaz na zaslonu.

ReturnsNišta.

display.setTextColor(uint16_t c)returns void

Postavlja boju teksta. Ova skica ne ispisuje tekst na zaslonu, pa postavka ovdje nema vidljiv učinak.

ReturnsNišta.

display.setTextSize(uint8_t s)returns void

Postavlja uvećanje teksta. Kao i kod boje, ova skica ne ispisuje tekst na zaslonu.

ReturnsNišta.

display.sdCardInit()returns int16_t

Uključuje napajanje microSD kartice, pokreće njezinu SPI sabirnicu i montira karticu.

Returns1 ako je kartica inicijalizirana, 0 ako nije uspjelo.

display.image.draw(const char *path, int x, int y, bool dither = 1, bool invert = 0)returns bool

Otvara datoteku slike na microSD kartici prema imenu i crta je u međuspremnik slike tako da joj je gornji lijevi kut u točki (x, y).

Returnstrue ako je slika nacrtana, false ako se datoteka nije mogla otvoriti ili dekodirati.

Parametri

TipNazivOpis
const char *pathIme datoteke na kartici, ovdje "picture1.jpg".
intx, yGornji lijevi kut u pikselima.
boolditherPrimjenjuje dithering na sliku za šest boja zaslona. Zadano je 1.
boolinvertInvertira boje. Zadano je 0.
display.image.drawJpegFromSd(SdFile *p, int x, int y, bool dither = 0, bool invert = 0)returns bool

Crta JPEG iz datoteke koju ste već otvorili pomoću SdFat.

Returnstrue ako je slika nacrtana.

Parametri

TipNazivOpis
SdFile *pPokazivač na otvorenu datoteku.
intx, yGornji lijevi kut u pikselima.
boolditherZadano je 0.
boolinvertZadano je 0.
SdFile()returns None

Klasa SdFat, uključena u biblioteku Inkplate: objekt datoteke na microSD kartici. Skica ga stvara kao `file`.

ReturnsKonstruktor; nema povratne vrijednosti.

file.open(path, mode)returns bool

Funkcija biblioteke SdFat, uključena u biblioteku Inkplate: otvara datoteku na kartici. Skica prosljeđuje O_RDONLY kako bi je otvorila za čitanje.

Returnstrue ako je datoteka otvorena.

display.display(bool _leaveOn = 0)returns void

Šalje cijeli međuspremnik slike na zaslon i osvježava ga.

ReturnsNišta.

display.sdCardSleep()returns void

Postavlja SPI pinove kartice kao ulaze i isključuje napajanje kartice radi uštede energije u dubokom snu.

ReturnsNišta.

Što očekivati​

Kada je kartica umetnuta, serijski monitor pri 115200 baud prikazuje:

Serial MonitorAutoscrollShow timestampNewline115200 baud
Message (Enter to send message to the board)
SD Card OK! Reading image...

Zatim se picture1.jpg prikazuje na zaslonu 5 sekundi, a nakon nje picture2.jpg. Ako slika nedostaje ili se ne može pročitati, ispisuje se Image open error; ako se kartica ne uspije pokrenuti, ispisuje se SD Card error!.

🔗Otvorite cijeli primjer

examples/Inkplate7SPECTRA/Advanced/SD/Inkplate7SPECTRA_SD_Pictures

→