查看: 5325|回复: 12

【I2C颜色识别传感器试用】好色灯:你们吸猫,我吸色

[复制链接]
前段时间看到 DF 有颜色识别传感器的试用,联想到之前做的HAY旋转灯上正好可以用到这个传感器去改变颜色,于是就申请了下试用,没想到真的中了!

这是之前两期 HAY 旋转灯的的教程链接,感兴趣的可以去看看。


先来看一下效果:

hay3-render.png

演示视频:


制作视频:


废话不多说,马上来看看旋转灯怎么与颜色识别传感器怎么做结合吧!这次的作品名称叫:好色灯。

## 材料准备

材料如下图,包含:

  • 3D 打印结构件(从左至右分别为支撑架、底座、灯座、灯罩)
  • Arduino Nano
  • RGB LED 灯带
  • USB 电源线
  • 导线若干
  • M3螺母
  • 热缩管


hay3-materials.png

## 电路原理图

电路原理图如下,fritzing 中找不到 DF 的颜色识别传感器,就用 Adafruit 的颜色识别传感器代替了,原理一样。

hay-color-circuit_bb.png

## 程序

程序也很简单,简单修改了下colorview的例程,兼容了WS2812 RGB LED。
[C++] 纯文本查看 复制代码
#include <Wire.h>
#include "DFRobot_TCS34725.h"

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#define PIN            6

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      16

// our RGB -> eye-recognized gamma color
byte gammatable[256];

DFRobot_TCS34725 tcs = DFRobot_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(115200);
  Serial.println("Color View Test!");

  if (tcs.begin()) {
    Serial.println("Found sensor");
  } else {
    Serial.println("No TCS34725 found ... check your connections");
    while (1); // halt!
  }

  pixels.begin(); // This initializes the NeoPixel library.
  
  // thanks PhilB for this gamma table!
  // it helps convert RGB colors to what humans see
  for (int i=0; i<256; i++) {
    float x = i;
    x /= 255;
    x = pow(x, 2.5);
    x *= 255;

    gammatable[i] = x;

  }
}

void loop() {
  uint16_t clear, red, green, blue;
  tcs.getRGBC(&red, &green, &blue, &clear);
  tcs.lock();  // turn off LED
  
  // Figure out some basic hex code for visualization
  uint32_t sum = clear;
  float r, g, b;
  r = red; r /= sum;
  g = green; g /= sum;
  b = blue; b /= sum;
  r *= 256; g *= 256; b *= 256;
  Serial.print("\t");
  // Serial.print((int)r, HEX); Serial.print((int)g, HEX); Serial.print((int)b, HEX);
  Serial.print((int)r); Serial.print("\t"); 
  Serial.print((int)g); Serial.print("\t");
  Serial.print((int)b);
  Serial.println();

  //Serial.print((int)r ); Serial.print(" "); Serial.print((int)g);Serial.print(" ");  Serial.println((int)b );
  //Set the color lamp
  for(int i=0;i<NUMPIXELS;i++){
    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.setPixelColor(i, pixels.Color(gammatable[(int)r], gammatable[(int)g], gammatable[(int)b])); // Moderately bright green color.
    // pixels.setPixelColor(i, pixels.Color((int)r, (int)g, (int)b));

    pixels.show(); // This sends the updated pixel color to the hardware.

    // delay(500); // Delay for a period of time (in milliseconds).
  }
}



## 制作过程

制作过程比较简单,基本上看图就好了。

1、首先将 USB 电源线穿过底座上的电源孔:

hay3-base.png

2、在 USB 电源线上焊上两组电源线,并且包覆热缩管:

hay3-base2.png

3、将其中一组电源线焊接到 Arduino Nano 的电源引脚上:

hay3-arduino-power.png

4、将 RGB LED 导线穿过灯座和支撑架:

hay3-middle1.png

5、将 RGB LED 导线焊接到 Arduino Nano 相应引脚上(具体见电路原理图):

hay3-middle2.png

6、将颜色识别传感器用 M3 螺丝固定在底座上:

hay3-color-sensor.png

7、并且将颜色识别传感器的导线焊接到 Arduino Nano 相应引脚上(具体见电路原理图):

hay3-color-sensor-wire.png

8、用热熔胶将 RGB LED 固定在灯座上:

hay3-fix-led.png

hay3-fix-led2.png

9、将灯罩与灯座通过螺纹拧在一起:

hay3-fix-led-base.png

10、将灯罩与支撑架通过螺纹拧在一起:

hay3-fix-lamp.png

11、最后,将底座与支撑架通过螺纹拧在一起:

hay3-fix-middle.png

具备颜色识别功能的好色灯就制作完成啦!成品如下图:

hay3.png

## 附件

程序与3D打印结构下载:

链接: https://pan.baidu.com/s/1c2feX3M 密码: ynkj













hay3-fix-middle.png

hay-color-view.ino

2.21 KB, 下载次数: 26, 下载积分: 创造力 -1

好色灯程序

gray6666  中级技匠

发表于 2017-12-18 08:38:28

路过,帮顶一下。。。。。。。。。。。
回复 支持 反对

使用道具 举报

Ash  管理员

发表于 2017-12-18 11:19:05

内容好棒~!
不过视频没办法解析好伤感, 我去找找看有什么办法
回复 支持 反对

使用道具 举报

jarvis_chan  版主
 楼主|

发表于 2017-12-18 12:03:33

Ash 发表于 2017-12-18 11:19
内容好棒~!
不过视频没办法解析好伤感, 我去找找看有什么办法

谢谢Ash,我还试了腾讯视频,他们好像现在没有flash选项了,所以我就干脆用B站了
回复 支持 反对

使用道具 举报

zbl  管理员

发表于 2017-12-18 18:12:17

jarvis_chan 发表于 2017-12-18 12:03
谢谢Ash,我还试了腾讯视频,他们好像现在没有flash选项了,所以我就干脆用B站了 ...

我可以帮你搞定腾讯视频的flash地址~把链接发我下
回复 支持 反对

使用道具 举报

源代码  中级技匠

发表于 2017-12-25 11:10:54

好赞的项目 造一个哈哈哈
回复 支持 反对

使用道具 举报

maker_王  初级技匠

发表于 2017-12-25 14:50:35

我来膜拜了,哈哈
回复 支持 反对

使用道具 举报

wwajili  学徒

发表于 2018-1-10 07:31:31

膜拜  不错
回复 支持 反对

使用道具 举报

快乐王子  见习技师

发表于 2018-1-17 10:41:33

太好了,不知道自己能不能做出一个来?
回复 支持 反对

使用道具 举报

Friendship-Moon  学徒

发表于 2018-6-3 13:24:54

请问DFRobot_TCS34725.h这个库怎么添加啊  不知道在哪里  
回复 支持 反对

使用道具 举报

铁熊  版主

发表于 2018-6-6 18:03:31

Friendship-Moon 发表于 2018-6-3 13:24
请问DFRobot_TCS34725.h这个库怎么添加啊  不知道在哪里

颜色识别传感器的购买界面有说明的哦
回复 支持 反对

使用道具 举报

期待  学徒

发表于 2018-6-10 16:36:41

好强啊
回复 支持 反对

使用道具 举报

忽忽  学徒

发表于 2018-7-7 09:35:14

不知道自己照着能不能做出来,好漂亮
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail