太陽(光)がやってくる:時間と空間を制御できるアンビエント昼光時計
Here comes the sun[light]:An ambient Daylight Clock with time and space controls (hannahilea.com)
要約
この記事は、作者が自作した「昼光時計」について詳述しています。このアナログ時計は24時間周期で、正午が上、真夜中が下に配置され、周囲のLEDがその場所の緯度経度に基づいた昼光時間を照らします。さらに、時間と空間を操作できるコントロールボックスも備えており、ノブで日付、スライダーで緯度、トグルでタイムゾーン内の相対的な経度を調整できます。このプロジェクトは、友人の作品に触発され、物理的なデザイン、ハードウェア、ソフトウェアの設計と構築のプロセスを詳細に解説しています。
全文翻訳
太陽(光)がやってくる:時間と空間を制御できるアンビエント昼光時計
2026年11月6日
昼光時計を作りました!
[画像: 壁に掛けられた昼光時計の写真]
このアナログ時計は24時間周期で、真夜中が下、正午が上に配置されています。円周の周りのライトは、時計のホームの緯度と経度に基づいた昼光時間を照らします。
時間と空間を制御するボックスも作りました。
[画像: 壁に掛けられた時計の写真]
[画像: 壁に掛けられた昼光時計のコントロールボックスの写真]
このコントローラーは何をするのでしょうか?
-
下部のノブは時間を制御し、クリックごとに1週間ずつ進みます。1
時間ノブの動作:
突然の
夏時間への切り替えと標準時間への戻り昼光シフトは、夏時間(Daylight Savings Time)の開始と終了時です。 -
横のトグルスイッチは、コントロールボックスの時間と空間のオーバーライドを有効にします。このスイッチがオフの場合、時間ノブはエッジ照明の明るさを制御します。2
-
縦のスライダーは緯度セレクターで、世界地図—Equal Earth投影法!—がスライダーの長さに一致するように設計されています。3
緯度スライダーの動作:
-
上部の3ウェイ「相対経度」トグルは、現在のタイムゾーン内の位置を設定します。つまり、昼光計算がそのタイムゾーンの西、中央、または東の端に基づいているかどうかを設定します。4
経度トグルの動作:
相対経度のビデオを見ると、このプロジェクト全体が長年抱いていたタイムゾーンへの不満を例示するための方法だったのでしょうか? 意図的ではありませんでしたが…。
不満:私はミシガン州、米国東部標準時の西端で育ちました。その後、同じゾーンの東側に引っ越しましたが、そこでは太陽が1時間早く昇り沈みます。夏は残念なことです—本来なら、夏には太陽が遅く沈むはずです!—そして冬は犯罪に近いほどです。冬至には午後4時過ぎに太陽が沈みます。😱
羨望駆動開発(EDD):5 cceckman の昼光認識時計
私の時計の由来は、友人チャールズと彼の非常にクールな昼光認識時計に完全に帰属します。チャールズの言葉を借りれば:
私は常に緯度35〜40度の地域に住んでいます。一年を通して昼夜の時間の変化に気づきます。冬には、妥当な時間に仕事を終えても「夜に仕事をしている」ように感じます。
昼光がどれだけ得られているか、または得られていないかについて、小さな受動的なリマインダーが欲しかったのです。コンピューターや電話に紐づいたものではなく、もっとアンビエントなもの。当然、時間の経過を思い出させるものは…時計です!
チャールズが彼の時計を作り始めたとき、私は羨望し、自分自身の時計を作らなければならないと知っていました。
私たちはいくつかの異なる設計上の選択をしました—彼の時間表示はデジタル、私のものはアナログ。彼の昼光は時計の円周から外側に向かって照らしますが、私のものは内側に向かいます6—しかし、私たちは両方とも正午を上に配置し7、私は彼の昼光計算コードをそのまま使用しました。また、謎の障害モードを解明するための彼のペアプログラミング支援も受けました!8 9
私の時計の時間空間制御ボックスは、チャールズの気の利いた仮想インタラクティブ昼光可視化に触発されました。
[画像: チャールズの可視化の写真。]
チャールズ・エックマンの昼光認識時計シミュレーター可視化
[ソース]
物理的なデザインと構造:時計本体
時計のムーブメントは市販の 24時間ムーブメントです。これらは購入できます!10
時計の本体とコントローラーボックスの本体はCuttle.xyzで設計し、地元の図書館の無料メイカースペースでレーザーカッターでカットしました(!)。11 時計は、Adafruit neopixel stripのネオピクセル48個の円周を持つように設計したので、ライトは一日の時間にきれいに分割されます。
[画像: 時計ハウジングのベクター化されたレイアウト。]
[画像: 時計ハウジングのベクター化されたレイアウト。] Cuttleデザインはこちら。
外側の装飾は、スイス、ベルンのツィットグロッゲの天文時計の天文面からのものです。ツィットグロッゲの写真をデジタル化し、Cuttleでクリーンアップして適切にスケーリングしました。
[画像: ラベル付きツィットグロッゲの天文時計の写真。]
スイス、ベルンのツィットグロッゲ塔の天文時計。
写真提供 Sandstein, Public domain, via Wikimedia Commons。
塗装は…経験でした。
[画像: 塗装中の装飾された文字盤の写真]
[画像: 塗装後の装飾された文字盤の写真]
木工用ボンドを使用して、プレスフィット接続を恒久的なものにしました。
[画像: 組み立て前の時計部品の写真]
[画像: 組み立て中の時計部品の写真]
[画像: 接着中の時計部品の写真]
[画像: 組み立て後の時計部品の写真]
アクリル絵の具で時計を塗装し、外側の装飾リングはBlu Tackで取り付けたので、簡単に取り外して別の装飾と交換できます。
[画像: 外側の部品用のブルータックが付いた時計部品の写真]
物理的なデザインと構造:コントロールボックス
コントロールボックスも Cuttle で設計しました。
[画像: コントロールボックスのベクター化されたレイアウト。] Cuttleデザインはこちら。
前面には木材シーラントを、側面にはアクリル絵の具を使用しました。
[画像: コントロールボックスの部品取り付け前の写真]
ボックスの奥行きが足りず、中に詰め込まれた配線の絡まりが収まらなかったため、壁に完全に平らに設置できませんでした。まあ、すべてに勝つことはできません。
[画像: コントロールボックスが組み立てられ、壁に取り付けられた写真]
ハードウェア設計
昼光時計はAdafruit Feather RP2040マイクロコントローラーで動作します。その他のコンポーネントは以下の通りです。
- 48個のネオピクセルのストリップ、
- リアルタイムクロック(RTC)コンポーネントアセンブリ。ボードの電源が切れていても現在の日時を維持するため、毎回手動で設定する必要がありません12
- 「現在の時間に基づく昼光」と「コントロールボックスの設定に基づく昼光」を切り替えるための2ウェイ・トグルスイッチ
- 緯度を制御するリニアポテンショメーター、つまりスライダー
- 日付を制御するロータリーエンコーダー、つまりノブ
- 異なる経度位置(西、中央、東)を切り替えるための3ウェイ・トグル、および
- 現在の経度選択を示す3つのLED。
[画像: 電子部品アセンブリの写真]
[画像: 電子部品アセンブリの写真]
[画像: 電子部品アセンブリの写真]
マイクロコントローラーとすべてのコンポーネントはコントロールボックス内にありますが、時計の文字盤の周りのネオピクセルは、手編みのワイヤーといくつかのコネクタを介してマイクロコントローラーに接続されています。コネクタがあるため、追加のはんだ付けなしで時計とコントロールボックスの距離を簡単に変更できます。ネオピクセルはボードから給電され、標準的なウォールウォートを介して接続されます。
このプロジェクトで新しく学んだことは、RTCと—あまり華やかではありませんが!—圧着ワイヤーコネクタでした。
ソフトウェア設計
Adafruit Feather を CircuitPython でプログラミングし、asyncioライブラリを多用しました。asyncio により、入力コントローラーの状態(「スライダーの位置が変わったか?」「トグルが切り替わったか?」「ノブが回ったか?」)の監視を、各ネオピクセルの結果的な色を再計算することから分離できました。
チャールズのRust実装から日の出と日の入りの計算を、NOAA太陽計算機に移植しました。
コードはこちらで公開しています—そして標準的なハウスプラントプログラミングの注意点が適用されます。
レトロスペクティブ
このプロジェクトは、カレンダー上の時間を多く費やし、精神的なスペースを不均衡に占めました。
課題:
- 時計のフレームをどのようにしたいか決めること
- 時計の文字盤をどのように装飾したいか決めること
- 時計の文字盤の周りの外側のリングをどのように装飾したいか決めること
- コントローラーのために:just-flag:厚紙箱を使うことに決めた…そしてそれを実行し、それが嫌で木材から何かを切り出したくなったこと
- カット/塗装プロセスをスピードアップするために、事前に塗装された木材を購入すること
- 図書館のポリシーが変更され、この木材のレーザーカッターが使用できなくなったこと
- 別のメイカースペースを試す、または地元の店にこの木材のカットを依頼すること
- デフォルトの図書館の木材を使い、後で自分で塗装することに決めること
- 装飾された文字盤での一連の塗装の失敗により、アクリル絵の具の上に油性インクを誤って使用した結果、使用不能な混乱が生じたこと
- 文字盤の再カット(…さらにサインアップ待ち時間…)
- 時計の側面を逆さまに接着してしまったことに気づいたこと(幸いにもサイズは逆さまに適合し、すべてを再カットする必要はなかった…)
- ネオピクセルストリップを逆さまに取り付けたことに気づいたこと(時計回りの代わりに反時計回り)
幸いなことに、結果は本当にクールに見え、意図したとおりに機能し、壁に飾っておくのが気に入っています。
[画像: 壁に掛けられた全体の組み立て写真]
あなたも今、自分のものを作りたくなったでしょう、ええ?
どうぞ!
始めるために:
もしあなたが一つを作っていて、どんな段階でもさらにガイダンスが必要なら、遠慮なく質問してください。完全なチュートリアルを書く時間は(へへ)ありませんでしたが、後からでも喜んでお手伝いします。
また、作りたいけれど、それほど多くの電子部品を扱いたくない場合は:
- コントロールボックスをスキップできます:私が遭遇した技術的な課題の大部分—設計と実装の両方—は、コントロールの追加から来ました。コントロールボックスなしの昼光時計でも十分にクールでしょう。
- Wi-Fi 対応の Adafruit Feathers のいずれかを使用し、リクエスト経由で時間を取得すれば、RTC コンポーネントの設定をスキップできます。
- Wi-Fi 対応マイクロコントローラーを使用する場合、物理的なコントロールパネルの代わりにウェブページベースのコントロールパネルを作成することもできます。これも非常にクールでしょう!
チャールズに感謝! AFにも、ビルドの[感情的な]サポートに感謝します。
フットノート
-
最初は「日」単位でスキャンするつもりでしたが、いじってみた後、「日」では短すぎ、違いを見るため、または経過時間を真に理解するためには多くの回転が必要だと感じました。実験の後、「週」がノブを回すことと昼光の変化を見ることの間に最も心地よいつながりがありました。↩︎
-
時間ノブは、時計が「時間と空間を探求」モードにあるときにも明るさを制御します。
これらのビデオの極端なコントラストは、私が
ドラマ視認性を高めるために時計を最大輝度に設定したためであり、奇妙な色の自動バランス調整につながりました。写真の色はより代表的です。↩︎ -
特に誇りに思っています!↩︎
-
時計の針は電子部品に接続されていないため、経度の変化がタイムゾーンを横切るときに時計の針が新しい時間にジャンプする方法はありません! ただし、単一のタイムゾーン内では、時計の針をシフトする必要はありません。したがって、経度トグルは時計のデフォルトのタイムゾーン内の相対的な経度位置を設定します—西、中央、東。これにより、同じ時刻におけるそれらの異なる場所での昼光の変化が視覚化されます。↩︎
-
実際、私は彼の外向きの照明よりも彼の内向きの照明の方が好きですが、始めたときは時計をどこに掛けるか、または壁の周りに十分なスペースがあるかどうかを知りませんでした。内向きの照明は、結果をわずかに自己完結型にします。↩︎
-
標準的な24時間アナログ時計では、円の上部に真夜中を配置するのが一般的のようですが、この時計の半分を「昼」にする方が私にはより正しく感じられました。正午が時計の一番上にあると、時針が空を横切る太陽の進路を追っているように感じます。そして、それは後になってわかったことですが、天文時計の慣習に従っています! そして、クールな天文時計はたくさんあります…↩︎
-
RustからCircuitPythonへの翻訳で何かを台無しにしたのかもしれないと思いましたが、問題はPythonとCircuitPythonの
datetimeの扱いの違いによるものでした。翻訳は正しかったのですが、CircuitPythonのdatetimeを誤って適用していました。見つかれば簡単な修正でした。プログラミング:とても楽しい。🙄↩︎ -
本当のバグ修正は、途中でできた友達です!↩︎
-
理論的には月の満ち欠けを示す28日周期のムーブメントも購入できます(!)。ただし、まだ実現できていません。工場規模のロットしか販売されておらず、500個も必要ないので…↩︎
-
PR2040にはインターネットやBluetooth接続がないため、外部接続経由で現在の時間を自動的に取得することはできません。したがって、RTCが必要です。↩︎
- 作成日:2026-11-06
- タイプ:プロジェクトの書き込み
- タグ:友情はエレクトロニクスへのゲートウェイドラッグ、長年の不満、ハードウェア、データビジュアライゼーション、CAD
私はRecurse Centerに参加しましたが、得たのはこのひどいブログフッターだけです