Obsah:

Úvod OLP displej ESP32 Lora: 8 krokov
Úvod OLP displej ESP32 Lora: 8 krokov

Video: Úvod OLP displej ESP32 Lora: 8 krokov

Video: Úvod OLP displej ESP32 Lora: 8 krokov
Video: Uvod v razmerja 2024, Júl
Anonim
Image
Image
Úvod OLP displej ESP32 Lora
Úvod OLP displej ESP32 Lora

Toto je ďalšie video týkajúce sa úvodu do ESP32 LoRa. Dnes budeme hovoriť konkrétne o grafickom displeji (128 x 64 pixelov). Na zobrazenie informácií na tomto OLED displeji použijeme knižnicu SSD1306 a uvedieme príklad animácie pomocou obrázkov 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ývojovej doske je OLED 0,96 palca.

Má 128 x 64 a je monochromatický.

Má komunikáciu I2C a je pripojený k ESP32 pomocou troch káblov:

SDA na GPIO4 (pre dáta)

SCL na GPIO15 (pre hodiny)

RST na GPIO16 (pre reset a spustenie displeja)

Krok 3: Knižnica SSD1306

Knižnica SSD1306
Knižnica SSD1306

Nájdete ho spolu so sadou knižníc, ktoré poskytuje Heltec-Aaron-Lee.

Má niekoľko funkcií na písanie reťazcov, kreslenie čiar, obdĺžnikov, kruhov a zobrazovanie obrázkov.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Krok 4: Animácia a súbory XBM

Súbory animácie a XBM
Súbory animácie a XBM
Súbory animácie a XBM
Súbory animácie a XBM
Súbory animácie a XBM
Súbory animácie a XBM

Na zobrazenie animácie použijeme funkciu drawXbm knižnice.

Formát obrazu XBM pozostáva z radu znakov, kde každý prvok textovo predstavuje množinu monochromatických pixelov (každý 1 bit) prostredníctvom hexadecimálnej hodnoty. Tieto sú ekvivalentné jednému bajtu.

Pretože na zobrazenie jedného bajtu je použitých viac znakov, tieto súbory bývajú väčšie ako súbory z aktuálne prijatých formátov. Výhodou je, že sa dajú zostaviť priamo bez predchádzajúceho ošetrenia.

Okrem poľa sú zahrnuté aj dve nastavenia, ktoré určujú veľkosť obrázka.

Na zostavenie animácie potrebujeme obrázky, ktoré budú tvoriť rámce.

Na prácu môžeme použiť akýkoľvek softvér na úpravu obrázkov. Jediné preventívne opatrenie, ktoré by sme mali urobiť, je najskôr udržať veľkosť kompatibilnú s displejom a používať monochromatické súbory.

Na vygenerovanie súborov ich môžeme nakresliť alebo importovať obrázky. Tu sme sa rozhodli upraviť farebný obrázok pomocou PaintBrush a nakreslili sme každý z rámov

Pôvodný obrázok - 960 x 707 pixelov - formát PNG

Ďalším krokom je, aby bol monochromatický uložením ako monochromatická bitová mapa.

Potom zmeníme veľkosť na veľkosť kompatibilnú s displejom.

Osobitnú pozornosť venujte merným jednotkám. V tomto prípade sme upravili obrázok tak, aby zaberal celú výšku displeja (vertikálne = 64 pixelov).

Keď bude obrázok v správnej veľkosti, upravíme ho tak, aby tvoril rámy. Tu vymažeme každý oblúk úrovne signálu a uložíme ich ako zodpovedajúce rámce.

Teraz musíme previesť súbory BMP do formátu XBM.

Túto konverziu môže vykonať niekoľko softvérových možností. Ako možnosť editora sme tiež vybrali GIMP.

V našom prípade sme na generovanie a úpravu súborov použili PaintBrush. Každý z týchto procesov však mohol byť vykonaný v Gimpe (alebo v inom editore).

Na konverziu najskôr otvoríme súbor.

Keď je obrázok otvorený, môžeme vybrať Súbor => Exportovať ako …

V okne Exportovať obrázok musíme zmeniť cieľovú príponu súboru pre XBM. Gimp bude mať na starosti identifikáciu požadovaného formátu a prezentáciu ďalších možností …

Pri exporte vám Gimp predstaví ďalšie možnosti. Predvolené hodnoty môžeme nechať.

Po konverzii všetkých súborov budeme mať štyri súbory XBM, jeden pre každý rámec.

Teraz ich skopírujeme do priečinka zdrojového kódu a premenujeme ich tak, že zmeníme ich rozšírenia na.h.

Krok 5: Ukončenie súborov XBM

Ukončenie súborov XBM
Ukončenie súborov XBM

Súbory XBM môžeme otvoriť v ľubovoľnom textovom editore, kde uvidíme informácie o matici a veľkosti obrázka, ktoré už boli definované.

Krok 6: Zdrojový kód

Zdrojový kód: Vyhlásenia

Zahrneme potrebné knižnice a tiež obrazové súbory. Definujeme polohy obrazu a prechodový interval. Namierime tiež na piny OLED pripojené k ESP32. Nakoniec vytvoríme a upravíme objekt Display.

// Incluindo as bibliotecas nutárias #include #include "SSD1306.h" // Incluindo os arquivos de image #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definícia snímok a prechodov medzi prenosmi #definovať posX 21 #definovať posY 0 #definovať 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 vyvinie sériové ovládanie softvérového displeja SSD1306 (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Zdrojový kód: Nastavenie ()

Inicializujte zobrazenie a vertikálne prevráťte obrazovku. Akcia je voliteľná.

void setup () {display.init (); // inicia o zobrazenie display.flipScreenVertically (); // inverte verticalmente a tela (opcional)}

Zdrojový kód: Loop ()

Prvá vec, ktorú musíte urobiť v slučke, je vyčistiť obrazovku. Načítame rámec 1 do vyrovnávacej pamäte pomocou počiatočných polôh posX a posY. O veľkosti obrázka informujeme pomocou parametra frame1_width a frame1_height a názvu poľa obsahujúceho bity obrázku. Vyrovnávaciu pamäť zobrazíme na displeji a pred ďalším rámcom počkáme určitý interval.

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 (); // oneskorenie medzi oneskoreniami rámca alebo oneskorením rámca (intervalo);

Tento postup opakujeme pre všetky ostatné snímky.

// repete o proces para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); oneskorenie (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); oneskorenie (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); oneskorenie (intervalo); }

Krok 7: Vykonanie načítania kódu

Vykonáva sa načítanie kódu
Vykonáva sa načítanie kódu
Vykonáva sa načítanie kódu
Vykonáva sa načítanie kódu
Vykonáva sa načítanie kódu
Vykonáva sa načítanie kódu

Keď je IDE otvorené, otvorte súbor so zdrojovým kódom dvojitým kliknutím na súbor.ino alebo v ponuke Súbor.

Keď je Heltec pripojený k USB, zvoľte menu Nástroje => Karta: „Heltec_WIFI_LoRa_32“

Stále v ponuke Nástroje vyberte port COM, ku ktorému je pripojený Heltec.

Kliknite na tlačidlo NAHRAŤ …

… A počkajte na záver.

Krok 8: Súbory

Stiahnite si súbory:

PDF

INO

Odporúča: