Sadržaj:

Uvod ESP32 Lora OLED ekran: 8 koraka
Uvod ESP32 Lora OLED ekran: 8 koraka

Video: Uvod ESP32 Lora OLED ekran: 8 koraka

Video: Uvod ESP32 Lora OLED ekran: 8 koraka
Video: Using two Heltec CubeCell LoRa ESP32 Boards HTCC-AB01 as remote switch as TX and RX 2024, Novembar
Anonim
Image
Image
Uvod ESP32 Lora OLED ekran
Uvod ESP32 Lora OLED ekran

Ovo je još jedan video zapis o Uvodu u ESP32 LoRa. Ovaj put ćemo posebno govoriti o grafičkom prikazu (128x64 piksela). Za prikaz informacija na ovom OLED ekranu koristit ćemo biblioteku SSD1306 i predstaviti primjer animacije pomoću XBM slika.

Korak 1: Korišteni resursi

Korišteni resursi
Korišteni resursi

1 Heltec WiFi LoRa 32

Protoboard

Korak 2: Zaslon

Zaslon
Zaslon
Zaslon
Zaslon

Ekran koji se koristi na razvojnoj ploči je OLED od 0,96 inča.

Ima dimenzije 128x64 i monohromatski je.

Ima I2C komunikaciju i spojen je na ESP32 putem 3 žice:

SDA na GPIO4 (za podatke)

SCL na GPIO15 (za sat)

RST na GPIO16 (za resetiranje i početak prikaza)

Korak 3: Biblioteka SSD1306

Biblioteka SSD1306
Biblioteka SSD1306

Ovo se može pronaći zajedno sa skupom biblioteka koje pruža Heltec-Aaron-Lee.

Ima nekoliko funkcija za pisanje nizova, crtanje linija, pravokutnika, krugova i prikaz slika.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Korak 4: Animacijske i XBM datoteke

Animacijske i XBM datoteke
Animacijske i XBM datoteke
Animacijske i XBM datoteke
Animacijske i XBM datoteke
Animacijske i XBM datoteke
Animacijske i XBM datoteke

Za prikaz animacije koristit ćemo funkciju drawXbm biblioteke.

Format slike XBM sastoji se od niza znakova u kojima svaki element tekstualno predstavlja skup crno -bijelih piksela (svaki po 1 bit), kroz heksadecimalnu vrijednost. Oni su ekvivalentni jednom bajtu.

Budući da se više znakova koristi za predstavljanje jednog bajta, te su datoteke obično veće od onih iz trenutno usvojenih formata. Prednost je što se mogu sastaviti izravno bez potrebe za prethodnim tretmanom.

Osim niza, uključene su i dvije postavke koje određuju veličinu slike.

Za izradu animacije potrebne su nam slike koje će činiti okvire.

Za rad možemo koristiti bilo koji softver za uređivanje slika. Jedine mjere opreza koje trebamo poduzeti su prvo držati veličinu kompatibilnom s zaslonom i koristiti jednobojne datoteke.

Da bismo generirali datoteke, možemo ih nacrtati ili uvesti slike. Ovdje smo odlučili urediti sliku u boji pomoću PaintBrush -a i nacrtali smo svaki od okvira

Originalna slika - 960x707 piksela --p.webp

Sljedeći korak je učiniti ga jednobojnim spremanjem kao monohromatsku bitmapu.

Zatim smo mu promijenili veličinu na veličinu kompatibilnu s zaslonom.

Obratite posebnu pažnju na mjerne jedinice. U ovom slučaju sliku smo prilagodili tako da zauzima cijelu visinu zaslona (okomito = 64 piksela).

Sa slikom u ispravnoj veličini, mi ćemo je urediti kako bismo formirali okvire. Ovdje brišemo svaki luk nivoa signala i spremamo ih kao odgovarajuće okvire.

Sada moramo pretvoriti BMP datoteke u XBM format.

Postoji nekoliko softverskih opcija koje mogu izvršiti ovu konverziju. Također smo odabrali GIMP kao opciju uređivača.

U našem primjeru koristili smo PaintBrush za generiranje i uređivanje datoteka. Međutim, svaki od ovih procesa mogao se obaviti u Gimpu (ili bilo kojem drugom uređivaču).

Za pretvaranje prvo otvorimo datoteku.

Kad je slika otvorena, možemo odabrati Datoteka => Izvezi kao …

U prozoru Izvoz slike moramo promijeniti odredišnu datotečnu ekstenziju za XBM. Gimp će biti zadužen za identifikaciju željenog formata i predstavljanje više opcija …

Prilikom izvoza, Gimp će predstaviti druge opcije. Možemo ostaviti zadane vrijednosti.

Nakon pretvaranja svih datoteka imat ćemo četiri XBM datoteke, po jednu za svaki okvir.

Sada ih kopirajmo u mapu izvornog koda i preimenujmo ih promjenom ekstenzija u.h.

Korak 5: Izlazak iz XBM datoteka

Izlazak iz XBM datoteka
Izlazak iz XBM datoteka

Možemo otvoriti XBM datoteke u bilo kojem uređivaču teksta, gdje ćemo vidjeti matricu slike i informacije o veličini slike koje su već definirane.

Korak 6: Izvorni kod

Izvorni kod: Izjave

Uključit ćemo potrebne biblioteke, kao i datoteke slika. Definiramo položaje slike i prijelazni interval. Takođe ukazujemo na OLED pinove povezane sa ESP32. Konačno, kreiramo i prilagođavamo Display objekt.

// Uključi kao potrebne biblioteke #include #include "SSD1306.h" // Uključuje osnove slike #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definira postavljanje slike i intervalo prijelaza #define posX 21 #define posY 0 #define 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 podešavanje servera za softver SSD1306 prikaz (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Izvorni kod: Setup ()

Pokrenite ekran i okrenite ekran vertikalno. Radnja nije obavezna.

void setup () {display.init (); // početni prikaz ekrana display.flipScreenVertical (); // inverte verticalmente a tela (opcionalno)}

Izvorni kod: Loop ()

Prva stvar koju treba učiniti u petlji je da očistite ekran. Učitavamo okvir 1 u međuspremnik koristeći posX i posY početne pozicije. Veličinu slike informiramo pomoću frame1_width i frame1_height, te imenom niza koji sadrži bitove slike. Prikazujemo bafer na ekranu i čekamo interval prije nego što prikažemo sljedeći okvir.

void loop () {display.clear (); // limpa tela // carrega parametar o međuspremniku o okviru 1 // upotreba kao početni iniciais posX e posY // informacije o tamanho da imagem com frame1_width e frame1_height // informacije o imenu da matriz que contem os bitova za imagem, bez caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // mostra o međuspremniku nema prikaza display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);

Ponavljamo postupak za sve ostale okvire.

// ponavljanje procesa za izlaženje izvan okvira display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); kašnjenje (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); kašnjenje (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); kašnjenje (intervalo); }

Korak 7: Izvođenje učitavanja koda

Obavljanje učitavanja koda
Obavljanje učitavanja koda
Obavljanje učitavanja koda
Obavljanje učitavanja koda
Obavljanje učitavanja koda
Obavljanje učitavanja koda

Kada je IDE otvoren, otvorite datoteku sa izvornim kodom dvostrukim klikom na.ino datoteku ili odlaskom u meni Datoteka.

Kad je Heltec spojen na USB, odaberite izbornik Alati => Kartica: "Heltec_WIFI_LoRa_32"

Još uvijek u izborniku Alati odaberite COM port na koji je Heltec povezan.

Pritisnite dugme UPLOAD…

… I čekajte zaključak.

Korak 8: Datoteke

Preuzmite datoteke:

PDF

JA NE

Preporučuje se: