class TVDisplay – TV Shield meghajtó

A TVDisplay osztály az OpenMV TV Shieldet vezérli, amely egy RGB565 képkocka-puffert NTSC kompozit videojellé alakít (352x240, 60 mező/s váltottsoros), amely bármely televízióhoz vagy analóg videomonitorhoz alkalmas.

Két shield-változat támogatott:

  • A vezetékes TV Shield, amely a kompozit jelet egyetlen RCA aljzaton teszi elérhetővé.

  • A Wireless TV Shield, amely ugyanazt a jelet egy 2,4 GHz-es analóg videoadóba táplálja. A vevő csatornája (1–8) futásidőben választható ki a ioctl() metódussal a display.IOCTL_CHANNEL segítségével; amíg ezt a hívást nem teszik meg, addig nincs csatorna kiválasztva.

A felbontás és a képkockázás rögzített – a TVDisplay nem fogad framesize argumentumot. A képkockákat egy image.Image átadásával jelenítik meg a write() metódusnak, amely belsőleg kezeli a méretezést, a ROI-t, a palettát és a tájolási transzformációkat.

Példa a használatra:

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())

Konstruktorok

class display.TVDisplay(triple_buffer: bool = True)

triple_buffer Ha True, akkor a képernyő frissítései nem blokkolóvá válnak, a kijelző méretének 3-szorosát kitevő RAM árán. Az alapértelmezés a kártyától függ.

deinit() None

Felszabadítja az osztály által használt I/O lábakat és RAM-ot. Ez automatikusan meghívásra kerül megsemmisítéskor.

width() int

Visszaadja a képernyő szélességét (352).

height() int

Visszaadja a képernyő magasságát (240).

refresh() int

Visszaadja a frissítési gyakoriságot (60).

triple_buffer() bool

Visszaadja, hogy a hármas pufferelés engedélyezve van-e.

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

Megjelenít egy image képet, amelynek bal felső sarka az x, y helyen kezdődik.

Az x_scale szabályozza, hogy a megjelenített kép mennyire legyen átméretezve x irányban (float). Ha ez az érték negatív, a kép vízszintesen tükröződik.

Az y_scale szabályozza, hogy a megjelenített kép mennyire legyen átméretezve y irányban (float). Ha ez az érték negatív, a kép függőlegesen tükröződik.

A roi a megjelenítendő kép érdeklődési terület téglalapját jelölő (x, y, w, h) tuple.

Az rgb_channel az RGB565 képből kinyerendő és a kijelzőn megjelenítendő RGB csatorna (0=R, G=1, B=2).

Az alpha szabályozza, hogy a kép mennyire átlátszatlan. A 256 érték átlátszatlan képet jelenít meg, míg a 256-nál kisebb érték fekete, áttetsző képet eredményez. A 0 tökéletesen fekete képet eredményez.

A color_palette ha nem -1, akkor lehet egy színpaletta-enum vagy egy összesen 256 képpontos RGB565 kép, amely színkikereső táblaként szolgál a bemeneti kép szürkeárnyalatos értéke alapján.

Az alpha_palette ha nem -1, akkor lehet egy összesen 256 képpontos szürkeárnyalatos kép, amely alfa-palettaként szolgál, és képpontonkénti szinten modulálja a bemeneti kép alpha értékét.

A hint a következő jelzők logikai VAGY-a:

clear(display_off: bool = False) None

Feketére törli a képernyőt.

A display_off argumentumot a más kijelzőosztályokkal való API-kompatibilitás érdekében fogadja el, de figyelmen kívül hagyja.

ioctl(cmd: int, *args) object

Általános ioctl belépési pont.

Adja át a display.IOCTL_CHANNEL értéket cmd gyanánt a vezeték nélküli TV shield sugárzási csatornájának beállításához vagy lekérdezéséhez. Második argumentummal (1-8) a csatorna beállításra kerül; második argumentum nélkül a jelenlegi csatorna kerül visszaadásra. Az első beállítási hívásig nincs csatorna kiválasztva.