铁熊玩创客 | 好色灯:你们吸猫,我吸色

2017-12-172.2万
精华项目
AI 快速预览详细 收起
本项目介绍了如何使用颜色识别传感器和Arduino Nano制作一款名为“好色灯”的HAY旋转灯。所需材料包括3D打印结构件、RGB LED灯带等。通过修改colorview的例程,兼容了WS2812 RGB LED,实现了颜色识别传感器与RGB LED灯带的完美结合。制作过程详细,适合STEM教育和创客项目。
前段时间看到 DF 有颜色识别传感器的试用,联想到之前做的HAY旋转灯上正好可以用到这个传感器去改变颜色,于是就申请了下试用,没想到真的中了!

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


先来看一下效果:

铁熊玩创客 | 好色灯:你们吸猫,我吸色图16

演示视频:


制作视频:


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

## 材料准备

材料如下图,包含:

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



铁熊玩创客 | 好色灯:你们吸猫,我吸色图1

## 电路原理图

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图2

## 程序

程序也很简单,简单修改了下colorview的例程,兼容了WS2812 RGB LED。

  1. <font face="微软雅黑">#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></font>
复制代码
## 制作过程

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

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图3

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图4

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图5

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图6

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图7

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图8

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图9

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图10

铁熊玩创客 | 好色灯:你们吸猫,我吸色图11

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图12

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图13

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图14

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

铁熊玩创客 | 好色灯:你们吸猫,我吸色图15

## 附件

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

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

hay3-fix-middle.png (473.48 KB, 下载次数: 6767)

好色灯 · 颜色识别传感器:DIY HAY旋转灯_image_3.webp

hay-color-view.ino

2.21 KB, 下载次数: 6138

好色灯程序

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(13)
DFS1w2cb8o8
DFS1w2cb8o8
厉害厉害
DFHJM_IpFmV
DFHJM_IpFmV
还是那句老话:
捣鼓车间的作品——赞一个先!
cici66
cici66
楼主厉害,楼主那个颜色识别电路图看不清楚,能教教怎么连接nano吗
Daniel2019
Daniel2019
膜拜大佬,不过请问你在使用的时候有没有发现颜色传感器性能有哪里可以优化的呢???
忽忽
忽忽
不知道自己照着能不能做出来,好漂亮
期待
期待
好强啊
Friendship-Moon
Friendship-Moon
请问DFRobot_TCS34725.h这个库怎么添加啊 不知道在哪里 :'(
铁熊
铁熊
作者
回复Friendship-Moon
颜色识别传感器的购买界面有说明的哦
快乐王子
快乐王子
太好了,不知道自己能不能做出一个来?
wwajili
wwajili
膜拜 不错
qq215104863549
qq215104863549
我来膜拜了,哈哈
源代码
源代码
好赞的项目 造一个哈哈哈
Ash1
Ash1
内容好棒~!
不过视频没办法解析好伤感, 我去找找看有什么办法
sophie
sophie回复铁熊
我可以帮你搞定腾讯视频的flash地址~把链接发我下
铁熊
铁熊
作者
回复Ash1
谢谢Ash,我还试了腾讯视频,他们好像现在没有flash选项了,所以我就干脆用B站了
gray6666
gray6666
路过,帮顶一下。。。。。。。。。。。
- 没有更多了 -