Satura rādītājs:

Ievads ESP32 Lora OLED displejs: 8 soļi
Ievads ESP32 Lora OLED displejs: 8 soļi

Video: Ievads ESP32 Lora OLED displejs: 8 soļi

Video: Ievads ESP32 Lora OLED displejs: 8 soļi
Video: How to Install and Setup TTGO T-Display ( Getting Started tutorial LILYGO® TTGO T-Display ESP32 ) 2024, Jūlijs
Anonim
Image
Image
Ievads ESP32 Lora OLED displejs
Ievads ESP32 Lora OLED displejs

Šis ir vēl viens video par ESP32 LoRa ievadu. Šoreiz mēs runāsim īpaši par grafisko displeju (128x64 pikseļi). Mēs izmantosim SSD1306 bibliotēku, lai parādītu informāciju par šo OLED displeju un parādītu animācijas piemēru, izmantojot XBM attēlus.

1. darbība. Izmantotie resursi

Izmantotie resursi
Izmantotie resursi

1 Heltec WiFi LoRa 32

Protoboard

2. darbība: displejs

Displejs
Displejs
Displejs
Displejs

Izstrādes panelī izmantotais displejs ir 0,96 collu OLED.

Tas ir 128x64 un ir vienkrāsains.

Tam ir I2C komunikācija, un tas ir savienots ar ESP32, izmantojot 3 vadus:

SDA GPIO4 (datiem)

SCL uz GPIO15 (pulkstenim)

RST uz GPIO16 (atiestatīšanai un displeja sākšanai)

3. darbība: SSD1306 bibliotēka

SSD1306 bibliotēka
SSD1306 bibliotēka

To var atrast kopā ar bibliotēku komplektu, ko nodrošina Heltec-Aaron-Lee.

Tam ir vairākas funkcijas, lai rakstītu virknes, zīmētu līnijas, taisnstūrus, apļus un parādītu attēlus.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

4. darbība: animācijas un XBM faili

Animācijas un XBM faili
Animācijas un XBM faili
Animācijas un XBM faili
Animācijas un XBM faili
Animācijas un XBM faili
Animācijas un XBM faili

Mēs izmantosim bibliotēkas funkciju drawXbm, lai parādītu animāciju.

XBM attēla formāts sastāv no rakstzīmju masīva, kur katrs elements tekstuāli attēlo vienkrāsainu pikseļu kopu (katrs 1 bits), izmantojot heksadecimālu vērtību. Tie ir līdzvērtīgi vienam baitam.

Tā kā viena baita attēlošanai tiek izmantotas vairākas rakstzīmes, šie faili mēdz būt lielāki par tiem, kas iegūti pašlaik pieņemtajos formātos. Priekšrocība ir tāda, ka tos var apkopot tieši bez iepriekšējas apstrādes.

Papildus masīvam ir iekļauti divi iestatījumi, kas nosaka attēla izmēru.

Lai izveidotu animāciju, mums nepieciešami attēli, kas veidos rāmjus.

Lai strādātu, mēs varam izmantot jebkuru attēlu rediģēšanas programmatūru. Vienīgie piesardzības pasākumi, kas mums būtu jāveic, ir vispirms saglabāt izmēru saderīgu ar displeju un izmantot vienkrāsainus failus.

Lai ģenerētu failus, mēs varam tos uzzīmēt vai importēt attēlus. Šeit mēs nolēmām rediģēt krāsainu attēlu, izmantojot PaintBrush, un mēs uzzīmējām katru no rāmjiem

Oriģinālais attēls - 960x707 pikseļi --p.webp

Nākamais solis ir padarīt to vienkrāsainu, saglabājot to kā vienkrāsainu bitkarti.

Pēc tam mēs to mainām līdz izmēram, kas ir saderīgs ar displeju.

Pievērsiet īpašu uzmanību mērvienībām. Šajā gadījumā mēs pielāgojām attēlu tā, lai tas aizņemtu visu displeja augstumu (vertikāli = 64 pikseļi).

