İçindekiler:

Giriş ESP32 Lora OLED Ekran: 8 Adım
Giriş ESP32 Lora OLED Ekran: 8 Adım

Video: Giriş ESP32 Lora OLED Ekran: 8 Adım

Video: Giriş ESP32 Lora OLED Ekran: 8 Adım
Video: Using Heltec ESP32 OLED Wifi Kit 2024, Kasım
Anonim
Image
Image
Giriş ESP32 Lora OLED Ekran
Giriş ESP32 Lora OLED Ekran

Bu, ESP32 LoRa'ya Giriş ile ilgili başka bir video. Bu sefer özellikle bir grafik ekrandan (128x64 piksel) bahsedeceğiz. Bu OLED ekrandaki bilgileri görüntülemek için SSD1306 kitaplığını kullanacağız ve XBM görüntüleri kullanarak bir animasyon örneği sunacağız.

Adım 1: Kullanılan Kaynaklar

Kullanılan Kaynaklar
Kullanılan Kaynaklar

1 Heltec WiFi LoRa 32

protokol

2. Adım: Ekran

Ekran
Ekran
Ekran
Ekran

Geliştirme kartında kullanılan ekran 0,96 inçlik bir OLED'dir.

128x64 boyutunda ve monokromdur.

I2C iletişimine sahiptir ve 3 kablo ile ESP32'ye bağlanır:

GPIO4'te SDA (veriler için)

GPIO15'te SCL (saat için)

GPIO16'da RST (sıfırlama ve ekran başlangıcı için)

3. Adım: SSD1306 Kitaplığı

SSD1306 Kitaplığı
SSD1306 Kitaplığı

Bu, Heltec-Aaron-Lee tarafından sağlanan kütüphane seti ile birlikte bulunabilir.

Dize yazmak, çizgi çizmek, dikdörtgenler, daireler ve görüntüleri görüntülemek için çeşitli işlevleri vardır.

github.com/Heltec-Aaron-Lee/WiFi_Kit_series

4. Adım: Animasyon ve XBM Dosyaları

Animasyon ve XBM Dosyaları
Animasyon ve XBM Dosyaları
Animasyon ve XBM Dosyaları
Animasyon ve XBM Dosyaları
Animasyon ve XBM Dosyaları
Animasyon ve XBM Dosyaları

Bir animasyonu görüntülemek için kütüphanenin drawXbm işlevini kullanacağız.

XBM görüntü formatı, her öğenin onaltılık bir değer aracılığıyla bir dizi monokrom pikseli (her biri 1 bit) metinsel olarak temsil ettiği bir karakter dizisinden oluşur. Bunlar bir bayta eşdeğerdir.

Tek bir baytı temsil etmek için birden çok karakter kullanıldığından, bu dosyalar şu anda benimsenen biçimlerden daha büyük olma eğilimindedir. Avantajı, önceden işleme gerek kalmadan doğrudan derlenebilmeleridir.

Diziye ek olarak, görüntü boyutunu belirleyen iki ayar dahildir.

Animasyonu oluşturmak için çerçeveleri oluşturacak görüntülere ihtiyacımız var.

Çalışmak için herhangi bir görüntü düzenleme yazılımını kullanabiliriz. Almamız gereken tek önlem, önce boyutu ekranla uyumlu tutmak ve monokrom dosyalar kullanmaktır.

Dosyaları oluşturmak için onları çizebilir veya görüntüleri içe aktarabiliriz. Burada PaintBrush kullanarak renkli bir görüntüyü düzenlemeye karar verdik ve çerçevelerin her birini çizdik.

Orijinal resim - 960x707 piksel --p.webp

Bir sonraki adım, monokrom bir bitmap olarak kaydederek monokrom yapmaktır.

Ardından, ekranla uyumlu bir boyuta yeniden boyutlandırıyoruz.

Ölçü birimlerine özellikle dikkat edin. Bu durumda, görüntüyü ekranın tüm yüksekliğini kaplayacak şekilde ayarladık (dikey = 64 piksel).

Görüntü doğru boyutta olduğunda, çerçeveleri oluşturacak şekilde düzenleyeceğiz. Burada, sinyal seviyesinin her bir yayını silip karşılık gelen çerçeveler olarak kaydediyoruz.

Şimdi, BMP dosyalarını XBM formatına dönüştürmemiz gerekiyor.

Bu dönüşümü yapabilen birkaç yazılım seçeneği vardır. Ayrıca bir editör seçeneği olarak GIMP'yi seçtik.

Örneğimizde, dosyaları oluşturmak ve düzenlemek için PaintBrush kullandık. Ancak, bu işlemlerin her biri Gimp'te (veya başka bir editörde) yapılabilirdi.

Dönüştürmek için önce dosyayı açıyoruz.

Resim açıkken File => Export as… seçeneğini seçebiliriz.

