0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

USBパトランプ (EZタワーライト/Schneider XVGU) をPythonから制御してみた

0
Last updated at Posted at 2025-08-29

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

gui.png

Tkinter ベースの GUI で、LED の色・パターン、ブザーの音程や音量を簡単に操作できます。
Raspberry Pi を操作パネル代わりにする用途にも便利です。


おわりに

  • Raspberry Pi5 + USBパトランプで、CO₂の状態を視覚/聴覚的に通知できるようになりました。
  • 今回作ったツールは CLI でも GUI でも利用可能です。
  • ソースコードは GitHub に公開しています

注意事項

  • ツールは作者による独自実装であり、Schneider Electric / Pro-face とは一切関係ありません。
  • Schneider Electric および Pro-face は、それぞれの権利者の商標です。
  • このツールは ブザーを鳴らす / LED を点灯・点滅させる ことを目的としており、公式 DLL の完全互換を保証するものではありません。細かな部分の動作は、公式実装と異なります。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?