概要
- Raspberry Pi zeroを使ってデジタルフォトフレームを作成
- USBメモリ保存された動画、画像データを再生
- Raspberry Pi zeroはOSを読み込み専用で起動し、自動ログインと自動アプリ起動を行う
- 環境設定時にはUSB接続でのSSH接続を行う
- 画面は1920x1080を縦画面にしたディスプレイを利用
デバイス構成
- Raspberry Pi zero (wも可)
- micro SDカード (OS用)
- モバイルモニター
- USBメモリ(メディアデータ保存用)
- micro USB OTG 変換ケーブル
- mini HDMI 変換ケーブル
OS設定
- OS用SDカード作成
- Raspberry Pi ImagerからRaspberry Pi OS Lite (Legacy)を選択
- 詳細設定から「ホスト名」、「SSHを有効化する」、「ユーザー名とパスワードを設定する」を設定する
- USBによるssh接続設定(OS側)
- sdカードにOS書き込み後、差しなおして再認識
- config.txtを開いて最後に「dtoverlay=dwc2」を追加
- cmdline.txtを開いて「modules-load=dwc2,g_ether」を「rootwait」直後に追加
- 空の「ssh」ファイルを作成
- USBによるssh接続設定(Windows側)
- 以下のサイトからドライバー「Acer Incorporated. - Other hardware - USB Ethernet/RNDIS Gadget Windows 7, Windows 8, Windows 8.1 and later drivers」をダウンロード
- ダウンロードしたファイルの中身をすべて展開しておく
- Raspberry Pi zeroをwindowsに接続しデバイスマネージャーを開く
- デバイスマネージャーに追加されたCOMポートを選択しドライバーの更新を実行
- 展開したドライバーをインストールするとデバイスマネージャーのネットワークアダプターに「USB Ethernet/RNDIS Gadget」が追加される
- インターネット設定(Windows側)
- 設定 → ネットワークとインターネット → ネットワークの詳細設定 → ネットワークアダプターオプションの詳細
- インターネット接続済みのアイコンのプロパティの共有を選択
- インターネット接続の共有の「ネットワークのほかの…」のチェックを入れてRaspberry Piのネットワーク名を選択
- PCの再起動
- 画面設定
- sudo vim /boot/config.txt
- FullHD設定
- disable_overscan=1
- hdmi_force_hotplug=1
- hdmi_group=1
- hdmi_mode=16
- 画面回転(縦画面)
- HDMI_modeの下にdisplay_hdmi_rotate=1
- dtoverlay=vc4-kms-v3dをコメント化
- 画像表示
- sudo apt install fbi
- sudo fbi -T 1 -d /dev/fb0 -noverbose -a <画像ファイル>
- 停止(qコマンドを送信) :
sudo perl -e '$chr="q"; require "sys/ioctl.ph";open($hTTY, ">", "/dev/tty1");ioctl($hTTY, TIOCSTI(), $chr)'
- 画面スリープ停止
- sudo raspi-config
- 2 Display Options
- D4 Screen Blanking
- No
- mp4再生
- sudo apt install omxplayer
- omxplayer
-o
- 自動ログイン
- sudo raspi-config
- 1 System Options
- S5 Boot / Auto Login
- B2 Console Autologin
- sudo reboot
- USB自動マウント
- mkdir usb
- sudo vim ~/.profile
- 以下を最後尾に追加
- sudo mount /dev/sda1 /home/akihiro/usb
起動時実行
- sudo vim ~/.profile
- 以下を最後尾に追加
- bash /home/akihiro/run.sh
USBメモリにrun.shファイルを作成して以下を記述
files="/home/akihiro/usb/*" while true do for filepath in $files; do extname="${filepath##*.}" if [ $extname = "jpg" ] || [ $extname = "png" ]; then sudo fbi -T 1 -d /dev/fb0 -noverbose -a $filepath sleep 30 dd if=/dev/zero of=/dev/fb0 > /dev/null 2>&1 sudo kill -9 $(ps aux | grep -v grep | grep fbi | awk '{print $2}') elif [ $extname = "mp4" ]; then sudo omxplayer -o hdmi $filepath fi done done
USBメモリに画像、動画データ保存
sdカードの読み込み専用化
- ROM有効化
- sudo raspi-config nonint enable_overlayfs
- sudo systemctl reboot
- ROM無効化
- sudo raspi-config nonint disable_overlayfs
- sudo systemctl reboot
- ROM有効化