ディスプレイ5枚以上の接続を可能にする方法案
最終的に目指しているプロダクト「3Dディスプレイドングル」についてはこちら。
3Dディスプレイドングルについて
昨今CPUにGPU機能が内蔵されることでデュアルディスプレイ、つまりディスプレイ2枚までは普通にできるようになりました。
が、5枚。もっと言えば、コンソール用のディスプレイも欲しい。つまり6枚。
トレーダーかな?
しかしこれ、ちとでかいぜ。
これを5個も積んだらディスプレイより大きいんじゃないだろうか。
でも、これは一考に値します。
つまり、ネットワークごしに送って、それを表示するようなものを作ればいいのです。
これならドライバを作らなくて済みますので、幾分簡単そうです。
しかし、お手元にあるラズベリーパイ3の有線LANの仕様を調べると、39MB/secみたいな情報出てきたのだが、計算ではこれでは足りないぞ。
理由は実現可能性です。USBドライバはとても書けませんから。
ちょうど、TCP/IPプログラミングにも興味があったので、いい機会ということで。
3Dディスプレイドングルについて
●ディスプレイを5枚繋ぐのは難しい
3Dディスプレイドングルは「3Dディスプレイを5枚組み合わせて180度立体的に見えるようにしたら楽しそう」というコンセプトではあるのですが、実際、液晶ディスプレイが5枚も接続できる環境なんてそうそうないのです。昨今CPUにGPU機能が内蔵されることでデュアルディスプレイ、つまりディスプレイ2枚までは普通にできるようになりました。
が、5枚。もっと言えば、コンソール用のディスプレイも欲しい。つまり6枚。
![]() |
| 6画面マルチディスプレーの巨大デスクトップを構築する技 |
こんな環境を一般家庭に要求するのは酷です。というか無理。
可能な限り、ケーブル1本をパソコンに接続したら機器セットアップは完了、を目指します。
かつ、今回は自前でディスプレイが選定できなければなりませんので、そこも重要です。
かつ、今回は自前でディスプレイが選定できなければなりませんので、そこも重要です。
以下の案はすべて軽く調べた程度であり、検討の余地を残しております。
●案1:USBディスプレイ
USB3.0からHDMI出力するという商品があります。
USBハブでUSB3.0の出力を5個にして全てにこの商品を接続すれば5画面行ける?
よく見てみたら、ディスプレイ数はグラフィックカード依存と書いてある。ダメか。
しかしです、USB3.0って転送速度は5.0Gbpsなんですね。
秒間5Gb=を転送できる。
今回使うディスプレイは1200*1920なので、画像サイズはおおよそ6.6MBくらいになるかなと思います。(実際に作ったPNG画像は4.43MBなのだが、なぜ)
秒間5Gb=を転送できる。
今回使うディスプレイは1200*1920なので、画像サイズはおおよそ6.6MBくらいになるかなと思います。(実際に作ったPNG画像は4.43MBなのだが、なぜ)
最低30FPSなので、1秒間に30枚。それが5枚です。
6.6M * 30 * 5 = 988.8M
秒間1GBの転送速度があれば十分表示内容は伝送できる。
あとはこれを受けてディスプレイに表示する側を作れるかどうかです。
USBの仕様として、直接PC同士が通信するようなことには対応していないようなので、あくまでもUSB機器として認識されるようにしなければならないようです。
こういった機器を作るとなれば思いつくのはやはりラズベリーパイです。
Raspberry Pi 3モデルBが4500円未満で買えるので、ハードはまず大丈夫でしょう。
あとは多分ドライバ。多分、ドライバを書かなければならないようです。
USBデバイスを接続して「べぼん」と鳴った後にデバイスドライバのインストールが完了しました、とかメッセージが表示されますが、あれのようなもの。
あれは、基本的にPC側が使えるようにするためのものですが、使われるようにするためのソフトを作らなければならなくなります。
うーん、興味はあるし面白そうだけどだいぶ修羅の道が見える気がする。
使用イメージは一番易しくて良いのだが…。
6.6M * 30 * 5 = 988.8M
秒間1GBの転送速度があれば十分表示内容は伝送できる。
あとはこれを受けてディスプレイに表示する側を作れるかどうかです。
USBの仕様として、直接PC同士が通信するようなことには対応していないようなので、あくまでもUSB機器として認識されるようにしなければならないようです。
こういった機器を作るとなれば思いつくのはやはりラズベリーパイです。
Raspberry Pi 3モデルBが4500円未満で買えるので、ハードはまず大丈夫でしょう。
あとは多分ドライバ。多分、ドライバを書かなければならないようです。
USBデバイスを接続して「べぼん」と鳴った後にデバイスドライバのインストールが完了しました、とかメッセージが表示されますが、あれのようなもの。
あれは、基本的にPC側が使えるようにするためのものですが、使われるようにするためのソフトを作らなければならなくなります。
うーん、興味はあるし面白そうだけどだいぶ修羅の道が見える気がする。
使用イメージは一番易しくて良いのだが…。
●案2:USB type-C
USB type-Cにはオルタネートモードという機能が採用されているものがあり(今は大半?)、USB type-CからHDMI出力させることが可能です。
軽く調べた限り、この手の商品増えてるんですね。
例えば、USB type-Cのハブを使って5端子に増やして、そこからHDMI出力するとどうなるのだろうか。
そもそも、USB type-Cを5個に増やすような製品が見つかりませんでした。
あと、案1の製品は大体、ドライバをインストールする必要があります。
つまり、ソフトウェアの力でUSBにディスプレイ出力をさせているわけです。
しかし、USB type-Cの場合はドライバは不要です。
ハードウェアの仕様でHDMIとして認識できるようにしているのだそうです。
じゃあグラフィックカード必要だよね…。
あと、案1の製品は大体、ドライバをインストールする必要があります。
つまり、ソフトウェアの力でUSBにディスプレイ出力をさせているわけです。
しかし、USB type-Cの場合はドライバは不要です。
ハードウェアの仕様でHDMIとして認識できるようにしているのだそうです。
じゃあグラフィックカード必要だよね…。
●案3:ネットワークディスプレイ
そういう製品がある。もうここまで来れば大体わかってくると思いますが、ようはHDMI出力の情報をLANケーブルで伝送するやつです。しかしこれ、ちとでかいぜ。
これを5個も積んだらディスプレイより大きいんじゃないだろうか。
でも、これは一考に値します。
つまり、ネットワークごしに送って、それを表示するようなものを作ればいいのです。
これならドライバを作らなくて済みますので、幾分簡単そうです。
しかし、お手元にあるラズベリーパイ3の有線LANの仕様を調べると、39MB/secみたいな情報出てきたのだが、計算ではこれでは足りないぞ。
●案3で進める
ひとまず方向性として、案3。LAN経由で画像データを送信し、ディスプレイに表示させる案で行きます。理由は実現可能性です。USBドライバはとても書けませんから。
ちょうど、TCP/IPプログラミングにも興味があったので、いい機会ということで。

コメント
コメントを投稿