Touch Display 2【レビュー】手軽さと拡張性を備えた公式ディスプレイ

【PR】この記事には広告が含まれています。

Touch Display 2【レビュー】手軽さと拡張性を備えた公式ディスプレイ

Raspberry Pi Touch Displayの後継モデルとして登場したTouch Display 2。キーボードやマウスを使わず、指先だけで直感的に操作できるRaspberry Pi公式ディスプレイです。

5インチモデル

5インチと7インチの2種類があり、いずれも背面にRaspberry Piの基板を取り付けて使用します。

5インチモデルの背面

本記事では両モデルをレビューしますが、7インチモデルはRaspberry Pi財団から製品を提供いただいています。

7インチモデル

記事の後半では、このディスプレイを活用した情報表示用サイネージの作成方法も紹介しています。

7インチモデルに自作スタンドを取り付けて情報表示用サイネージとして活用

Touch Display 2のスペック

画面サイズの比較

Touch Display 2には5インチと7インチの2種類がありますが、どちらも画面サイズ以外の仕様や使い方はほぼ同じです。

ディスプレイサイズ5インチ7インチ
解像度1280 x 7201280 x 720
視野角85°85°
画面有効エリア110.4 mm × 62.1 mm155 mm x 88 mm
サイズ143.5 mm(W) x 92 mm(L) x 15 mm(H)189.3 mm(W) ×120.2 mm (L) × 15 mm(H)
重さ143g248g
価格KSY:7,480円
スイッチサイエンス:8,250円
KSY:12,100円
スイッチサイエンス:13,090円

5インチと7インチの両モデルに、1280 x 720のフルカラー静電容量式タッチスクリーンを採用しています。前モデルの800 x 480と比較して、解像度が大幅に向上しました。

5インチモデル

5インチモデルは画面が小さいため、タッチ操作では細かなUIが押しにくく感じることがあります。快適に操作したいなら7インチモデルが適しています。マウス併用で、コンパクトさやコスパを重視するなら5インチモデルが便利です。

開封

7インチモデルの箱
7インチモデル

ディスプレイ本体の重さは5インチが143g、7インチが248gです。バッテリーは内蔵していません。

7インチモデルの背面

裏面にRaspberry Piを取り付けます。Zeroシリーズ以外でDSIポートを持つ全モデルに対応しているようです。

付属品は5インチ、7インチで共通

ディスプレイ以外の付属品は以下の通りです。

  • FFC(Flat Flexible Cable)
  • 電源ケーブル
  • 8×M2.5ネジ

FFC(Flat Flexible Cable)は2種類付いています。これはRaspberry Piのモデルに合わせた接続を可能にするためです。Raspberry Pi 5では22ピンから15ピンに変換するFFCを使用。他のモデルには15ピン同士のFFCを使用します。

準備

今回はRaspberry Pi 5をTouch Display 2に取り付けて使用しました。

Raspberry Pi OSは、2024/11/6時点で最新のバージョンを使用しています。

OSのインストール方法の詳細は、OSインストールから初期設定まで|ラズベリーパイ セットアップ手順のすべてをご覧ください。新たにOSのインストールをする場合は、Wi-Fi接続などの初期設定を済ませておきます。

取り付け

7インチモデル

電源コネクタをディスプレイの裏面側に差し込みます。

Raspberry Pi 5 用のFFC

付属のFFCをディスプレイに接続します。Raspberry Pi 5 用は両端の幅が異なるタイプを使います。両端の幅が同じタイプは Raspberry Pi 5 以外のモデル用です。

7インチモデル

Raspberry Pi 5を取り付けます。このとき、microSDカードは先にセットしておくと安心です。ディスプレイに固定すると出し入れがしづらくなります。

7インチモデル

FFCをラズパイ側に取り付けます。DSIポートが2か所ありますが、どちらに差し込んでも使用できました。

7インチモデル

電源ケーブルをRaspberry Piの5VとGNDのピンに差し込みます。ディスプレイはこのピンから給電されるため、追加の電源は必要ありません

7インチモデル

Touch Display 2自体は、わずか15mmの厚みですが、ラズパイ本体を取り付けると32mmになりました。

7インチモデル

公式パーツであるアクティブクーラーも取り付けて使用できます。

