ポキオです。
Nefry Advent Calendar 2017の6日目が空いていたので、私のクソライブラリのお話をさせて下さい。
EmotionalBlink
以前、主にArduinoやESP8266用に書いたライブラリがありまして、そのライブラリをNefryBTでも使ってみたというお話です。
EmotionalBlink
https://github.com/pokiiio/EmotionalBlink
このライブラリ、ざっくりいうと、Lチカをうまいことエモくやってくれます!!
インストール方法や使い方
詳しいことは ここ に書いてありますので、読んでいただければ助かります(笑)
まずはNefry BTに付いてるLEDを優しく光らせてみます
NefryBTのLEDは16ピンについているので、こんな感じで変数を宣言します。
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(1, 16, NEO_GRB + NEO_KHZ800);
Nefry.setLed()
はここのあたりの宣言をうまいこと隠蔽してくれてますが、このライブラリでは愚直に宣言する必要があります。そして、この pixels
の初期化を setup()
などでやってあげます。
pixels.begin();
ここからが、このライブラリの真骨頂です。じんわりとした点滅は、ちょっとずつ明るさを変化させたりする必要があって、いろいろFor-Loopをまわしたりする必要があるのですが、このライブラリでは以下の1行で終了。
Blink.softly(&pixels, 1, 0, 0, 255);
第一引数は先程の pixels
のアドレス、第二引数はLEDの数(こんかいは1つだけ)。それ以降はRGBの値を自由に設定できます。ここでは青く光らせたかったので、 0, 0, 255
を指定しています。
これだけで、こんな感じでLEDを光らせることができます。コードをすべて載せると、こんな感じ。
#include <Adafruit_NeoPixel.h>
#include <EmotionalBlink.h>
#define PIN 16
#define NUMLED 1
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMLED, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop() {
Blink.softly(&pixels, NUMLED, 0, 0, 255);
}
これだけ。
次に外付けのLEDテープ。同じように優しく光らせてみます
ほぼ同じなので、説明は省きますが、外付けのフルカラーLEDテープに対しても、同じような使い方ができます。LEDテープのGND,VIN,DINを、それぞれNefryBTのGND、3.3V、D2に繋いだとすると・・・。
#include <Adafruit_NeoPixel.h>
#include <EmotionalBlink.h>
#define PIN D2
#define NUMLED 30
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMLED, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop() {
Blink.softly(&pixels, NUMLED, 255, 255, 0);
}
このLEDテープは、LEDが30個ついていたので、 #define NUMLED 30
としています。
今度は黄色(255,255,0)でじんわり点滅。
クリスマスも近いのでイルミネーションのように光らせてみます
このライブラリでは、じんわりエモく点滅させる Blink.softly()
の他にも関数が用意されています。その一つが、 Blink.likeHolidaySeason()
です。
#include <Adafruit_NeoPixel.h>
#include <EmotionalBlink.h>
#define PIN D2
#define NUMLED 30
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMLED, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop() {
Blink.likeHolidaySeason(&pixels, NUMLED, 10000);
}
すべてのLEDがそれぞれランダムな色で光り始めます。
最後に、パリピ点滅!
ギャル電さんに敬意を表して、 Blink.likePartyPeople()
という関数も用意しています。
というわけで
NefryBTでいろんなLチカを簡単にできるライブラリの紹介をしました。普通のLチカに飽きてしまった人は、ぜひ使ってみて下さい。そして、これをつかって・・・続きはNefry Advent Calendar 2017の10日目でお話することにします。