チカチカしすぎじゃん!のほうが気づいてもらえる?
NeoPixel(LED)のお話です。
ひかるスカートを作った時に、これ目立っちゃって仕方ないなあ、なんて思っていたのですが、展示会場ではなかなか気づいてもらえませんでした。
周囲が明るかったとか、周りはもっと派手な光系があったとかの要因もあるのですが、
光に動きがないと気づいてもらえない
という重要な視点に気がつきました。
真っ先に気が付いたのはシャチョーなんですけど。。。。
じんわり七色に変化する、では気づかないのです。どちらかというと、点滅して動きがあるほうが、気がつくのです。
NT金沢では、プログラムを書き直して、光る、光らないのパターンを繰り返すようにしただけで、気づく人が増えました。
これは、机上で実験していると気づかないことですね。
その時に変更したプログラムはこちら。ベタです。配列にも入れてませんw
void loop() {
colorWipe(strip.Color(50, 0, 50), 100);
colorWipe(strip.Color(0, 0, 0), 50); // black
colorWipe(strip.Color(0, 255, 128), 100);
colorWipe(strip.Color(0, 0, 0), 60); // black
colorWipe(strip.Color(64, 0, 128), 100);
colorWipe(strip.Color(0, 0, 0), 80); // black
colorWipe(strip.Color(255, 128, 0), 100);
colorWipe(strip.Color(0, 0, 0), 50); // black
colorWipe(strip.Color(0, 128, 255), 100);
colorWipe(strip.Color(0, 0, 0), 80); // black
colorWipe(strip.Color(20, 255, 247), 100);
colorWipe(strip.Color(0, 0, 0), 100); // black
}
光る、光らないをまんま書いています。
ええ、これだけで、LEDがキラキラするんですよ。試してみたくなったでしょ。
で、今回、シンガポールに展示するのに、さらにパワーアップ?させて、普通に見ると目がチカチカするよ、っていう感じにしてみました。
シンガポールの展示会場は、去年いった感覚だと、ブース間も狭く、賑やかで、日本よりごった返し感があります
これくらい派手にチカチカしていても目立たない!?かもしれません。
そこは、また会場で色々体感して来ようと思います。様子に合わせてプログラムを書き換えてもいいですしね。
さて、こちらのパターンのプログラムは、光る色や、光らないをぐるぐる回すようにして、より動きを出しています。
const int nPixels = 12;
uint32_t colorPattern[nPixels] = {
strip.Color(0, 0, 0),//BLACK
strip.Color(255, 128, 0),//ORANGE
strip.Color(0, 255, 128),//TEAL
strip.Color(255, 0, 0),//RED
strip.Color(0, 0, 0),//BLACK
strip.Color(180, 51, 255),//Purple
strip.Color(0, 0, 255),//BLUE
strip.Color(255, 248, 51),//YELLOW
strip.Color(0, 0, 0),//BLACK
strip.Color(0, 255, 0),//GREEN
strip.Color(235, 52, 213),//Magenta
strip.Color(143, 255, 51)//LIME
};
int start = 0;
void setup() {
// put your setup code here, to run once:
strip.begin();
strip.show(); // Initialize all pixels to 'off'
start = 0;
}
void loop() {
for(int i = 0; i < nPixels; i++){
int index = (i + start) % nPixels;
strip.setPixelColor(i, colorPattern[index]);
}
strip.show();
delay(250);
start = (start + 1) % nPixels;
}
こういう感じで光らせたい!!
というところからプログラムにアプローチするのって何通りか書き方があるので、STEM教材としては、楽しいかもしれないですね。
上記のプログラムは余剰を使っているのですが、もっと短くかけたり、または違うアプローチができたりと、それをわいわいするのも楽しいかもです。
NeoPixelキラキラワークショップ?
今回は、ワークショップの準備も、キットの制作も間に合わなかったのですが、短いプログラムでも、やりたいことを実現するためにどうやるかを試行錯誤してみたり、人によって違うアプローチをみてみたり、効率のいい方法を学んだり、という場をいつか実現してみたいなあと思っています。
そのためには英語がもうちょっと話せないと。。。
今流行っているから、ワークショップや、STEMをやってみようかな?という訳ではなく、
自分が、かれこれ20年前くらいに、プログラムを学びたいと思っても、なかなか学びやすい本もなく、機会もなく、IT系の会社に入っても、理系でもなく、未経験だったので、主に事務的なことやテストばかりを担当して、プログラムを書く機会を四苦八苦して見出して、どうにかこうにか、少しづつ身につけられたというのがあります。
そうやって、プログラムをかけるようになったことで、ちゃんとお給料をもらえるような仕事にもつけて、人生が拓けたという経験もあります。
また、常に新しいことを学んで、それができるようになっていくことは、とても楽しいことなので、
それをまた誰かに伝えられればなあという思いでやっています。
Adafruit NeoPixel参考リンク
Adafruit NeoPixel: Adafruit_NeoPixel Class Reference
Example of driving an Adafruit NeoPixel Ring with the Digispark Arduino-compatible board
FirstFourNotesという小さな会社で、音楽+ITで新しい音楽の体験を生み出したいと、シャチョーと2人でプロダクト開発中です。いただいたサポートは、部品購入や基板製作に使わせていただければありがたいです!