Turinys:

Įvadas ESP32 Lora OLED ekranas: 8 žingsniai
Įvadas ESP32 Lora OLED ekranas: 8 žingsniai

Video: Įvadas ESP32 Lora OLED ekranas: 8 žingsniai

Video: Įvadas ESP32 Lora OLED ekranas: 8 žingsniai
Video: Использование комплекта Wi-Fi Heltec ESP32 OLED 2024, Lapkritis
Anonim
Image
Image
Įvadas ESP32 Lora OLED ekranas
Įvadas ESP32 Lora OLED ekranas

Tai dar vienas vaizdo įrašas apie ESP32 LoRa įvadą. Šį kartą konkrečiai kalbėsime apie grafinį ekraną (128x64 pikselių). Mes naudosime SSD1306 biblioteką, kad būtų rodoma informacija apie šį OLED ekraną ir pateiktas animacijos pavyzdys naudojant XBM vaizdus.

1 žingsnis: naudojami ištekliai

Naudojami ištekliai
Naudojami ištekliai

1 „Heltec WiFi LoRa 32“

Protoboard

2 žingsnis: ekranas

Ekranas
Ekranas
Ekranas
Ekranas

Plėtros lentoje naudojamas ekranas yra 0,96 colio OLED.

Jis yra 128x64 ir yra vienspalvis.

Jis turi I2C ryšį ir yra prijungtas prie ESP32 per 3 laidus:

SDA GPIO4 (duomenims)

SCL GPIO15 (laikrodžiui)

RST GPIO16 (norint iš naujo nustatyti ir paleisti ekraną)

3 veiksmas: SSD1306 biblioteka

SSD 1306 biblioteka
SSD 1306 biblioteka

Tai galima rasti kartu su Heltec-Aaron-Lee pateiktu bibliotekų rinkiniu.

Jis turi keletą eilučių, brėžinių, stačiakampių, apskritimų ir vaizdų rašymo funkcijų.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

4 žingsnis: animacija ir XBM failai

Animacijos ir XBM failai
Animacijos ir XBM failai
Animacijos ir XBM failai
Animacijos ir XBM failai
Animacijos ir XBM failai
Animacijos ir XBM failai

Animacijai rodyti naudosime bibliotekos drawXbm funkciją.

XBM vaizdo formatą sudaro simbolių masyvas, kuriame kiekvienas elementas tekstiniu požiūriu reiškia nespalvotų pikselių rinkinį (po 1 bitą) per šešioliktainę reikšmę. Tai prilygsta vienam baitui.

Kadangi vienam baitui atstovauti naudojami keli simboliai, šie failai paprastai būna didesni nei tie, kurie yra šiuo metu priimtų formatų. Privalumas yra tas, kad juos galima surinkti tiesiogiai, nereikalaujant išankstinio gydymo.

Be masyvo, yra du nustatymai, lemiantys vaizdo dydį.

Norėdami sukurti animaciją, mums reikia vaizdų, kurie sudarys rėmus.

Norėdami dirbti, galime naudoti bet kokią vaizdo redagavimo programinę įrangą. Vienintelės atsargumo priemonės, kurių turėtume imtis, yra pirmiausia išlaikyti dydį suderinamą su ekranu ir naudoti nespalvotus failus.

Norėdami sukurti failus, galime juos piešti arba importuoti vaizdus. Čia mes nusprendėme redaguoti spalvotą vaizdą naudodami „PaintBrush“ir nupiešėme kiekvieną rėmelį

Originalus vaizdas - 960x707 pikselių --p.webp

Kitas žingsnis yra padaryti jį nespalvotą, išsaugojant jį kaip nespalvotą bitų žemėlapį.

Tada pakeičiame jo dydį, kad jis atitiktų ekraną.

Atkreipkite ypatingą dėmesį į matavimo vienetus. Šiuo atveju vaizdą sureguliavome taip, kad jis užimtų visą ekrano aukštį (vertikaliai = 64 pikseliai).

Kai vaizdas yra tinkamo dydžio, mes jį redaguosime, kad sudarytume rėmelius. Čia mes ištriname kiekvieną signalo lygio lanką ir išsaugome juos kaip atitinkamus kadrus.

Dabar turime konvertuoti BMP failus į XBM formatą.

Yra keletas programinės įrangos parinkčių, kurios gali atlikti šią konversiją. Mes taip pat pasirinkome GIMP kaip redaktoriaus parinktį.

Mūsų pavyzdyje failams generuoti ir redaguoti naudojome „PaintBrush“. Tačiau kiekvienas iš šių procesų galėjo būti atliktas naudojant „Gimp“(arba bet kurį kitą redaktorių).

Norėdami konvertuoti, pirmiausia atidarome failą.

Kai vaizdas yra atidarytas, galime pasirinkti Failas => Eksportuoti kaip …

Lange Eksportuoti vaizdą turime pakeisti XBM paskirties failo plėtinį. „Gimp“bus atsakingas už norimo formato nustatymą ir daugiau galimybių pateikimą …

Eksportuodamas „Gimp“pateiks kitas parinktis. Galime palikti numatytas vertes.

Konvertavę visus failus, turėsime keturis XBM failus, po vieną kiekvienam kadrui.

Dabar nukopijuokime juos į šaltinio kodo aplanką ir pervardykime, pakeisdami jų plėtinius į.h.

5 veiksmas: išeikite iš XBM failų

Išeinama iš XBM failų
Išeinama iš XBM failų

XBM failus galime atidaryti bet kuriame teksto redaktoriuje, kur pamatysime jau apibrėžtą vaizdo matricos ir vaizdo dydžio informaciją.

6 žingsnis: šaltinio kodas

Šaltinio kodas: teiginiai

Įtrauksime būtinas bibliotekas ir vaizdo failus. Mes apibrėžiame vaizdo pozicijas ir perėjimo intervalą. Mes taip pat nurodome OLED kaiščius, prijungtus prie ESP32. Galiausiai sukuriame ir sureguliuojame „Display“objektą.

// Įtraukimas į biblioteka būtinas #apima #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de de posição da imagem e 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 valdo programinės įrangos SSD1306 ekraną (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Šaltinio kodas: sąranka ()

Inicijuokite ekraną ir apverskite ekraną vertikaliai. Veiksmas neprivalomas.

void setup () {display.init (); // inicia o o display display.flipScreenVertically (); // apversti vertikalią menę a tela (pasirinktinai)}

Šaltinio kodas: Loop ()

Pirmas dalykas, kurį reikia padaryti, yra išvalyti ekraną. Mes įkeliame 1 kadrą į buferį naudodami pradines pozX ir posY pozicijas. Mes informuojame vaizdo dydį su frame1_width ir frame1_height, taip pat masyvo, kuriame yra vaizdo bitai, pavadinimą. Ekrane rodome buferį ir laukiame intervalo prieš rodydami kitą kadrą.

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

Mes kartojame procesą visiems kitiems kadrams.

// repete o processo para todos os outros kadrai display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); vėlavimas (intervalas); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); vėlavimas (intervalas); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); vėlavimas (intervalas); }

7 veiksmas: atlikite kodo įkėlimą

Atliekamas kodo įkėlimas
Atliekamas kodo įkėlimas
Atliekamas kodo įkėlimas
Atliekamas kodo įkėlimas
Atliekamas kodo įkėlimas
Atliekamas kodo įkėlimas

Atidarę IDE, atidarykite failą su šaltinio kodu dukart spustelėdami.ino failą arba eidami į meniu Failas.

Kai „Heltec“prijungtas prie USB, pasirinkite meniu Įrankiai => Kortelė: „Heltec_WIFI_LoRa_32“

Dar meniu Įrankiai pasirinkite COM prievadą, prie kurio prijungtas „Heltec“.

Spustelėkite mygtuką ĮKELTI…

… Ir laukti išvados.

8 žingsnis: failai

Atsisiųskite failus:

PDF

AŠ NE

Rekomenduojamas: