class TVDisplay – TV Shield-drivrutin¶
Klassen TVDisplay driver OpenMV TV Shield, som konverterar en RGB565-bildbuffert till en NTSC-kompositvideosignal (352x240, 60 fält/s sammanflätad) lämplig för vilken TV eller analog videomonitor som helst.
Två shield-varianter stöds:
Den trådbundna TV Shield, som exponerar kompositsignalen på ett enda RCA-uttag.
Den trådlösa TV Shield, som matar samma signal till en 2,4 GHz analog videosändare. Mottagarkanalen (1–8) väljs vid körning via
ioctl()meddisplay.IOCTL_CHANNEL; tills detta anrop görs väljs ingen kanal.
Upplösning och inramning är fasta – TVDisplay tar inte något framesize-argument. Bildrutor presenteras genom att skicka en image.Image till write(), som hanterar skalning, ROI, palett- och orienteringstransformeringar internt.
Exempel på användning:
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())
Konstruktorer¶
- class display.TVDisplay(triple_buffer: bool = True)¶
triple_bufferOm True görs uppdateringar av skärmen icke-blockerande till priset av 3X skärmstorleken i RAM. Standardvärdet är kortberoende.- deinit() None¶
Frigör de I/O-stift och det RAM som klassen använder. Detta anropas automatiskt vid destruktion.
- 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¶
Visar en
imagevars övre vänstra hörn börjar vid platsen x, y.x_scalestyr hur mycket den visade bilden skalas i x-riktningen (flyttal). Om detta värde är negativt vänds bilden horisontellt.y_scalestyr hur mycket den visade bilden skalas i y-riktningen (flyttal). Om detta värde är negativt vänds bilden vertikalt.roiär intresseområdets rektangeltupel (x, y, w, h) för bilden som ska visas.rgb_channelär den RGB-kanal (0=R, G=1, B=2) som ska extraheras från en RGB565-bild och renderas på skärmen.alphastyr hur ogenomskinlig bilden är. Värdet 256 visar en ogenomskinlig bild medan ett värde lägre än 256 ger en svart transparent bild. 0 ger en helt svart bild.color_paletteom inte-1kan vara en färgpalettenum eller en RGB565-bild med totalt 256 pixlar att använda som en färguppslagstabell på gråskalevärdet av indatabilden.alpha_paletteom inte-1kan vara en GRAYSCALE-bild med totalt 256 pixlar att använda som en alfapalett vilken moduleraralpha-värdet av indatabilden på pixelnivå.hintlogisk OR av flaggorna:image.AREA: Använd areaskalning vid nedskalning.image.BILINEAR: Använd bilinjär skalning.image.BICUBIC: Använd bikubisk skalning.image.CENTER: Centrera bilden på skärmen (efter skalning).image.HMIRROR: Spegla bilden horisontellt.image.VFLIP: Vänd bilden vertikalt.image.TRANSPOSE: Transponera bilden (byt x/y).image.EXTRACT_RGB_CHANNEL_FIRST: Tillämpargb_channel-extraktion före skalning.image.APPLY_COLOR_PALETTE_FIRST: Tillämpacolor_paletteföre skalning.image.SCALE_ASPECT_KEEP: Skala för att passa inuti skärmen.image.SCALE_ASPECT_EXPAND: Skala för att fylla skärmen (beskär).image.SCALE_ASPECT_IGNORE: Skala för att fylla skärmen (sträcker ut).image.ROTATE_90: Rotera 90 grader (VFLIP | TRANSPOSE).image.ROTATE_180: Rotera 180 grader (HMIRROR | VFLIP).image.ROTATE_270: Rotera 270 grader (HMIRROR | TRANSPOSE).
- clear(display_off: bool = False) None¶
Rensar skärmen till svart.
display_offaccepteras för API-kompatibilitet med andra skärmklasser och ignoreras.
- ioctl(cmd: int, *args) object¶
Generisk ioctl-ingångspunkt.
Skicka
display.IOCTL_CHANNELsomcmdför att ställa in eller hämta sändningskanalen för den trådlösa TV-shielden. Med ett andra argument (1-8) ställs kanalen in; utan ett andra argument returneras den aktuella kanalen. Ingen kanal väljs förrän det första inställningsanropet görs.