MOSMusicプロジェクトキット: MOSFET、Arduinoで音楽同期照明制御
部品と用品
| Infineon CoolMOS C7 Gold SJ MOSFET (600V) | ×1 |
| MOC3021 (フォトトライアックドライバー/オプトアイソレーター) | ×4 |
| 2N6073AG (TRIAC) | ×1 |
| Arduino UNO | ×1 |
| SparkFun ワイヤーラップ | ×1 |
| 電線 18AWG以上 | ×1 |
| コンデンサ 1µF | ×4 |
| 抵抗 220Ω | ×4 |
| 抵抗 100kΩ | ×4 |
| 抵抗 10kΩ | ×1 |
| 抵抗 330Ω | ×1 |
| 電球ソケット | ×4 |
| 電球 (120V/220V対応) | ×4 |
| 住宅用極性プラグ | ×1 |
| ブレッドボード | ×1 |
| ジャンパーワイヤー | ×1 |
| 12V電源 (Arduino用) | ×1 |
| サウンドセンサー | ×1 |
| ワニ口クリップ | ×4 |
| 銅張り基板 | ×1 |
必要な工具と機器
- はんだごて
- 塩化第二鉄 (PCBエッチング用)
- 油性マジック (レジスト用)
- イソプロピルアルコール
- はんだ
アプリとオンラインサービス
- Arduino IDE
- Proteus Design Suite (シミュレーション用)
このプロジェクトについて
MOSMusic (MM)
音楽に同期するポータブル照明ステーション。テクノロジーで世界を良くしましょう。ブラック/グレーハットハッカーはここで止めてください... せめてリスペクトを残してXP。
導入
イベント主催者やインディーズミュージシャンにとって、従来の「到着→演奏→退場」では物足りない時代です。ファンはより高度なエンタメを求め、高価な照明・音響制御システムが必要とされてきました。既存システムは複雑で高価、曲ごとにライトショーをプログラミングする手間もコストもかかります。
市販の安価な製品 (40ドル以上)はLEDなど低電力デバイスのみ制御可能。高電力機器を安全に制御するには、Arduinoなどのコントローラーをリスクなく駆動できる回路が必要です。
回路設計
目的: 0-5V DCのデジタル信号を120V AC制御信号に変換。
第1段: Infineon 600V CoolMOS C7 MOSFETを使用。オプトカプラー駆動には5V/36mA必要でArduinoの限界ギリギリだが、CoolMOSなら5V/60µAで駆動可能。極めて低消費電力のため、どんなコントローラーでも高価なドライバーなしで使用できます。
動作: MOSFETがオプトカプラーのダイオードをグラウンドし、活性化するとDIAC経由でTRIACに電流が流れ、電球が点灯。
拡張性: MOSFET採用により、ドライバー段を増設 (画像1) または大容量化 (画像2) がメイン回路変更なしで可能。
リレーとの比較: リレーは機械的動作で「カチッ」という音がし、調光や高速スイッチングに不向き。MOSFET+オプトカプラー+TRIACなら容易に対応可能。
PCB (またはユニバーサル基板)
個別モジュール化で電球数を拡張可能。4出力一体型モジュールも設計済み (GerberファイルはGitHubの「PCB Files」フォルダにあり)。
開発プロセス
- 第1段テスト: ボタンと絶縁グローブで電球制御を確認 (高電圧注意!)
- 第2段テスト: LED台でArduinoの音楽同期制御を検証 (コードは「Arduino Code」フォルダ、詳細コメント付き)
- 統合テスト: 全コンポーネントをブレッドボードで接続し、4灯制御を確認
段階的に進め安全を確保。120V ACは危険なので万全の注意を。
完成品
ブレッドボードの配線トラブルを避けるため、制御モジュールを基板化。自作PCBは「PCB Files」の設計をベースに、転写紙がないためマジックでパターン描画→塩化第二鉄エッチングのクラシック手法で製作 (参考リンク)。4枚追加製作後、4灯同型のランプをボックスに収納し、持ち運び可能な美しい製品に仕上げました。
コメント
このプロジェクトは、マイコンによる照明制御が安価かつ効率的であることを実証するため、またInfineon提供のCoolMOS C7 MOSFETの創造的かつ珍しい活用法を示すために実施しました。市販の低品質システムが高価で手が届かない現状への対抗案です。
参考資料
技術詳細と直接の参照はWikiで公開: https://github.com/altaga/MOSMusic-MM-/wiki
コード
Arduino Code (サウンドセンサー読み取り & 電球出力シーケンス)
int analog1=0; int analogm=0; double basemean=0; int base=0; int gain=-5;
unsigned int sensibility=5; int counter=0;
void setup() {
pinMode(LED_BUILTIN,OUTPUT);
pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT);
digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW);
Serial.begin(115200);
for(int i=0;i<100;i++) basemean+=analogRead(A0);
base=(basemean/100)+gain;
analogm=analogRead(A0);
digitalWrite(LED_BUILTIN,LOW);
}
void loop() {
analog1=analogRead(A0);
if(abs(analog1-analogm)=10) {
digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW);
} else if (abs(analog1-analogm)=(base-30) && analog1<(base-10)) {
digitalWrite(2,LOW); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW);
} else if(analog1>=(base-10) && analog1<(base)) {
digitalWrite(2,HIGH); digitalWrite(3,LOW); digitalWrite(4,LOW); digitalWrite(5,LOW);
} else if(analog1>=(base) && analog1<(base+10)) {
digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,LOW); digitalWrite(5,LOW);
} else if(analog1>=(base+10) && analog1<(base+20)) {
digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,LOW);
} else if(analog1>=(base+20) && analog1<(base+50)) {
digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH);
}
}
analogm=analog1;
delay(50);
}
完全なコードとリソース: GitHubリポジトリ
カスタムパーツとエンクロージャ
- 4モジュール版 DXFファイル
- シングルモジュール版 DXFファイル
回路図

製造プロセス
- ティアラの芸術と職人技:歴史、素材、現代デザイン
- 有刺鉄線:歴史、構造、現代の用途
- 集積回路(IC):現代エレクトロニクスを支える微小強力チップ
- MotionSense: ArduinoとESP8266で作るスマート侵入検知システム
- Arduino MKRバンドルで作るセキュアIoTパズルボックス:ステップバイステップガイド
- ワイヤーEDM完全ガイド:マスターワイヤーカッティング
- EDM(放電加工)完全ガイド:原理・種類・メリット・デメリット
- ボール盤の主要構成部品と機能:ベースからモーターまで完全解説
- 内燃機関の主要コンポーネント:構造と機能
- SPICEネットリスト構文マスター:コンポーネント命名、受動・能動素子、電源定義
- タングステンワイヤーの歴史:エジソンのカーボンフィラメントから現代のAKS合金まで