7インチモデル

取り付けが完了し、USB電源ケーブルを差し込んだ状態。基板むき出しの状態で使用するのは心もとないので、できれば保護カバーが欲しいところです。

試しにRaspberry Pi 5用公式ケースを取り付けてみました。別途「8x M2.5ネジ」を4本用意すれば、ラズパイ本体とケースを一緒に固定できます。

7インチモデル

ケースのフタ部分はフラットケーブルがあり、取り付け不可でした。

7インチモデル

デスクにおいて使用する際に安定感が増します。ただ、ケースの厚みがやや気になります。

7インチモデル

ケース部分を握ることで、手持ちで使いやすくなりましたが、見た目はあまり洗練されていません。

Touch Display 2(7インチ)に対応したRaspberry Pi 5専用ケースも市販されているので、あわせて検討すると良いでしょう。

起動

7インチモデル

ソフトウェアの特別な設定は必要ありません。アダプターからRaspberry Piに給電すれば、自動的に画面が表示され、タッチパネルもそのまま利用できます。

画面の向きを変更する

画面の向きは設定により変更できます。メニューを開き「設定」、「Screen Configuration」の順にタップします。

「Screens」をタップします。

「DSI-2」、「向き」の順にタップし、向きを選択します。

「Apply」をタップします。

10秒以内にOKをタップすると、画面の向きが切り替わります。

「Brightness」の設定では、画面の明るさの変更も可能です。

文字入力も可能

文字入力ではスクリーンキーボードを利用可能です。スクリーンキーボードを表示するには、画面右上のキーボードのアイコンをタップします。

スクリーンを消す場合も、同じく画面右上のキーボードのアイコンをタップします。

7インチモデル

キーボードが表示されない場合は以下のコマンドを実行して、画面上で使えるスクリーンキーボード「squeekboard」をインストールします。

sudo apt install squeekboard

「fcitx5」と「mozc」をインストールすれば、ローマ字入力に切り替え可能です。

Raspberry Piで日本語入力の設定をする方法は、https://sozorablog.com/raspberrypi_initial_setting/#toc14で解説しています。

5インチモデル

【活用事例】インフォメーションパネル

7インチモデル

Touch Display 2の画面に時計、カレンダー、天気、ニュースを表示するインフォメーションパネルを作成しました。画面中央にレーダー風のアニメーションを配置し、文字の色もレーダーに合わせて統一しています。また常時表示しておけるようにスタンドも自作しています。

ここからは制作の過程を紹介していきます。

スタンドの作成

3Dプリンターで自分好みのデザインのスタンドを作成します。まずはCADソフトでスタンドを設計します。

プリント時間は約3時間。Touch Display 2に付属のM2.5ネジ4本で固定する仕様にしました。寸法の調整をするため、2回作り直しています。

7インチモデル

イメージ通りに仕上がりました。

7インチモデル

前面から電源のケーブルが目立たないように、L字型のアダプターを使用しました。

ソフトウェアの準備

MagicMirror2という情報表示が可能なスマートミラーを作成するためのオープンソースソフトウェアを使用します。MagicMirror2を使えば、ミラーがなくてもクールな見た目のディスプレイ表示を作れます。

設定操作はタッチパネルでは難しいため、VNC接続やマウス・キーボードを使って行います。

MagicMirror2のインストール

ターミナルを開きます。

以下のコマンドを順に実行していきます。

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/
npm run install-mm

設定ファイルの作成

config.jsを作成します。

nano config/config.js

nanoエディタが開いたら、以下のコードを貼り付けて保存します。

let config = {
	address: "localhost",	// Address to listen on, can be:
							// - "localhost", "127.0.0.1", "::1" to listen on loopback interface
							// - another specific IPv4/6 to listen on a specific interface
							// - "0.0.0.0", "::" to listen on any interface
							// Default, when address config is left out or empty, is "localhost"
	port: 8080,
	basePath: "/",	// The URL path where MagicMirrorツイ is hosted. If you are using a Reverse proxy
									// you must set the sub path here. basePath must end with a /
	ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"],	// Set [] to allow all IP addresses
									// or add a specific IPv4 of 192.168.1.5 :
									// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
									// or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
									// ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],

	useHttps: false,			// Support HTTPS or not, default "false" will use HTTP
	httpsPrivateKey: "",	// HTTPS private key path, only require when useHttps is true
	httpsCertificate: "",	// HTTPS Certificate path, only require when useHttps is true

	language: "en",
	locale: "en-US",
	logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging
	timeFormat: 24,
	units: "metric",

	modules: [
		{
			module: "alert",
		},
		{
			module: "updatenotification",
			position: "top_bar"
		},
		{
			module: "clock",
			position: "top_left"
		},
		{
			module: "calendar",
			header: "Japanese Holidays",
			position: "top_left",
			config: {
				calendars: [
					{
						fetchInterval: 7 * 24 * 60 * 60 * 1000,
						symbol: "calendar-check",
						url: "https://www.google.com/calendar/ical/ja.japanese%23holiday%40group.v.calendar.google.com/public/basic.ics"
					}
				]
			}
		},
		{
			module: "MMM-VideoLoop",
			position: "middle_center", // Central position
			config: {
				videoPath: "http://localhost:8081/radar.mp4"
			}
		},
		{
			module: "weather",
			position: "top_right",
			config: {
				weatherProvider: "openmeteo",
				type: "current",
				lat: 35.6895,
				lon: 139.6917
			}
		},
		{
			module: "weather",
			position: "top_right",
			header: "Weather Forecast",
			config: {
				weatherProvider: "openmeteo",
				type: "forecast",
				lat: 35.6895,
				lon: 139.6917
			}
		},
		{
			module: "newsfeed",
			position: "bottom_bar",
			config: {
				feeds: [
					{
						title: "NHK news",
						url: "https://www3.nhk.or.jp/rss/news/cat0.xml"
					}
				],
				showSourceTitle: true,
				showPublishDate: true,
				broadcastNewsFeeds: true,
				broadcastNewsUpdates: true
			}
		},
	]
};

/*************** DO NOT EDIT THE LINE BELOW ***************/
if (typeof module !== "undefined") { module.exports = config; }

nanoエディタでファイルを保存して終了するには、Ctrl + Oを押して保存し、Enterを押してから、Ctrl + Xで終了します。

このコードは、MagicMirrorの設定ファイルです。MagicMirrorではモジュールという独立した機能を使用して表示内容を設定します。このモジュールごとに表示内容を設定でき、必要な情報を自由にカスタマイズして表示できます。

今回の表示内容は以下の通りです。

  • alert・・・システムの通知や警告を表示するモジュール
  • updatenotification・・・MagicMirrorの更新情報をトップバーに表示するモジュール
  • clock・・・時刻を表示するモジュール
  • calendar・・・日本の祝日を表示するカレンダーモジュール
  • MMM-VideoLoop 動画をループ再生するモジュール
  • weather (current weather) 現在の天気情報を表示。緯度と経度から情報を取得。ここでは東京の緯度・経度を設定
  • weather (weather forecast) 天気予報を表示するモジュール
  • newsfeed 下部にニュースフィードを表示するモジュール


レーダーアニメーション表示用モジュールを作成する

レーダーの動画をループ再生するために、MMM-VideoLoopという名前のモジュールを作成します。

MagicMirrorのモジュールディレクトリに移動します。

cd modules

MMM-VideoLoopフォルダを作成します。

mkdir MMM-VideoLoop

MMM-VideoLoopフォルダに移動します。

cd MMM-VideoLoop

MMM-VideoLoop.jsファイルを作成して編集モードに入ります。

nano MMM-VideoLoop.js

nanoエディタが開いたら、以下のコードを貼り付けます。

Module.register("MMM-VideoLoop", {
    defaults: {
        videoPath: "http://localhost:8081/radar.mp4" //
    },

    getDom: function() {
        const wrapper = document.createElement("div");
        wrapper.style.textAlign = "center";

        const video = document.createElement("video");
        video.src = this.config.videoPath;
        video.autoplay = true;
        video.loop = true;
        video.muted = true;
        video.style.width = "100%";
        video.style.maxWidth = "800px";

        video.onerror = () => {
            wrapper.innerText = "Failed to load video. Please check the path.";
            console.error("Failed to load video:", this.config.videoPath);
        };

        wrapper.appendChild(video);
        return wrapper;
    }
});



