RaspberryPiからWio Node経由でLEDStrip(LEDテープ)を光らせる

RaspberryPiからWio Node経由でLEDStrip(LEDテープ)を光らせる

前回のエントリーではRaspberryPiからWio Nodeに接続した温度センサーの値を取得しました。

uepon.hatenadiary.com

ようやく手元にLEDStrip(俗にいうLEDテープ)が届いたのでテストしてみました。今回はクリスマスセールでSeeedさんの商品がかなり安く購入できたのでそれに含まれていた LEDテープを使用しています。(Groveコネクタもついているのでそのまま使えます。)これでNagoyaハッカソンのネタは自宅でできるようになりました。

このLEDテープなんですが、セット商品にしかついていないのが残念なので単独販売されるといいなと思います。 まあ作ればいいんですけど、最近は老眼が酷くて手元がおぼつかないのです。

このあたりはセンサー類だけでもお得なので購入おすすめ(12/28現在:クリアランスセールでセットで$24とかないよ…でも同梱されてるWio Linkは使っちゃダメなんで注意)

www.seeedstudio.com

micro:bitのコネクター付のセットもいいかなと思います。(秋月ですし)

akizukidenshi.com

Wio Nodeに接続する

設定に関しては過去のエントリーを参照していただければと思います。接続操作は簡単で、OutputのカテゴリーにあるWS2812 LED Strip 60を選択し、コネクタにドロップします。画面したに赤くConfrom Farmwareと出るのでそれも忘れずに押してください。

f:id:ueponx:20171228182318p:plain

あとは画面左上のハンバーガーボタンを押してAPIの確認をします。

温度センサーの設定をそのままにしているので温度センサーのAPIに加えてLEDテープの設定が追加されています。 点灯・消灯のAPIはこのようになっています。

f:id:ueponx:20171228182903p:plain

この設定では最大60個のLEDまでコントロールできるのですが、今回接続したものは30個なのでパラメータとしては30、後はRGBの16進6桁表記( #0xは不要です)でパラメータを送信すればOKです。 消灯する場合には000000を指定すれば消灯します。

Curlでのアクセスは以下のようになります。

$ curl -k -X POST https://us.wio.seeed.io/v1/node/GroveLedWs2812D0/clear/30/aa00aa?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
{"result": "ok"}

youtu.be

点灯・消灯以外にもスタートインデックスを指定して、RGBパターンを連続して記述して、一つ一つのLEDの色を変えるようなこともできます。 また、 rainbow flowと呼ばれる色を変化させながら点滅するモードもあります。

f:id:ueponx:20171228185654j:plain

RaspberryPiからアクセスしてみる

pythonからはこんな感じでアクセスできます。恒例のrequestsモジュールを使って、今回はPOSTメソッドでアクセスしています。 コマンドライン引数からパラメータをセットしています。joinを使ったほうがキレイにできると思いましたが、それは好みでということで。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
import requests

argvs = sys.argv
argc = len(argvs)

length = '30'
britness = '0'
speed = '1'

if(argc > 1):
    length = argvs[1]
if(argc > 2):
    britness = argvs[2]
if(argc > 3):
    speed = argvs[3]

url = 'https://us.wio.seeed.io/v1/node/GroveLedWs2812D0/start_rainbow_flow/' + length + '/' + britness + '/' + speed

payload = {'access_token': 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}
r = requests.post(url, params=payload)
print(r.text)

youtu.be

一応、うまくいったようです。

終わりに

Nagoyaハッカソンで使ったもののメモとしてはこれで終わりかなと思います。 それにしても、本当に老眼ではんだ付けがきつくなった自分にとってはGroveサマサマといった感じです。

/* -----codeの行番号----- */