铁熊玩创客 | 好色灯:你们吸猫,我吸色
前段时间看到 DF 有颜色识别传感器的试用,联想到之前做的HAY旋转灯上正好可以用到这个传感器去改变颜色,于是就申请了下试用,没想到真的中了!这是之前两期 HAY 旋转灯的的教程链接,感兴趣的可以去看看。
[*]HAY,你好 ── DIY HAY旋转灯:https://mc.dfrobot.com.cn/thread-26212-1-1.html
[*]Hey Siri, 打开 HAY 旋转灯:https://mc.dfrobot.com.cn/thread-26865-1-1.html
先来看一下效果:
演示视频:
https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=x0520znx6pf&auto=0
制作视频:
https://imgcache.qq.com/tencentvideo_v1/playerv3/TPout.swf?max_age=86400&v=20161117&vid=k0520rj3h64&auto=0
废话不多说,马上来看看旋转灯怎么与颜色识别传感器怎么做结合吧!这次的作品名称叫:好色灯。
## 材料准备
材料如下图,包含:
[*]3D 打印结构件(从左至右分别为支撑架、底座、灯座、灯罩)
[*]Arduino Nano
[*]RGB LED 灯带
[*]USB 电源线
[*]导线若干
[*]M3螺母
[*]热缩管
## 电路原理图
电路原理图如下,fritzing 中找不到 DF 的颜色识别传感器,就用 Adafruit 的颜色识别传感器代替了,原理一样。
## 程序
程序也很简单,简单修改了下colorview的例程,兼容了WS2812 RGB LED。
<font face="微软雅黑">#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;
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).
}
}</i></font>## 制作过程
制作过程比较简单,基本上看图就好了。
1、首先将 USB 电源线穿过底座上的电源孔:
2、在 USB 电源线上焊上两组电源线,并且包覆热缩管:
3、将其中一组电源线焊接到 Arduino Nano 的电源引脚上:
4、将 RGB LED 导线穿过灯座和支撑架:
5、将 RGB LED 导线焊接到 Arduino Nano 相应引脚上(具体见电路原理图):
6、将颜色识别传感器用 M3 螺丝固定在底座上:
7、并且将颜色识别传感器的导线焊接到 Arduino Nano 相应引脚上(具体见电路原理图):
8、用热熔胶将 RGB LED 固定在灯座上:
9、将灯罩与灯座通过螺纹拧在一起:
10、将灯罩与支撑架通过螺纹拧在一起:
11、最后,将底座与支撑架通过螺纹拧在一起:
具备颜色识别功能的好色灯就制作完成啦!成品如下图:
## 附件
程序与3D打印结构下载:
链接: https://pan.baidu.com/s/1c2feX3M 密码: ynkj
路过,帮顶一下。。。。。。。。。。。 内容好棒~!
不过视频没办法解析好伤感, 我去找找看有什么办法 Ash 发表于 2017-12-18 11:19
内容好棒~!
不过视频没办法解析好伤感, 我去找找看有什么办法
谢谢Ash,我还试了腾讯视频,他们好像现在没有flash选项了,所以我就干脆用B站了 jarvis_chan 发表于 2017-12-18 12:03
谢谢Ash,我还试了腾讯视频,他们好像现在没有flash选项了,所以我就干脆用B站了 ...
我可以帮你搞定腾讯视频的flash地址~把链接发我下 好赞的项目 造一个哈哈哈{:5_116:} 我来膜拜了,哈哈{:5_148:} 膜拜不错 太好了,不知道自己能不能做出一个来? 请问DFRobot_TCS34725.h这个库怎么添加啊不知道在哪里:'( Friendship-Moon 发表于 2018-6-3 13:24
请问DFRobot_TCS34725.h这个库怎么添加啊不知道在哪里
颜色识别传感器的购买界面有说明的哦 好强啊 不知道自己照着能不能做出来,好漂亮 膜拜大佬,不过请问你在使用的时候有没有发现颜色传感器性能有哪里可以优化的呢??? jarvis_chan 发表于 2017-12-17 22:29
前段时间看到 DF 有颜色识别传感器的试用,联想到之前做的HAY旋转灯上正好可以用到这个传感器去改变颜色, ...
楼主厉害,楼主那个颜色识别电路图看不清楚,能教教怎么连接nano吗
还是那句老话:
捣鼓车间的作品——赞一个先! 厉害厉害
页:
[1]