raspberry pi 4でinky impressionを動かしてみる（画像自動生成＆更新フォトフレームの作成）その２

## AIに画像を書かせて定期的に更新されるフォトフレームを作りたい！！
raspberry pi 4でStable Diffusionを動かしてみる（画像自動生成＆更新フォトフレームの作成）その１

https://qiita.com/kyazoooo/items/3fa5e929ebf3d2c6e028

の続きになります。

# 使ったもの
制御：Raspberr![スクリーンショット 2023-03-31 13.44.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682778/c09f1fc3-f510-4499-e62f-ab1e3fbe820e.png)
y Pi 4 Model B
表示器：7色電子ペーパー（Pimoroni：Pim534）

https://shop.pimoroni.com/products/inky-impression-5-7

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

# まずは画像表示できた時の写真
![スクリーンショット 2023-03-31 13.07.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682778/2438ad70-3a35-091b-67f4-b32ab50eb135.png)

７色電子ペーパに任意の画像を表示させることができました。
ちなみに描画には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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682778/434932f1-6727-3d93-62a3-c07b42095d69.png)
![スクリーンショット 2023-03-31 13.45.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682778/11a40d45-aa2c-28f9-1319-38ea710efc1f.png)


・Pythonでサンプルプログラムを起動
ホームディレクトリにPimoroniというディレクトリができていると思います。
以下まで移動し、サンプルを動かしてみます。
```
$ cd Pimoroni/inky/examples/7color/
$ python stripes.py 
```
するとこんな感じの画面が30秒ほどかけて表示されたと思います。
![20230331_140230.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682778/122f62f7-fb1c-3754-d6ff-be7e2d746518.jpeg)

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

最後に画像を表示してみましょう。
ホームディレクトリに移動しPimoroniディレクトリにある画像を１枚コピーしてきます
```
$ cd ~/
sudo cp Pimoroni/inky/examples/7color/images/inky-4.0-ships.jpg  ./
```

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

https://learn.pimoroni.com/article/getting-started-with-inky-what

こちらの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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/682778/d9a79ec9-b8a4-3b88-299a-3aa13ca4ec46.jpeg)

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


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

https://qiita.com/kyazoooo/items/ed2dc19c7ce1373c182d