AIに画像を書かせて定期的に更新されるフォトフレームを作りたい!!
raspberry pi 4でStable Diffusionを動かしてみる(画像自動生成&更新フォトフレームの作成)その1
の続きになります。
使ったもの
制御:Raspberr
y Pi 4 Model B
表示器:7色電子ペーパー(Pimoroni:Pim534)
こちらのinky-impression-5.7という7色(黒、白、赤、緑、青、黄、オレンジの7色)の組み合わせから、いろいろな色を鮮やかに表現できる電子ペーパーのディスプレイを使います。
公式ドキュメントにすぐにでも使えるPythonのライブラリがあるのでそれを使い、好きな画像を表示するとこまで試していきたいと思います。
まずは画像表示できた時の写真
7色電子ペーパに任意の画像を表示させることができました。
ちなみに描画には30〜40秒ほどかかります。
構築作業1:RaspberryPiのOS構築について
今回私のRaspberry Piの環境は「その1」同様以下の通りです。
- ボード:Raspberry Pi 4 Model B
- OS:RASPBERRY PI OS LITE (64bit)
OSはGUIのないものを選びましたが、RASPBERRY PI OSであればどれでも大丈夫かと思います。
あとRaspberry pi zeroでも動作を確認しています。
構築作業2:inky-impressionの動作環境構築
Python3の開発に必要なパッケージのインストール
$ sudo apt-get -y install python3-dev
$ sudo apt-get -y install python3-pip
Inkyライブラリをインストール
$ cd ~/
$ curl https://get.pimoroni.com/inky | bash
i2cとspiを有効化(以下実行後「3.interface Option」に設定があるのでenableにします)
$ sudo raspi-config
これで必要なパッケージのインストール/設定は完了です。
構築作業3:inky-impressionを動かしてみる
・Raspberry piとinky-impressionを物理的に接続します。
inky-impressionはそのままRaspberry Piに接続できるピンソケットが既に実装されています。
なので画像のようにRaspberry Piを裏返しにして差し込めば接続の完了です。
・Pythonでサンプルプログラムを起動
ホームディレクトリにPimoroniというディレクトリができていると思います。
以下まで移動し、サンプルを動かしてみます。
$ cd Pimoroni/inky/examples/7color/
$ python stripes.py
するとこんな感じの画面が30秒ほどかけて表示されたと思います。
これで動作確認の完了です。
最後に画像を表示してみましょう。
ホームディレクトリに移動しPimoroniディレクトリにある画像を1枚コピーしてきます
$ cd ~/
sudo cp Pimoroni/inky/examples/7color/images/inky-4.0-ships.jpg ./
以下を参考にinky-impressionで画像を表示するサンプルプログラムを作ってみました。
こちらのviコマンドからPythonのプログラムを実装します。
sudo vi sample.py
from PIL import Image
from inky.inky_uc8159 import Inky
img = Image.open("./inky-4.0-ships.jpg")
w, h = img.size
h_new = 448
w_new = int((float(w) / h) * h_new)
w_cropped = 600
img = img.resize((w_new, h_new), resample=Image.LANCZOS)
x0 = (w_new - w_cropped) / 2
x1 = x0 + w_cropped
y0 = 0
y1 = h_new
img = img.crop((x0, y0, x1, y1))
inky = Inky()
saturation = 0.5
inky.set_image(img, saturation=saturation)
inky.show()
以下のコマンドからPythonを実行します。
画像の描画が始まります。
$ python stableDiffusion.py
これでこのパートは終了したいと思います。
raspberry pi 4とinky impressionが入る筐体を作る(画像自動生成&更新フォトフレームの作成)その3