LVGL, Cheap Yellow Display kullanıcı arayüzlerinin çoğunu destekleyen grafik kütüphanesi

Cheap Yellow Display (resmi olarak ESP32-2432S028R), bir ESP32’yi 2,8 inçlik 320x240 dirençli dokunmatik ekran, SD kart yuvası, RGB LED ve ışık sensörü ile birleştiren küçük bir geliştirme kartıdır; tümü on dolardan az bir fiyatla. 2024’te havalanıp, 2026 yılına kadar masada, duvarda veya 3D yazıcının ön yüzünde gerçek bir dokunmatik ekran isteyen herkes için varsayılan hedef haline gelmiştir. Donanım hikayenin yalnızca yarısıdır. Diğer yarısı, kullanıcı arayüzleri tasarlamak, firmware yazmak ve derlemeleri karta push etmek için kullandığımız masaüstü araç zinciridir. Aşağıda, CYD projesi üzerinde çalışırken en sık kullandığımız yedi araç verilmiştir; ilk yanıp sönen pikselden cilalı bir akıllı ev panosuna kadar.

CYD aracında ne aramalı

CYD tuhaftır. SPI üzerinden ILI9341 ekran sürücüsü ve ayrı bir SPI veri yolunda XPT2046 dirençli dokunmatik kontrolör kullanır ve pin atamaları çoğu ESP32 öğreticisinin varsaydığı şeyler değildir. Bu, CYD işi için iyi bir aracın belirli özellikleri olması anlamına gelir.

Aşağıdaki her şey bu beşten en az üçü konusunda iyi puan alır.

Hızlı karşılaştırma

Araç Şu amaçlar için en iyi Platformlar Ücretsiz veya ücretli Öne çıkan özellik
LVGL Grafik katmanının kendisi Windows, macOS, Linux Ücretsiz, MIT CYD ve masaüstü simülatöründe aynı C kodunu çalıştırır
SquareLine Studio Kullanıcı arayüzlerini görsel olarak tasarlama Windows, macOS, Linux Ücretsiz kişisel katman, ücretli Pro Temiz LVGL C proje kodunu dışa aktarır
PlatformIO Derlemeleri ve kütüphaneleri yönetme Windows, macOS, Linux Ücretsiz çekirdek, ücretli Home özellikleri Bir platformio.ini kartları, bağımlılıkları ve OTA’yı işler
Arduino IDE 2 İlk CYD projesi Windows, macOS, Linux Ücretsiz Board Manager, ESP32 çekirdeğini iki tıklamada bulur
ESP-IDF Derin firmware ve alt seviye çalışması Windows, macOS, Linux Ücretsiz Espressif sürücülerine ve RTOS özelliklerine tam erişim
MicroPython Python’da hızlı prototipleme Windows, macOS, Linux Ücretsiz USB üzerinde canlı REPL, derleme adımı yok
ESPHome Home Assistant panoları Windows, macOS, Linux Ücretsiz YAML yapılandırması firmware’a derlenir, C gerekmez

Araçlar

1. LVGL – Grafik katmanı için en iyi

LVGL (Light and Versatile Graphics Library), CYD ile çalışmanın eğlenceli olmasının nedenidir. Bize 320x240 ekranda modern görünen düğmeler, kaydırıcılar, grafikler, klavyeler ve animasyonlar sağlar ve neredeyse her framebuffer’lı mikrodenetleyicide çalışır. Sürüm 9, bellek ayak izini sıkılaştırdı ve ekran ve giriş sürücüsü API’lerini basitleştirdi; bu, ESP32’nin sıkı RAM bütçesinde önemlidir.

Yeni başlayanlar için önemli özellik masaüstü simülatörüdür: CYD’yi çalıştıran aynı C kodu dizüstü bilgisayarımızdaki bir SDL penceresinde çalışabilir, böylece karta dokunmadan düzeni ve etkileşimi yineleyebiliriz. Yüklediğimizde, LVGL aynı lv_conf.h dosyası ile PlatformIO, Arduino ve ESP-IDF projelerine sorunsuz bir şekilde uyum sağlar.

CYD’de iki düğmeli demothan daha parlak olan hemen hemen her şey kesinlikle kaput altında LVGL kullanır.

İndir: Site . GitHub

2. SquareLine Studio – Kullanıcı arayüzlerini görsel olarak tasarlama için en iyi

LVGL widget’larını elle yazmak bir veya iki ekran için iyidir. Bunun ötesinde, bir tuval istiyoruz. SquareLine Studio, özel olarak LVGL için oluşturulmuş bir sürükle ve bırak UI editörüdür: ekranları düzenleriz, olay işleyicilerini bağlarız, yazı tiplerini seçeriz, görseller bırakırız ve sonra PlatformIO veya Arduino’ya bırakmaya hazır tam bir LVGL C projesi almak için dışa aktarın.

Ücretsiz kişisel katman hobi CYD derlemeleri için yeterince cömerttir ve topluluğun etrafında dolaşan bir CYD şablonu vardır; doğru 320x240 çözünürlüğü ve ILI9341 sürücü ayarlarını tohumlar. Pro katmanı sınırsız ekranlar, özel widget’lar ve varlıkları SD karta tutma yeteneğini açar; projeler satmaya başlarsanız buna değer.

Bizim için işe yarayan iş akışı: SquareLine’da UI’yı çiziniz, dışa aktarınız, sonra oluşturulan ui_events.c‘yi Wi-Fi, sensör veya MQTT mantığını bağlamak için elle düzenleyin.

İndir: Site

3. PlatformIO – Derlemeleri ve kütüphaneleri yönetmek için en iyi

Bir proje birden fazla dosyaya sahip olduğunda, PlatformIO kendi başına ödünü verir. VS Code’un içinde bir uzantı olarak çalışır (ve birkaç başka editör de) ve hobici ESP32 çalışmasına acı veren geçici derleme adımlarını karta, framework’ü, kütüphaneleri ve yükleme yöntemini bildiren tek bir platformio.ini ile değiştirir.

CYD çalışması için desen şudur: board = esp32dev seçin, LVGL ve TFT_eSPI veya LovyanGFX ekran kütüphanesini lib_deps olarak ekleyin ve doğru User_Setup.h dosyasını include/ klasörüne bırakın, böylece pin’ler CYD’nin kablolama tasarımı ile eşleşir. Buradan, tek bir tık derler, yükler ve seri monitörünü açar. Wi-Fi üzerinden OTA, upload_protocol dosyasında tek satırlık bir değişikliktir; bu, bir bezelin arkasına monte edilmiş kartlar için büyük bir yaşam kalitesi kazanımıdır.

Kütüphane sürümleri yapılandırma dosyasında sabitlenir, bu nedenle geçen yıl derlenen bir proje bu yıl da derlenir. Bunu her ESP32 öğreticisi hakkında söyleyemeyiz.

İndir: Site . GitHub

4. Arduino IDE 2 – İlk CYD projesi için en iyi

Arduino IDE 2 (geçerli kararlı yayın, eski Java 1.x değil) çoğu insanın CYD ile başladığı yerdir ve kalma konusunda bir utanç yoktur. Board Manager aracılığıyla ESP32 pano paketini işler, otomatik tamamlama özelliğine sahip hızlı bir Monaco tabanlı editör gönderir ve yerleşik seri monitör ve çizici ile birlikte gelir.

Örnek tarayıcı, yeni başlayanlar için en iyi sınıf keşif aracıdır: TFT_eSPI, XPT2046_Touchscreen ve LVGL kütüphanelerini yükleyin ve Dosya menüsünde düzinelerce çalıştırılabilir taslak görünür. YouTube ve GitHub’daki çoğu CYD öğreticisi Arduino için yazılmıştır, bu nedenle takip etmek hiçbir engelle gerçekleşir.

Donanımda bir şeyin çalıştığını kanıtlamak için tek dosyalı bir taslak istediğimizde ve proje büyüdükçe PlatformIO’ya taşıdığımızda tercih ederiz.

İndir: Site

5. ESP-IDF – Derin firmware çalışması için en iyi

Arduino soyutlamasını aştıktan sonra, Espressif’in kendi SDK’sı bizi beklemektedir. ESP-IDF bize FreeRTOS görevleri, tam bileşen sistemi, derin güç yönetimi, çift çekirdek kontrolü ve ESP32’nin ortaya çıkardığı her periferiyal erişimi sağlar. Bu, gemi ürünlerinin kullandığı şeydir.

Kompromis ayrıntılılıktır. Yanıp sönen LED, Arduino’dan daha fazla koddur ve CYD’nin ekran sürücüsü oluşturulmadığından, LVGL’nin esp_lcd portunu getiririz veya TFT_eSPI’yi bir bileşen olarak bağlarız. Ödüller, bilgisayar sisteminin yerine getirilmesinden sonra Arduino’nun yapamadığı şeyler yapabileceğimizdir, örneğin DMA’lı çift tamponlu ekran yenilemesi ve PSRAM tarafından desteklenen framebuffer’lar.

CYD projesi ağır ağ içeren herhangi bir şeyi (BLE + Wi-Fi koeksistansı, mesh, TLS) içerdiğinde veya pil tüketimini önemsediğimizde kullanırız.

İndir: Site . GitHub

6. MicroPython – Python prototipler için en iyi

MicroPython, USB üzerinden REPL’li bir Python 3 tercümanını ESP32’ye yerleştirir ve bu, prototipinin yapılma şeklini değiştirir. Bir satır yazın, CYD’deki pikselin değişimini görün. Derleme yok, yükleme döngüsü yok, bekleme yok.

Grafik hikayesi LVGL C’den biraz daha parçalanmıştır, ancak LVGL kendisi MicroPython bağlamalarını gönderir ve CYD için özelleştirilmiş lv_micropython derlemeleri topluluğun etrafında dolaşmaktadır. Daha basit panolar için st7789py ve xpt2046 sürücüleri, metin, sprite’lar ve dokunma bölgelerini birkaç düzine satır içinde çizmek için yeterlidir.

Bunu öğretim için, tek seferlik oyuncaklar için ve SSH’ye WebREPL üzerinden girip davranışı yeniden derlemeden değiştirebildiğimiz bu tür dahili araçlar için kullanırız.

İndir: Site

7. ESPHome – Akıllı ev panoları için en iyi

CYD, Home Assistant yüklemesinin yanında bir duvara gidecekse, ESPHome çalışan bir panoya giden en kısa yoldur. Firmware yazmak yerine, ekranı, dokunmatik ekranı, anahtarları, sensörleri ve UI sayfalarını bildiren bir YAML dosyası yazarız. ESPHome bunu bir firmware ikilisine derler ve yükler, sonra her şeyi otomatik olarak Home Assistant’a geri bağlar.

CYD, ESPHome belgelerinde birinci sınıf desteğe sahiptir; doğru SPI veri yolu atamaları, arka ışık PWM ve dokunmatik ekran kalibrasyon ipuçlarını içerir. Topluluk yapılandırmaları termostatlar, ortam denetleyicileri ve çok odacık aydınlatma panellerini kapsar ve bunlardan herhangi biri çoğaltılabilir ve tarayıcı aracılığıyla ESPHome panosunda düzenlenebilir.

Firmware öğrenme projesi yerine bu hafta sonu çalışan bir akıllı ev paneli isteyenler için bu cevaptır.

İndir: Site . GitHub

Doğru olanı nasıl seçeriz

