26467浏览
查看: 26467|回复: 28

[项目] 会变色的瓶子

[复制链接]
         初次拿到灯带,不知道该做些什么;无意之中想到在一些饰品店,有一些好玩的玩意,比如轻轻晃动你手中的瓶子,里面的灯竟然亮起来了,能否自己也做一个这样的瓶子呢?尝试一下呗。           

     STEP ONE:硬件器材

         所需器材:
        或许灯带到手之后,会发现好长哦,也许会还会感到很复杂,其实不然,因为这个灯带也有相应的库,有了这个库,这么长的灯带其实就多盏普通的LED并联到一块,你可以点亮其中的任意一盏或者N盏灯。而且这个灯带可以随便剪成很多段,然后用三根线将针脚引出来就ok了。灯带的三根针脚分别是VCC、GND和数字信号针脚,只要将其接到数字口就搞定了。
        STEP TWO:硬件搭建
会变色的瓶子图1

         STEP THREE:编写程序
  1. <font size="4">#define SensorINPUT  9 //传感器接在数字口9上面
  2. #include <Adafruit_NeoPixel.h>
  3. #define PIN 10 //灯带接在数字口10上面
  4. Adafruit_NeoPixel strip = Adafruit_NeoPixel(15, PIN, NEO_GRB + NEO_KHZ800);//一共十五盏LED
  5. uint8_t myColors[][3] = {{232, 100, 255},   // 设置不同的颜色
  6.                          {200, 200, 20},   //
  7.                          {30, 200, 200},   //
  8.                          {255 ,0 , 255},
  9.                          };
  10. #define FAVCOLORS sizeof(myColors) / 3
  11. void setup()
  12. {
  13.   pinMode(SensorINPUT, INPUT);
  14. strip.begin();  
  15.   Serial.begin(9600);
  16.   strip.setBrightness(200);//设置灯带亮度
  17.   strip.show();
  18. }
  19. void loop()
  20. {
  21.   Serial.println( sizeof(myColors));
  22.       if(!digitalRead(SensorINPUT))//如果震动
  23.       {
  24.         flashRandom(10, 2);
  25.         flashRandom(10,1);
  26.         rainbow(10);
  27.       }  
  28.       else
  29.        {
  30.         for(int j=0;j<15;j++)
  31.         {
  32.           strip.setPixelColor(j,(0,0,0));
  33.         }
  34.         
  35.        }
  36. }
  37. void rainbow(uint8_t wait) {
  38.   uint16_t i, j;
  39.   for(j=0; j<256; j++) {
  40.     for(i=0; i<strip.numPixels(); i++) {
  41.       strip.setPixelColor(i, Wheel((i+j) & 255));
  42.     }
  43.     strip.show();
  44.     delay(wait);
  45.   }
  46.     for(i=0; i<strip.numPixels(); i++) {
  47.       strip.setPixelColor(i,(0,0,0));
  48.         strip.show();
  49.     }
  50.   
  51.   }
  52. uint32_t Wheel(byte WheelPos) {
  53.   if(WheelPos < 6) {
  54.    return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
  55.   } else if(WheelPos < 12) {
  56.    WheelPos -= 6;
  57.    return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
  58.   } else {
  59.    WheelPos -= 12;
  60.    return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
  61.   }
  62. }
  63. void flashRandom(int wait, uint8_t howmany) {
  64.   for(uint16_t i=0; i<howmany; i++) {
  65.     for(int j=0;j<15;j++)
  66.     {
  67.     // pick a random favorite color!
  68.     int c = random(FAVCOLORS);
  69.     int red = myColors[c][0];
  70.     int green = myColors[c][1];
  71.     int blue = myColors[c][2];
  72.     // now we will 'fade' it in 5 steps
  73.     for (int x=0; x < 5; x++) {
  74.       int r = red * (x+1); r /= 5;
  75.       int g = green * (x+1); g /= 5;
  76.       int b = blue * (x+1); b /= 5;
  77.       
  78.       strip.setPixelColor(j, strip.Color(r, g, b));
  79.       strip.show();
  80.       delay(wait);
  81.     }
  82.     // & fade out in 5 steps
  83.     }
  84.   }
  85.   for(uint16_t i=howmany; i>0; i--) {
  86.     for(int j=0;j<15;j++)
  87.     {
  88.     // pick a random favorite color!
  89.     int c = random(FAVCOLORS);
  90.     int red = myColors[c][0];
  91.     int green = myColors[c][1];
  92.     int blue = myColors[c][2];
  93.     // now we will 'fade' it in 5 steps
  94.     for (int x=5; x >= 0; x--) {
  95.         int r = red * x; r /= 5;
  96.         int g = green * x; g /= 5;
  97.         int b = blue * x; b /= 5;
  98.         
  99.         strip.setPixelColor(j, strip.Color(r, g, b));
  100.         strip.show();
  101.         delay(wait);
  102.     }
  103.     }
  104.   // LEDs will be off when done (they are faded to 0)
  105.   }
  106. }</font>