Ja attēls ir pareiza izmēra, mēs to rediģēsim, veidojot rāmjus. Šeit mēs izdzēšam katru signāla līmeņa loka un saglabājam tos kā atbilstošos kadrus.

Tagad mums ir jāpārvērš BMP faili XBM formātā.

Ir vairākas programmatūras iespējas, kas var veikt šo konvertēšanu. Mēs arī izvēlējāmies GIMP kā redaktora iespēju.

Mūsu piemērā failu ģenerēšanai un rediģēšanai izmantojām PaintBrush. Tomēr katru no šiem procesiem varēja veikt Gimp (vai jebkurā citā redaktorā).

Lai konvertētu, vispirms atveram failu.

Kad attēls ir atvērts, mēs varam izvēlēties File => Export as…

Logā Eksportēt attēlu mums ir jāmaina XBM galamērķa faila paplašinājums. Gimp būs atbildīgs par vēlamā formāta noteikšanu un papildu iespēju piedāvāšanu …

Eksportējot, Gimp piedāvās citas iespējas. Mēs varam atstāt noklusējuma vērtības.

Pēc visu failu konvertēšanas mums būs četri XBM faili, viens katram kadram.

Tagad kopēsim tos avota koda mapē un pārdēvēsim, mainot to paplašinājumus uz.h.

5. darbība. Iziešana no XBM failiem

Iziet no XBM failiem
Iziet no XBM failiem

Mēs varam atvērt XBM failus jebkurā teksta redaktorā, kur mēs redzēsim attēla matricas un attēla lieluma informāciju, kas jau bija definēta.

6. darbība: avota kods

Avota kods: paziņojumi

Mēs iekļausim nepieciešamās bibliotēkas, kā arī attēlu failus. Mēs definējam attēla pozīcijas un pārejas intervālu. Mēs arī norādām OLED tapas, kas savienotas ar ESP32. Visbeidzot, mēs izveidojam un pielāgojam displeja objektu.

// Incluindo as bibliotecas needsárias #include #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // definições de poziçã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 attīstās programmatūras SSD1306 displejs (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Avota kods: iestatīšana ()

Inicializējiet displeju un apgrieziet ekrānu vertikāli. Darbība nav obligāta.

void setup () {display.init (); // inicia vai displeja displejs.flipScreenVertically (); // apgriezt vertikāli tela (opcionāls)}

Avota kods: Loop ()

Pirmā lieta, kas jādara, ir notīrīt ekrānu. Mēs ielādējam 1. rāmi buferī, izmantojot posX un posY sākotnējās pozīcijas. Mēs informējam attēla lielumu ar frame1_width un frame1_height, kā arī masīva nosaukumu, kurā ir attēla biti. Mēs parādām buferi displejā un gaidām intervālu, pirms tiek parādīts nākamais kadrs.

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 bez displeja displeja.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);

Mēs atkārtojam procesu visiem pārējiem kadriem.

// repete o processo para todos os outros frames display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); kavēšanās (intervāls); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); kavēšanās (intervāls); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); kavēšanās (intervāls); }

7. darbība: koda augšupielāde

Veicot koda augšupielādi
Veicot koda augšupielādi
Veicot koda augšupielādi
Veicot koda augšupielādi
Veicot koda augšupielādi
Veicot koda augšupielādi

Atverot IDE, atveriet failu ar avota kodu, veicot dubultklikšķi uz.ino faila vai dodoties uz izvēlni Fails.

Kad Heltec ir pievienots USB, izvēlieties izvēlni Tools => Card: "Heltec_WIFI_LoRa_32"

Joprojām izvēlnē Rīki atlasiet COM portu, kuram ir pievienots Heltec.

Noklikšķiniet uz UPLOAD pogas…

… Un gaidiet secinājumu.

8. darbība: faili

Lejupielādējiet failus:

PDF

ES NĒ

Ieteicams: