Year Drain Art Clock

2026/Aug/25 7M4MON

YearDrainArtClockは、5×8桁の7セグメント表示器で「時間が減っていく様子」を可視化するアートクロックです。 アートモードでは、さまざまな動きの中から現在時刻「HH.MM」が現れる12種類のアニメーションを楽しめます。 通常モードでは日時と、年・月・日の残り時間をパーセントで表示します。 本作品は、silriumの作品と表現にインスパイアされて制作しました。

表示モード

表示モードは、MODE短押しで切り替える次の2つです。

表示モード 内容
通常モード 日付、時刻、年・月・日の割合を常時表示
アートモード 12作品を使って40桁全体をアニメーション表示

通常モード

通常モード内には、割合の進行方向が異なる2種類があります。

種類 割合表示
DRAIN 年・月・日の残り割合。時間とともに100%から0%へ減少
FILL 年・月・日の経過割合。時間とともに0%から100%へ増加

起動時の標準はDRAINです。通常モードでUP+DOWNを1秒同時押しすると DRAIN / FILLが切り替わり、選択状態はEEPROMへ保存されます。

アートモード

各作品の最後には、秒と百分秒を持たない4桁の現在時刻HH.MMが現れます。 小数点は時の1桁目に付加するため、21.47を4セルで表現します。 時刻ブロックは5行×5開始位置の合計25地点へ配置できます。 全12作品で毎回25地点から抽選し、直前と同じ表示モジュール(行)に なった場合は行だけを再抽選します。開始列は左から5地点を自由抽選します。

作品番号 作品名 演出
1 SLOT_MACHINE 4本のリールへ現在時刻を1桁ずつ混ぜて全40桁を回し、正解数字が目的行へ来た列から停止。残りを上下へ巻き取ると、最初から回っていたHH.MMが揃う
2 RANDOM_DISSOLVE 最初からランダム数字の中に現在時刻4桁が隠れており、周囲36桁だけが順不同で消えて時刻が残る
3 DIGITAL_RAIN 雨粒が予約した時刻4セルを通る間だけ対応数字が現れて再び隠れ、終盤に雨を止めると空になった列から時刻が定着
4 RIPPLE 予約位置を8.の波面とDPの余韻が横切るたび数字が現れて消え、最後の波紋で4桁を形成
5 DIGIT_SWEEPER 40桁を表示後0.5秒静止して隠れた時刻を探す時間を設け、左上と右下から2本の蛇行キャリーが同時に7→8→9→0と中央へ巻き取る。時刻セルだけは通過後に元の数字へ戻る
6 SAND_DRAIN 予約した時刻セルも最初は周囲と同じ砂ノイズで、流動中に正解セグメントだけが少しずつ固定・成長。供給停止後に浮遊砂が排出され、隠れていたHH.MMを発掘
7 RADAR_SWEEP 16方向の走査線が回転しながら時刻を発見
8 FIREWORKS 予約位置を花火が横切るたび数字が現れて消え、最後の花火で4桁を形成
9 GLITCH_CLOCK 完成時刻がA~G/DP片へほどけて消え、ほぼ全消灯から新しいセグメント片が予約位置へ移動・固定されながら4桁を徐々に再構築
10 SNAKE 左上から蛇が通って時刻を残す。約0.7秒保持後は右下から逆走して時刻を回収し、左上へ戻ると次周へ移行
11 SEGMENT_SCAN DP・A~Gの破片が左から通過し、予約した時刻4桁と一致するセグメントだけが固定・蓄積され、隠れていた時刻を走査で発見
12 CORNER_GATHER 現在時刻4桁を四隅へランダム配置し、不規則移動のあと予約位置へ引き寄せてHH.MMへ集合。完成時刻はA~G/DP片へほどけ、次周の四隅へつながる

各アートは約6~9秒で完結します。最初に前回の完成時刻を約0.7秒で背景へ ほどき、終盤の約1.6秒で作品固有の方法により現在のHH.MMを形成し、最後の 約1.4秒は時刻だけを静止表示します。背景演出は最大25 fpsで更新し、 RTCと内部百分秒の同期処理は 表示とは独立して継続します。

同じ作品を数回繰り返すと自動的に次の作品へ進み、作品12の次は作品1へ 戻ります。UP/DOWNで作品を変更した場合は、新しい作品の1回目から始まります。

アートモードでUP+DOWNを1秒同時押しすると、現在作品の固定を切り替えます。 固定中は3回目の次も同じ作品の1回目へ戻り、自動送りしません。UP/DOWNで 別作品を選んでも固定状態は維持されます。固定状態もEEPROMへ保存されます。 回数DP表示がONの状態で作品を固定すると、固定表示としてROW 0~4の右端DP 5個をすべて点灯します。

