[Raspberry Pi] 3.5 インチタッチ液晶でデジタルフォトフレーム

Raspberry Pi 用の 3.5 インチタッチ液晶を持っているが、最近は使わないでいた。

そこで、せっかくだからその液晶を使ってデジタルフォトフレームを作成することにした。

環境:Raspberry Pi 3 B+、Raspbian Stretch(9.4)、ELECROW 3.5インチTFT LCD ディスプレイ、Mac

(1)Raspbian Stretch をインストールする。

[Raspberry Pi] Raspbian Stretch With Desktop をヘッドレスインストール – with a Christian Wife
https://wacw.cf/2017/12/06/headless-install-of-raspbian-stretch/

(2)3.5インチ液晶の接続のための設定をする。

3.5インチタッチ液晶の接続 [with a Christian Wife wiki]
https://wacw.cf/doku.php?id=raspberrypi:connectingminidisplay

これで3.5 インチ液晶に表示ができるはず。

(3)スクリーンのスリープをしないように設定。

[Raspberry Pi] スクリーンのスリープを防ぐ – with a Christian Wife
https://wacw.cf/2017/04/10/prevent-raspberrypi-from-sleeping/

(4)マウスカーソルを非表示にする。

Raspberry Pi でマウスカーソルを非表示にする – with a Christian Wife
https://wacw.cf/2017/04/09/disable-mouse-cursor-in-raspberry-pi/

(5)feh というパッケージをインストールする。

$ sudo apt-get install feh

(6)Raspberry Pi の例えば Documents/photo に写真を入れる。

(7)以下を実行して、スライドショーが実行される稼働かを確認する。

DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/bin/feh --quiet --preload --randomize --full-screen --reload 60 -Y --slideshow-delay 20.0 /home/pi/Documents/photo

–slideshow-delay 15.0 の部分がスライドショーの表示時間(秒)だ。20.0 の部分を 30.0 などと変更できる。10 秒のような短い間隔だと、処理が追いつかない感じ。最低 20 秒ぐらいがいいようだ。

Ctr + c で終了できる。

スライドショーはタッチパネルをタッチすることですぐに次の写真へスキップできるみたい。

ただし、7の時点では iPhone の写真などは横向きになる。どうやら feh は Exif に書き込まれた回転情報を読み取ってくれないらしい。ということで、写真の Exif から回転情報を削除し、Exif に書き込まない方法で画像を回転させる必要がある。

参考:
iPhoneの写真が勝手に回転している事に悩まされた話(解決できました) – Kumi-Log 海外ノマド放浪5年め
https://jp.kumi-log.com/tech/blog-customize/iphone-picture-exif-rotate-trouble/

(8)Exif 情報から回転情報を削除するには ExifTool を使うと簡単だ。

ExifTool by Phil Harvey
https://sno.phy.queensu.ca/~phil/exiftool/

インストール後、ターミナルで以下を実行すれば、ディレクトリ内の写真の Exif から一気に回転情報を削除できる(自動生成されるバックアップは削除すればいい)。

$ exiftool -Orientation=1 -n 写真のディレクトリのパス

(9)8の写真を回転させるには Preview を使う。以下の方法で一括変換できる。

Macのプレビューで複数の画像を一括で回転させる方法 | iTea4.0
http://itea40.jp/technic/mac-tips-summary/collective-rotation/

9のファイルを再度 Raspberry Pi に転送すればいい。

(10)スライドショーをシェルスクリプトで実行させるため、以下のようにファイルを作成する。

$ sudo nano /home/pi/start-picture-frame.sh

(11)以下のように記入、保存。

#!/bin/bash
DISPLAY=:0.0 XAUTHORITY=/home/pi/.Xauthority /usr/bin/feh --quiet --preload --randomize --full-screen --reload 60 -Y --slideshow-delay 20.0 /home/pi/Documents/photo

(12)以下のコマンドで実行テスト(Ctr + c で終了)

$ bash /home/pi/start-picture-frame.sh

(13)Raspberry Pi 起動時にスライドショーを実行するために、以下を実行。

$ sudo nano /etc/rc.local

(14)exit 0 の前の行に以下を記入、保存。最後の & はバックグラウンドでシェルスクリプトを実行するため。

sleep 20
bash /home/pi/start-picture-frame.sh &

スライドショーを実行中に停止するには以下を実行。

$ sudo pkill feh

参考:
A Simple Raspberry Pi Photo Frame – Pi My Life Up
https://pimylifeup.com/raspberry-pi-photo-frame/

IGZOデジタルフォトフレーム
http://www.asahi-net.or.jp/~rn8t-nkmr/family/pic/pf/index.html