Haberler

Seeeduino kartları için U8g2

“`html



U8g2_Seeed


Genel Bakış

U8g2, gömülü cihazlar için bir monokrom grafik kütüphanesidir. Olikraus tarafından sağlanmıştır

“`

                             U8g2

  • Desteklenen Ekran Kontrolcüleri: SSD1305, SSD1306, SSD1309, SSD1322, SSD1325, SSD1327, SSD1329, SSD1606, SSD1607, SH1106, SH1107, SH1108, SH1122, T6963, RA8835, LC7981, PCD8544, PCF8812, HX1230, UC1601, UC1604, UC1608, UC1610, UC1611, UC1701, ST7565, ST7567, ST7588, ST75256, NT7534, IST3020, ST7920, LD7032, KS0108, SED1520, SBN1661, IL3820, MAX7219 (tam liste için buraya bakın)

U8g2 ayrıca U8x8 kütüphanesini de içerir. U8g2 ve U8x8 için özellikler:

  • U8g2
    Tüm grafik prosedürlerini (çizgi/kutu/daire çizimi) içerir.
    Birçok yazı tipini destekler. (Neredeyse) yazı tipi yüksekliği üzerinde kısıtlama yoktur.
    Ekranı görüntülemek için mikrodenetleyicide biraz bellek gerektirir.
  • U8x8
    Sadece metin çıktısı veren (karakter) cihazıdır.
    Sadece sabit boyutlu karakterler için yazı tiplerine izin verilir (8×8 piksel).
    Ekrana doğrudan yazar. Mikrodenetleyicide tampon gerektirmez.
    Bir tane daha sınıf/alt kütüphane “U8log” vardır, bu bir çıkış terminalini taklit eder (Arduino seri monitörü gibi): U8log Referans Kılavuzu

U8g2’yi Kurun

Arduino kütüphanesi U8g2, Arduino IDE’nin kütüphane yöneticisinden kurulabilir.

  • Arduino IDE’yi açın
  • Kütüphane Yöneticisini açın (Sketch > Kütüphane Ekle > Kütüphaneleri yönet…)

1

  • Arama alanına “u8g2” yazın
  • En son sürümü seçin
  • “Kur” butonuna tıklayın

2

En son U8g2 kütüphanesini kullanmak istiyorsanız, bağlantıya tıklayın: U8g2_Arduino

  • Arduino IDE’yi açın
  • Kütüphane Yöneticisini açın (Sketch > Kütüphane Ekle > .ZIP Kütüphanesi Ekle…).
  • En son indirilen U8g2 kütüphanesini seçin.
    3

U8g2 kütüphanesi başarılı bir şekilde kurulduktan sonra Örnekler’de görülebilir

4

 

 

 

U8g2 Kütüphanesine bir ekran nasıl bağlanır?

Ekranı tanımlayın

Ekranınızın kontrolcüsünü ve boyutunu bilmeniz gerekiyor (Not: “Kontrolsüz” ekranlar U8g2 tarafından desteklenmez). Bu örnekte, bir Seeed_128x128 128×64 ekran ve kontrolcü olarak K210 Pi kullanacağız.

U8g2 için ekranın doğru başlatılması için uygun bir yapıcı seçmelisiniz. Bu sayfadan bir yapıcı seçin: C++ Kurulum/Arduino Yapıcı Listesi.

Fiziksel bir veri yolu seçin

Grafik bilgileri ekrana gönderilmelidir. Bu bilgiler, bir fiziksel veri yolu (genellikle iki veya daha fazla veri hattı), bir iletişim protokolü ve bir komut dizisi aracılığıyla ekran kontrolcüsü tarafından alınır. Genellikle bir ekran birden fazla fiziksel veri yolunu destekler. Doğru veri yolunu seçip ayarlamalısınız. Tipik olarak veri yolları şunlardır:

  • 3SPI, 3-telli SPI: Üç sinyal ile Seri Peripheral Arayüzü: Saat, Veri ve Çip Seçimi.
  • 4SPI, 4-Telli SPI: 3SPI ile aynı, ancak komutlar ve veriler için bir ek hat ile (genellikle D/C, RS veya A0 olarak etiketlenir)
  • I2C, IIC veya TWI: İki sinyal ile Entegre Devreler Arası Veri Yolu: Saat (SCL) ve Veri (SDA).
  • 8080: 8 veri hattı, çip seçimi ve bir yazma darbe sinyali gerektiren 8-Bit veri yolu.
  • 6800: Farklı bir protokole sahip başka bir 8-Bit veri yolu.

Seeed_128X128 ekran I2C’yi fiziksel veri yolu olarak kullandığı için OLED ekranı K210 PI ile I2C üzerinden bağlıyoruz.

U8g2 başlatma

U8g2, hangi çıkış pininin ekranın hangi girişine bağlı olduğunu bilmelidir: Pin numaraları U8g2 yapıcısına argüman listesi olarak sağlanır. Listede konum önemlidir ve pinin işlevini/görevini gösterir.

Buradaki tablodan, yapıcının aşağıdaki şablona sahip olduğunu görebilirsiniz:

İlk parametre döndürme seçeneğidir, yapıcı saat hattı (SCL) ve veri hattı (SDA) için pin numarasını bekler. Reset hattı isteğe bağlı olarak sağlanabilir. Donanım I2C kullanıyorsanız, SCL ve SDA’yı belirtmenize gerek yoktur.

Daha Fazla Bilgi Alın: U8g2 Kurulumu

Tam bir örnek şöyle görünecektir:

K210 PI üzerinde bir U8g2 Arduino projesi başlatın

5

K210 PI’nin U8g2 kütüphanesini çalıştırabilmesi için en son K210 PI kütüphanesini ve U8g2 kütüphanesini indirmeniz gerekir.

Ayrıca, derleme sırasında “Komut satırı çok uzun” hatası alabilirsiniz. Bu sorunu, \src\clib dizinindeki .c dosyasını silerek ve yalnızca mevcut ekran dosyasını tutarak çözebilirsiniz.

  • Ekran yapılandırma dosyasının formatı: u8x8_d_ekran_boyut.c.

Kalın kısım, belirli ekran modeli ve boyutudur.

Örneğin, bu sefer kullandığımız ekran yapılandırma dosyası: u8x8_d_sh1107.c.

 

 

 

API Referansı

U8g2 kütüphanesi, kullanıcıların kullanması için çok sayıda API sağlar. Aşağıdaki tablo, en yaygın kullanılan API’leri ve açıklamalarını göstermektedir.

API Açıklama
begin bir ekran başlatır.
clear Ekrandaki tüm pikselleri ve tamponu temizler.
initDisplay Ekranı sıfırlar ve yapılandırır.
sendBuffer Bellek çerçeve tamponunun içeriğini ekrana gönderir.
clearBuffer Bellek çerçeve tamponundaki tüm pikselleri temizler.
clearDisplay Dahili tampondaki ve bağlı ekrandaki tüm pikselleri temizler.
drawPixel Belirtilen x/y konumunda bir piksel çizer.
drawLine İki nokta arasında bir çizgi çizer.
drawBox x/y konumunda (sol üst köşe) bir kutu (doldurulmuş çerçeve) çizer.
drawCircle x0, y0 konumunda radüs rad olan bir daire çizer.
drawDisc x0, y0 konumunda radüs rad olan doldurulmuş bir daire çizer.
drawEllipse x0, y0 konumunda rx ve ‘ry’ radüslerine sahip bir elips çizer.
drawFilledEllipse x0, y0 konumunda rx ve ‘ry’ radüslerine sahip doldurulmuş bir elips çizer.
drawFrame x/y konumunda (boş kutu) bir çerçeve çizer.
drawTriangle x/y konumunda (sol üst köşe) bir üçgen (doldurulmuş çokgen) çizer.
setFont Glyph ve dize çizim fonksiyonları için bir u8g2 yazı tipi tanımlar.
drawGlyph Tek bir karakter çizer.
drawStr Bir dize çizer. İlk karakter x ve y konumuna yerleştirilir.
drawBitmap Belirtilen x/y konumunda (bitmap’ın sol üst köşesi) bir bitmap çizer. ==kullanımdan kaldırıldı==
drawXBM Bir XBM Bitmap çizer. (x,y) konumu bitmap’ın sol üst köşesidir.
firstPage Bu komut, ekranın içeriğini işleyen (resim) döngüsünün bir parçasıdır.
nextPage Bu komut, ekranın içeriğini işleyen (resim) döngüsünün bir parçasıdır.
setBitmapMode Bitmap’ı şeffaf veya katı olarak ayarlar.
setCursor Yazdırma fonksiyonu için imleci tanımlar. Yazdırma fonksiyonunun çıktısı bu konumda başlar.
setDisplayRotation Ekran döndürmesini değiştirir.

U8g2 API’si hakkında daha fazla bilgi burada bulunabilir.

Demonstrasyon

Temel

Aşağıda U8g2 tarafından sağlanan temel çizim fonksiyonlarının nasıl kullanılacağı ve görüntüleneceği gösterilmektedir.

src

demo

String

U8g2, güçlü metin çıktı yetenekleri sunar, yalnızca çıktı metninin boyutunu değiştirmekle kalmaz, aynı zamanda yazı tipi formatını da değiştirebilir.

  • setFont(const uint8_t *font). daha fazla
  • drawStr(u8g2_uint_t x, u8g2_uint_t y, const char *s). daha fazla

src

demo

string

Görüntü

U8g2 kütüphanesi, görüntüleri görüntülemek için iki fonksiyon sağlar.

  • drawBitmap()(kullanımdan kaldırıldı).
  • drawXBM().

Monokrom OLED’de görüntüyü göstermek için, görüntüyü XBM formatına dönüştürmemiz gerekiyor. Bunu çevrimiçi olarak WEB üzerinden veya bildiğiniz herhangi bir araçla dönüştürebilirsiniz.

logo

src

demo

u8g2

Performans

Kendryte K210 veri sayfasına göre, I2C aşağıdaki modlarda çalışabilir:

  • Standart mod (0’dan 100Kb/s’ye).
  • Hızlı mod (<= 400Kb/s).

U8g2 örnekleri, performans testinin bir örneğini içerir.

  • Örneği açın: FPS (Dosya > Örnekler > U8g2 > full_buffer > FPS).
  • İlgili yapıcı satırını yorumdan çıkarın.
  • İlk u8g2.begin() çağrısından önce u8g2.setBusClock() çağrısını yapın.
  • Sonuçları görmek için derleyin ve çalıştırın.

demo

FPS’nin yaklaşık 15 civarında olduğunu görebiliriz, bu da birçok uygulama senaryosunu karşılayabilir.

demo

I2C’nin çalışma frekansı 400Khz modunda olduğunda, FPS yaklaşık 25’e ulaşır. Pratikte, I2C frekansları daha hızlı olabilir, ancak CPU kararsız olabilir, bu yüzden dikkatli kullanın.

Bu makale, U8g2 kütüphanesinin en yaygın özelliklerinden bazılarını göstermektedir. Daha fazla bilgi için buraya tıklayın.


Leave a Reply

Your email address will not be published. Required fields are marked *