東京タワーってなんだか癒やされますね。
とある日、東京タワーで手に入れました。
ミニ東京タワー!!LEDの色が3色ある内、最も東京タワーっぽいオレンジ色でした。
これを見て思うことといえば、やっぱり自分で光らせたい!!
このミニ東京タワーを癒やされるように光らせたいと思います。
この記事のまとめ
GR-COTTON+自作ケース+100円ショップのボトルケースと使ってミニ東京タワーが光るオブジェを作りました。LEDの点灯には、1/fゆらぎを再現するため、「間欠カオス法」を実装しました。
材料
GR-COTTON
光らせるといえば、がじぇるねのGR-COTTON。丸い基板の真ん中にフルカラーLEDがついています。裏側にはボタン電池も入れられます。
GR-COTTON
自作ケース
GR-COTTONを格納するためのケースは、3D CAD Fusion360で3Dデータを作成し、DMM 3Dプリントサービスに頼みました。通常コースにしたのに混んでいないのか発注してから4日で届きました。ピッタリ!
100円ショップのボトル
作品を形にするために選んだのは100円ショップのこのボトル型のケース。
癒やされる光り方とは?→1/fゆらぎ
キャンドルの炎のゆらゆらとした感じや波の音などに癒やされるのには、1/fゆらぎが関連しているようです。
参考:リラックスに深くかかわる「1/fゆらぎ」って知ってる?
この1/fゆらぎを再現する方法の1つに間欠カオス法というものがあります。すでにいろんな方が間欠カオス方でのLチカを実装されており、参考になるページがたくさん出てきます。
ソースコード
東京タワーなので、赤~オレンジ色の範囲で点滅するようにしました。間欠カオス法を式の通り実装すると値が張り付いて変化が見られなくなってしまう時間ができてしまうため、0~100%の中で0~5%または95~100%のときには乱数を入れるようにしています。
参考にしたサイト
void setup() {
Serial.begin(115200);
// put your setup code here, to run once:
pinMode(22, OUTPUT); // Red
pinMode(23, OUTPUT); // Green
pinMode(24, OUTPUT); // Blue
digitalWrite(22, HIGH);
digitalWrite(23, HIGH);
digitalWrite(24, HIGH);
}
static float r = 0.2f;
// 間欠カオス法
float fluctuation(float x){
if((x < 0.05) || (x > 0.95)) {
x = (float)(random(0, 100)) / 100.0f;
}
else if(x < 0.5f) {
x = x + 2 * x * x;
}
else {
x = x - 2 * (1 - x) * (1 - x);
}
return x;
}
void loop() {
analogWrite(22, (int)(r * 255.0));
analogWrite(23, (int)(255.0f - (r * 5.0f)));
analogWrite(24, (int)(255.0f));
r = fluctuation(r);
delay(100);
}
完成!!
組み立てました。東京タワーがキャンドルの炎のゆらぎのように光っています。
もうすぐクリスマス!!