このコードでは「MMM-VideoLoop」モジュールを定義し、指定されたURLから動画をループ再生する設定をしています。videoPathプロパティで動画のURLを設定し、getDom関数で動画要素を作成、表示します。

デザインを調整する

custom.cssを作成して、テキストの色や表示位置など、デザインの設定をします。

cd
nano /home/pi/MagicMirror/css/custom.css

nanoエディタが開いたら、以下のコードを貼り付けて保存します。

/* Set all text to a more greenish yellow-green */
* {
    color: #7FFF00 !important; /* Chartreuse */
}

/* Adjust text for the weather module (specify further if necessary) */
.weather .bright,
.weather .dimmed,
.weather .normal,
.weather .small,
.weather .large {
    color: #7FFF00 !important;
}

/* Apply to other modules if text remains */
.clock .bright,
.clock .dimmed,
.calendar .event,
.compliments .compliment,
.newsfeed .newsfeed-title,
.newsfeed .newsfeed-source {
    color: #7FFF00 !important;
}
/* MMM-VideoLoop module to be placed at the back */
.MMM-VideoLoop {
    position: absolute;
    top: -5px;
    left: -110px;
    width: 120%;
    height: auto;
    z-index: 0; /* Set a low z-index to place it behind */
    pointer-events: none; /* Make sure it doesn't interfere with clicks */
    transform: scale(1.2);
}

/* Ensure other modules are above */
.module {
    position: relative;
    z-index: 10; /* Set higher z-index for other modules */
}
.calendar {
    position: relative !important;
    z-index: 120 !important;

このCSSコードは、MagicMirrorの画面デザインを調整するための設定です。まず、全体のテキスト色を黄緑色(#7FFF00)に変更します。次に、天気やカレンダー、ニュースフィードなど特定のモジュールのテキスト色も同じ黄緑色に設定しています。また、動画モジュール(MMM-VideoLoop)は画面の最背面に配置し、他のモジュールがその上に表示されるようにz-indexを調整しています。

レーダー動画をダウンロードする


回転するレーダーの動画は、Pixabayで公開されているものをダウンロードして使用します。Pixabayは著作権フリーの画像、動画、音声などを共有するサイトです。

出典:Pixabay

動画のサイズは640×360を選択します。

ダウンロードしたら、ファイル名を「radar.mp4」に変更しておきます。名前が違うと表示できません。

radar.mp4を/home/pi/MagicMirrorフォルダに移動します。

表示を起動する

MagicMirrorディレクトリに移動します。

cd /home/pi/MagicMirror

Pythonの簡易サーバーを立ち上げて、MagicMirrorに動画(radar.mp4)を提供します。最初はファイルのパスを直接指定して読み込もうとしましたが、うまくいきませんでした。

python3 -m http.server 8081

別のターミナルを開き、MagicMirrorを起動します。

ターミナルを2つ開く
cd MagicMirror/ && npm run start

以下のように表示が開始されれば成功です。

表示を中断するには、CtrlキーとQキーを同時に押します。

まとめ

7インチモデル

Touch Display 2は簡単に取り付けられ、特別な設定不要ですぐに使用を始められる手軽さが魅力です。7インチモデルならデスクトップ画面のタッチ操作が快適に行える一方、Raspberry Piのコンパクトさを損なうこともありません。5インチモデルだと、スタートメニューを開く際やアプリを閉じる✕ボタンの操作など細かいUI操作が難しく感じました。

また、Raspberry Piがむき出しの状態になるため、保護用のカバーやスタンドを自作する必要がある点はデメリットです。タブレットのような使い心地を期待して購入すると、少し物足りなく感じるかもしれません。ただ、カスタマイズの自由度が広がる点においては、これもまたRaspberry Piらしさと言えるのかもしれません。

3Dプリンターで自作したスタンド(5インチモデル)

以下の投稿では、Touch Display 2を使った3Dホログラム投影装置を紹介しています。

透明なプラスチック板(ダイソーで購入)を切り出して台形のパーツを4枚用意し、テープで組み立てるだけで、ディスプレイ上の映像が立体的に浮かび上がって見えます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です