レトロアーケード時計 - Arduino Megaで作るインタラクティブなベッドサイドタイマー
必要な部品と材料
| 部品名 | 数量 | 備考 |
|---|---|---|
| Arduino Mega 2560 | 1 | |
| 3.2インチ TFT LCDタッチシールド (Mega用) | 1 | Arduino Mega 2560用 |
| 3.2インチ TFT LCDディスプレイ + タッチスクリーン | 1 | シールドとセットで購入推奨 |
| RTCモジュール DS3231 | 1 | バックアップ電池付き |
| 音声録音モジュール ISD1820 | 1 | スピーカー付き |
| PLAフィラメント (3Dプリンター用) | 適量 | ケース出力用 |
| 二液性エポキシ樹脂 | 適量 | ケース接着用 |
| USBケーブル 2m (充電器用) | 1 | 電源供給用 |
| グルーガン | 1 | |
| ケーブルタイ | 3 |
オプション: 自動バックライト調光用部品 (ベッドサイド利用時推奨)
| 部品名 | 数量 |
|---|---|
| 抵抗 270kΩ | 1 |
| ツェナーダイオード 3.3V | 1 |
| 抵抗 47Ω (0.5W) | 1 |
| フォトレジスタ (LDR / CdSセル) | 1 |
必要な工具
- 3Dプリンター (Creality Ender 3等)
- はんだごて
使用するソフトウェア
- Arduino IDE (v1.0.6 推奨 - ライブラリ互換性のため)
プロジェクト概要
タッチスクリーン搭載のインタラクティブなレトロアーケード風ベッドサイド時計を作ります。ドンキーコングのマリオ、スペースインベーダー、パックマンなどの懐かしいキャラクターが画面上をアニメーションし、アラーム音はISD1820モジュールで好きな音声を録音して使用できます。3Dプリント製ケースに収め、インテリアとしても楽しめる作品です。
搭載プログラム (4種類から選択可能)
- アーケードクロック - DKマリオ、スペースインベーダー、パックマンのアニメーション表示
- パックマンクロック - インタラクティブなパックマン/ミズパックマンゲーム + 時計機能
- DKクロック - インタラクティブなドンキーコングゲーム + 時計機能
- タンブルゴースト - フラッピーバード風パックマンゴーストゲーム
ステップ1: 材料の準備
上記部品表を参照。Arduino Mega、タッチシールド、TFTディスプレイはセット購入が便利です。3Dプリントファイルは Thingiverse で公開されています。
ステップ2: 3Dケースの出力
Creality Ender 3等でケースパーツを出力。Thingiverseの指示に従ってください。
ステップ3: 回路の組み立て

1. RTCモジュール (DS3231) の取り付け

Arduino Megaの裏面にホットグルーと梱包用フォームでクッションを作り、RTCを固定します。2ピンは直接はんだ付けし、VCC/GNDはフックアップワイヤーで接続。

2. 音声録音モジュール (ISD1820) の取り付け
同様にフォームとホットグルーでArduino裏面に固定。スピーカーも一緒に固定します。トリガーピンはArduino D8に接続。電源も回路図通りに配線。
3. 自動バックライト調光回路 (オプション)

TFTのバックライトは基板上で3.3Vにハードウェア接続されており、Arduinoから制御できません。以下の手順でPWM制御可能に改造します。
- LDRの取り付け: ケース背面に3mm穴を2つ開け、LDRのリードを通し、内側からホットグルーで固定。リードをハンダ付けし、回路図通り (A7に270kΩ抵抗経由でプルダウン) に接続。
- TFTディスプレイのピン改造: TFTをシールドから外し、ピン19 (LED_A / バックライトアノード) の根元のプラスチックを数mm削り、ピンを倒してコネクタから離します。シールド装着時に干渉しないか確認。
- PWM駆動回路の接続: 倒したLED_Aピンに47Ω抵抗をハンダ付け、Arduino D9 (PWM出力) に接続。同じピンに3.3Vツェナーダイオード (カソード側をLED_A、アノード側をGND) を接続し、過電圧保護とします。