Görüntüyü Dışa Aktar penceresinde, XBM için hedef dosya uzantısını değiştirmeliyiz. Gimp, istenen formatı belirlemekten ve daha fazla seçenek sunmaktan sorumlu olacak…

Dışa aktarırken, Gimp başka seçenekler sunacaktır. Varsayılan değerleri bırakabiliriz.

Tüm dosyaları dönüştürdükten sonra, her kare için bir tane olmak üzere dört XBM dosyamız olacak.

Şimdi bunları kaynak kod klasörüne kopyalayalım ve uzantılarını.h olarak değiştirerek yeniden adlandıralım.

Adım 5: XBM Dosyalarından Çıkma

XBM Dosyalarından Çıkma
XBM Dosyalarından Çıkma

XBM dosyalarını, önceden tanımlanmış olan görüntü matrisi ve görüntü boyutu bilgilerini göreceğimiz herhangi bir metin düzenleyicide açabiliriz.

Adım 6: Kaynak Kodu

Kaynak Kodu: Açıklamalar

Görüntü dosyalarının yanı sıra gerekli kütüphaneleri de dahil edeceğiz. Görüntünün konumlarını ve geçiş aralığını tanımlarız. Ayrıca ESP32'ye bağlı OLED pinlerini de işaretliyoruz. Son olarak Display nesnesini oluşturup ayarlıyoruz.

//Gerekli kaynaklar olarak dahil et#include #include "SSD1306.h" //Görüntüler dahil #include "frame1.h" #include "frame2.h" #include "frame3.h" #include "frame4.h" //görüntüler arası konum tanımları ve geçişler için konum tanımları #define konumX 21 #tanım konum 0 #aralık 500 tanımlayın //ESP32 için pinler: I2C //OLED_SDA -- GPIO4 //OLED_SCL -- GPIO15 //OLED_RST - - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 //O RST yazılım kontrolü SSD1306 ekran(0x3c, SDA, SCL, RST); //Cria e ajusta o Objeto gösterimi

Kaynak Kodu: Kurulum ()

Ekranı başlatın ve ekranı dikey olarak ters çevirin. Eylem isteğe bağlıdır.

geçersiz kurulum() { display.init(); //inicia o display.flipScreenVertically(); //dikeymente a tela'yı ters çevir (isteğe bağlı) }

Kaynak Kodu: Döngü ()

Döngüde yapılacak ilk şey ekranı temizlemektir. posX ve posY başlangıç konumlarını kullanarak çerçeve 1'i arabelleğe yüklüyoruz. Frame1_width ve frame1_height ile görüntünün boyutunu ve görüntünün bitlerini içeren dizinin adını bildiririz. Arabelleği ekranda gösteriyoruz ve bir sonraki kareyi göstermeden önce bir süre bekliyoruz.

geçersiz döngü() { display.clear(); //limpa tela //carrega para o frame 1 //konum olarak posições iniciais posX e posY olarak usando //bu tamanho da imagem com frame1_width ve frame1_height //görüntüleme ve çerçeve bilgisi yok, görüntü çerçevesi yok, çerçeve1_bit yok display.drawXbm(pozX, pozY, kare1_genişlik, kare1_yükseklik, kare1_bits); //mostra o arabellek görüntü yok display.display(); //aralıklı çerçeve gecikmesi (intervalo);

İşlemi diğer tüm kareler için tekrarlıyoruz.

//tekrar veya işlem para todos os çıkış çerçeveleri display.clear(); display.drawXbm(posX, konum, çerçeve2_genişliği, çerçeve2_yüksekliği, çerçeve2_bits); display.display(); gecikme(aralık); display.clear(); display.drawXbm(posX, konum, çerçeve3_genişliği, çerçeve3_yüksekliği, çerçeve3_bits); display.display(); gecikme(aralık); display.clear(); display.drawXbm(posX, posY, çerçeve4_genişliği, çerçeve4_yüksekliği, çerçeve4_bits); display.display(); gecikme(aralık); }

Adım 7: Kodun Yüklenmesinin Yapılması

UpLoad of Code Yapmak
UpLoad of Code Yapmak
UpLoad of Code Yapmak
UpLoad of Code Yapmak
UpLoad of Code Yapmak
UpLoad of Code Yapmak

IDE açıkken,.ino dosyasına çift tıklayarak veya Dosya menüsüne giderek kaynak kodlu dosyayı açın.

Heltec USB'ye bağlıyken Araçlar => Kart menüsünü seçin: "Heltec_WIFI_LoRa_32"

Yine Araçlar menüsünde, Heltec'in bağlı olduğu COM portunu seçin.

YÜKLE düğmesine tıklayın…

… Ve sonucu bekleyin.

8. Adım: Dosyalar

Dosyaları indirin:

PDF

BEN HAYIR

Önerilen: