カラー電子ペーパーを用いた日替わりカレンダーです。
一日一回、microSD カードに保存された画像に今日の日付を重ねたものを、画面に表示します。
始めに、RTC の日時合わせをしなければなりません。
D3 ピンがオープンであれば、電源投入時に簡単なシェルが動き出します。ボーレート 9600 のシリアル経由でコマンドを入力できます。
コマンド | |
---|---|
NOW | 現在の日付と時刻を表示します |
DATE | 日時を8桁の数字で設定します (yyyymmdd) |
TIME | 時刻を6桁の数字で設定します (HHMMSS) |
ALARM | 画面更新の時刻を4桁の数字で設定します (HHMM) |
CLEAR | 画面を指定した色で消去します (0-6) |
INDEX | 何番目の画像を表示するかを指定します (0-255) |
LOAD | 画面に画像を表示します (0-255 または 現在値) |
EXAMINE | 機能テストを行います (0-3) |
HELP | コマンドのヘルプを表示します |
VERSION | バージョン情報を表示します |
QUIT | シェルを終了します |
例えば、2022年1月16日 12時34分56秒に設定する場合は以下のように入力します。
ArduinoACePCalendar Shell
Version: X.XX (Xxx XX 20XX XX:XX:XX)
> date 20220116
OK
> time 123456
OK
> now
2022/1/16 12:35:03
>
標準では毎朝3時30分に画面を更新します。これを2時45分に変えるには以下のように入力します。
> alarm 0245
OK
> alarm
02:45
>
次に、画像を電子ペーパーで表示できる形式に変換し、microSD カードに保存する必要があります。
画像データ変換ツールとして、python 3.X 用のスクリプト image2acp.py
を用意しました。
スクリプトの中で ImageMagick 7.X を利用していますので、実行するには python 3.X と併せて ImageMagick 7.X もインストールする必要があります。
実行環境が整ったら、コマンドラインから以下のように入力することで、sample1.jpg
を変換したファイル sample1.acp
を得ます。
> python image2acp.py sample1.jpg
このようにして得られる *.acp
ファイルを microSD カードのルートディレクトリに保存してください。
カレンダーが表示する画像の順番は、Arduino の SD ライブラリが捜索する順番に従います。全ての *.acp
ファイルを表示するか、256 番目まで表示したら、次回は再び最初の画像を表示します。
- Arduino Pro Mini 328 - 3.3V/8MHz (もしくは互換品)
- 5.65インチ 7色カラー電子ペーパー
- RTC モジュール
- MicroSD ブレイクアウトボード
- 充電昇圧一体化モジュール
- Li-Po 充電池
- 抵抗 180Ω、電解コンデンサ 1F、タクトスイッチ、スライドスイッチ(2回路)
- コネクタ、線材、など
Arduino IDE で以下のように設定します。
- ボード: "Arduino Pro or Pro Mini"
- プロセッサ: "ATmega328P (3.3V 8MHz)"
あとは、お好みのライターを使用してスケッチを転送してください。
これらのソースコードは MIT ライセンスで提供されます。