4
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Organization

Nefry BTでエモいLチカをする

ポキオです。
Nefry Advent Calendar 2017の6日目が空いていたので、私のクソライブラリのお話をさせて下さい。

EmotionalBlink

以前、主にArduinoやESP8266用に書いたライブラリがありまして、そのライブラリをNefryBTでも使ってみたというお話です。

blink_like_holiday_season.gif
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 を指定しています。

nefry.gif

これだけで、こんな感じで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テープ。同じように優しく光らせてみます

IMG_20171204_212815384-01.jpeg

ほぼ同じなので、説明は省きますが、外付けのフルカラー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 としています。

softly.gif

今度は黄色(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がそれぞれランダムな色で光り始めます。

holiday.gif

最後に、パリピ点滅!

ギャル電さんに敬意を表して、 Blink.likePartyPeople() という関数も用意しています。

party.gif

というわけで

NefryBTでいろんなLチカを簡単にできるライブラリの紹介をしました。普通のLチカに飽きてしまった人は、ぜひ使ってみて下さい。そして、これをつかって・・・続きはNefry Advent Calendar 2017の10日目でお話することにします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?