USBパトランプ (Schneider XVGU) をPythonから制御してみた
開発の経緯
以前、Raspberry Pi Pico2W で CO₂ センサーを使った監視システムを作りました。
記事: Raspberry Pi Pico 2 WからGoogleフォームへPOST送信してログ記録・可視化する環境ロガー
次のステップとして「数値を見える化したい」と考え、
CO₂ 濃度に応じてUSBパトランプで分かりやすくできないかと考えました。
ちょうど手元に Pro-face EZタワーライト XVGU3SHAG / XVGU3SWG(Schneider Electric 製 LED パトランプ)がありました。
これは USB 接続で利用でき、Windows 向けには公式の DLL が提供されています。
今回はその動作を参考にしつつ、Python から直接 LED とブザーを制御できるツールを作成しました。
(XVGU3SHAGとXVGU3SWGの違いは、ポールがついているかついていないかだけです)
例えば CO₂ 濃度に応じて次のような動作をさせます:
- 低濃度:青で点滅
- 中濃度:黄色で点滅
- 高濃度(換気必要):赤で点滅
- 超高濃度:赤点滅 + ブザー
点灯例。3段ともピンクで点滅を実行
https://x.com/i/status/1962495377539793040
実装概要
- Python + PyUSB を用い、USB 経由で制御パケットを送信
- LED の点灯/消灯/点滅 と ブザーの ON/OFF を制御可能
- CLI ツールとして利用できるほか、Python モジュールとしても呼び出し可能 - GUI(Tkinter) も用意し、マウス操作だけで制御できます
ソースコードは GitHub に公開しています
https://github.com/zeninputfail/xvgu-controller
動作環境についての注意
このツールは Raspberry Pi 5 上で動作確認しています。
Raspberry Pi Pico2W では動作しません(USBホスト機能がないため)。
Raspberry Pi Zero2W でも理論上は動作するはずですが、USBポートが 1 つしかないためOTGアダプタ(USB On-The-Go変換ケーブル) を用意する必要があります。
もし Zero2W で動作確認できた方がいれば、ぜひコメントで教えてください
基本使用方法 (CLI)
python xvgu.py <command> [options]
コマンドが指定されない場合はヘルプが表示されます。
1. ledset – LED制御
特定の LED レイヤーに色とパターンを設定します。
オプション
-
--layer LAYER(必須): 対象レイヤー (ONE,TWO,THREE) -
--name COLOR_NAME: 色を指定 -
--rgb R,G,B: RGB値 (0–255) を直接指定 -
--pattern PATTERN: パターン (OFF,ON,BLINK_1,BLINK_2)
例
python xvgu.py ledset --layer ONE --name red --pattern BLINK_1
python xvgu.py ledset --layer TWO --rgb 0,255,0
利用可能な色
red, yellow, blue, white, pink, light_pink, deep_pink, hot_pink, rose, salmon, plum, orchid, pale_violet, misty_rose, off
2. buzzer – ブザー制御
ブザーを ON/OFF、または一定時間鳴らします。
オプション
-
--seconds N: 鳴らす秒数 -
--tone {low, high}: ブザー音程 -
--volume {big, mid, sml}: ブザー音量(既定値: mid) -
--off: 即座に停止
例
python xvgu.py buzzer --tone low --volume big --seconds 3
python xvgu.py buzzer --tone high --seconds 2
python xvgu.py buzzer --off
GUI版
python xvgu_gui.py
Tkinter ベースの GUI で、LED の色・パターン、ブザーの音程や音量を簡単に操作できます。
Raspberry Pi を操作パネル代わりにする用途にも便利です。
おわりに
- Raspberry Pi5 + USBパトランプで、CO₂の状態を視覚/聴覚的に通知できるようになりました。
- 今回作ったツールは CLI でも GUI でも利用可能です。
- ソースコードは GitHub に公開しています
注意事項
- ツールは作者による独自実装であり、Schneider Electric / Pro-face とは一切関係ありません。
- Schneider Electric および Pro-face は、それぞれの権利者の商標です。
- このツールは ブザーを鳴らす / LED を点灯・点滅させる ことを目的としており、公式 DLL の完全互換を保証するものではありません。細かな部分の動作は、公式実装と異なります。
