Raspberry Pi: ディスプレイの接続

Takami Torao RPi3 Model B+ Raspbian 11 #RaspberryPi
  • このエントリーをはてなブックマークに追加

概要

必須ではないが Raspberry Pi でやっておくと良い設定や便利なガジェットなどのメモ。また HDMI キャプチャデバイスを使用することでシステムコンソールを Android 端末や PC に表示することもできる。

Table of Contents

  1. 概要
  2. HDMI キャプチャデバイス
    1. Android 端末で表示
    2. Windows や mac OS で表示

HDMI キャプチャデバイス

Raspberry Pi をヘッドレス端末として使用していると、たまに起きるトラブルなどの対応 (特にネットワーク障害で ssh 接続できないケース) でディスプレイを接続してシステムコンソールを使用しなければならいことがある。このようなとき HDMI キャプチャデバイスを使うと Android タブレットを簡易モバイルディスプレイのように利用したり、Windows や macOS の 1 ウィンドウでシステムコンソールを表示できて便利である。

いわゆるビデオキャプチャーボードとは、TV 放送や AV 機器からの映像/音声信号を PC 向けの信号や映像ファイルに変換するデバイスの総称である。安価に手に入る HDMI 入力を USB カメラ出力と同等の信号に変換するキャプチャデバイスを使うと、Web カメラの映像を表示するのとまったく同じように、PC や Android 端末で HDMI 出力側の画面を表示することができるようになる。もちろん、Raspberry Pi のみならず他の PC や AV 機器、ゲーム機器など、HDMI 出力端子を持っていればどのようなデバイスも利用できる。

Android 端末で表示

Android 端末の標準アプリは本体カメラのみしか対応していないことが多い。ここでは Google Play ストアから USBカメラスタンダード版 (Infinitegra, Inc) をインストールする (USB カメラ入力を表示できるアプリであれば何でも良い)。

Fig 1.

アプリをインストールしたら HDMI キャプチャデバイス経由で Rasbperry Pi と接続するだけで画面が表示されるだろう。ただし、タブレット PC 程度の大きさでは解像度が高すぎて Fig 1 のように画面の文字がつぶれてしまっているかもしれない。

文字のつぶれはアプリ側で HD 画面に切り替えてフルスクリーン表示にすると緩和できる。それでも読みづらい場合は Raspberry Pi の HDMI 設定を変更して出力解像度を固定する必要がある。HDMI 解像度の設定は /boot/config.txt で行うことができる。

pi@pirite:~$ sudo vi /boot/config.txt

もっとも簡単な方法は hdmi_safe=1 を有効化してセーフモードで起動することである。これで HDMI 出力の解像度を VGA (640x480) にすることができる。

# uncomment if you get no picture on HDMI for a default "safe" mode
hdmi_safe=1

ファイル保存後に再起動すれば Fig 2 のように解像度が変化しているだろう。

Fig 2. セーフモード (VGA) で起動した Raspberry Pi の画面。

Raspberry Pi の画面を Android 端末で表示できるとは言っても、そもそも端末の画面サイズが小さすぎれば使い物にはならないだろう。目的とする Android 端末で Fig 2 の画像をフルスクリーン表示してみれば VGA サイズで文字が読めるかを確認できる。

ここで試した HDMI to USB Web カメラアダプタは Motion JPEG で 1920x1080 (60fps) まで入力できるらしい。

全部見る
pi@pirite:~$ v4l2-ctl -d /dev/video2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
        Type: Video Capture

        [0]: 'MJPG' (Motion-JPEG, compressed)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1600x1200
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1360x768
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1280x1024
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 720x576
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.017s (60.000 fps)
                        Interval: Discrete 0.020s (50.000 fps)
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
        [1]: 'YUYV' (YUYV 4:2:2)
                Size: Discrete 1920x1080
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1600x1200
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 1360x768
                        Interval: Discrete 0.125s (8.000 fps)
                Size: Discrete 1280x1024
                        Interval: Discrete 0.125s (8.000 fps)
                Size: Discrete 1280x960
                        Interval: Discrete 0.125s (8.000 fps)
                Size: Discrete 1280x720
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 1024x768
                        Interval: Discrete 0.100s (10.000 fps)
                Size: Discrete 800x600
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 720x576
                        Interval: Discrete 0.040s (25.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 720x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)
                Size: Discrete 640x480
                        Interval: Discrete 0.033s (30.000 fps)
                        Interval: Discrete 0.050s (20.000 fps)
                        Interval: Discrete 0.100s (10.000 fps)
                        Interval: Discrete 0.200s (5.000 fps)

Windows や mac OS で表示

Windows 標準の「カメラ」アプリケーション、mac OS では Quick Time Player の [ファイル] - [新規ムービー収録] を使って Raspberry Pi のシステムコンソールを表示することができる (表示されないときは 📷 や [⌄] マークでカメラデバイスを選択する)。

Fig 3. HDMI キャプチャデバイス経由で Windows (左) と QuickTime Player (右) に表示した Raspberry Pi のシステムコンソール。