7色e-Paperの画像配信サーバーをFastAPIで作り、Pi Zeroに表示させる | TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
7色e-Paperの限られた色表現力、Raspberry Pi Zero(Buster環境)におけるPython 3.7の制約、およびWaveshare公式ライブラリが特定のハードウェア(Pi Zero)を正しく認識できず、誤ったアーキテクチャ用のバイナリをロードしようとする不具合。
// Approach
画像処理工程に彩度・コントラストの事前補正とFloyd-Steinbergディザリングを導入。通信量削減のため4bitパッキングを実施。クライアント側ではMD5ハッシュによる差分検知を実装し、描画回数を抑制。ライブラリの不具合は/proc/device-tree/modelを参照するよう修正した。
// Result
7色e-Paperにおいて自然な色再現を実現し、Pi Zeroを用いた画像配信PoCを成功させた。今後は、消費電力の観点からESP32への移植を行い、バッテリー駆動による完全ワイヤレス化を目指す。
Senior Engineer Insight
> リソース制約の厳しいe-Paperに対し、サーバー側での事前補正、ディザリング、4bitパッキングという多層的な最適化を施している点は、実用的な設計思想である。特に、MD5による差分検知でデバイスの寿命を考慮する設計は、現場の運用視点に立っている。また、Waveshareライブラリのハードウェア判定ミスという、組み込み特有の「環境依存の罠」を、デバイスツリーの参照という低レイヤーな解決策で突破している点は、技術的な審美眼に値する。ただし、Pi Zeroの電力消費は、真のワイヤレス化を目指す上では致命的なボトルネックであり、ESP32への移行計画は極めて合理的である。