Obsah:

Úvod ESP32 Lora OLED displej: 8 kroků
Úvod ESP32 Lora OLED displej: 8 kroků

Video: Úvod ESP32 Lora OLED displej: 8 kroků

Video: Úvod ESP32 Lora OLED displej: 8 kroků
Video: APRS IGATE by ESP8266 path1 2024, Červenec
Anonim
Image
Image
Úvod ESP32 Lora OLED displej
Úvod ESP32 Lora OLED displej

Toto je další video týkající se úvodu do ESP32 LoRa. Tentokrát budeme hovořit konkrétně o grafickém displeji (128 x 64 pixelů). K zobrazení informací na tomto OLED displeji použijeme knihovnu SSD1306 a uvedeme příklad animace pomocí obrázků XBM.

Krok 1: Použité zdroje

Použité zdroje
Použité zdroje

1 Heltec WiFi LoRa 32

Protoboard

Krok 2: Displej

Displej
Displej
Displej
Displej

Displej použitý na vývojové desce má OLED 0,96 palce.

Má 128x64 a je černobílý.

Má komunikaci I2C a je připojen k ESP32 pomocí 3 vodičů:

SDA na GPIO4 (pro data)

SCL na GPIO15 (pro hodiny)

RST na GPIO16 (pro reset a spuštění displeje)

Krok 3: Knihovna SSD1306

Knihovna SSD1306
Knihovna SSD1306

To lze nalézt společně se sadou knihoven poskytovaných společností Heltec-Aaron-Lee.

Má několik funkcí pro psaní řetězců, kreslení čar, obdélníků, kruhů a zobrazování obrázků.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Krok 4: Animace a soubory XBM

Animace a soubory XBM
Animace a soubory XBM
Animace a soubory XBM
Animace a soubory XBM
Animace a soubory XBM
Animace a soubory XBM

K zobrazení animace použijeme funkci drawXbm knihovny.

Formát obrázku XBM se skládá z řady znaků, kde každý prvek textově představuje sadu monochromatických pixelů (každý 1 bit), a to prostřednictvím hexadecimální hodnoty. Ty jsou ekvivalentní jednomu bajtu.

Protože k reprezentaci jednoho bajtu slouží více znaků, bývají tyto soubory větší než ty z aktuálně přijatých formátů. Výhodou je, že je lze sestavit přímo bez předchozího ošetření.

Kromě pole jsou zahrnuta dvě nastavení, která určují velikost obrázku.

K vytvoření animace potřebujeme obrázky, které budou tvořit rámce.

K práci můžeme použít jakýkoli software pro úpravu obrázků. Jediná preventivní opatření, která bychom měli udělat, jsou nejprve udržovat velikost kompatibilní s displejem a používat monochromatické soubory.

K vygenerování souborů je můžeme nakreslit nebo importovat obrázky. Zde jsme se rozhodli upravit barevný obrázek pomocí PaintBrush a nakreslili jsme každý z rámečků

Původní obrázek - 960 x 707 pixelů - formát PNG

Dalším krokem je, aby byl monochromatický uložením jako černobílý rastrový obrázek.

Poté jej změníme na velikost kompatibilní s displejem.

Zvláštní pozornost věnujte měrným jednotkám. V tomto případě jsme upravili obrázek tak, aby zabíral celou výšku displeje (svisle = 64 pixelů).

Když je obrázek ve správné velikosti, upravíme jej tak, aby tvořil rámečky. Zde vymažeme každý oblouk úrovně signálu a uložíme je jako odpovídající rámce.

Nyní musíme převést soubory BMP do formátu XBM.

Tuto konverzi může provést několik softwarových možností. Jako možnost editoru jsme také vybrali GIMP.

V našem příkladu jsme pro generování a úpravu souborů použili PaintBrush. Každý z těchto procesů však mohl být proveden v Gimpu (nebo v jiném editoru).

Chcete -li převést, nejprve otevřete soubor.

Když je obrázek otevřený, můžeme vybrat Soubor => Exportovat jako …

V okně Exportovat obrázek musíme změnit koncovou příponu souboru pro XBM. Gimp bude mít na starosti identifikaci požadovaného formátu a prezentaci dalších možností…

Při exportu Gimp představí další možnosti. Můžeme nechat výchozí hodnoty.

Po převodu všech souborů budeme mít čtyři soubory XBM, jeden pro každý snímek.

Nyní je zkopírujeme do složky zdrojového kódu a přejmenujeme je změnou jejich přípon na.h.

Krok 5: Ukončení souborů XBM

Ukončení souborů XBM
Ukončení souborů XBM

Soubory XBM můžeme otevřít v libovolném textovém editoru, kde uvidíme informace o matici obrazu a velikosti obrázku, které již byly definovány.

Krok 6: Zdrojový kód

Zdrojový kód: Prohlášení

Zahrneme potřebné knihovny a také soubory obrázků. Definujeme polohy obrazu a přechodový interval. Rovněž ukazujeme na OLED piny připojené k ESP32. Nakonec vytvoříme a upravíme objekt Display.

// Incluindo as bibliotecas nutárias #include #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definice snímků mezi snímky a přenosy #define posX 21 #definovat posY 0 #definovat intervalo 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // O RST deve ser controlado por software SSD1306 display (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Zdrojový kód: Nastavení ()

Inicializujte zobrazení a vertikálně převraťte obrazovku. Akce je volitelná.

neplatné nastavení () {display.init (); // inicia o zobrazení display.flipScreenVertically (); // inverte verticalmente a tela (opcional)}

Zdrojový kód: Loop ()

První věc, kterou musíte ve smyčce udělat, je vymazat obrazovku. Načteme rámeček 1 do vyrovnávací paměti pomocí počátečních pozic posX a posY. O velikosti obrázku informujeme pomocí frame1_width a frame1_height a názvu pole obsahujícího bitové kopie obrázku. Ukážeme vyrovnávací paměť na displeji a počkáme na interval, než ukážeme další snímek.

void loop () {display.clear (); // limpa tela // carrega para o buffer o frame 1 // usando as posições initiais posX e posY // informa o tamanho da imagem com frame1_width e frame1_height // informa o nome da matriz que uvaž os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o buffer no display display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);

Opakujeme postup pro všechny ostatní snímky.

// repete o proceso para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); zpoždění (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); zpoždění (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); zpoždění (intervalo); }

Krok 7: Provedení Nahrání kódu

Provádění UpLoad kódu
Provádění UpLoad kódu
Provádění UpLoad kódu
Provádění UpLoad kódu
Provádění UpLoad kódu
Provádění UpLoad kódu

Otevřete IDE a otevřete soubor se zdrojovým kódem poklepáním na soubor.ino nebo v nabídce Soubor.

Když je Heltec připojen k USB, vyberte nabídku Nástroje => Karta: „Heltec_WIFI_LoRa_32“

Stále v nabídce Nástroje vyberte port COM, ke kterému je připojen Heltec.

Klikněte na tlačítko UPLOAD…

… A počkejte na závěr.

Krok 8: Soubory

Stáhnout soubory:

PDF

INO

Doporučuje: