Sisällysluettelo:

Johdanto ESP32 Lora OLED -näyttö: 8 vaihetta
Johdanto ESP32 Lora OLED -näyttö: 8 vaihetta

Video: Johdanto ESP32 Lora OLED -näyttö: 8 vaihetta

Video: Johdanto ESP32 Lora OLED -näyttö: 8 vaihetta
Video: Управление 32 серводвигателями с PCA9685 и ESP32 - V4 2024, Heinäkuu
Anonim
Image
Image
Johdanto ESP32 Lora OLED -näyttö
Johdanto ESP32 Lora OLED -näyttö

Tämä on toinen video ESP32 LoRan esittelystä. Tällä kertaa puhumme erityisesti graafisesta näytöstä (128x64 pikseliä). Käytämme SSD1306 -kirjastoa tietojen näyttämiseen tästä OLED -näytöstä ja esitämme esimerkin XBM -kuvia käyttävistä animaatioista.

Vaihe 1: Käytetyt resurssit

Käytetyt resurssit
Käytetyt resurssit

1 Heltec WiFi LoRa 32

Protoboard

Vaihe 2: Näyttö

Näyttö
Näyttö
Näyttö
Näyttö

Kehityskortilla käytetty näyttö on 0,96 tuuman OLED.

Se on 128x64 ja on yksivärinen.

Siinä on I2C -tiedonsiirto ja se on kytketty ESP32: een 3 johdolla:

SDA GPIO4: ssä (data)

SCL GPIO15: ssä (kello)

RST GPIO16: ssa (nollaus ja näytön käynnistys)

Vaihe 3: SSD1306 -kirjasto

SSD1306 -kirjasto
SSD1306 -kirjasto

Tämä löytyy Heltec-Aaron-Leen tarjoamien kirjastojen joukosta.

Siinä on useita toimintoja merkkijonojen, viivojen, suorakulmioiden, ympyröiden ja kuvien kirjoittamiseen.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

Vaihe 4: Animaatio- ja XBM -tiedostot

Animaatio- ja XBM -tiedostot
Animaatio- ja XBM -tiedostot
Animaatio- ja XBM -tiedostot
Animaatio- ja XBM -tiedostot
Animaatio- ja XBM -tiedostot
Animaatio- ja XBM -tiedostot

Käytämme kirjaston drawXbm -toimintoa animaation näyttämiseen.

XBM -kuvamuoto koostuu merkkijoukosta, jossa jokainen elementti edustaa tekstillisesti yksiväristen pikselien joukkoa (1 bitti kukin) heksadesimaalisen arvon kautta. Nämä vastaavat yhtä tavua.

Koska yhtä tavua edustavat useat merkit, nämä tiedostot ovat yleensä suurempia kuin tällä hetkellä hyväksytyt muodot. Etuna on, että ne voidaan koota suoraan ilman edeltävää käsittelyä.

Taulukon lisäksi mukana on kaksi kuvan kokoa määrittävää asetusta.

Animaation rakentamiseksi tarvitsemme kuvia, jotka muodostavat kehykset.

Voimme käyttää mitä tahansa kuvankäsittelyohjelmistoa päästäksemme töihin. Ainoat varotoimenpiteet, jotka meidän on toteutettava, on pitää koko ensin yhteensopivana näytön kanssa ja käyttää yksivärisiä tiedostoja.

Tiedostojen luomiseksi voimme piirtää ne tai tuoda kuvia. Tässä päätimme muokata värikuvan PaintBrushilla ja piirsimme jokaisen kehyksen

Alkuperäinen kuva - 960x707 pikseliä --p.webp

Seuraava askel on tehdä siitä yksivärinen tallentamalla se yksiväriseksi bittikarttaksi.

Sitten muutamme sen koon näytön kanssa yhteensopivaksi.

Kiinnitä erityistä huomiota mittayksiköihin. Tässä tapauksessa säädimme kuvan niin, että se otti koko näytön korkeuden (pystysuora = 64 pikseliä).

Kun kuva on oikean kokoinen, muokkaamme sitä kehysten muodostamiseksi. Täällä poistamme jokaisen signaalitason kaaren ja tallennamme ne vastaaviksi kehyksiksi.

Nyt meidän on muunnettava BMP -tiedostot XBM -muotoon.

On olemassa useita ohjelmistovaihtoehtoja, jotka voivat tehdä tämän muunnoksen. Valitsimme myös GIMP: n editorin vaihtoehdoksi.

Esimerkissämme käytimme PaintBrushia tiedostojen luomiseen ja muokkaamiseen. Kuitenkin jokainen näistä prosesseista olisi voitu suorittaa Gimpissä (tai missä tahansa muussa editorissa).

Muuntamiseksi avaamme ensin tiedoston.

Kun kuva on auki, voimme valita File => Export as…

Vie kuva -ikkunassa meidän on muutettava XBM: n kohdetiedostotunniste. Gimp vastaa halutun muodon tunnistamisesta ja lisää vaihtoehtoja…

Viennissä Gimp esittelee muita vaihtoehtoja. Voimme jättää oletusarvot.

Kaikkien tiedostojen muuntamisen jälkeen meillä on neljä XBM -tiedostoa, yksi kutakin kehystä kohden.

Kopioidaan nyt ne lähdekoodikansioon ja nimetään ne muuttamalla niiden laajennukset.h.

Vaihe 5: XBM -tiedostoista poistuminen

Poistutaan XBM -tiedostoista
Poistutaan XBM -tiedostoista

Voimme avata XBM -tiedostot missä tahansa tekstieditorissa, jossa näemme jo määritellyn kuvamatriisin ja kuvakoon tiedot.

Vaihe 6: Lähdekoodi

Lähdekoodi: Lausunnot

Sisällytämme tarvittavat kirjastot sekä kuvatiedostot. Määritämme kuvan sijainnit ja siirtymävälin. Osoitamme myös ESP32: een liitetyt OLED -nastat. Lopuksi luomme ja säädä Display -objekti.

// Sisällytä bibliotecas välttämättömyyksiksi #include #include "SSD1306.h" // Incluindo os arquivos de imagem #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" // kuvan määritelmät kuvan määrittämisestä ja intervallin siirtämisestä #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 kehittää ohjelmiston SSD1306 -näyttö (0x3c, SDA, SCL, RST); // Cria e ajusta tai Objeto -näyttö

Lähdekoodi: Setup ()

Alusta näyttö ja käännä näyttö pystysuunnassa. Toiminta on valinnaista.

void setup () {display.init (); // aloita tai näyttö display.flipScreenVertically (); // käännä pystysuora menta tela (valinnainen)}

Lähdekoodi: Loop ()

Ensimmäinen tehtävä silmukassa on näytön tyhjentäminen. Ladataan kehys 1 puskuriin käyttämällä posX- ja posY -alkuasentoja. Ilmoitamme kuvan koosta frame1_width ja frame1_height sekä kuvan bitit sisältävän taulukon nimen. Näytämme puskurin näytöllä ja odotamme väliaikaa ennen seuraavan kehyksen näyttämistä.

void loop () {display.clear (); // limpa tela // carrega para o puskuri o frame 1 // usando as posições iniciais posX e posY // informaatio tamanho da imagem com frame1_width e frame1_height // informaatiotiedot matriisi que contem os bits da imagem, no caso frame1_bits display.drawXbm (posX, posY, frame1_width, frame1_height, frame1_bits); // Mostra o puskuri ei näyttöä.display (); // aguarda um intervalo antes de mostrar o próximo frame delay (intervalo);

Toistamme prosessin kaikille muille kehyksille.

// repete o processo para todos os outros kehykset display.clear (); display.drawXbm (posX, posY, frame2_width, frame2_height, frame2_bits); display.display (); viive (intervalo); display.clear (); display.drawXbm (posX, posY, frame3_width, frame3_height, frame3_bits); display.display (); viive (intervalo); display.clear (); display.drawXbm (posX, posY, frame4_width, frame4_height, frame4_bits); display.display (); viive (intervalo); }

Vaihe 7: Koodin lataaminen

Koodin lataaminen
Koodin lataaminen
Koodin lataaminen
Koodin lataaminen
Koodin lataaminen
Koodin lataaminen

Kun IDE on auki, avaa lähdekooditiedosto kaksoisnapsauttamalla.ino-tiedostoa tai siirtymällä Tiedosto-valikkoon.

Kun Heltec on kytketty USB: hen, valitse valikko Tools => Card: "Heltec_WIFI_LoRa_32"

Valitse edelleen Työkalut -valikosta COM -portti, johon Heltec on kytketty.

Napsauta LATAA -painiketta…

… Ja odota päätelmää.

Vaihe 8: Tiedostot

Lataa tiedostot:

PDF

INO

Suositeltava: