ArduinoとタッチTFT/LCDモジュール「GT-SP」を接続して文字を表示する

はじめに
このシリーズでは電子工作初級者に向けて、Arduinoを用いてタッチTFT/LCDモジュールを制御する方法を解説しています。
ここではノリタケ伊勢電子製の7インチ静電容量タッチTFT/LCDモジュール「GTWV070S3A00P」を使用しています。このディスプレイは専用のPCツールで表示画面をデザインし、タッチ座標の読み取りも不要で制御でき、シリアル接続対応でArduinoとも数本のケーブルで繋がるため、初心者でも簡単に扱えます。
今回は、このタッチTFT/LCDモジュールとArduinoを使い、画面上のボタンをタッチすると文字を表示させるシステムを開発してみましょう。
資料とツールの入手
開発をはじめる前に、あらかじめサポートページから必要な資料やツールを入手します。GTWV070S3A00Pのハードウェア仕様書とソフトウェア仕様書、デザインツール GT Design Studio、をダウンロードしてください。また、GT-SPを初めて扱う方は、GT-SPスタートガイド1~3に一度目を通しておくことをお勧めします。ダウンロードには会員登録必要ですが、デザインツールを含めて全て無償で入手できます。
・技術資料 【GTWV070S3A00P 仕様書】 ダウンロードページ
TFT/LCDモジュールとArduinoの接続
ノリタケのタッチTFT/LCDモジュール GT-SPシリーズは、シリアルI/Fで様々なマイクロコントローラに接続できます。今回はArduino UNO(互換)をホストコントローラとして開発していきます。
スタートガイド3を参考に、TFT/LCDモジュールとArduino UNOを接続していきます。ガイドの配線図はArduino Nano Every用のため、以下のようにArduino UNO用に書き直しています。

こちらはブレッドボードを使った接続例です。写真にあるXHコネクタからはGT-SPのCN9につながります。

GT-SP用プロジェクトの作成

スタートガイド3 の「レスポンスデータの受信」を参考に、GT Design Studioを使って、ボタンを押すと「ABC」を出力するプロジェクトを作成し、GT-SPに登録します。GT Design Studioの基本的な使い方はスタートガイド2に詳しく書かれていますので、初めて使うユーザーは先にそちらを学習を済ませておくことを推奨します。
Arduino用プログラムの作成
スタートガイド3 の「レスポンスデータの受信」を参考に、以下のサンプルプログラムをArduinoに登録します。
※スタートガイドに書かれているサンプルプログラムはArduino Nano Every用のため、そのままではArduino UNOで動きません。そのためUNOで動かすために、サンプルプログラムのシリアル通信「Sirial1」を「Serial」に変更する必要があります。
サンプルプログラム
プログラム解説
GT-SPのボタンが押されると、GT-SPは「ABC」というデータをArduinoに送信します。Arduinoはそれを読み取り、「ABC」をGT-SPのテキストオブジェクトに表示するプログラムとなっています。
はじめに、ホストがGT-SPからシリアルデータを受信するとSerial.available() のフラグが立ち、gtsp_signal_read関数を呼び出します。この関数では、受信データが「RESb」で始まるか判別し、4 バイトのデータ⻑を取得します。その後、データ長分のデータ(ここではGT-SPから送られた文字列「ABC」)を取得し、返します。
次に、gtsp_ObjPrpSet_string関数 に、テキストオブジェクト[TEXT_0]のオブジェクトNo(「1」)、プロパティNo(「0x40」)、受信した文字列(「ABC」)を送ることで、GT-SPの画面上に「ABC」を表⽰させています。
実行結果

実際にプロジェクトが書き込まれたGT-SPと、スケッチが描き込まれたArduinoを繋いで操作します。GT-SPに設置したボタンを押すと、何も無かったテキストオブジェクト部分に「ABC」と表示されました。
ボタンを押したとき、どのようなデータが送られているかは、GT Design Studioでは「Terminal」より、Arduino IDEではシリアルモニタより確認できます。それを見ることで、GT-SPから送信されたデータ「ABC」がArduinoで処理され、スクリーン上に改めて出力されたのが確認できます。
次回は、Arduinoに接続したLEDをTFT/LCDモジュールでタッチ操作する画面の開発を解説します。