TokyoTowerを光らせて癒やされる (GR-COTTONと1/fゆらぎ)

東京タワーってなんだか癒やされますね。
<img alt="TokyoTower" width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/496598dd-1f95-fe19-3067-507e574bf4b3.jpeg">
とある日、東京タワーで手に入れました。
<img alt="ガチャガチャ" width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/96358ad3-1bc7-077c-17ae-fa6895bce609.jpeg"> <img alt="ガチャガチャの中身" width="150" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/e564acdc-d280-3b9a-d990-8d5280fa37ce.jpeg">
ミニ東京タワー！！LEDの色が3色ある内、最も東京タワーっぽいオレンジ色でした。
<img alt="ミニ東京タワー" width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/852f8fe7-f688-821f-fe71-573291c2b3ec.jpeg">

これを見て思うことといえば、やっぱり自分で光らせたい！！
このミニ東京タワーを癒やされるように光らせたいと思います。

# この記事のまとめ
GR-COTTON+自作ケース+100円ショップのボトルケースと使ってミニ東京タワーが光るオブジェを作りました。LEDの点灯には、1/fゆらぎを再現するため、「間欠カオス法」を実装しました。

# 材料
#### GR-COTTON
光らせるといえば、がじぇるねのGR-COTTON。丸い基板の真ん中にフルカラーLEDがついています。裏側にはボタン電池も入れられます。
[GR-COTTON](https://www.renesas.com/us/ja/products/gadget-renesas/boards/gr-cotton)

#### 自作ケース
GR-COTTONを格納するためのケースは、3D CAD Fusion360で3Dデータを作成し、DMM 3Dプリントサービスに頼みました。通常コースにしたのに混んでいないのか発注してから4日で届きました。ピッタリ！
<img alt="自作ケース" width="300" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/49e005e5-5bb1-3fda-830d-f1167e1c39eb.jpeg">

#### 100円ショップのボトル
作品を形にするために選んだのは100円ショップのこのボトル型のケース。
<img alt="100円ショップのボトルケース" width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/21fcc8f8-b8a2-b558-aacb-66e1cd7801b4.jpeg">

# 癒やされる光り方とは？→1/fゆらぎ
キャンドルの炎のゆらゆらとした感じや波の音などに癒やされるのには、1/fゆらぎが関連しているようです。
[参考：リラックスに深くかかわる「1／fゆらぎ」って知ってる？](https://kinarino.jp/cat6-%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB/5715-%E3%83%AA%E3%83%A9%E3%83%83%E3%82%AF%E3%82%B9%E3%81%AB%E6%B7%B1%E3%81%8F%E3%81%8B%E3%81%8B%E3%82%8F%E3%82%8B%E3%80%8C1%EF%BC%8Ff%E3%82%86%E3%82%89%E3%81%8E%E3%80%8D%E3%81%A3%E3%81%A6%E7%9F%A5%E3%81%A3%E3%81%A6%E3%82%8B%EF%BC%9F)
この1/fゆらぎを再現する方法の1つに間欠カオス法というものがあります。すでにいろんな方が間欠カオス方でのLチカを実装されており、参考になるページがたくさん出てきます。

# ソースコード
東京タワーなので、赤～オレンジ色の範囲で点滅するようにしました。間欠カオス法を式の通り実装すると値が張り付いて変化が見られなくなってしまう時間ができてしまうため、0～100%の中で0～5%または95～100%のときには乱数を入れるようにしています。
[参考にしたサイト](https://www.marutsu.co.jp/pc/static/large_order/zep/m-z-picoled-da1)

```cpp
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);
}
```

# 完成！！
組み立てました。東京タワーがキャンドルの炎のゆらぎのように光っています。
<img alt="完成図" width="200" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/af48a8d2-eb0d-77c4-a0ec-5ad83892e396.jpeg">

<iframe width="560" height="315" src="https://www.youtube.com/embed/32D6bx2gtdU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<br>
もうすぐクリスマス!!
<img alt"メリークリスマス" width="560" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2339310/87033904-f16f-3754-167d-eb76a5fa8bee.jpeg">