通常モードの基本表示

通常モードではDRAIN / FILLともに次の5行を表示します。


YYYY.MM.DD

HH.MM.SS.cc

II.FFFFFF   年の割合(0~99%)

II.FFFFFF   月の割合(0~99%)

II.FFFFFF   日の割合(0~99%)

割合は64ビット整数による固定小数点演算です。うるう年、月末、 年末を含め、表示ローカル時刻に基づいて計算します。0~99%は整数部を 常に2桁、小数部を6桁で表示し、10%未満も08.700000のように先頭へ0を 表示します。年表示の最下位桁は約0.316秒ごとに変化します。8桁に収まらない 100%は折り返し表現として00.000000を表示します。DRAINではその後 99.999999へ減り、FILLでは99.999999の次に00.000000へ戻ります。 起動時は、8.が外周から中央へ時計回りの渦巻き状に進みす全てのセグメントを検査します。

ボタン

状態 操作 動作
通常(DRAIN / FILL) MODE短押し アートモードへ切替
通常(DRAIN / FILL) MODE 2秒長押し 手動日時設定へ移行
通常(DRAIN / FILL) UP / DOWN 全行の輝度変更(0〜15)
通常(DRAIN / FILL) UP+DOWNを1秒同時押し DRAIN / FILLを切替
アート MODE短押し 通常モードへ切替
アート MODE 2秒長押し 繰り返し回数DPの表示/非表示
アート UP短押し 次のアニメーション
アート DOWN短押し 前のアニメーション
アート UP+DOWNを1秒同時押し 現在作品の固定/自動送り

アートモードへ戻ると、最後に選択していた作品を1回目から再開します。

手動設定では YEAR → MONTH → DAY → HOUR → MINUTE の順にMODE短押しで移動します。UP/DOWNは500 ms後から100 ms周期で リピートします。設定へ入った時点で編集値の秒を00に固定します。 MINUTEでMODEを短押しするとRTCへ保存し、 通常表示へ戻ります。2分無操作では変更を破棄します。選択中の桁は2 Hzで 点滅するため、設定項目名は7セグ上へ表示しません。

RTCにはユーザーが設定したローカル日時をそのまま保存します。夏時間の 自動・手動切替状態は持たず、必要な場合は設定モードで時刻を1時間進める、 または戻します。

UARTコマンド

ASCII、115200 bps、8-N-1、LFまたはCRLF終端です。


HELP

STATUS

TIME GET

TIME SET 2026-08-03 14:26:30

SET MODE 0

SET MODE 1

SET MODE 7

SET MODE 11

SET MODE 12

SET REPEAT 2

SETBRIGHT ALL 5

SETBRIGHT ROW 1 8

SET MODEの番号はシリアルから表示先を直接選ぶための内部選択番号です。 0は通常モード、112は上表のアート作品番号に対応します。

ボタン操作ログ

ボタン操作はシリアルへ即時通知します。MODE短押しでは通常/アート状態、 アート番号、アニメーション名、繰り返し回数を返します。通常モードの UP/DOWNでは5行の輝度、アートモードのUP/DOWNでは選択後の作品を返します。


OK UI=ART MODE=3 ANIMATION=DIGITAL_RAIN REPEAT=1/3 FIXED=0

OK AUTO UI=ART MODE=3 ANIMATION=DIGITAL_RAIN REPEAT=2/3 FIXED=0

OK UI=NORMAL MODE=0 ANIMATION=DRAIN

OK ART_REPEAT_DOT=1

OK ART_FIXED=1 MODE=3 ANIMATION=DIGITAL_RAIN

OK BRIGHT=6 6 6 6 6

OK PERCENT=FILL

日時設定では、選択項目と編集中の日時を返します。保存とタイムアウトも 確認できます。


OK SETTING=HOUR TIME=2026-08-22 13:34:00

OK SETTING=SAVED TIME=2026-08-22 13:34:00 RTC=OK

WARN SETTING=CANCELLED REASON=TIMEOUT

配線

Nano 接続先
D2 / INT0 DS3231 SQW(1 Hz)
D4 UPボタン(反対側はGND)
D5 MODEボタン(反対側はGND)
D6 DOWNボタン(反対側はGND)
D10 MAX7219 CS / LOAD
D11 MAX7219 DIN
D13 MAX7219 CLK
A4 DS3231 SDA
A5 DS3231 SCL

MAX7219は5台をデイジーチェーン接続します。各ボタンは内部プルアップを 使用するため、外付けプルアップ抵抗は不要です。