タッチスクリーン¶
タッチスクリーンはディスプレイだけではありません。ディスプレイにユーザー入力があります。温度またはボタンを表示するだけでなく、触れた場所をデバイスに伝えることが必要です。
このため、タッチスクリーンはほぼ常に OLED より複雑です。サイズと解像度だけでなく、インターフェースを描くか、タッチを処理し、どのインターフェースを使用するか、選択されたファームウェアがそれをサポートしているかどうかを理解する必要があります。
タッチスクリーンが有用な場合¶
タッチスクリーンは、デバイスが完全なローカル インターフェースが必要な場合に意味があります:
- 乾燥モードを選択;
- 温度と時間を設定;
- マテリアル プロファイル リスト;
- エラーを確認;
- マニュアル ファン、照明、またはダンパー制御;
- Wi-Fi セットアップ;
- 電話またはコンピューターなしでステータスを表示。
温度、エラー、モードのみを表示する必要がある場合、通常、OLED、いくつかのボタン、エンコーダー、または Web インターフェースで十分です。タッチスクリーンは費用、電力、エンクロージャー スペース、ファームウェア、ケーブル、別の障害ポイント を追加します。
主な質問: ユーザー インターフェースを描く人¶
購入する前に、主な質問に答えてください: ユーザー インターフェースがどこに住んでいるか。
タッチスクリーンの複数の異なるクラスがあります:
生 TFT は、ILI9341、ILI9488、ST7789 などのコントローラー、プラス 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のようなコントローラーで見つかりました。
容量性タッチ:
- 指に応答;
- 通常、使用するのが素敵です;
- 複数のタッチをサポートできます;
- 多くの場合、
FT5x06、GT911ファミリーのような別のコントローラーがあります; - 厚い手袋と一部の保護カバーで悪く機能します。
ワークショップ デバイスの場合、抵抗性タッチは指の爪またはスタイラスで押すことができるため、時々より実用的です。エンクロージャー上の素敵なパネルの場合、容量性は通常、より近代的に感じます。
電力、バックライト、電流¶
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;
- ディスプレイ インターフェース;
- タッチ インターフェース;
- ディスプレイ コントローラー: 例えば
ILI9341、ILI9488、ST7789; - タッチ コントローラー: 例えば
XPT2046、FT5x06、GT911; - 電力とバックライト電流;
- ロジックレベル;
- ファームウェアでのサポート;
- 文書とサンプルの利用可能性;
- ライブラリの利用可能性;
- RAM/PSRAM 要件;
- ボード寸法、穴、ケーブル;
- 動作温度;
- ファームウェア/インターフェース更新メソッド。
製品説明にディスプレイ コントローラー、インターフェース、電力、接続例がない場合、最初のプロジェクトでそのような画面を使用しない方が良いです。
典型的なエラー¶
- 「Arduino 用」画面を購入しましたが、プロジェクトは Linux 上の KlipperScreen;
- HDMI 画面を購入して ESP32 に直接接続しようとしました;
- UART スマート ディスプレイを購入しましたが、通常の TFT のように動作することを期待;
- 生 TFT を選択しましたが、メニューとグラフィックス コード用に時間を計画していません;
- SPI ディスプレイとタッチ コントローラー用に十分な GPIO がありません;
- 画面バッファ用に十分な RAM がありません;
- タッチ コントローラーをチェックしませんでした;
- 抵抗性タッチをキャリブレーション;
- 弱いバックライト電力のため画面がちらつく;
- ケーブルはヒーター電力ワイヤーの近くを実行;
- 画面がホット ゾーンにマウント;
- インターフェースは素敵に見えますが、メイン エラーは見難い。
重要なポイント¶
タッチスクリーンを対角線ではなくアーキテクチャで選択してください。最初に誰がインターフェースを描くか決定してください: マイクロコントローラー、スクリーン自体、プリンター ファームウェア、または Linux ホスト。その後、インターフェース、電力、タッチ コントローラー、ファームウェア サポート、エンクロージャー メカニクスをチェックしてください。
シンプルなヒーター、ドライヤー、またはフィルターの場合、通常、OLED、ボタン、または Web インターフェースで十分です。ユーザーが本当にローカル インターフェースが必要な場合は、タッチスクリーンを使用してください。
参考資料¶
- KlipperScreen: Hardware - KlipperScreen の要件と画面の例、HDMI/DSI/Raspberry Pi オプションを含む。
- BIGTREETECH TouchScreenFirmware - ファームウェアと BTT TFT モード: タッチ モード、Marlin/12864 エミュレーション、EXP コネクタ、設定。
- BIGTREETECH TFT35 V3.0 repository - 人気のある 3D プリンター TFT35 の文書とファイル。
- Adafruit 3.5 inch TFT Touchscreen Breakout - SPI/8 ビット モード、個別タッチ、ライブラリを備えた生 TFT の例。
- ESPHome: Touchscreen Components - タッチ コンポーネント、キャリブレーション、生タッチ座標とディスプレイ座標を結びつけるドキュメント。
- ESPHome: ILI9xxx TFT LCD Series - ESPHome の生 TFT ディスプレイ サポートと重要なメモリ制限の例。