Përmbajtje:

Hyrje ESP32 Lora OLED Ekran: 8 hapa
Hyrje ESP32 Lora OLED Ekran: 8 hapa

Video: Hyrje ESP32 Lora OLED Ekran: 8 hapa

Video: Hyrje ESP32 Lora OLED Ekran: 8 hapa
Video: TTGO ESP32 OLED LoRa 2024, Korrik
Anonim
Image
Image
Hyrje ESP32 Lora OLED Ekran
Hyrje ESP32 Lora OLED Ekran

Kjo është një video tjetër në lidhje me Hyrjen në ESP32 LoRa. Këtë herë, ne do të flasim në mënyrë specifike për një ekran grafik (me 128x64 pixel). Ne do të përdorim bibliotekën SSD1306 për të shfaqur informacion në këtë ekran OLED dhe për të paraqitur një shembull të animacionit duke përdorur imazhe XBM.

Hapi 1: Burimet e përdorura

Burimet e Përdorura
Burimet e Përdorura

1 Heltec WiFi LoRa 32

Protoboard

Hapi 2: Shfaqja

Shfaqja
Shfaqja
Shfaqja
Shfaqja

Ekrani i përdorur në bordin e zhvillimit është një OLED prej 0.96 inç.

Ka 128x64 dhe është njëngjyrëshe.

Ka komunikim I2C dhe lidhet me ESP32 përmes 3 telave:

SDA në GPIO4 (për të dhëna)

SCL në GPIO15 (për orën)

RST në GPIO16 (për rivendosjen dhe fillimin e shfaqjes)

Hapi 3: Biblioteka SSD1306

Biblioteka SSD1306
Biblioteka SSD1306

Kjo mund të gjendet së bashku me grupin e bibliotekave të ofruara nga Heltec-Aaron-Lee.

Ka disa funksione për shkrimin e vargjeve, vizatimin e vijave, drejtkëndëshave, rrathëve dhe shfaqjen e imazheve.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Hapi 4: Animacioni dhe skedarët XBM

Skedarët e animacionit dhe XBM
Skedarët e animacionit dhe XBM
Skedarët e animacionit dhe XBM
Skedarët e animacionit dhe XBM
Skedarët e animacionit dhe XBM
Skedarët e animacionit dhe XBM

Ne do të përdorim funksionin e bibliotekës drawXbm për të shfaqur një animacion.

Formati i imazhit XBM përbëhet nga një grup karakteresh ku secili element përfaqëson tekstualisht një grup pikselësh njëngjyrësh (1 bit secili), përmes një vlere heksadecimale. Këto janë ekuivalente me një bajt.

Për shkak se karaktere të shumta përdoren për të përfaqësuar një bajt të vetëm, këto skedarë priren të jenë më të mëdhenj se ato nga formatet e miratuara aktualisht. Avantazhi është se ato mund të përpilohen drejtpërdrejt pa pasur nevojë për trajtim paraprak.

Përveç grupit, përfshihen dy cilësime që përcaktojnë madhësinë e figurës.

Për të ndërtuar animacionin, na duhen imazhet që do të formojnë kornizat.

Ne mund të përdorim çdo softuer të redaktimit të imazhit për të punuar. Masat paraprake të vetme që duhet të marrim janë që së pari të mbajmë madhësinë në përputhje me ekranin dhe të përdorim skedarë njëngjyrësh.

Për të gjeneruar skedarët, ne mund t'i vizatojmë ato ose të importojmë imazhe. Këtu, ne vendosëm të redaktojmë një imazh me ngjyra duke përdorur PaintBrush, dhe vizatuam secilën prej kornizave

Imazhi origjinal - 960x707 piksele - format PNG

Hapi tjetër është ta bëni atë pikturë njëngjyrëshe duke e ruajtur atë si një hartë njëngjyrëshe.

Pastaj, ne e ndryshojmë atë në një madhësi të pajtueshme me ekranin.

Kushtojini vëmendje të veçantë njësive të masës. Në këtë rast, ne e rregulluam imazhin në mënyrë që të zinte të gjithë lartësinë e ekranit (vertikale = 64 piksele).

Me imazhin në madhësinë e duhur, ne do ta redaktojmë për të formuar kornizat. Këtu, ne po fshijmë çdo hark të nivelit të sinjalit dhe i ruajmë ato si korniza përkatëse.