复制代码
        STEP FIVE:下载程序,观察现象
轻轻晃动你的传感器,灯带显示了不同的颜色以及不同的效果。
     STEP SIX:装饰你的瓶子
会变色的瓶子图2

会变色的瓶子图4

会变色的瓶子图3

将USB线拔掉,外接上电池,装入到心仪的瓶子里,轻轻摇晃瓶子,怎么样?  
STEP SEVEN:效果演示



---------------------------------------------------    社区活动向导    --------------------------------------------------------

喜欢这个项目,可以为它进行投票,投票请点击“支持”按钮
欢迎到比赛专区围观其他参赛项目,参与投票。

>>>>>>>>>>>>>>>>>>DF创客社区比赛专区<<<<<<<<<<<<<<<<<<<




Adafruit_NeoMatrix.zip

22.49 KB, 下载次数: 1149

SampleCode.zip

1.35 KB, 下载次数: 1085

蛋蛋  初级技师
 楼主|

发表于 2015-1-7 20:05:23

mcholen 发表于 2014-12-4 17:34
瓶子很漂亮,选透光度更低一些的瓶身会更好一点。

所需器材:Beetle控制器、 Beetle主控制板、电池升压模块、USB数据线、震动传感器、灯带,另外再整合一下瓶子、装饰品就ok了。大家可以制作出各种不同效果的摇摇瓶。
回复

使用道具 举报

源代码  中级技匠

发表于 2016-5-30 00:25:59

好久没看到你出项目了,希望楼主出来和我们一起分享项目作品。另外需要请你帮个忙,就是你这个变色的瓶子视频的背景音乐很好听,能不能把这首音乐发给我一下,喜欢这种吹口哨的音乐~~:)
回复

使用道具 举报

蛋蛋  初级技师
 楼主|

发表于 2015-1-7 20:05:50

mcholen 发表于 2014-12-4 17:34
瓶子很漂亮,选透光度更低一些的瓶身会更好一点。

如果有机会,在尝试改一下,谢谢支持。
回复

使用道具 举报

Phoebe  高级技匠

发表于 2014-8-1 17:48:29

有视频可以看看效果吗?
回复

使用道具 举报

Grey  中级技匠

发表于 2014-8-5 10:05:12

同上,分享个视频吧,楼主
回复

使用道具 举报

lauren  高级技师

发表于 2014-8-5 22:01:35

貌似看不到啥效果嘛
回复

使用道具 举报

swanglei  中级技神

发表于 2014-8-10 01:05:39

很不错嘛,是想学JBL的那个音箱嘛,呵呵
回复

使用道具 举报

Enosin  见习技师

发表于 2014-9-27 09:22:11

:lol:lol:lol:lol:lol:lol赞
回复

使用道具 举报

冰渕  中级技师

发表于 2014-11-18 10:48:05

好神奇,32个赞赞
回复

使用道具 举报

fangrong  中级技师

发表于 2014-11-18 17:45:28

瓶子的颜色可以自己设定吗?
回复

使用道具 举报

林子大了  中级技师

发表于 2014-11-25 09:38:58

这个真心给力
回复

使用道具 举报

drink  中级技师

发表于 2014-11-25 16:55:58

做得不错,希望可以更漂亮些。
回复

使用道具 举报

KinFu  高级技师

发表于 2014-11-25 17:20:18

好漂亮,美
回复

使用道具 举报

mcholen  高级技师

发表于 2014-11-25 17:45:30

出个套件吧,我们这里的小孩子都很想要~
回复

使用道具 举报

喵王  初级技匠

发表于 2014-11-28 16:46:02

很像淘宝上那个阳光瓶。
回复

使用道具 举报

falcon.x  管理员

发表于 2014-12-2 16:56:42

视频效果好赞!!!
回复

使用道具 举报

mcholen  高级技师

发表于 2014-12-4 17:34:41

瓶子很漂亮,选透光度更低一些的瓶身会更好一点。
回复

使用道具 举报

蛋蛋  初级技师
 楼主|

发表于 2015-1-7 20:04:14

fangrong 发表于 2014-11-18 17:45
瓶子的颜色可以自己设定吗?

主要是灯带的颜色再变化。
回复

使用道具 举报

蛋蛋  初级技师
 楼主|

发表于 2015-1-7 20:06:33

falcon.x 发表于 2014-12-2 16:56
视频效果好赞!!!

:P,谢谢。
回复

使用道具 举报

fangrong  中级技师

发表于 2015-1-8 11:52:45

蛋蛋 发表于 2015-1-7 20:04
主要是灯带的颜色再变化。

奥奥,酱紫啊~:lol
回复

使用道具 举报

Connie  初级技师

发表于 2015-1-30 14:28:34

美美哒,好像最近很流行的那个火焰杯
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail