class TVDisplay – TV Shield Sürücüsü#

TVDisplay sınıfı, bir RGB565 çerçeve arabelleğini herhangi bir televizyon veya analog video monitörüne uygun bir NTSC kompozit video sinyaline (352x240, 60 alan/s geçmeli) dönüştüren OpenMV TV Shield’i sürer.

İki shield türü desteklenir:

  • Kompozit sinyali tek bir RCA jakı üzerinden sunan kablolu TV Shield.

  • Aynı sinyali 2,4 GHz analog video vericisine besleyen Wireless TV Shield. Alıcı kanalı (1–8) çalışma zamanında display.IOCTL_CHANNEL ile ioctl() kullanılarak seçilir; bu çağrı yapılana kadar hiçbir kanal seçili olmaz.

Çözünürlük ve çerçeveleme sabittir – TVDisplay bir framesize argümanı almaz. Çerçeveler, ölçekleme, ROI, palet ve yönlendirme dönüşümlerini dahili olarak işleyen write() öğesine bir image.Image iletilerek sunulur.

Örnek kullanım:

import csi
import display

csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.SIF)              # 352x240, matches the TV output

tv = display.TVDisplay()

while True:
    tv.write(csi0.snapshot())

Yapıcılar#

class display.TVDisplay(triple_buffer: bool = True)#

triple_buffer True ise, RAM’de ekran boyutunun 3 katı maliyetiyle ekran güncellemelerini bloklamayan hale getirir. Varsayılan değer karta bağlıdır.

deinit() None#

Sınıf tarafından kullanılan G/Ç pinlerini ve RAM’i serbest bırakır. Bu, yok etme sırasında otomatik olarak çağrılır.

width() int#

Ekranın genişliğini (352) döndürür.

height() int#

Ekranın yüksekliğini (240) döndürür.

refresh() int#

Yenileme hızını (60) döndürür.

triple_buffer() bool#

Üçlü arabelleğin etkin olup olmadığını döndürür.

write(image: image.Image, x: int = 0, y: int = 0, x_scale: float = 1.0, y_scale: float = 1.0, roi: Tuple[int, int, int, int] | None = None, rgb_channel: int = -1, alpha: int = 256, color_palette: int | 'image.Image' | None = None, alpha_palette: 'image.Image' | None = None, hint: int = 0) None#

Sol üst köşesi x, y konumundan başlayan bir image görüntüsünü görüntüler.

x_scale görüntülenen görüntünün x yönünde ne kadar ölçekleneceğini kontrol eder (float). Bu değer negatifse görüntü yatay olarak çevrilir.

y_scale görüntülenen görüntünün y yönünde ne kadar ölçekleneceğini kontrol eder (float). Bu değer negatifse görüntü dikey olarak çevrilir.

roi görüntülenecek görüntünün ilgi bölgesi dikdörtgeni demetidir (x, y, w, h).

rgb_channel bir RGB565 görüntüsünden çıkarılıp ekranda işlenecek RGB kanalıdır (0=R, G=1, B=2).

alpha görüntünün ne kadar opak olduğunu kontrol eder. 256 değeri opak bir görüntü gösterirken, 256’dan düşük bir değer siyah saydam bir görüntü üretir. 0 tamamen siyah bir görüntüyle sonuçlanır.

color_palette -1 değilse, giriş görüntüsünün gri tonlama değeri üzerinde renk arama tablosu olarak kullanılacak bir renk paleti enum’u veya toplam 256 piksellik bir RGB565 görüntüsü olabilir.

alpha_palette -1 değilse, giriş görüntüsünün alpha değerini piksel başına modüle eden bir alfa paleti olarak kullanılacak toplam 256 piksellik bir GRAYSCALE görüntüsü olabilir.

hint aşağıdaki bayrakların mantıksal VEYA işlemidir:

clear(display_off: bool = False) None#

Ekranı siyaha temizler.

display_off diğer ekran sınıflarıyla API uyumluluğu için kabul edilir ve yok sayılır.

ioctl(cmd: int, *args) object#

Genel ioctl giriş noktası.

Kablosuz TV shield yayın kanalını ayarlamak veya almak için cmd olarak display.IOCTL_CHANNEL iletin. İkinci bir argümanla (1-8) kanal ayarlanır; ikinci argüman olmadan mevcut kanal döndürülür. İlk ayarlama çağrısı yapılana kadar hiçbir kanal seçili olmaz.