スズハドットコム

IT関連や3Dプリンタの記事、たまに生活のメモを書いていきます。

Raspberry Pi 3B+にタッチ対応7インチLCDを取り付ける

使用した製品

ラズパイ用のタッチ対応7インチLCDをAliExpressで購入しました。

7インチラズベリーパイ4モデルbタッチスクリーン1024 × 600のips容量性lcdラズベリーパイのためのスピーカーと3B +/3B/nvidia jetsonナノ|デモボードアクセサリー| - AliExpress

f:id:suzuki_hajime:20210131162252j:plain正面。

f:id:suzuki_hajime:20210131162317j:plain

背面。ラズパイがむき出しで装着されます。

 

1/11に発注し、1/30に到着しました。

配送予定期間13~20日と書いてあったのでまぁ予定通りですね。

 

 

感想

Good

画面はきれい。

右側面にあるHDMIポートはラズパイ以外からの「入力」に使うような説明だが、ラズパイが動作している間は「出力」になっている。ここに外部ディスプレイをつなぐと映る。

※クローン表示のみ確認。マルチデスクトップになるかは不明。

Bad

ラズパイ3B+の場合、USBポートが4つあるうちの右2つ(GPIOに近い側)は脚と干渉する。

特に上段は短いデバイスしか接続できない。例えば、デスクトップ向けの有線キーボードやマウスのようなUSBプラグは挿せない。

下段は長さの制約はないけれど、太めのUSBメモリのようなものはムリ。

左下のUSBポートはディスプレイとの接続に使われているので、自由に使えるのは左上の1ポートしかない。

部品配置の都合でLANケーブルのツメの所に指が届きにくい。つまりケーブルがものすごく抜きにくい。

(スピーカーなしモデルなら問題ないかも)

 

組み立て

取説どころか紙切れ1枚も無く、箱に部品だけ入っていて面食らいましたw

が、部品点数は少ないですし、付くべき場所にしか付かないので、さほど時間は掛からずに完成しました。

(一番迷ったのは脚だったりする)

このディスプレイとラズパイはHDMIとUSBで繋がりますが、どちらも専用基板が付属しているのでスマートに接続できます。

 

起動

インストール済みのRaspberryPi OS環境があるので、そのまま起動してみます。

⇒起動して画面も映りますが、どうも解像度640x480のようです。映像が粗いですし横に間延びしています。

 ちなみにこの状態でタッチパネルは正常に動作していました。

 

解像度の変更方法

色々とググってたどり着いたのはこちらのページ。実はAliExpressの商品説明の中にリンクが書いてあったw

http://www.lcdwiki.com/7inch_HDMI_Display_(H)

 

/boot/config.txtを以下のとおり編集するように書いてあります。

hdmi_force_edid_audio=1
max_usb_current=1 (この行は設定してません。後述。)
hdmi_force_hotplug=1
config_hdmi_boost=7
hdmi_group=2
hdmi_mode=87
hdmi_drive=2
display_rotate=0 (この行は設定してません。後述。)
hdmi_cvt 1024 600 60 6 0 0 0 (設定値を変えてます。後述。)

 

設定の意味はこちらを読むとわかります。

https://www.raspberrypi.org/documentation/configuration/config-txt/video.md

 

hdmi_force_edid_audio=1

HDMIディスプレイが(実際のサポート状況にかかわらず)全てのオーディオフォーマットをサポートすることにする設定です。


max_usb_current=1

USBポートの出力電流に関する設定ですが、https://www.raspberrypi.org/documentation/configuration/config-txt/misc.md によると現在は max_usb_current=1 の状態がデフォルトであり書いても無視されるようです。

なのでこの行は記載しません。


hdmi_force_hotplug=1

HDMIディスプレイが(実際には接続されていてもいなくても)接続されていることにする設定です。

ラズパイ起動時にHDMIを挿してないとコンポジット出力になっちゃって、あとからHDMIケーブルを挿しても映像が出ない現象の対策に使う項目ですね。


config_hdmi_boost=7

HDMI信号強度の設定です。0が最弱、11が最強、デフォルトは5。

 


hdmi_group=2
hdmi_mode=87

hdmi_groupは映像フォーマットのグループの指定。2はDMTというもの。

このDMTグループの中に1から86までのhdmi_mode(解像度やリフレッシュレートのプリセット)が定義されていて、今回はプリセットにない解像度なので87を指定する。

 

hdmi_cvt 1024 600 60 6 0 0 0

hdmi_mode=87の時に具体的な解像度等を指定するのがこちらのhdmi_cvt。

値は左から順に幅(ピクセル) 高さ(ピクセル) フレームレート(Hz) アスペクト比 マージン インターレース ReducedBlanking。

サンプルどおりに設定したら画面が点滅してまともに表示されない現象が起きて、あちこち設定を変えて試行錯誤した結果、ReducedBlankingを1にすると安定しました。

hdmi_cvt 1024 600 60 6 0 0 1 で運用中です。


hdmi_drive=2

1はDVIモード(音声信号が出ない)、2はHDMモード(音が出る)です。


display_rotate=0

display_rotate は現在非推奨パラメータになっています。(display_lcd_rotate と display_hdmi_rotate を使え、ということのようです。)

画面回転する予定もないですし、この行は記載しません。