コンテンツにスキップ

タッチスクリーン

タッチスクリーンはディスプレイだけではありません。ディスプレイにユーザー入力があります。温度またはボタンを表示するだけでなく、触れた場所をデバイスに伝えることが必要です。

このため、タッチスクリーンはほぼ常に OLED より複雑です。サイズと解像度だけでなく、インターフェースを描くか、タッチを処理し、どのインターフェースを使用するか、選択されたファームウェアがそれをサポートしているかどうかを理解する必要があります。

タッチスクリーンが有用な場合

タッチスクリーンは、デバイスが完全なローカル インターフェースが必要な場合に意味があります:

  • 乾燥モードを選択;
  • 温度と時間を設定;
  • マテリアル プロファイル リスト;
  • エラーを確認;
  • マニュアル ファン、照明、またはダンパー制御;
  • Wi-Fi セットアップ;
  • 電話またはコンピューターなしでステータスを表示。

温度、エラー、モードのみを表示する必要がある場合、通常、OLED、いくつかのボタン、エンコーダー、または Web インターフェースで十分です。タッチスクリーンは費用、電力、エンクロージャー スペース、ファームウェア、ケーブル、別の障害ポイント を追加します。

主な質問: ユーザー インターフェースを描く人

購入する前に、主な質問に答えてください: ユーザー インターフェースがどこに住んでいるか。

タッチスクリーンの複数の異なるクラスがあります:

タッチスクリーンのクラスとインターフェースを描く人

生 TFT は、ILI9341ILI9488ST7789 などのコントローラー、プラス XPT2046 または FT5x06 のような別のタッチ コントローラーのシンプルな画面です。マイクロコントローラーまたはファームウェアはインターフェースを描きます。これは柔軟ですが、コード、メモリ、ドライバー、キャリブレーション が必要です。

スマート UART/HMI ディスプレイは、Nextion のようなディスプレイ自体のファームウェアとインターフェース エディターを持つ画面です。マイクロコントローラーは UART経由でコマンドを送信し、画面はページと要素を表示します。これはMCU ロードを削減しますが、プロジェクトをその画面のツールとプロトコルに結び付けます。

プリンター TFT (BTT TFT35 など) は、しばしば UART 経由の独自のタッチスクリーン モードと EXP コネクタ経由の古典的な 12864 LCD エミュレーションを持っています。この画面は Marlin/3D プリンター ボードに便利ですが、任意の DIY デバイス用ユニバーサル パネルではありません。

HDMI/DSI/USB 画面 (Linux ホスト) は、通常のモニターと Raspberry Pi または他の Linux コンピューター用のタッチ デバイスとして機能します。これは KlipperScreen に適していますが、シンプルなモジュールとして小さな ESP32 に直接接続されません。

接続インターフェース

タッチスクリーンはさまざまなインターフェースを使用します。

一般的なオプション:

  • SPI - ESP32/Arduino 上の小さい TFT で一般的;
  • I2C - 多くの場合、容量性タッチ コントローラー、時々タッチ コントローラー上;
  • UART - スマート ディスプレイと一部の 3D プリンター TFT 上;
  • EXP1/EXP2/EXP3 - 3D プリンター ボード と互換性のある画面 ;
  • HDMI + USB - Raspberry Pi 用 Linux 画面;
  • DSI - 一部の Raspberry Pi 画面 ;
  • 並列 RGB/8080 - より高速な TFT で、より多くのワイヤーと要件。

対角線だけで画面を選択することはできません。2 つの 3.5" 画面は完全に異なる場合があります: ESP32 用 1 SPI モジュール、独自のファームウェア付き 2 番目 UART パネル、Raspberry Pi 用 3 番目 HDMI 画面。

抵抗性および容量性タッチ

タッチ部分も変わります。

抵抗性タッチ:

  • 指、スタイラス、または爪の圧力に応答;
  • 多くの場合、キャリブレーション が必要;
  • 通常、ジェスチャーに悪い;
  • より安価な場合があります;
  • XPT2046 のようなコントローラーで見つかりました。

容量性タッチ:

  • 指に応答;
  • 通常、使用するのが素敵です;
  • 複数のタッチをサポートできます;
  • 多くの場合、FT5x06GT911 ファミリーのような別のコントローラーがあります;
  • 厚い手袋と一部の保護カバーで悪く機能します。

ワークショップ デバイスの場合、抵抗性タッチは指の爪またはスタイラスで押すことができるため、時々より実用的です。エンクロージャー上の素敵なパネルの場合、容量性は通常、より近代的に感じます。

電力、バックライト、電流

TFT 画面は小さい OLED より多くを引き出します。主な電力消費者はバックライトです。

接続する前に、確認してください:

  • 画面電力電圧;
  • バックライト電流;
  • 別の 5V ソースが必要かどうか;
  • バックライト明度が調整可能かどうか;
  • ロジックレベルが互換性があるかどうか;
  • 画面がボード レギュレーターをオーバーロードするかどうか;
  • バックライトがオンの場合、電力がセイするかどうか。

画面が白く、ちらつき、制御器を再起動するか、タッチ イベントを失う場合、最初にインターフェース コードではなく、電力とグラウンドをチェックしてください。

ヒーターを備えたデバイスの場合、画面はランダムな弱いピンから電源を供給すべきではありません。明確なマージンを持つ適切な電力スキームの一部である必要があります。

ファームウェアと互換性

美しい画面は、選択されたファームウェアがそれをサポートしない場合は無用です。

