HN公開: ESP32とe-paperディスプレイを活用した物理的ポモドーロタイマー
(github.com/Rukenshia)ESP32ベースの集中タイマープロジェクト
ESP32とePaperディスプレイ、回転ダイヤルを使った集中タイマープロジェクト。 このリポジトリのコードは一部のアセットとフォントが削除されているため、そのまますぐに使うのは難しいが、必要に応じて修正可能。
部品一覧
- ESP32(AZDelivery ESP32 NodeMCUを使用)
- WaveShare 4.26インチ e-Paperディスプレイ HAT、800x480
- KY-040 ロータリーエンコーダーとボタン
- WS2812 LED(シンプルなRGB LEDで代用可能)
- USB-Cコネクタ
- 3Dプリントケース
- 抵抗および0.1uFコンデンサ
プロジェクトのきっかけ
生産性向上のための工夫を試すのが好きで、毎年ほかの人の役に立つプロジェクトに時間を投じている。電子工学エンジニアとしての経験を生かして物理的なデバイスを作りたいと考え、友人の時間管理の課題を解決するために集中タイマーを制作することになった。
部品選定の理由
ePaperディスプレイ
- バックライトのないディスプレイを求めており、4.26インチディスプレイを選んだ理由は次のとおり。
- 優れた解像度
- 適切なサイズ
- 部分リフレッシュ対応
ロータリーエンコーダー
- 直感的な入力デバイスとして回転ダイヤルを選び、信号を滑らかにするために0.1uFコンデンサを追加した。
LED
- 当初はLEDを使う予定はなかったが、ディスプレイの控えめさを補うためにWS2812 LEDを使ってさまざまな状態を表示する。
ケース制作
- ケースは2つのパーツで構成されており、プリント時に上部の縁がやや反る問題がある。これを解決するためにゴム足と重りを追加した。
ソフトウェア
- C++で書かれており、Arduinoフレームワークを使用。GxEPD2ライブラリを活用してディスプレイを制御し、プロジェクトの一部コードはAIによって生成されている。
デバイスの使い方
- デバイス起動時に設定変更またはプリセット選択モードに入ることができる。タイマーが開始するとLEDが点滅し、画面にメッセージが表示される。作業を続けるか休憩を始めることができ、数回の繰り返しの後にはより長い休憩時間が与えられる。
開発
ピンマッピング
ロータリーエンコーダー(KY-040)
- CLK: 32
- DT: 21
- SW: 14
ePaperディスプレイ(GxEPD2_426_GDEQ0426T82, WaveShare 4.26" b/w)
- BUSY: 4
- RST: 16
- DC: 17
- CS: 5
- CLK: 18
- DIN: 23
LED(WS2812)
- DIN: 25
1件のコメント
Hacker Newsの意見
このプロジェクトが本当に気に入った。UIがとても魅力的で、よく設計されている。週末の作業にぴったりだと思う
「デバイス」系のプロジェクトはいつも興味深い。目標が単純でも、最も挑戦的なことが多い
3つの異なるユースケースに焦点を当て、統計を提供しているのが良い追加要素だ
知人が物理的なpomodoroタイマーで事業を始めようとしていた
すばらしいプロジェクトだ。LVGLライブラリを確認してみることを勧める。組み込み向けグラフィックライブラリで、UIを作るのに役立つ
pomodoroというアイデア全体はキッチンタイマーに由来している。最高のUXは物理的なキッチンタイマーにある
物理的なpomodoroタイマーを作る方法を考えている。残り時間が見えないのが良い。Visual Timerアプリを使っている
このプロジェクトがとても気に入った。自分の生産性ツールを実際のデバイスに移植することを考えさせられる
pomodoroタイマーに関連するものを見るたびに、YC創業者とのインタビューを思い出す。その会社は1年以内に潰れ、それ以来この手法を尊重できなくなった