Categories: 工作・開発

Raspberry PiとE-Inkで作る生産性ダッシュボード、通知のない集中できる情報表示を実現

E-Inkディスプレイは紙のような質感を持ち、バックライトや通知による中断がない。開発者のFatih Ak氏は、この特性を生かして集中力を維持できる情報表示デバイスを製作した。Raspberry Piを使い、カレンダーやToDoリスト、GitHubの活動グラフなど20種類のプラグインを開発。Webインターフェースから表示内容をカスタマイズでき、プレイリスト機能で複数の情報を自動切り替えできる仕組みを実装した。

現代のデジタルデバイスは通知やフィードで注意を引くように設計されている。Ak氏はこの問題意識から、逆に集中を助けるデバイスを目指した。E-Inkディスプレイを選んだのは、紙のような質感があり、LEDや音による通知がなく、見やすさと静けさを両立できるためだ。

ハードウェアはRaspberry Pi Zero 2 W、PimoroniのInky Impressionディスプレイ(13.3インチまたは7.3インチ)、IKEAのフォトフレームを使用する。Waveshareの各種E-Paperディスプレイにも対応しており、最新のSpectra 6技術搭載モデルでは12秒のリフレッシュ時間で鮮やかな色表示が可能だ。

カレンダー表示の実装

最初に開発したのはカレンダープラグインだ。Google Calendar、Microsoft Outlook、Apple CalendarのICAL URL(カレンダーデータの標準フォーマット)に対応し、異なるサービスのカレンダーを統合できる。

表示にはJavaScriptライブラリのFullCalendarを使用した。このライブラリは月表示、週表示、リスト表示に対応し、解像度に応じて自動的にサイズ調整される。HTMLファイルでカレンダーを定義し、Chromiumのヘッドレスモードでスクリーンショットを撮影することでE-Inkディスプレイ用の画像を生成する仕組みだ。

複数のカレンダーを異なる色で表示できるため、仕事用、個人用、家族用のスケジュールを一画面で把握できる。言語設定、週の開始曜日、時刻表示の有無などもカスタマイズ可能だ。

5つの生産性向上プラグイン

カレンダーに続いて5つのプラグインを追加した。ToDoリストプラグインは最大3つのリストを作成でき、タスクを整理できる。完了タスクと未完了タスクを並べて表示する縦横のレイアウトに対応し、スペースが不足する場合は非表示項目数を表示する。

日付カウントダウンプラグインは、休日や記念日までの残り日数を計算して表示する。背景色やテキスト色をカスタマイズでき、背景画像のアップロードにも対応する。画面更新のたびに自動的に日数を再計算する仕組みだ。逆に特定日からの経過日数を表示することも可能で、マイルストーンや記念日の追跡に使える。

GitHubコミットグラフプラグインは、GitHub APIを使って過去1年間の活動を可視化する。APIトークンを取得してGraphQL APIでユーザーの1日ごとのコミット数を取得し、5段階の濃淡で表示する。総コミット数や最長連続記録などの統計情報も併せて表示し、プロジェクトへのモチベーション維持に役立つ設計だ。

年間進捗バープラグインは、年の経過割合と残り日数を可視化する。現在日を基に計算した進捗率をバーグラフで表示するシンプルな実装だが、目標達成への意識づけに効果的だという。

RSSフィードプラグインは、ニュースサイトやブログのRSS配信から最新記事を自動取得する。PythonのFeed Parserライブラリでタイトル、説明、画像を解析し、リスト形式で表示する。タイトル表示、画像表示の有無、フォントサイズなどをカスタマイズできる。

プレイリストと自動更新

Webインターフェースから各プラグインの設定を変更できる。プレイリスト機能を使えば、時刻を指定して複数のプラグインを自動的に切り替えられる。朝は天気予報とカレンダー、日中はToDoリスト、夕方はニュースという使い方が可能だ。

インストールはGitHubリポジトリをクローンし、インストールスクリプトを実行するだけで完了する。スクリプトは必要なSPIとI2Cインターフェースを自動的に有効化する。WaveshareディスプレイではモデルIDを指定するオプションが必要だ。

プロジェクトはオープンソース(GPL 3.0ライセンス)で公開されており、カスタムプラグインの開発方法もドキュメント化されている。現在20種類のプラグインが利用可能で、画像アップロード、日刊新聞・コミック表示、時計、OpenAI APIを使ったAI画像生成、天気予報なども含まれる。

Ak氏はYouTubeでカレンダーと5つの新プラグインの開発過程を公開しており、実装の詳細を確認できる。コミュニティからのフィードバックを取り入れながら機能を拡張しており、公開されたTrelloボードで今後の機能追加予定を確認できる。

関連情報

InkyPi(GitHub)

FabScene編集部

FabScene編集部