LoginSignup
1
4

More than 1 year has passed since last update.

raspberry pi 4でinky impressionを動かしてみる(画像自動生成&更新フォトフレームの作成)その2

Last updated at Posted at 2023-03-31

AIに画像を書かせて定期的に更新されるフォトフレームを作りたい!!

raspberry pi 4でStable Diffusionを動かしてみる(画像自動生成&更新フォトフレームの作成)その1

の続きになります。

使ったもの

制御:Raspberrスクリーンショット 2023-03-31 13.44.14.png
y Pi 4 Model B
表示器:7色電子ペーパー(Pimoroni:Pim534)

こちらのinky-impression-5.7という7色(黒、白、赤、緑、青、黄、オレンジの7色)の組み合わせから、いろいろな色を鮮やかに表現できる電子ペーパーのディスプレイを使います。
公式ドキュメントにすぐにでも使えるPythonのライブラリがあるのでそれを使い、好きな画像を表示するとこまで試していきたいと思います。

まずは画像表示できた時の写真

スクリーンショット 2023-03-31 13.07.37.png

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を裏返しにして差し込めば接続の完了です。

スクリーンショット 2023-03-31 13.31.39.png
スクリーンショット 2023-03-31 13.45.18.png

・Pythonでサンプルプログラムを起動
ホームディレクトリにPimoroniというディレクトリができていると思います。
以下まで移動し、サンプルを動かしてみます。

$ cd Pimoroni/inky/examples/7color/
$ python stripes.py 

するとこんな感じの画面が30秒ほどかけて表示されたと思います。
20230331_140230.JPG

これで動作確認の完了です。

最後に画像を表示してみましょう。
ホームディレクトリに移動しPimoroniディレクトリにある画像を1枚コピーしてきます

$ cd ~/
sudo cp Pimoroni/inky/examples/7color/images/inky-4.0-ships.jpg  ./

以下を参考にinky-impressionで画像を表示するサンプルプログラムを作ってみました。

こちらのviコマンドからPythonのプログラムを実装します。

sudo vi sample.py
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

こんな感じの画像が表示されると思います。
20230331_141815 (1).JPG

これでこのパートは終了したいと思います。

raspberry pi 4とinky impressionが入る筐体を作る(画像自動生成&更新フォトフレームの作成)その3

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4