「ネットワーク経由でLEDをぴかぴかさせたい」という要望は、どうやらITエンジニアに共通のもののようです。
しっかりとした製品だと、株式会社パトライトや株式会社アイエスエイの製品が有名です。また、もう少し簡易でおしゃれなものであれば、株式会社インフィニットループが開発したCrystal Signal Piも一時期話題になりました。これらの製品は非常にしっかり作られていたり、しゃれっ気があったりして良いのですが、いささか高価で購入に躊躇します。
もちろん、ArduinoやRaspberry PiのGPIOで自作しても良いのですが、LED部分のケースなんかを考えると完成度高いものを作るのは案外手間です。せめてLED部分だけでも適当なケースに入っていて欲しい……などと考えていたところに、丁度良いものがありました。
妖しい低価格ガジェットにありがちなことに、品物は同じでも商品名が一定していなかったり、時には外観がそれっぽくても中身が全く違うものが混在していることがままあるのですが、私が入手したパッケージには「Webmail Window」と書かれています。ぐぐってみると「Webmail Notifier」という名前でも販売されているようです。写真を見れば一目瞭然ですが、USBで適当なホストに繋いでLEDをぴかぴかさせるというガジェットです。
元々はメールの着信通知(「Webmail」と名乗っておきながら、Outlook Expressなんかにも対応するようですが)のためのものですが、中身はUSB制御のLEDなのでドライバさえ用意すれば好きにぴかぴかさせることができます。(RGB3色のLEDが入っているので7色で光ります)
そして、どういう経緯か判りませんが、最近のLinux kernelはこのガジェットのドライバを標準で持っているようです。Raspberry Pi(RASPBIAN JESSIE)に接続したところ、次のようなログが出てしれっとドライバがアタッチされました。
[ 277.415841] usb 1-1.4: new low-speed USB device number 6 using dwc_otg
[ 277.527528] usb 1-1.4: New USB device found, idVendor=1294, idProduct=1320
[ 277.527570] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 277.527590] usb 1-1.4: Product: MAIL
[ 277.527609] usb 1-1.4: Manufacturer: MAIL
[ 277.572789] usbled 1-1.4:1.0: USB LED device now attached
[ 277.575644] usbcore: registered new interface driver usbled
Product: MAIL
, Manufacturer: MAIL
というのはあまりにやる気が感じられませんし、idVendor=1294
は「RISO KAGAKU CORP.」(理想科学工業?)の割り当てになっているので、99%ぐらい勝手に名乗っているだけのフェイクではないかと思われます。とはいえ、なんかもうこれで世界的に認識されているようなのであきらめるしかなさそうですが。
とにもかくにも、デバイスとして認識されているなら、あとは動かしてみるのみです。先達の記事によればsysfsに見えているendpointに値を書き込めばRGBそれぞれのLEDが制御できると言うことなので、書いてあるとおりにやってみると確かにLEDを好きな色で光らせることができます。
あとは適当なコードを書けば、ネットワーク経由で好きにLEDをぴかぴかさせることができます。
ただ、usbledドライバは少々使いずらいですね。デバイス名が固定されていない(USBポートによってデバイスが変化する)ので、プログラムから叩くのがどうにも面倒です。Linux 4.9からはusbledに代わり、hidledに統合され、そうするとデバイスも固定されるので使いやすくなるのでしょうけど。
参考
- USBメール着信お知らせライト (サンコーレアものショップ)
- Dream Cheeky USB Windows Webmail Notifier – Outlook, Gmail, Facebook, Twitter, (eBay)
- Optisch-akustisches Emailsignal USB [8768] (eBay)
- Webmail windowというUSB接続のLEDランプを制御するプログラムを作りました (ashelの日記)
- JavaからUSBランプを光らせてみる (ka-ka_xyzの日記)
- Monitoring servers with an USB lamp (Christian Weiske.)