HSVクロック:Arduino愛好家向けの鮮やかでカスタマイズ可能な時計
コンポーネントと用品
![]() |
Arduino UNO | ×1 |
| Seeed 2.8インチ TFTタッチシールド (V1.0) | ×1 |
このプロジェクトについて
HSVクロック
先日アメリカを訪れた際、RadioShackでSeeed 2.8インチ TFTタッチシールド (V1.0)を入手しました。これを使って、父の80歳の誕生日プレゼントとしてカラフルな時計を作りました。
HSVClock.zip YouTube
主なポイントは以下の通りです:
- 時計の文字盤は矩形セルのグリッドに基づいています。セルの角はわずかなランダム量で歪められ、各セルはランダムな対角線で分割されます。セル全体にランダムな色の広がりが適用され、各三角形は3D効果を出すためにシェーディングされます。内部では色はHSV(色相、彩度、明度)で表現され、LCD送信時にRGBに変換されます。時刻は、特定のセルを補色で着色するシンプルなフォントで表示されます。
- ケースはレーザーカットされた竹製で、Inkscapeで設計し、Ponokoでカットされました。
- 残念ながらシールドには取り付け穴がないため、フロントフェイスに対してクランプする形でケースに固定しています。Arduino Unoはヘッダーピン経由でシールドにピギーバック接続されています。
- 外部RTC(DS3232)へのI2Cアクセスが必要でした。シールドは未使用ピンを露出していないため、追加のSDA/SCLピンを持つUnoを使用しました。これら用のロープロファイルヘッダーコネクタを作成し、シールドの下に配置しました。電源とグランドも同様に、ICSPピン上のコネクタからシールドの下で取り出しています。
- スケッチにシンプルな夏時間(DST)サポートを追加しました(年2回の時計合わせが不要に!)。「9月の第4日曜日」のようなロジックを扱う代わりに、将来数年分の具体的な開始・終了日の小さなテーブル(私の場合はニュージーランド用)に依存しています。
- タッチスクリーンライブラリのコードを簡略化し、デバウンス処理済みの4×4グリッドボタンとして機能させました。例えば、左下と右上のコーナーをタッチすると時刻設定モードになります。
- 描画高速化にかなりの努力を払いました:セルの再描画に約0.25秒かかります。レンダリングは特定色の水平ピクセル列を書き込む中心に構築されています。与えられたセルを構成する一連の線分のペアの水平範囲を計算するために、修正版ブレゼンハムアルゴリズムを使用しています。LCDへピクセル色データを送るコードはライブラリベースですが、インライン化、ループ展開、簡略化、最適化を行っています。ピクセル色データが複数のPORTxレジスタにまたがって書き込まれるため、色選択時に全ての値を事前計算し、Nピクセルをその色で一列に設定する処理を高速化しています。
- LCDは横向き(ランドスケープ)で使用しています。画面を水平行で更新するのに長い間苦労しました。コントローラのデータシートがわかりにくいためです。「カーソル」位置を設定するコマンド、「DRAM水平/垂直アドレス設定 (R20h, R21h)」があります。ピクセルデータはカーソル位置に書き込まれ、カーソルが更新され、必要に応じて次の行に折り返します。また、画面向きを変更するコマンド「エントリーモード (R03h)」もあり、カーソルの行・列インクリメント調整についても言及されています。しかし、ランドスケープ向きに変更してからカーソルを位置づけても動作しませんでした。最終的に見つけた解決策(データシートのどこかに埋もれている可能性があります)は、カーソルコマンドの代わりに「ウィンドウ」コマンドを使うことです。「水平および垂直RAMアドレス位置 (R50h, R51h, R52h, R53h)」。ウィンドウの左上隅の座標を設定すると、ピクセルデータがそこから始まり、横向き(ランドスケープ)で水平に更新されます。
回路
回路は単純です:
- Unoに搭載されたTFTシールド。
- +5V、GND、SDA、SCLがUnoのラベル付きピンからRTCモジュールへ。最初の3枚の写真(シールド取り外し状態)に示す通り。アクセスの都合上、電源/グランドはICSP1コネクタから取っています。
Fritzing図

写真















製造プロセス
- カズー:古代ミルリトンから現代プラスチック玩具へ — 歴史、製造、未来
- ハープ:古代のルーツから現代の傑作へ
- 発泡ポリスチレン(EPF):製造、特性、持続可能性
- Raspberry Piセンサーをマスター: 電子工学と通信プロトコルの実践ガイド
- Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合
- Web制御DMX照明システム:Arduino Megaマスターコントローラー
- Bluetooth操作のArduinoスパイボットを自作する
- 糸切りカッター(スレッドカッター)の理解:種類、用途、応用
- 採石場(クアリー)の理解:種類、用途、世界分布
- スケルトンキーの理解:種類、用途、歴史的意義
- オンサイト窒素生成:研究室の安全性と信頼性を向上させる
