見出し画像

チカチカしすぎじゃん!のほうが気づいてもらえる?

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: Adafruit_NeoPixel Class Reference

Example of driving an Adafruit NeoPixel Ring with the Digispark Arduino-compatible board 

FirstFourNotesという小さな会社で、音楽+ITで新しい音楽の体験を生み出したいと、シャチョーと2人でプロダクト開発中です。いただいたサポートは、部品購入や基板製作に使わせていただければありがたいです!