TL;DR
本記事では、A4サイズのフルカラー電子ペーパーを用いて自作の電子ペーパーポスターを作成した経緯と手順、ハードウェア・ソフトウェア構成、費用、実際のデモ映像や感想を紹介します。 読者の方が同様のプロジェクトに挑戦できるよう、具体的な作業内容や留意点をまとめています。 電子ペーパーポスターのソフトウェアはGitHubにて公開しています。
記事の目的
- 電子ペーパーポスター作成の備忘録として記録します
- 同じように興味を持った人が、自作に挑戦できるような手順書としても活用してもらえることを目指しています
モチベーション
新居に引っ越してから部屋のインテリアとしてポスターを置きたいと思っていたものの、市販のポスターは高価でサイズの合致や設置リスクがあったため、購入をためらっていました。
去年の12月にXR Kaigiに参加し、そこでgugenkaのブースにあったD-Posterの展示を見て、電子ペーパーの可能性に魅力を感じました 。
(MograVR 過去最大規模の盛り上がり!XR Kaigi 2024のエキスポに集結した注目の展示まとめより画像引用)
ポスター大の電子ペーパーの既製品を調べてみるとSHARPの25.3inchの電子ペーパーポスターを見つけたが45.6万円(yodobashi調べ)するらしく、既製品の購入は断念しました。
電子ペーパーポスターを諦めきれずWeb検索をしていたら、waveshareというメーカーから13.3inch フルカラー電子ペーパーが$277で売っていることを発見しました。 ほぼA4サイズの電子ペーパーはポスターを作るのにうってつけのサイズだと思い、この電子ペーパーをつかってポスターを作ることに決めました。
電子ペーパーの購入とサンプルコードの実行
Amazonや千石商店では、7inchサイズの電子ペーパーは取り扱っていたが、13inchサイズは取り扱っていなかったので、公式サイトで購入して輸入することにしました。 電子ペーパー単体ではなくHAT+ (電子ペーパーをRaspbbery Piなどから簡単に扱えるようにする変換アダプタ)も合わせて購入し、注文してから10日で到着しました。 電子ペーパーは高級感のある化粧箱に入っていました。
公式のマニュアル_Manual#Raspberry_Pi)に従って、Raspberry PiのSPI interfaceの設定やGPIOの設定を書き換えます。 Raspberry PiにHAT+を刺して、サンプルコードを実行するだけで簡単に画像を表示できました。
サンプルの画像だけあって、結構発色が良いように感じられました。 画像のレンダリングには20秒ほどかかります。
電子ペーパーポスターの構成
サンプルコードも動かせたので、A4サイズ大の電子ペーパーポスターの作成に移っていきたいと思います。 電子ペーパーポスターは、Webページ経由で画像をアップロードし、その画像を電子ペーパーに表示するという形で運用します。 そのためハードウェアを組んだ後、いい感じのソフトウェアを書きます。
ハードウェア
電子ペーパーには元々持っていたRaspberry Pi 3B+を繋げます。
電子ペーパーのフラットケーブルの取り回しの都合で、電子ペーパーを保持する額縁のサイズはA4より一回り大きいB4サイズにしました。
電子ペーパーから出ている根本に近いフラットケーブルの部分は、柔軟性がなく、下手に折り曲げると断線しそうな手応えがありました。 HAT+側のフラットケーブルは折り曲げやすかったので、そこで90度折り曲げることにしました(本当はHAT+からRaspberry Pi側のフラットケーブルで曲げたかったですが、これ以上額縁を大きくすると見栄えが悪くなると判断したので、えいやで曲げました)。 額縁の裏蓋にRaspbbery Piを固定します。
これでハードウェア側は完成です。
本当はバッテリー駆動にしたかったですが、リチウムポリマー電池の取り扱いが面倒そう、Raspberry Piのバッテリー駆動はそこまで時間がもたなそうという理由でAC電源から供給するようにしました。 電源ケーブルは極力目立たせたくないので、壁の色と同じ白色のケーブルにしました。
ソフトウェア
電子ペーパーポスターは、Webページ経由で画像をアップロードし、その画像を電子ペーパーに表示するという形で運用します。 以下のソフトウェアの要件を定義し、コードはChatGPTに書かせました。
- Raspbbery Pi側にWebサーバーを建てる
- 画像のレンダリングは時間がかかるので、バックグラウンドで処理する
- ステータスの表示、表示している画像のプレビューを行えるようにする
- 電子ペーパーポスターは横掛けで運用する想定なので、アップロードした画像が横に表示されるように回転処理を入れる
- 電子ペーパーが対応している6色でのディザリング処理をする
- 公式のサンプル画像は電子ペーパーが対応している6色(赤、青、黄、緑、黒、白)のカラーパレットでディザリング処理をしていました
作成したソフトウェアはdither_frameというレポジトリ名でGitHubに公開しています。
ソースコードはかなり手抜きです。以下手抜きポイントです - 利用するユーザーは1人なのでジョブ管理なし - LAN内に限定した利用なので認証なし - 1ファイルにWebサーバー、画像処理、クライアント用のHTMLをまとめている
費用
今回使用したハードウェア代は以下の表の通りで、合計52717円です。 Raspbbery Pi 3B+は元々持っていたものなので、予算に計上していないです。
※電子ペーパーを購入する際には友人と共同購入してるので、単品で買った際には関税代など多少前後するかもしれないです。
電子ペーパーポスターのデモ
作成した電子ペーパーポスターのデモをご覧ください。 額縁のガラスの反射が激しいので、全て斜めから撮影しています。 浮世絵と結構相性が良い気がします。
レンダリング時の様子(手ブレ酷くてすみません) youtu.be
ちなみに画像をアップロードする画面はこのようになります。
スマホで撮影した写真を手軽にポスターに反映できるのが良いです。
まとめ
感想
約5.2万円でA4サイズ大の電子ペーパーポスターを作成することができ、完成品には満足しています。 自分で調べた限り、Waveshare 13.3インチのフルカラー電子ペーパーを使用した記事は見つかりませんでしたが、恐る恐る購入してみたところ、Waveshareのドキュメントやサンプルコードが充実しており、開発に困ることはありませんでした。
フルカラー電子ペーパーの発色はやや弱く、表示する画像の輝度を上げる処理が必須だと感じました。 もう少し発色が良ければ、より魅力的な仕上がりになりそうです。 また、電子ペーパー自体が若干暗いため、縁は白の方が映えると感じました。 実際に今回使用した額縁では、ガラスの反射が強く、若干絵が見づらくなってしまった点が気になりました。
今回の作成過程で電子ペーパーについてさまざまな情報を調べましたが、サイズと価格の関係についても興味深い点がありました。 特に7インチを境に価格が急激に上がる傾向があり、7インチの電子ペーパーなら1万円以内で購入できるのに対し、13.3インチは4.5万円とかなり高価でした。
このプロジェクトを通して、改めてコンピュータを学び始めた理由の一つを思い出しました。 それは、自分が欲しいものを自分の手で作れるようになりたいという思いです。 思い描いたものを形にすることができ、満足しています。
今後やってみたいこと
まず、ESP32を使用して作り直すことに挑戦したいです。 当初はESP32で制御する予定でしたが、10ピンのジャンパ線が見つからず断念しました(後に電子ペーパーの化粧箱内で発見しました)。 Raspberry PiはOSが搭載されているため、富豪的なプログラミングができ、デバッグも容易です。 しかし、今回の用途にはオーバースペックな気がするため、より適切なESP32での制御を試みたいです。
さらに、ポスターの縁を白に作り直したいです。 この記事では13.3inchの電子ペーパーをA4大と表現していますが、厳密にはA4サイズではです。 13.3inchの電子ペーパーは270.40mm × 202.80mmに対して、A4サイズは297mm × 210mmです。 そのため、電子ペーパーと額縁の間に若干の隙間ができてしまっています。 また電子ペーパー自体若干暗いので、全体の色のバランスを整えるために、より適切なサイズの白い縁を作り直したいと考えています。