自制小灯笼会发亮的 (小灯笼手工制作里面可以发光)

一盏小灯,不能满足你的大House,却能,满足你的心灵。当我第一次见到“它”的时候,以为它就是一个储物盒。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

因为看了爱奇艺IP大剧《冒险王卫斯理之支离人》,觉得里面的古盒承包了整部剧“最精致”(反话)的镜头。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

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

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

看外形除了同是六边形,其他地方没有什么和古盒相似。虽然是这样的结果,我还是手贱的拆了它。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

拆开后,发现做一盏音乐灯笼,需要以下材料:

喇叭 ×1(某宝)

Dreamer Nano V4.0 ×1

数字触摸开关Touch ×1

Voice Module 语音模块 ×1

RGB 背光板 ×6

铜箔 (某宝)

因为灯笼的体积较小巧,所以选用了DreamerNano V4.0主板。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

Dreamer Nano V4.0 是一款基于Arduino Leonardo的小尺寸Leonardo控制板,兼容Leonardo的全部功能,在接口上面采用了和手机通用的micro USB接口。使用起来更加方便。

为了给灯笼增加点生命力,可以说是“绞尽脑汁”啊。将数字触摸开关和声音模块相结合;通过触摸开关,我的灯笼就会唱歌了。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

数字触摸开关Touch

触摸开关是基于电容感应原理,就算隔着塑料,玻璃等材料也能被感应到,其感应灵敏度随着接触面的大小和覆盖材料的厚度而变化。

为了方便触摸,用一根线引出来,接在用铜箔做的灯穗上,这样一触摸灯穗,就能*放播**音乐了。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

听说DIY和音乐很配哦。所以每次当我DIY制作时,我都会加上音乐。以前我加音乐的方式,就是手机*放播**音乐。而现在有了音效模块,就可以淘汰到手机了。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

音效模块

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

后面就要介绍灯笼的灵魂配件了,那就是RGB 背光板。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

将有黑边这面朝上摆放,从左到右一次为:红(电源负极),电源正极,绿(电源负极),蓝(电源负极)。

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

想要相应的颜色,就接相应的引脚。当三个引脚同时接电源负极的时候,显示为白色。同时还可能通过编程,显示多种颜色。

灯笼一共采用6块RGB 背光板,然后将6块RGB 背光板分成A,B两组,当音乐响起的时候,可以交叉显示不同的颜色。(视频如下)

【连线图】

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

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

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

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

而长得像六边形的这个外壳,则是3D打印的。不方便打印的小伙伴,可以自己发挥想象力,用一些替代品,比如说硬纸板之类的。

【成品图】

小灯笼手工制作里面可以发光,怎么做简易小灯笼会发光

const int buttonPin = 12;

int buttonState = 0;

int analogPin = 2;

int busy = 0;

int randNumber;

int ar=0;

int ag=0;

int ab=0;

int br=0;

int bg=0;

int bb=0;

unsigned char order[4] = {0xAA,0x06,0x00,0xB0};

void volume( unsigned char vol)

{

unsigned char volume[5] = {0xAA,0x13,0x01,vol,vol+0xBE};

Serial1.write(volume,5);

}

void A(int ar,int ag,int ab)

{

analogWrite(3,(255-ar));

analogWrite(5,(255-ag));

analogWrite(6,(255-ab));

}

void B(int br,int bg,int bb)

{

analogWrite(9,(255-br));

analogWrite(10,(255-bg));

analogWrite(11,(255-bb));

}

void play(unsigned char Track)

{

unsigned char play[6] = {0xAA,0x07,0x02,0x00,Track,Track+0xB3};

Serial1.write(play,6);

}

void setup()

{

Serial1.begin(9600);

pinMode(analogPin,INPUT);

pinMode(3,OUTPUT);

pinMode(5,OUTPUT);

pinMode(6,OUTPUT);

volume(0x1E);//音量设置0x00-0x1E

}

void loop()

{

buttonState = digitalRead(buttonPin);

if(buttonState == HIGH){

play(0x04);

show1();

delay(1000);

}

A(255,0,0);

B(255,0,0);

}

void show()

{

for(int a=0; a<7;a++){ //循环语句,控制PWM亮度的增加

A(255,0,0);

B(200,0,0);

delay(300);

A(0,200,0);

B(0,255,0);

delay(300);

A(0,0,255);

B(0,0,200);

delay(300);

}

}

void show1()

{

volume(0x1E);//音量设置0x00-0x1E

for(int a=0; a<9;a++){

A(255,0,0);

delay(100);

B(0,255,0);

delay(300);

A(255,0,255);

delay(100);

B(0,0,255);

delay(300);

A(255,0,0);

delay(100);

B(0,0,255);

delay(300);

A(0,255,255);

B(255,255,0);

A(0,0,255);

B(255,255,255);

delay(300);

A(200,105,0);

B(70,0,50);

delay(300);

A(50,100,60);

B(0,200,50);

delay(300);

A(0,105,255);

B(70,200,0);

delay(300);

A(255,255,255);

B(255,0,0);

delay(300);

}

}