class TVDisplay – TV Shield -ohjain

TVDisplay-luokka ohjaa OpenMV TV Shieldiä, joka muuntaa RGB565-kehyspuskurin NTSC-komposiittivideosignaaliksi (352x240, 60 kenttää/s lomitettuna), joka sopii mille tahansa televisiolle tai analogiselle videonäytölle.

Kahta shield-versiota tuetaan:

  • Langallinen TV Shield, joka tuo komposiittisignaalin yhteen RCA-liittimeen.

  • Wireless TV Shield, joka syöttää saman signaalin 2,4 GHz:n analogiseen videolähettimeen. Vastaanottimen kanava (1–8) valitaan ajon aikana metodilla ioctl() käyttäen arvoa display.IOCTL_CHANNEL; kunnes tämä kutsu on tehty, mitään kanavaa ei ole valittu.

Resoluutio ja kehystys ovat kiinteät – TVDisplay ei ota framesize-argumenttia. Kehykset esitetään välittämällä image.Image metodille write(), joka hoitaa skaalauksen, ROI:n, paletin ja suuntamuunnokset sisäisesti.

Esimerkkikäyttö:

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

Konstruktorit

class display.TVDisplay(triple_buffer: bool = True)

triple_buffer Jos True, tekee näytön päivityksistä ei-estäviä sillä hinnalla, että näytön koko vie kolminkertaisesti RAM-muistia. Oletus riippuu kortista.

deinit() None

Vapauttaa luokan käyttämät I/O-nastat ja RAM-muistin. Tätä kutsutaan automaattisesti tuhoamisen yhteydessä.

width() int

Palauttaa näytön leveyden (352).

height() int

Palauttaa näytön korkeuden (240).

refresh() int

Palauttaa päivitystaajuuden (60).

triple_buffer() bool

Palauttaa, onko kolmoispuskurointi käytössä.

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

Näyttää kuvan image, jonka vasen yläkulma alkaa sijainnista x, y.

x_scale ohjaa, kuinka paljon näytettävää kuvaa skaalataan x-suunnassa (liukuluku). Jos arvo on negatiivinen, kuva peilataan vaakasuunnassa.

y_scale ohjaa, kuinka paljon näytettävää kuvaa skaalataan y-suunnassa (liukuluku). Jos arvo on negatiivinen, kuva peilataan pystysuunnassa.

roi on näytettävän kuvan kohdealueen suorakulmiomonikko (x, y, w, h).

rgb_channel on RGB-kanava (0=R, G=1, B=2), joka poimitaan RGB565-kuvasta ja esitetään näytöllä.

alpha ohjaa, kuinka läpinäkymätön kuva on. Arvo 256 näyttää läpinäkymättömän kuvan, kun taas 256:ta pienempi arvo tuottaa mustan läpinäkyvän kuvan. 0 tuottaa täysin mustan kuvan.

color_palette jos ei -1, voi olla väripaletin enum-arvo tai yhteensä 256 pikselin RGB565-kuva, jota käytetään värihakutauluna syötekuvan harmaasävyarvolle.

alpha_palette jos ei -1, voi olla yhteensä 256 pikselin GRAYSCALE-kuva, jota käytetään alfapalettina, joka moduloi syötekuvan alpha-arvoa pikselikohtaisesti.

hint looginen TAI lipuista:

clear(display_off: bool = False) None

Tyhjentää näytön mustaksi.

display_off hyväksytään API-yhteensopivuuden vuoksi muiden näyttöluokkien kanssa, ja se jätetään huomiotta.

ioctl(cmd: int, *args) object

Yleinen ioctl-aloituspiste.

Anna display.IOCTL_CHANNEL arvoksi cmd asettaaksesi tai hakeaksesi langattoman TV-shieldin lähetyskanavan. Toisella argumentilla (1-8) kanava asetetaan; ilman toista argumenttia palautetaan nykyinen kanava. Mitään kanavaa ei ole valittu, ennen kuin ensimmäinen asetuskutsu on tehty.