2021年6月7日月曜日

Raspberry Pi Zeroとluma.oledで有機ELディスプレイにグレースケール化した画像を表示する

Raspberry Pi Zeroとluma.oledで有機ELディスプレイにグレースケール化した画像を表示するには以下の手順を実行します。

〇接続したRaspberry Pi ZeroとOLED

実行手順

1. 部品の用意&環境の準備
Raspberry Pi Zeroの他、秋月電子さんで購入した以下のOLEDを使用します。
0.96インチ 128×64ドット有機ELディスプレイ(OLED) 青
https://akizukidenshi.com/catalog/g/gP-15870/

環境の準備については、以下の記事を参照してください。
Raspberry Pi Zeroと0.96インチ有機ELディスプレイを使用して、文字列を表示する

2. 画像ファイルの配置
表示する画像ファイルを実行するスクリプトと同じフォルダに保存しておきます。

3.プログラミングとファイルの実行
以下のファイルをluma_image.pyとして保存し、実行します。canvasを作成する際に、backgroundとしてイメージを渡します。
from luma.core.interface.serial import i2c
from luma.core.render import canvas
from luma.oled.device import ssd1306
import time
from pathlib import Path
from PIL import Image

device = ssd1306(i2c(port=1, address=0x3C))
background = Image.new(device.mode, device.size, "black")
path = str(Path(__file__).resolve().parent.joinpath('rasp0_minetest.png'))
img = Image.open(path).convert("L").resize((device.width, device.height))
background.paste(img, (0, 0))
#device.display(background)
with canvas(device, background=background) as draw:
    draw.rectangle((0,50,device.width,device.height), outline="black", fill="black")
    draw.text((4, 50), "Minetest", fill="blue")

while True:
    time.sleep(1)

・実行コマンド
以下のコマンドを実行してOLEDにグレースケールにした画像と文字列が描画されることを確認します。Ctrl+Cでプログラムを停止させます。
python3 luma_image.py

関連項目

Python用ディスプレイドライバーのluma.oledのまとめ

OpenSCADとUltimaker Curaを使用して、0.96インチ有機ELディスプレイのケースを作成する

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する

0 件のコメント:

コメントを投稿