gt911 --- GT911 5点静電容量式タッチコントローラー

gt911 モジュールは、Goodix GT911 投影型静電容量式タッチスクリーンコントローラーのドライバーを提供します。これは 4.3〜7 インチの 800x480 LCD パネルとよく組み合わせて使用されます。コントローラーは最大5点の同時タッチポイントを追跡し、それぞれを (x, y, size, id) タプルとして報告します。id は指がパネルに接触している限り、読み取りをまたいで安定しています。

ドライバーは I2C 経由でチップと通信し、2つの追加 GPIO を使用します:

  • リセット ラインは、電源投入時に Low に保持され、IRQ ラインと一緒に切り替えることで GT911 の 7 ビット I2C アドレスを選択します(リセット時に IRQ が Low の場合は 0x5D、IRQ が High の場合は 0x14)。

  • 割り込み ラインは、タッチイベントが発生したときにコントローラーによってアサートされます。

作成後、アプリケーションは GT911.read_points() でタッチをポーリングするか、IRQ ピンの立ち下がりエッジで呼び出される touch_callback を指定できます。

class GT911 -- 5点静電容量式タッチコントローラー

class gt911.GT911(bus: machine.I2C, reset_pin: int | str, irq_pin: int | str, address: int = _DEFAULT_ADDR, width: int = 800, height: int = 480, touch_points: int = 1, reverse_x: bool = False, reverse_y: bool = False, reverse_axis: bool = True, sito: bool = True, refresh_rate: int = 240, touch_callback: Callable | None = None)

GT911 タッチスクリーンコントローラーオブジェクトを作成します。

bus は GT911 が接続されている machine.I2C バスオブジェクトです。

reset_pin は GT911 のリセットラインに接続されたピン番号または名前です(Pin オブジェクトではありません)。ドライバーはリセット中にピンの方向を変更する必要があります。

irq_pin は GT911 の割り込みラインに接続されたピン番号または名前です(Pin オブジェクトではありません)。ドライバーはリセット中にピンの方向を変更する必要があります。

address はコントローラーの I2C アドレスです。デフォルトは gt911._DEFAULT_ADDR です。

width は X 軸方向のタッチパネル解像度(ピクセル単位)です。

height は Y 軸方向のタッチパネル解像度(ピクセル単位)です。

touch_points は報告する同時タッチポイントの最大数(1〜5)です。

reverse_x が True の場合、X 軸を反転します。

reverse_y が True の場合、Y 軸を反転します。

reverse_axis が True の場合、X 軸と Y 軸を入れ替えます。

sito が True の場合、コントローラーの Single-Input-Touch-Output モードを有効にします。

refresh_rate はタッチ報告レート(Hz)です。

touch_callback は、タッチイベント発生時に IRQ ピンの立ち下がりエッジで呼び出されるオプションの呼び出し可能オブジェクトです。ポーリングモードを使用するには None を渡します。

read_id() bytes

GT911 の製品 ID を含む 4 バイトを返します。

read_points() tuple

(n, points) タプルを返します。n はアクティブなタッチポイント数、points は5つの array("H", ...) エントリのリストです。各エントリは [x, y, size, id] を含みます: xy は画面座標、size はタッチ圧力、id は特定の指に対して読み取りをまたいで安定した一意の追跡 ID です。

points の最初の n 個のエントリのみが有効なデータを含みます。

reset() None

GT911 コントローラーをリセットし、touch_callback が指定されていた場合は IRQ ハンドラーを再アームします。

定数

gt911._DEFAULT_ADDR: int

GT911 コントローラーのデフォルト I2C アドレス(0x5D)。