ESP32/Arduino アプローチの場合、確認する必要があります:

  • ディスプレイ ドライバーがあるか;
  • タッチ コントローラー ドライバーがあるか;
  • 十分な GPIO があるか;
  • バッファ用に十分な RAM/PSRAM があるか;
  • どのグラフィックス フレームワークが使用されるか;
  • 誰がメニューを書くのか。

ESPHome の場合、特定のディスプレイ ドライバーと タッチスクリーン コンポーネントのサポートをチェックしてください。例えば、ILI9xxx ディスプレイと XPT2046 タッチには SPI と個別の構成が必要であり、抵抗性タッチにはキャリブレーション が必要です。

Klipper の場合、通常 2 つの異なる世界があります:

  • MCU に接続された小さなディスプレイを Klipper config で説明;
  • KlipperScreen は Linux ホスト上にあります、画面がモニターとタッチ デバイスとして機能します。

KlipperScreen は通常、Linux がデスクトップまたはコンソールを表示できる画面が必要です。これは、プリンター ボードに接続された小さい UART TFT と同じではありません。

Marlin/プリンター ボード の場合、特定の画面が必要なモード: UART タッチ モード、12864 エミュレーション、EXP1/EXP2/EXP3、ファームウェア構成での特定のコントローラー タイプをサポートするかどうかをチェックしてください。

スマート ディスプレイと Nextion のような画面

スマート ディスプレイは便利です、なぜなら画面はページ、ボタン、フォント、画像を保存するからです。制御器は UART 経由でコマンドを送信し、タッチ イベントを取得します。

長所:

  • マイクロコントローラーのロードが少ない;
  • メイン ファームウェアのグラフィックス コードが少ない;
  • 画面エディターでインターフェースを描くことができます;
  • UART と電力のみが必要です。

短所:

  • 個別のエディターとプロトコルを学ぶ必要があります;
  • インターフェースは多くの場合、画面に保存されます;
  • UI とデバイス ファームウェア バージョンを同期させるのが難しい;
  • すべての要素が通常のアプリのように動作しない;
  • 画面を置き換えると、再設計が必要になる場合があります。

シンプルなデバイスの場合、Linux ホストなしで素敵なパネルが必要な場合、スマート ディスプレイは良いソリューションになることができます。しかし、それは「通常のモニター」ではありません: それ独自のロジックを備えた別のモジュールです。

ケース、ケーブル、サービス

タッチスクリーンはユーザーが手で触れるものです。したがって、メカニクスは重要で、ワイヤーだけではありません。

事前にチェック:

  • 画面はホット ゾーンではありません;
  • フレームまたは保護マウントがあります;
  • カバーを開いてケーブルが鋭く曲がらない;
  • サービスのためにケーブルを切断できます;
  • コネクタは逆向きに行くことはできません;
  • ケースは画面を押しません;
  • 更新が必要な場合、SD カードまたは USB へのアクセスがあります;
  • ユーザーはスクリーンを使用中に電力部分に触れません;
  • タッチ/表示ワイヤリングはヒーター ワイヤーから分離されています。

ヒーターを備えたデバイスの場合、画面をユーザー ゾーンに移動し、熱い空気と電力部分から離すことが良いです。

購入前にチェックすること

タッチスクリーンを購入する前に、確認してください:

  • 対角線と解像度;
  • ディスプレイ タイプ: 生 TFT、スマート UART、プリンター TFT、HDMI/DSI;
  • ディスプレイ インターフェース;
  • タッチ インターフェース;
  • ディスプレイ コントローラー: 例えば ILI9341ILI9488ST7789;
  • タッチ コントローラー: 例えば XPT2046FT5x06GT911;
  • 電力とバックライト電流;
  • ロジックレベル;
  • ファームウェアでのサポート;
  • 文書とサンプルの利用可能性;
  • ライブラリの利用可能性;
  • RAM/PSRAM 要件;
  • ボード寸法、穴、ケーブル;
  • 動作温度;
  • ファームウェア/インターフェース更新メソッド。

製品説明にディスプレイ コントローラー、インターフェース、電力、接続例がない場合、最初のプロジェクトでそのような画面を使用しない方が良いです。

典型的なエラー

  • 「Arduino 用」画面を購入しましたが、プロジェクトは Linux 上の KlipperScreen;
  • HDMI 画面を購入して ESP32 に直接接続しようとしました;
  • UART スマート ディスプレイを購入しましたが、通常の TFT のように動作することを期待;
  • 生 TFT を選択しましたが、メニューとグラフィックス コード用に時間を計画していません;
  • SPI ディスプレイとタッチ コントローラー用に十分な GPIO がありません;
  • 画面バッファ用に十分な RAM がありません;
  • タッチ コントローラーをチェックしませんでした;
  • 抵抗性タッチをキャリブレーション;
  • 弱いバックライト電力のため画面がちらつく;
  • ケーブルはヒーター電力ワイヤーの近くを実行;
  • 画面がホット ゾーンにマウント;
  • インターフェースは素敵に見えますが、メイン エラーは見難い。

重要なポイント

タッチスクリーンを対角線ではなくアーキテクチャで選択してください。最初に誰がインターフェースを描くか決定してください: マイクロコントローラー、スクリーン自体、プリンター ファームウェア、または Linux ホスト。その後、インターフェース、電力、タッチ コントローラー、ファームウェア サポート、エンクロージャー メカニクスをチェックしてください。

シンプルなヒーター、ドライヤー、またはフィルターの場合、通常、OLED、ボタン、または Web インターフェースで十分です。ユーザーが本当にローカル インターフェースが必要な場合は、タッチスクリーンを使用してください。

参考資料