Arduino Nanoで37LEDルーレットゲームを自作:ヨーロピアンスタイル完全再現
必要な部品と材料
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino Nano R3 | 1 | |
| 74HC595 シフトレジスタ IC | 5 | 37個のLEDを制御(5×8=40ビット) |
| LED(汎用) | 37 | ルーレット数字0〜36対応 |
| ブザー | 1 | 効果音用 |
| NPNトランジスタ | 1 | ブザー駆動用 |
| タクトスイッチ | 1 | スタートボタン |
| 抵抗 | 2 | LED電流制限、トランジスタベース用 |
必要な工具
- はんだごて
使用ソフトウェア
- Arduino IDE
プロジェクト概要
カジノのルーレット(ヨーロピアンスタイル:0〜36の37数字)を37個のLEDで再現。ボタンを押すと仮想の球が回り始め、徐々に減速してランダムな数字で停止。シフトレジスタ(74HC595)5個をカスケード接続し、少ないGPIOで多数のLEDを制御。回転音もブザーで再現し、臨場感を演出。回転速度と時間はコードで調整可能。最終的にはPVCケースに収納し、カラフルな壁紙で仕上げています。
動作原理
- ボタン押下で乱数(190〜210)を生成=減速開始タイミング
- LEDを順次点灯しながら遅延時間を徐々に増加(加速→減速シミュレーション)
- 乱数に達したらそのLEDを点灯維持(約10秒)
- ブザーでクリック音を同期再生
ソースコード
Arduinoスケッチ(C/C++)が提供されています。主なポイント:
- シフトレジスタ制御用の独自関数(clearRegisters, writeRegisters, setRegisterPin)
- 5個の74HC595を直列接続し、40ビット(37ビット使用)をシリアル転送
- randomSeed(analogRead(3)) で乱数種を初期化
- del変数で遅延を制御:5から始まり、乱数値に達するまでインクリメント
回路図
配線図が提供されています。74HC595のSER(DS)、RCLK(ST_CP)、SRCLK(SH_CP)をNanoのD8、D9、D10に接続。ブザーはトランジスタ経由で駆動。
製造プロセス
- 自作LUMAZOID:Arduino音楽ビジュアライザーDIYガイド
- Arduino NanoとMPU-6050で作るリアルタイムジャイロスコープゲーム
- Arduinoデジタルダイス: LCD表示の乱数ジェネレーター自作
- DIY Arduino USBゲームコントローラー - 高性能ゲームパッドを自作
- Arduinoとジョイスティックでインタラクティブゲーム – LEDフィードバック付き
- ポータブル距離検出器:Arduino Nano自作キット(HC-SR04、18650電源、3Dプリントケース付き)
- MobBob:Arduino製ロボットをAndroidスマホでシームレスに制御
- Pixel Chaser: Arduino Nanoで作るワンタップLEDゲーム
- 銅メッキプロジェクト:Arduino UNOで作るスマート電気メッキシステム
- Arduino Nanoで作るNeoPixelマトリックス版Pongゲーム
- Arduino NanoとWS2812 LEDストリップで作る1次元ポンゲーム - 完全DIYガイド