12781浏览
查看: 12781|回复: 16

[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。

  1. #include <Wire.h>
  2. #include "DFRobot_TCS34725.h"
  3. #include <Adafruit_NeoPixel.h>
  4. #ifdef __AVR__
  5.   #include <avr/power.h>
  6. #endif
  7. #define PIN            6
  8. // How many NeoPixels are attached to the Arduino?
  9. #define NUMPIXELS      16
  10. // our RGB -> eye-recognized gamma color
  11. byte gammatable[256];
  12. DFRobot_TCS34725 tcs = DFRobot_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
  13. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  14. void setup() {
  15.   Serial.begin(115200);
  16.   Serial.println("Color View Test!");
  17.   if (tcs.begin()) {
  18.     Serial.println("Found sensor");
  19.   } else {
  20.     Serial.println("No TCS34725 found ... check your connections");
  21.     while (1); // halt!
  22.   }
  23.   pixels.begin(); // This initializes the NeoPixel library.
  24.   
  25.   // thanks PhilB for this gamma table!
  26.   // it helps convert RGB colors to what humans see
  27.   for (int i=0; i<256; i++) {
  28.     float x = i;
  29.     x /= 255;
  30.     x = pow(x, 2.5);
  31.     x *= 255;
  32.     gammatable<i> = x;
  33.   }
  34. }
  35. void loop() {
  36.   uint16_t clear, red, green, blue;
  37.   tcs.getRGBC(&red, &green, &blue, &clear);
  38.   tcs.lock();  // turn off LED
  39.   
  40.   // Figure out some basic hex code for visualization
  41.   uint32_t sum = clear;
  42.   float r, g, b;
  43.   r = red; r /= sum;
  44.   g = green; g /= sum;
  45.   b = blue; b /= sum;
  46.   r *= 256; g *= 256; b *= 256;
  47.   Serial.print("\t");
  48.   // Serial.print((int)r, HEX); Serial.print((int)g, HEX); Serial.print((int)b, HEX);
  49.   Serial.print((int)r); Serial.print("\t");
  50.   Serial.print((int)g); Serial.print("\t");
  51.   Serial.print((int)b);
  52.   Serial.println();
  53.   //Serial.print((int)r ); Serial.print(" "); Serial.print((int)g);Serial.print(" ");  Serial.println((int)b );
  54.   //Set the color lamp
  55.   for(int i=0;i<NUMPIXELS;i++){
  56.     // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
  57.     pixels.setPixelColor(i, pixels.Color(gammatable[(int)r], gammatable[(int)g], gammatable[(int)b])); // Moderately bright green color.
  58.     // pixels.setPixelColor(i, pixels.Color((int)r, (int)g, (int)b));
  59.     pixels.show(); // This sends the updated pixel color to the hardware.
  60.     // delay(500); // Delay for a period of time (in milliseconds).
  61.   }
  62. }</i>
复制代码
## 制作过程

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

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, 下载次数: 150

好色灯程序

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

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

使用道具 举报

Daniel2019  学徒

发表于 2019-10-8 16:13:47

膜拜大佬,不过请问你在使用的时候有没有发现颜色传感器性能有哪里可以优化的呢???
回复

使用道具 举报

XIAOXIAO22  学徒 来自手机

发表于 2020-4-22 14:52:33

jarvis_chan 发表于 2017-12-17 22:29
前段时间看到 DF 有颜色识别传感器的试用,联想到之前做的HAY旋转灯上正好可以用到这个传感器去改变颜色, ...

楼主厉害,楼主那个颜色识别电路图看不清楚,能教教怎么连接nano吗
回复

使用道具 举报

DFHJM_IpFmV  中级技师

发表于 2020-5-3 20:59:46

还是那句老话:
      捣鼓车间的作品——赞一个先!
回复

使用道具 举报

DFS1w2cb8o8  中级技师

发表于 2020-8-16 12:45:09

厉害厉害
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

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

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

mail