カメレオンランプの製作


         色紙と同じ色で点灯するランプを作成しました



 Arduinoでカメレオンランプを製作しました。



 カメレオンランプを見かけたので簡易な構造で作ってみることにしました。カメレオンの形状の作成は 面倒なので、100均のタッチランプを使って,出来るだけ簡易に作ることにしました。
 カラーセンサーTCS3472(照射用のLED付)をアリエクスプレスで購入(約175円)し、LED STRIP14個を ランプとして使い、タッチランプをカラー紙の上に置くとカラー紙の色と同じような色に光るようにしました。



  完成品の写真


ランプの表側: 側面にプッシュロックスイッチを取り付けています。

ランプの裏側: カラーセンサーTCS3472をセットしてあります。



LEDストリップの取り付け

横からの写真




  起動動画


 完成したカメレオンランプの起動動画です。
 撮影カメラのホワイトバランス等を調整していませんので、ランプの色が見た目の色と動画の色が違って見えます。





  回路図


 下記に回路図を表示しておきます。
 電源はタッチランプについている単三電池4個をそのまま使用し、側面に穴をあけ電源用の プッシュロックスイッチを取り付けています。





  プログラムコード


下記にプログラムを掲載しておきます。
ライブラリーに「Adafruit_TCS34725.h」と「Adafruit_NeoPixel.h」をインストールしておきます。

#include <Wire.h>
#include <Adafruit_TCS34725.h>
#include <Adafruit_NeoPixel.h>

#define numpixels 14
#define LED_PIN 3

byte gtable[256];

/* Conect SCL to A5
   Conect SDA to A4
   Conect VIN to 3.3V DC
   Conect GND to Common GND */

Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
//オプションの積分時間とゲイン値を使用してTCS34725センサーを宣言します。
//センサーからのカラーサンプルの積分時間を50msに設定。センサーの感度を制御するためにADCのゲインを2xゲインに設定。

Adafruit_NeoPixel strip = Adafruit_NeoPixel(numpixels, LED_PIN, NEO_GRB+NEO_KHZ800);

void setup() {
  tcs.begin();
  //TCS34725カラーセンサーを初期化します。

  strip.begin();
  for (int i = 0; i < 256; i++){
    float x = i;
    x /= 255;
    x = pow(x, 2.5);
    x *= 255;
    gtable[i] = x;
  }
}

void loop(){
  float r, g, b;
  delay(60);
  tcs.getRGB(&r, &g, &b);
  //センサーの赤、緑、青のセンサー出力を読み取ります。
  
  for(int i = 0; i < numpixels; i++){
    strip.setPixelColor(i, strip.Color(gtable[(int)r], gtable[(int)g], gtable[(int)b]));
  }
  strip.show();
}