LCD Memory a zobrazení vlastního obrázku

Na displeji nechceš jenom zobrazovat text, ale třeba si vykreslit i vlastní obrázek nebo logo. V tomto návodu ti poradíme jak na to!

V našem dnešním článku budeme používat displej LaskaKit 2.7″ 400×240 LCD Memory displej s naší vývojovou deskou ESP32-LPkit a naším programátorem LaskaKit CH340 programmer USB-C, microUSB, UART

Pro programování displeje použijeme knihovnu od Adafruit Adafruit_SharpMem a také jejich Adafruit_GFX knihovnu. Díky těmto knihovnám je práce se displejem velmi rychlá a snadná.

Knihovny nainstaluješ přímo v Arduino IDE.

Přidání knihovny.

Nastavení obrázku

Nejprve si vytvoř obrázek. My používáme GIMP, ale vytvořit jej můžeš v čemkoliv. Náš LCD modul má rozměr 2.7” s rozlišením 400x240px. Tyto hodnoty zadej v nastavení “plátna”. Jako pozadí bude sloužit bílá barva – jak je znázorněno na obrázku níže.

Nastavení obrázku

Vytvoření obrázku

Do tohoto obrázku si můžeš napsat a zkopírovat co jen budeš chtít. Ale pozor! Pouze černobíle!

My tam dali obrázek páječky a nápis “Bastlím s láskou”.

Obrázek, který chceme zobrazit

Takto vytvoření obrázek uložíme ve formátu PNG.

Pro převedení obrázku z formátu PNG do formátu, kterému rozumí displej si stáhni si program LCD IMAGE CONVERTER.

LCD IMAGE CONVERTER

Spusť program a klikni na FILE -> OPEN. Zde vyber tvůj obrázek uložený jako PNG.

Vyhledání obrázku

Klikni na OPTIONS -> CONVERSION 

Konverze obrázku

Nastavení uprav dle obrázku níže.

MONOCHROMATICKÉ zobrazení, INVERTOVANÝ obrázek a klikni na Show Preview

Nastavení konverze

V nově otevřeném okně uvidíš náhled obrázku a zároveň i hexadecimální hodnotu každého pixelu.

Zobrazení pole

Pole vygenerovaných hexadecimálních hodnot označ a zkopíruj. 

Arduino IDE a tvůj kód

Nejprve založ v Arduino IDE nový projekt a vytvoř soubor (například) bitmap.h – do něj vlož pole hodnot z programu LCD IMAGE CONVERTER

Zkopírované pole do bitmap.h

Pole musí být umístěno takto:

const unsigned char logo [] PROGMEM = {

POLE HODNOT Z PROGRAMU };

A teď k samotnému, ukázkovému, programu.

ESP32-LPkit je propojen s LCD modulem přes SPI sběrnici – MOSI, SCK a CS.

#define SHARP_SCK  18

#define SHARP_MOSI 23

#define SHARP_SS   5

a napájení – 3.3V a GND.

#include <WiFi.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SharpMem.h>
#include "bitmap.h"

// SPI
#define SHARP_SCK  18
#define SHARP_MOSI 23
#define SHARP_SS   5

// definition of display and connection
Adafruit_SharpMem display(SHARP_SCK, SHARP_MOSI, SHARP_SS, 400, 240);

#define BLACK 0
#define WHITE 1

void setup() {
  WiFi.mode(WIFI_MODE_NULL); // disable Wi-Fi
  Serial.begin(115200); // Serial

  // start & clear the display
  display.begin();  // initialization
  display.setRotation(0); // rotation
  display.clearDisplay(); // clear display
  display.setCursor(0,0); // set cursor
  display.setTextColor(BLACK, WHITE); // set color

            (X pos, Y pos, bitmap name, X size, Y size, color)
  display.drawBitmap(0, 0, logo, 400, 240, BLACK); // put the bitmap logo - bitmap.h

  display.refresh(); // update the screen

}

void loop() {
  // put your main code here, to run repeatedly:

}

A výsledek je tu!

Logo na displeji

Sdílet článek

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Mohlo by se také líbit