INHOUDSOPGAWE:

Inleiding ESP32 Lora OLED -skerm: 8 stappe
Inleiding ESP32 Lora OLED -skerm: 8 stappe

Video: Inleiding ESP32 Lora OLED -skerm: 8 stappe

Video: Inleiding ESP32 Lora OLED -skerm: 8 stappe
Video: #182 ESP32 Lora Boards: What you need to know before you buy (incl. Antenna knowledge) 2024, November
Anonim
Image
Image
Inleiding ESP32 Lora OLED -skerm
Inleiding ESP32 Lora OLED -skerm

Dit is nog 'n video oor die inleiding tot die ESP32 LoRa. Hierdie keer praat ons spesifiek oor 'n grafiese skerm (van 128x64 pixels). Ons sal die SSD1306 -biblioteek gebruik om inligting oor hierdie OLED -skerm te vertoon en 'n voorbeeld van animasie met XBM -beelde aan te bied.

Stap 1: Hulpbronne gebruik

Hulpbronne gebruik
Hulpbronne gebruik

1 Heltec WiFi LoRa 32

Protobord

Stap 2: Die skerm

Die vertoning
Die vertoning
Die vertoning
Die vertoning

Die skerm wat op die ontwikkelingsbord gebruik word, is 'n OLED van 0,96 duim.

Dit het 128x64 en is monochroom.

Dit het I2C -kommunikasie en is via 3 drade aan die ESP32 gekoppel:

SDA op GPIO4 (vir data)

SCL op GPIO15 (vir klok)

RST op GPIO16 (vir herstel en vertoning begin)

Stap 3: Die SSD1306 -biblioteek

Die SSD1306 -biblioteek
Die SSD1306 -biblioteek

Dit kan gevind word saam met die stel biblioteke wat deur Heltec-Aaron-Lee verskaf word.

Dit het verskeie funksies vir die skryf van snare, tekenlyne, reghoeke, sirkels en die vertoon van beelde.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Stap 4: Die animasie- en XBM -lêers

Die animasie- en XBM -lêers
Die animasie- en XBM -lêers
Die animasie- en XBM -lêers
Die animasie- en XBM -lêers
Die animasie- en XBM -lêers
Die animasie- en XBM -lêers

Ons sal die drawXbm -funksie van die biblioteek gebruik om 'n animasie te vertoon.

Die XBM -beeldformaat bestaan uit 'n verskeidenheid karakters waar elke element 'n stel monochrome pixels (1 bis elk) in 'n heksadesimale waarde verteenwoordig. Dit is gelykstaande aan een greep.

Omdat verskeie karakters gebruik word om 'n enkele greep voor te stel, is hierdie lêers geneig om groter te wees as dié van die huidige formate. Die voordeel is dat hulle direk saamgestel kan word sonder dat vooraf behandeling nodig is.

Benewens die skikking, word twee instellings ingesluit wat die beeldgrootte bepaal.

Om die animasie te bou, benodig ons die beelde wat die rame sal vorm.

Ons kan enige beeldbewerkingsagteware gebruik om aan die werk te kom. Die enigste voorsorgmaatreël wat ons moet neem, is om eers die grootte versoenbaar te hou met die skerm en monochrome lêers te gebruik.

Om die lêers te genereer, kan ons dit teken of beelde invoer. Hier het ons besluit om 'n kleurbeeld met PaintBrush te wysig, en ons het elkeen van die rame geteken

Oorspronklike beeld - 960x707 pixels --p.webp

Die volgende stap is om dit monochroom te maak deur dit as 'n monochrome bitmap te stoor.

Dan verander ons die grootte daarvan tot 'n grootte wat versoenbaar is met die skerm.

Gee spesifieke aandag aan die maateenhede. In hierdie geval het ons die beeld so aangepas dat dit die hele hoogte van die skerm beslaan (vertikaal = 64 pixels).

Met die prentjie in die korrekte grootte, wysig ons dit om die rame te vorm. Hier vee ons elke boog van seinvlak uit en stoor dit as ooreenstemmende rame.

Nou moet ons BMP -lêers omskakel in XBM -formaat.

Daar is verskeie sagteware -opsies wat hierdie omskakeling kan doen. Ons het ook GIMP gekies as redakteuropsie.

In ons voorbeeld het ons PaintBrush gebruik om die lêers te genereer en te wysig. Elkeen van hierdie prosesse kon egter in Gimp (of enige ander redakteur) gedoen gewees het.

Om dit te omskep, maak ons eers die lêer oop.

Met die prentjie oop, kan ons File => Export as …

In die venster Uitvoer beeld moet ons die bestemmingslêeruitbreiding vir XBM verander. Gimp is verantwoordelik vir die identifisering van die gewenste formaat en meer opsies …

By die uitvoer sal Gimp ander opsies aanbied. Ons kan die standaardwaardes verlaat.

Nadat ons al die lêers omskep het, sal ons vier XBM -lêers hê, een vir elke raam.

Laat ons dit nou na die bronkode -gids kopieer en dit hernoem deur hul uitbreidings na.h te verander.

Stap 5: Verlaat XBM -lêers

Verlaat XBM -lêers
Verlaat XBM -lêers

Ons kan die XBM -lêers in enige teksredakteur oopmaak, waar ons die beeldmatriks en inligting oor die beeldgrootte wat reeds gedefinieer is, sal sien.

Stap 6: Bronkode

Bronkode: verklarings

Ons sal die nodige biblioteke sowel as die beeldlêers insluit. Ons definieer die posisies van die beeld en die oorgangsinterval. Ons wys ook die OLED -penne wat aan die ESP32 gekoppel is. Uiteindelik skep en pas ons die Display -voorwerp aan.

// 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 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 #definieer SDA 4 #definieer SCL 15 #definieer RST 16 // O RST ontwikkel kontrole deur sagteware SSD1306 -skerm (0x3c, SDA, SCL, RST); // Cria e ajusta o Objeto display

Bronkode: Opstelling ()

Begin die skerm en draai die skerm vertikaal om. Aksie is opsioneel.

ongeldige opstelling () {display.init (); // inisie o display display.flipScreenVertically (); // inverte verticalmente a tela (opsioneel)}

Bronkode: Loop ()

Die eerste ding wat u moet doen, is om die skerm skoon te maak. Ons laai raam 1 in die buffer met behulp van die posX en posY beginposisies. Ons lig die grootte van die prent in met frame1_width en frame1_height, en die naam van die skikking wat die stukkies van die prent bevat. Ons wys die buffer op die skerm en wag 'n rukkie voordat die volgende raam vertoon word.

leemte -lus () {display.clear (); // limpa tela // carrega para o buffer 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 contem os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // Mostra o buffer no display display.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);

Ons herhaal die proses vir alle ander rame.

// herhaal of verwerk vir ons outros rame display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); vertoon.display (); vertraging (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); vertoon.display (); vertraging (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); vertoon.display (); vertraging (intervalo); }

Stap 7: Doen die oplaai van kode

Die oplaai van kode
Die oplaai van kode
Die oplaai van kode
Die oplaai van kode
Die oplaai van kode
Die oplaai van kode

As die IDE oop is, maak u die lêer met die bronkode oop deur te dubbelklik op die.ino-lêer of deur na die menu File te gaan.

As Heltec aan USB gekoppel is, kies die spyskaart Tools => Card: "Heltec_WIFI_LoRa_32"

Kies nog steeds in die menu Gereedskap die COM -poort waar die Heltec verbind is.

Klik op die UPLOAD -knoppie …

… En wag vir die gevolgtrekking.

Stap 8: lêers

Laai die lêers af:

PDF

EK NEE

Aanbeveel: