Turinys:
- 1 žingsnis: naudojami ištekliai
- 2 žingsnis: ekranas
- 3 veiksmas: SSD1306 biblioteka
- 4 žingsnis: animacija ir XBM failai
- 5 veiksmas: išeikite iš XBM failų
- 6 žingsnis: šaltinio kodas
- 7 veiksmas: atlikite kodo įkėlimą
- 8 žingsnis: failai
Video: Įvadas ESP32 Lora OLED ekranas: 8 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
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
1 „Heltec WiFi LoRa 32“
Protoboard
2 žingsnis: 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
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
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ų
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ą
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:
AŠ NE
Rekomenduojamas:
„Bluetooth“valdomas „Messenger“skystųjų kristalų ekranas -- 16x2 skystųjų kristalų ekranas -- Hc05 -- Paprasta -- Belaidžio ryšio skelbimų lenta: 8 žingsniai
„Bluetooth“valdomas „Messenger“skystųjų kristalų ekranas || 16x2 skystųjų kristalų ekranas || Hc05 || Paprasta || Belaidžio ryšio skelbimų lenta: …………………………. Prenumeruokite mano „YouTube“kanalą, kad gautumėte daugiau vaizdo įrašų …… ………………………………… Skelbimų lenta naudojama žmonėms atnaujinti nauja informacija arba jei norite išsiųsti pranešimą kambaryje arba po
TTGO (spalvotas) ekranas su mikropitonu (TTGO T-ekranas): 6 žingsniai
TTGO (spalvotas) ekranas su „Micropython“(TTGO T-ekranas): „TTGO T-Display“yra plokštė, pagrįsta ESP32, kurioje yra 1,14 colio spalvotas ekranas. Lentą galima nusipirkti už mažesnį nei 7 USD prizą (įskaitant pristatymą, prizas matomas „banggood“). Tai neįtikėtinas prizas už ESP32, įskaitant ekraną. T
Įvadas „LoRa“ir modulis RFM95 / RFM95W „Hoperf“: 5 žingsniai
Įvadas „LoRa“ir modulis RFM95 / RFM95W „Hoperf“: Šia proga trumpai apibūdinsime „LoRa &trade“; ir ypač „Hoperf Electronics“gaminamas radijas RFM95/96. Kadangi prieš porą mėnesių atvyko 2 moduliai, iš pradžių noriu įvesti šią temą
ESP32 ir OLED ekranas: interneto laikrodis - DHT22: 10 žingsnių (su nuotraukomis)
ESP32 ir OLED ekranas: internetinis laikrodis - DHT22: šis „Instructable“konkuruoja konkurse: „GIF iššūkis 2017“, jei jums tai patinka, balsuokite spustelėję aukščiau esančią reklamjuostę. Labai ačiū! ;-) Ši pamoka yra kelionės tęsinys, norint sužinoti daugiau apie šį puikų daiktų interneto įrenginį
TOD: diodų matricos ROM įvadas (7 segmentų ekranas): 7 žingsniai
TOD: diodų matricos ROM įvadas (7 segmentų ekranas): tonų diodų Nauja instrukcijų serija, kurioje bus naudojamos tonos ir tonos diodų. Jokie IC nėra garsiai, vieninteliai puslaidininkiai yra diodai ir tranzistoriai. Vieninteliai garsiai pasyvūs komponentai yra kondensatoriai, rezistoriai, jungikliai, induktoriai ir