Kazalo:

Uvod ESP32 Lora OLED zaslon: 8 korakov
Uvod ESP32 Lora OLED zaslon: 8 korakov

Video: Uvod ESP32 Lora OLED zaslon: 8 korakov

Video: Uvod ESP32 Lora OLED zaslon: 8 korakov
Video: TTGO ESP32 OLED LoRa 2024, Julij
Anonim
Image
Image
Uvod ESP32 Lora OLED zaslon
Uvod ESP32 Lora OLED zaslon

To je še en videoposnetek o uvodu v ESP32 LoRa. Tokrat bomo govorili posebej o grafičnem zaslonu (128 x 64 slikovnih pik). Knjižnico SSD1306 bomo uporabili za prikaz informacij na tem zaslonu OLED in predstavitev primera animacije z uporabo slik XBM.

1. korak: Uporabljeni viri

Uporabljeni viri
Uporabljeni viri

1 Heltec WiFi LoRa 32

Protoboard

2. korak: Zaslon

Zaslon
Zaslon
Zaslon
Zaslon

Zaslon, ki se uporablja na razvojni plošči, je OLED 0,96 palca.

Ima velikost 128 x 64 in je enobarvna.

Ima I2C komunikacijo in je povezan z ESP32 prek 3 žic:

SDA na GPIO4 (za podatke)

SCL na GPIO15 (za uro)

RST na GPIO16 (za ponastavitev in zagon zaslona)

3. korak: Knjižnica SSD1306

Knjižnica SSD1306
Knjižnica SSD1306

To je mogoče najti skupaj z naborom knjižnic, ki jih ponuja Heltec-Aaron-Lee.

Ima več funkcij za pisanje nizov, risanje črt, pravokotnikov, krogov in prikaz slik.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

4. korak: Datoteke animacije in XBM

Datoteke z animacijo in XBM
Datoteke z animacijo in XBM
Datoteke z animacijo in XBM
Datoteke z animacijo in XBM
Datoteke z animacijo in XBM
Datoteke z animacijo in XBM

Za prikaz animacije bomo uporabili funkcijo knjižnice drawXbm.

Format slike XBM je sestavljen iz niza znakov, kjer vsak element tekstualno predstavlja niz enobarvnih slikovnih pik (vsak po 1 bit) skozi šestnajstiško vrednost. Ti so enakovredni enemu bajtu.

Ker se za predstavitev enega bajta uporablja več znakov, so te datoteke običajno večje od tistih iz trenutno sprejetih formatov. Prednost je, da jih je mogoče sestaviti neposredno brez potrebe po predhodnem zdravljenju.

Poleg matrike sta vključeni še dve nastavitvi, ki določata velikost slike.

Za izdelavo animacije potrebujemo slike, ki bodo tvorile okvirje.

Za delo lahko uporabimo katero koli programsko opremo za urejanje slik. Edini previdnostni ukrepi, ki jih moramo upoštevati, so, da najprej ohranimo velikost združljivo z zaslonom in uporabimo enobarvne datoteke.

Za ustvarjanje datotek jih lahko narišemo ali uvozimo slike. Tu smo se odločili za urejanje barvne slike s pomočjo PaintBrush in narisali vsak okvir

Izvirna slika - 960 x 707 slikovnih pik - format PNG

Naslednji korak je, da ga naredite enobarvnega, tako da ga shranite kot enobarvno bitno sliko.

Nato spremenimo velikost na velikost, ki je združljiva z zaslonom.

Posebno pozornost posvetite merskim enotam. V tem primeru smo sliko prilagodili tako, da je zasedla celotno višino zaslona (navpično = 64 slikovnih pik).

S sliko v pravilni velikosti jo bomo uredili in oblikovali okvirje. Tu izbrišemo vsak lok ravni signala in jih shranimo kot ustrezne okvirje.

Zdaj moramo pretvoriti datoteke BMP v format XBM.

To pretvorbo lahko izvedete na več možnostih programske opreme. Za možnost urejevalnika smo izbrali tudi GIMP.

V našem primeru smo za ustvarjanje in urejanje datotek uporabili PaintBrush. Vsak od teh procesov pa bi lahko izvedli v Gimpu (ali katerem koli drugem urejevalniku).

Za pretvorbo najprej odpremo datoteko.

Ko je slika odprta, lahko izberemo Datoteka => Izvozi kot …

V oknu Export Image moramo spremeniti ciljno razširitev datoteke za XBM. Gimp bo zadolžen za prepoznavanje želene oblike in predstavitev več možnosti …

Pri izvozu bo Gimp predstavil druge možnosti. Privzete vrednosti lahko pustimo.

Po pretvorbi vseh datotek bomo imeli štiri datoteke XBM, po eno za vsak okvir.

Zdaj jih kopirajmo v mapo izvorne kode in jih preimenujmo tako, da njihove razširitve spremenimo v.h.

5. korak: Izhod iz datotek XBM

Izhod iz datotek XBM
Izhod iz datotek XBM

Datoteke XBM lahko odpremo v katerem koli urejevalniku besedil, kjer bomo videli matriko slike in podatke o velikosti slike, ki sta bili že določeni.

6. korak: izvorna koda

Izvorna koda: Izjave

Vključili bomo potrebne knjižnice in slikovne datoteke. Določimo položaje slike in prehodni interval. Opozorimo tudi na zatiče OLED, priključene na ESP32. Na koncu ustvarimo in prilagodimo objekt Display.

// Vključi kot potrebo po bibliotekah #include #include "SSD1306.h" // Vključi arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // opredeljujemo, da je imagem in intervalo de transição #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 za krmiljenje programske opreme SSD1306 (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Izvorna koda: Setup ()

Inicializirajte zaslon in zaslon obrnite navpično. Ukrep ni obvezen.

void setup () {display.init (); // inicia o display display.flipScreenVertical (); // obrni navpično telo (opcijsko)}

Izvorna koda: Loop ()

Prva stvar v zanki je, da počistite zaslon. Okvir 1 naložimo v medpomnilnik z uporabo začetnih položajev posX in posY. Velikost slike sporočamo z okvirji frame_width in frame1_height ter imenom matrike, ki vsebuje bite slike. Na zaslonu prikažemo medpomnilnik in počakamo na interval, preden prikažemo naslednji okvir.

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

Postopek ponovimo za vse ostale okvirje.

// Ponovi o postopku za izhod iz okvirjev display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); zamuda (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); zamuda (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); zamuda (intervalo); }

7. korak: Izvedite nalaganje kode

Izvajanje nalaganja kode
Izvajanje nalaganja kode
Izvajanje nalaganja kode
Izvajanje nalaganja kode
Izvajanje nalaganja kode
Izvajanje nalaganja kode

Ko je IDE odprt, odprite datoteko z izvorno kodo tako, da dvokliknete datoteko.ino ali odprete meni Datoteka.

Ko je Heltec priključen na USB, izberite meni Orodja => Kartica: "Heltec_WIFI_LoRa_32"

Še vedno v meniju Orodja izberite vrata COM, na katera je priključen Heltec.

Kliknite gumb NALOŽI…

… In počakajte na zaključek.

8. korak: Datoteke

Prenesite datoteke:

PDF

JAZ NE

Priporočena: