我的灯笼会唱歌

2018-06-212.2万
精华项目
AI 快速预览详细 收起
本文介绍了如何制作一盏六边形音乐灯笼,灵感来源于《冒险王卫斯理之支离人》中的古盒。所需材料包括Dreamer Nano V4.0主板、数字触摸开关Touch、音效模块和RGB背光板。通过触摸灯穗可以触发音乐播放,并且可以通过编程实现多种颜色的灯光效果。该项目适合儿童科学实验和STEM教育场景,激发孩子的创造力。
我的灯笼会唱歌

一盏小灯,不能满足你的大House,却能,满足你的心灵。当我第一次见到的时候,以为它就是一个储物盒。
我的灯笼会唱歌图10
因为看了爱奇艺IP大剧《冒险王卫斯理之支离人》,觉得里面的古盒承包了整部剧“最精致”(反话)的镜头。
我的灯笼会唱歌图1

后面发现朋友做了一个六边形的音乐灯笼和它有点相似,于是就借来玩一玩。

                                                                                             我的灯笼会唱歌图3

看外形除了同是六边形,其他地方没有什么和古盒相似。虽然是这样的结果,我还是手贱的拆了它。
我的灯笼会唱歌图13
拆开后,发现做一盏音乐灯笼,需要以下材料:

喇叭  ×1(某宝)
铜箔  (某宝)

因为灯笼的体积较小巧,所以选用了DreamerNano V4.0主板。
我的灯笼会唱歌图2
Dreamer Nano V4.0 是一款基于Arduino Leonardo的小尺寸Leonardo控制板,兼容Leonardo的全部功能,在接口上面采用了和手机通用的micro USB接口。使用起来更加方便。

为了给灯笼增加点生命力,可以说是绞尽脑汁啊。将数字触摸开关和声音模块相结合;通过触摸开关,我的灯笼就会唱歌了。
我的灯笼会唱歌图11
触摸开关是基于电容感应原理,就算隔着塑料,玻璃等材料也能被感应到,其感应灵敏度随着接触面的大小和覆盖材料的厚度而变化。
为了方便触摸,用一根线引出来,接在用铜箔做的灯穗上,这样一触摸灯穗,就能播放音乐了。
我的灯笼会唱歌图6
听说DIY和音乐很配哦。所以每次当我DIY制作时,我都会加上音乐。以前我加音乐的方式,就是手机播放音乐。而现在有了音效模块,就可以淘汰到手机了。


我的灯笼会唱歌图12
此模块可以储存8M的音效文件,可以存放200多个音效,它的储存方式简单;使用简单,运用DF gravity接口,减少了接线的麻烦;在播放上可以指定播放,循环播放,还可以调节音乐的大小。

后面就要介绍灯笼的灵魂配件了,那就是RGB 背光板
我的灯笼会唱歌图8
将有黑边这面朝上摆放,从左到右一次为:红(电源负极),电源正极,绿(电源负极),蓝(电源负极)。

我的灯笼会唱歌图14
想要相应的颜色,就接相应的引脚。当三个引脚同时接电源负极的时候,显示为白色。同时还可能通过编程,显示多种颜色。
灯笼一共采用6RGB 背光板,然后将6RGB 背光板分成A,B两组,当音乐响起的时候,可以交叉显示不同的颜色。(视频如下)

【连线图】
我的灯笼会唱歌图15

线虽多,但是连接的时候很简单。

俗话说:好马配好鞍,一盏好看的灯笼肯定要配一根好看的灯笼提手了。所以我就找了一张过年剩下的福字,卷了一根提手。
我的灯笼会唱歌图7我的灯笼会唱歌图9我的灯笼会唱歌图4

而长得像六边形的这个外壳,则是3D打印的。不方便打印的小伙伴,可以自己发挥想象力,用一些替代品,比如说硬纸板之类的。
【成品图】
我的灯笼会唱歌图5
【程序代码】
  1. const int buttonPin = 12;
  2. int buttonState = 0;
  3. int analogPin = 2;
  4. int busy = 0;
  5. int randNumber;
  6. int ar=0;
  7. int ag=0;
  8. int ab=0;
  9. int br=0;
  10. int bg=0;
  11. int bb=0;
  12. unsigned char order[4] = {0xAA,0x06,0x00,0xB0};
  13. void volume( unsigned char vol)
  14. {
  15.   unsigned char volume[5] = {0xAA,0x13,0x01,vol,vol+0xBE};
  16.   Serial1.write(volume,5);
  17. }
  18. void A(int ar,int ag,int ab)
  19. {
  20.   analogWrite(3,(255-ar));
  21.   analogWrite(5,(255-ag));
  22.   analogWrite(6,(255-ab));
  23. }
  24. void B(int br,int bg,int bb)
  25. {
  26.   analogWrite(9,(255-br));
  27.   analogWrite(10,(255-bg));
  28.   analogWrite(11,(255-bb));
  29. }
  30. void play(unsigned char Track)
  31. {
  32.   unsigned char play[6] = {0xAA,0x07,0x02,0x00,Track,Track+0xB3};
  33.   Serial1.write(play,6);
  34. }
  35. void setup()
  36. {  
  37.   Serial1.begin(9600);
  38.   pinMode(analogPin,INPUT);
  39.   pinMode(3,OUTPUT);
  40.   pinMode(5,OUTPUT);
  41.   pinMode(6,OUTPUT);
  42.   volume(0x1E);//音量设置0x00-0x1E
  43. }
  44. void loop()
  45. {
  46.   buttonState = digitalRead(buttonPin);
  47.   if(buttonState == HIGH){
  48.     play(0x04);
  49.     show1();
  50.     delay(1000);
  51.   }
  52.   A(255,0,0);
  53.   B(255,0,0);
  54. }
  55. void show()
  56. {
  57.   for(int a=0; a<7;a++){                //循环语句,控制PWM亮度的增加
  58.     A(255,0,0);
  59.     B(200,0,0);
  60.     delay(300);
  61.     A(0,200,0);
  62.     B(0,255,0);
  63.     delay(300);
  64.     A(0,0,255);
  65.     B(0,0,200);
  66.     delay(300);                                      
  67.   }
  68. }
  69. void show1()
  70. {
  71.   volume(0x1E);//音量设置0x00-0x1E
  72.   for(int a=0; a<9;a++){  
  73.     A(255,0,0);
  74.     delay(100);
  75.     B(0,255,0);
  76.     delay(300);
  77.     A(255,0,255);   
  78.     delay(100);
  79.     B(0,0,255);
  80.     delay(300);
  81.     A(255,0,0);
  82.     delay(100);
  83.     B(0,0,255);
  84.     delay(300);
  85.     A(0,255,255);
  86.     B(255,255,0);
  87.     A(0,0,255);
  88.     B(255,255,255);
  89.     delay(300);
  90.     A(200,105,0);
  91.     B(70,0,50);
  92.     delay(300);
  93.     A(50,100,60);
  94.     B(0,200,50);
  95.     delay(300);
  96.     A(0,105,255);
  97.     B(70,200,0);
  98.     delay(300);
  99.     A(255,255,255);
  100.     B(255,0,0);
  101.     delay(300);   
  102.   }
  103. }
复制代码

【打印文件】

创作许可协议

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

评论(12)
三春牛-创客
三春牛-创客
想买背光板,但是不知道怎么用mind+编程,不知道怎么接Arduino UNO 接线。
三春牛-创客
三春牛-创客
66666666666
三春牛-创客
三春牛-创客
发一下接线图,谢谢
三春牛-创客
三春牛-创客
电源正接正极,剩下的三个引脚怎么接?接负极还是数据?可不可以用PWM输出来更换颜色?
三春牛-创客
三春牛-创客回复川山甲的壳
谢谢!!
川山甲的壳
川山甲的壳
作者
回复三春牛-创客
可以啊。可以把RGB三个脚,分别接在不同pwm脚上试一试
三春牛-创客
三春牛-创客
怎么接到Arduino UNO的V7扩展板上?
川山甲的壳
川山甲的壳
作者
回复三春牛-创客
这个没有研究过,不能给你很好的建议
三春牛-创客
三春牛-创客
背光板怎么用?
三春牛-创客
三春牛-创客
厉害厉害
三春牛-创客
三春牛-创客
哇哇哇哇哇哇哇哇
DFr1LMdSSxm
DFr1LMdSSxm
老师,请问用mixly能用吗?
川山甲的壳
川山甲的壳
作者
回复川山甲的壳
用mind+图形化编程可以做的!
川山甲的壳
川山甲的壳
作者
回复DFr1LMdSSxm
也是可以的。虽然我没试过,但是你们可以试一试:lol:))
共5条回复,已加载2条,点击查看更多共5条回复,已加载全部
跑跑武
跑跑武
:o:))
dt
dt
背光板 又学到一招。触摸传感器的应用,眼前一亮 赞一个
rzyzzxw
rzyzzxw
老师666
- 没有更多了 -