Tani, ne duhet të konvertojmë skedarët BMP në formatin XBM.

Ka disa opsione softuerësh që mund ta bëjnë këtë konvertim. Ne gjithashtu zgjodhëm GIMP si një opsion redaktues.

Në shembullin tonë, ne përdorëm PaintBrush për të gjeneruar dhe modifikuar skedarët. Sidoqoftë, secili prej këtyre proceseve mund të ishte bërë në Gimp (ose ndonjë redaktues tjetër).

Për t'u kthyer, së pari hapim skedarin.

Me imazhin e hapur, ne mund të zgjedhim File => Export as…

Në dritaren Export Image, ne duhet të ndryshojmë shtesën e skedarit të destinacionit për XBM. Gimp do të jetë përgjegjës për identifikimin e formatit të dëshiruar dhe paraqitjen e më shumë opsioneve…

Kur eksportoni, Gimp do të paraqesë opsione të tjera. Ne mund të lëmë vlerat e paracaktuara.

Pas konvertimit të të gjithë skedarëve, do të kemi katër skedarë XBM, një për secilën kornizë.

Tani le t'i kopjojmë ato në dosjen e kodit burimor dhe t'i riemërtojmë duke ndryshuar shtesat e tyre në.h.

Hapi 5: Dalja nga skedarët XBM

Dalja nga skedarët XBM
Dalja nga skedarët XBM

Ne mund të hapim skedarët XBM në çdo redaktues teksti, ku do të shohim matricën e imazhit dhe informacionin e madhësisë së figurës që ishin përcaktuar tashmë.

Hapi 6: Kodi Burimor

Kodi Burim: Deklarata

Ne do të përfshijmë bibliotekat e nevojshme, si dhe skedarët e imazheve. Ne përcaktojmë pozicionet e figurës dhe intervalin e kalimit. Ne gjithashtu tregojmë kunjat OLED të lidhur me ESP32. Së fundi, ne krijojmë dhe rregullojmë objektin Display.

// Përfshini si bibliotekas të domosdoshme #përfshijnë #përfshijnë "SSD1306.h" // Përfshini informacionin e imazhit #përfshini "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definicionet e posiçãos për imazhin dhe intervalin e transmetimit #përcakto posX 21 #përcakto pozY 0 #përcakto intervalin 500 // Pinos do OLED estão conctados ao ESP32: I2C // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLE - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // O RST deve ser controlado por software SSD1306 ekran (0x3c, SDA, SCL, RST); // Cria e ajusta o Shfaqja Objeto

Kodi burim: Setup ()

Filloni ekranin dhe përmbyseni ekranin vertikalisht. Veprimi është opsional.

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

Kodi burim: Loop ()

Gjëja e parë që duhet të bëni në lak është të pastroni ekranin. Ne e ngarkojmë kornizën 1 në tampon duke përdorur pozicionet fillestare posX dhe posY. Ne informojmë madhësinë e figurës me frame1_width dhe frame1_height, dhe emrin e grupit që përmban copat e imazhit. Ne tregojmë tamponin në ekran dhe presim një interval para se të shfaqim kornizën tjetër.

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

Ne e përsërisim procesin për të gjitha kornizat e tjera.

// përsëris o processo todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); vonesa (intervalo); shfaqje.qartë (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); vonesa (intervalo); shfaqje.qartë (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); vonesa (intervalo); }

Hapi 7: Kryerja e ngarkesës së kodit

Bërja e ngarkesës së kodit
Bërja e ngarkesës së kodit
Bërja e ngarkesës së kodit
Bërja e ngarkesës së kodit
Bërja e ngarkesës së kodit
Bërja e ngarkesës së kodit

Me IDE të hapur, hapni skedarin me kodin burimor duke klikuar dy herë në skedarin.ino, ose duke shkuar te menyja File.

Me Heltec të lidhur me USB, zgjidhni menunë Tools => Card: "Heltec_WIFI_LoRa_32"

Ende në menunë Tools, zgjidhni portën COM ku është lidhur Heltec.

Klikoni në butonin UPLOAD…

… Dhe prisni përfundimin.

Hapi 8: Skedarët

Shkarkoni skedarët:

PDF

INO

Recommended: