Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

電子ペーパーで卓上カレンダーをつくる

完成品

こんな感じのものができる。予定はgoogleカレンダーから引っ張ってきている。

完成品

8時間おきに画面を更新している。裏にraspberry piがついていて、これで画面表示を制御している。

ハンダ付けすらしてないので、電子工作といえるかはかなり微妙かも(ケーブル繋いでピン刺しただけ)

用意するもの

あわせると15000円程度で揃えられる (ACアダプターやケーブルは家に余ってると思うのでノーカン)。

ソケット同士を差し込んだりする作業しかないので、ハンダごてすら要らない。

電子ペーパーディスプレイの選び方

電子ペーパーのみ選ぶとき注意が必要なので解説する。

今回購入したのはコレ↓。よく分からなければとりあえずコレでよい。

(公式サイトより画像引用 )

7.5inch E-Paper E-Ink Display HAT (B) For Raspberry Pi, 800×480, Red / Black / White, SPI

選ぶときの主な観点は2つ。

  • 画面サイズと解像度 (インチ数が同じでも解像度が異なるパターンがある)
  • いくつ色がつかえるか
    • 赤や黄色など、他の色も使えるか?
    • 白と黒の2色のみか? 灰色も使えるか?

サイズと色を決めたら、ドキュメント もチェックしておく。 ドキュメントにpythonのデモが入っているものを選ぶとよい。 C言語しかデモがないと大変だと思うので。

カレンダーの作成手順

全体の手順はこちら。各手順の詳細は後半に記載。

  1. raspberry piのセットアップをする
  2. 電子ペーパーとraspberry piを接続する
  3. デモプログラムを実行して動作確認をする
  4. カレンダープログラムを書く

1. raspberry piのセットアップをする

ここでは簡単な流れだけ書く。もっと詳しい記事やドキュメントが大量にあるので、わからなければ他の記事をあたってほしい。

  1. Raspberry Pi Imager をダウンロードしてインストールする
  2. Imagerでwifiやsshの設定をする
  3. Imagerを使ってmicroSDカードにOSを書き込む (色々あるがLite版でよい)
  4. raspberry piにmicroSDカードを入れて電源を接続する
  5. raspberry piが自動的に立ち上がる

起動が完了すると ssh [設定したユーザー名]@raspberrypi.local で接続ができるはず。できない場合はwifiの設定などが間違えている可能性がある。

2. 電子ペーパーとraspberry piを接続する

まず、ドライバーHAT(小さい青いパーツ)の黒い部分を立てる。これがロックになっている。 ロックを外したらディスプレイのオレンジの端子を挿入する。 ロックしたままだとかなり力を入れないと入らない。

小さい青いパーツと電子ペーパーを接続した様子

ドライバーHAT(青い部品)とraspberry piの接続は簡単だ。GPIOピンを差し込めば良い。 結構深く刺さって固定されたら完了。

GPIOピンで接続されている様子

3. デモプログラムを実行して動作確認をする

必要な各種ライブラリをインストールし、デモプログラムを動かしてみる。うまくいくとこのような画面になる。

デモプログラムが動くとこのようになる

注意として、インチ数、解像度、色が合致しているデモプログラムを選ばないと動かない。 デモプログラムのファイル名にはインチ数しか書いてないので、ドキュメントに記載されているデモファイル名をチェックしよう。

4. カレンダープログラムを書く

あとはカレンダープログラムを書けば完成だ。 カレンダープログラムはデモプログラムをもとに改造すれば自ずと書けるはず。 なので解説は省く。各々でデザインしよう。

僕が作ったものはこんな感じ。このリポジトリをクローンしてセットアップしたらすぐ動かせる。

github.com

仕様はこんな感じ

  • googleカレンダーから自分のカレンダーのicsファイルをダウンロード
  • googleカレンダーから祝日のicsファイルをダウンロード
  • カレンダー画像を生成

そんなに難しいことはしてない。pillowというpythonライブラリで画像を作って、作った画像をディスプレイに送って表示している。

まとめ

今回 トータルで15,930円かかった (家にあったものを除く)。しかし、毎年ロールカレンダーを買っていた手間が無くなると考えれば 十二分すぎるほど安上がりだ。 個人的には大満足である。