4. TFTスクリーンとシールドの装着
TFTディスプレイをシールドのコネクタに慎重に挿入し、Arduino Megaのピンヘッダーに装着。RTCには電池、アラーム設定はEEPROMに保存されるため、電源断後も時刻とアラームは維持されます。
ステップ4: コードの書き込みと設定
必要なライブラリ (全て同梱のZIPファイルからインストール)
UTFT.h,URTouch.h(Rinky-Dink Electronics製 - 元サイト閉鎖のため同梱)Time.hDS1307RTC.hWire.h,EEPROM.h(IDE v1.0.6標準搭載)
TFT画面の個体差対応
- SainSmart製の場合:
initlcd.h内のLCD_Write_COM_DATA(0x01, 0x2B3F);を0x3B3Fに変更。 - コントローラーチップがILI9341の場合 (画面が真っ白になる): スケッチ内の
UTFT myGLCD(SSD1289, 38,39,40,41);をUTFT myGLCD(ILI9341_16, 38,39,40,41);に変更。 - タッチ座標が反転 (Y軸) する場合:
yT = myTouch.getY();をyT = 240 - myTouch.getY();に変更 (2箇所あり)。
グラフィックファイルの配置
同梱のビットマップファイル群を、スケッチと同じフォルダに配置してからIDEで開いてください。
時計の初期設定
- スケッチ書き込み後、画面中央をタッチしてセットアップ画面を開く。
- メニューから時刻とアラーム時刻を24時間形式で設定。
- [SAVE] ボタンで保存。
アラーム音の録音とテスト
- ISD1820のマイクに向かって音を出しながら基板上の録音ボタンを押し続ける (例: パックマンのBGMなど)。
- 再生ボタン (PLAY-E) で確認。
- セットアップ画面で現在時刻とアラーム時刻を数分違いで設定し、[SET][SAVE] して動作確認。
- アラーム停止は画面中央タッチでセットアップ画面を開くことで行う。
タッチスクリーン校正
ボタンとタッチ位置がズレる場合は、URTouchライブラリ付属の校正スケッチで調整してください。
ステップ5: 最終組み立て

- 外部電源の接続: ケース背面に穴を開け、USBケーブルを通す。ケーブルのVCC/GND/D+/D-をArduinoのUSBコネクタ根元にはんだ付け (USB入力の過電流保護が効き、分解せずに書き込み可能)。ケーブル根元をホットグルーで固め、ケーブルタイでテンションリリーフを作る。
- 基板のケースへの固定: フロントパネルのガイド穴に合わせて基板を載せ、画面位置を確認してホットグルーで固定。
- 最終組み立て: フロントとバックパネルを合わせ、USBケーブルのたるみを取りながら閉じる。USB充電器に挿せば完成。



回路図

3Dプリントファイル
Thingiverse: Retro Arcade Clock Case
製造プロセス
- 鳩時計:歴史、職人技、現代への進化
- Arduino POVクロック:残像効果で浮かび上がるLED時計を自作する
- DIY Arduinoワードクロック – 文字で時刻を表示する洗練されたリアルタイムクロック
- TeleBall: 自作レトロ携帯ゲーム機 – Arduinoでブロック崩し&テニス
- 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
- Ingegnoレトロゲームコンソール:8ビットゲームの再定義
- イタリア語ワードクロック自作:Arduino Nano、NeoPixel、LCD、RTCで時刻を文字で表示
- Arduino UNOで作るベルリンクロック – DIY LEDマトリクス時計
- インフィニティミラー時計:終わりなき美しさと正確な時刻の融合
- 555タイマーと4017カウンタによるLEDシーケンサ構築:周波数分周とデバウンス
- Verilogクロックジェネレータ:設計と実装ガイド