class TVDisplay -- TV Shield ドライバ

TVDisplay クラスは OpenMV TV Shield を駆動します。これは RGB565 フレームバッファを、あらゆるテレビやアナログビデオモニターに適した NTSC コンポジットビデオ信号(352x240、60 フィールド/秒インターレース)に変換します。

2 つのシールドバリエーションがサポートされています:

  • 有線の TV Shield。単一の RCA ジャックにコンポジット信号を出力します。

  • Wireless TV Shield。同じ信号を 2.4 GHz のアナログビデオ送信機に供給します。受信チャネル(1--8)は実行時に display.IOCTL_CHANNEL を指定した ioctl() で選択します。その呼び出しが行われるまでは、どのチャネルも選択されません。

解像度とフレーミングは固定です。TVDisplayframesize 引数を取りません。フレームは image.Imagewrite() に渡すことで表示され、スケーリング、ROI、パレット、向きの変換は内部で処理されます。

使用例:

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

コンストラクタ

class display.TVDisplay(triple_buffer: bool = True)

triple_buffer True の場合、RAM 内のディスプレイサイズの 3 倍を消費する代わりに、画面の更新を非ブロッキングにします。デフォルトはボード依存です。

deinit() None

クラスが使用する I/O ピンと RAM を解放します。これは破棄時に自動的に呼び出されます。

width() int

画面の幅(352)を返します。

height() int

画面の高さ(240)を返します。

refresh() int

リフレッシュレート(60)を返します。

triple_buffer() bool

トリプルバッファリングが有効かどうかを返します。

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

左上隅が位置 x、y から始まる image を表示します。

x_scale は表示される画像が x 方向にどれだけ拡大縮小されるかを制御します(浮動小数点数)。この値が負の場合、画像は水平方向に反転されます。

y_scale は表示される画像が y 方向にどれだけ拡大縮小されるかを制御します(浮動小数点数)。この値が負の場合、画像は垂直方向に反転されます。

roi は表示する画像の関心領域の矩形タプル (x, y, w, h) です。

rgb_channel は RGB565 画像から抽出してディスプレイに描画する RGB チャネル(0=R、G=1、B=2)です。

alpha は画像の不透明度を制御します。値が 256 の場合は不透明な画像を表示し、256 より小さい値は黒い透明な画像を生成します。0 は完全に黒い画像になります。

color_palette-1 でない場合、入力画像のグレースケール値に対するカラールックアップテーブルとして使用するカラーパレットの列挙型、または合計 256 ピクセルの RGB565 画像にできます。

alpha_palette-1 でない場合、ピクセルごとに入力画像の alpha 値を調整するアルファパレットとして使用する合計 256 ピクセルの GRAYSCALE 画像にできます。

hint は次のフラグの論理 OR です:

clear(display_off: bool = False) None

画面を黒にクリアします。

display_off は他のディスプレイクラスとの API 互換性のために受け入れられますが、無視されます。

ioctl(cmd: int, *args) object

汎用 ioctl エントリポイント。

ワイヤレス TV シールドのブロードキャストチャネルを設定または取得するには、cmd として display.IOCTL_CHANNEL を渡します。2 番目の引数(1-8)を指定するとチャネルが設定され、2 番目の引数なしの場合は現在のチャネルが返されます。最初の設定呼び出しが行われるまでは、どのチャネルも選択されません。