Doğru araç, CYD’nin nereye gideceğine ve ne kadar derine inmek istediğimize bağlıdır. Karta yeni sahip olan ve bu gece ekranda bir şey olmasını isteyen birinin Arduino IDE 2’yi yüklemesi, ESP32 çekirdeğini eklemesi ve TFT_eSPI örneğini yüklemesi gerekir. Bu, çalışan bir piksele kadar olan en kısa mesafedir.

Gerçek bir arayüzü (menüler, ekranlar, animasyonlar, klavye) olan bir proje için cevap, işleme için LVGL, düzen için SquareLine Studio ve derleme için PlatformIO’dur. Bu üçlü, GitHub’daki çoğu cilalı CYD projesinin kullandığı şeydir ve karta ciddi davrananlar herkese tavsiye ettiğimiz kombinasyondur.

Ürün gönderme niyeti olan firmware geliştiricileri Arduino’yu atlayıp doğrudan ESP-IDF’ye gitmelidir, ardından LVGL’yi bir bileşen olarak getirilir. Bu daha fazla kurulum, ama tavan kaldırır.

Python odaklı hobi ve eğitimciler MicroPython’da daha fazla çalışma yaparlar; özellikle çocuk atölyelerine veya şirket içi araçlara.

Ve CYD, arkasında Home Assistant ile duvarda yaşamaya mahkum ise, ESPHome yukarıdakilerin tümünü atlar ve bir öğleden sonra içinde YAML’de panoyu açıklamamıza izin verir.

SSS

Cheap Yellow Display tam olarak nedir? Bu, bir 2,8 inçlik 320x240 dokunmatik ekrana (ILI9341 sürücü, XPT2046 dirençli dokunmatik), SD kart yuvasına, RGB LED’e, ışık sensörüne ve USB bağlantı noktasına sahip bir kartaya lehimlenmiş bir ESP32-WROOM-32 modülü olan ESP32-2432S028R’dir. Çoğu pazarda sekiz ila on iki dolar civarında satılmakta ve erken kaynaklar sarı PCB’lerde gönderildiğinden “Cheap Yellow Display” takma adını aldı.

LVGL kullanmak zorunda mıyım veya alternatifler var mı? LVGL en popüler seçim, ancak tek seçenek değil. TFT_eSPI ve LovyanGFX, arayüzü kendimiz çizmek istiyorsak hızlı ilkelleri (satırlar, şekiller, sprite’lar, metin) sağlar. Basit göstergeler ve panolar için bu yeterlidir. Widget’lar, animasyon veya klavye istediğimiz andan itibaren LVGL kazanır.

macOS veya Linux’ta CYD için geliştirilebilir miyim? Evet. Bu makaledeki her araç Windows, macOS ve Linux’ta yerel olarak çalışır. Linux’ta, kullanıcı hesabımızın kartdaki CH340 veya CP2102 USB-to-serial çipi ile konuşabilmesi için bir udev kuralına ihtiyaç duyabiliriz, ancak kurulum tek seferlik bir adımdır.

CYD’yi USB yerine Wi-Fi üzerinden nasıl yüklerim? PlatformIO, Arduino IDE 2, ESP-IDF ve ESPHome hepsi OTA güncelleştirmelerini destekler. Yaygın model, firmware’a bir OTA kütüphanesi veya bileşeni dahil etmek, kartı Wi-Fi’ye bağlamak ve ardından yükleme yöntemini kartın IP adresine işaret edecek şekilde ayarlamaktır. İlk yükleme USB üzerinden, sonrakiler kablosuz olabilir.

SquareLine Studio hobi kullanımı için ücretsiz mi? Kişisel katman ücretsiz ve çoğu hobi CYD projesini kapsar. Ekran sayısı ve varlık çözünürlüğü gibi şeyleri sınırlandırır, ancak dışa aktarılan LVGL kodunun çalışma zamanı kısıtlamaları yoktur. Pro aboneliği sınırsız ekranlar, daha yüksek çözünürlüklü varlıklar ve ticari kullanımı açar.