返回列表 发新帖

b站的特效钢琴是怎么做出来的?

[复制链接]

1434

主题

2936

帖子

5803

积分

论坛元老

Rank: 8Rank: 8

积分
5803
发表于 2022-3-12 13:26:36 | 显示全部楼层 | 阅读模式 IP:北京
根据研究,有两种方法:
1、你把特效软件用投影仪投放在你的钢琴上,例如:

2、利用单片机esp8266+ws2812b灯带,成本如下:

esp8266——约10元
ws2812b——约5毛一颗
电阻电线若干——成本可以忽略
usb转ttl线一条——约5元
5v 2a或其他电源一个(并联,吃电流,可分段供电)——约20元
电烙铁一个——约10元
电脑一个、需要懂lua语言(和python类似)。
<hr/>

先准备2个1k电阻,按图中所示连接。通常usb转ttl的转接器会带5v和3.3v供电,GPIO0连接ws2812b的信号端DIN(图中为IN,数据流向是从右上入到左下出),GND和GND相连,以及为ws2812单独准备的直流电源的负极也接在gnd上。


然后接好ttl,在电脑准备刷rom。刷rom之前在这:
输入两遍你的email,记得勾选ws2812。等几个小时编译好了,下载地址会发送到你邮箱的。
刷机教程百度有,大致按这个来就行,记得装usb转ttl的驱动。有些垃圾usb转ttl会非常挑操作系统,各种驱动出问题,所以买之前搜一下好不好用。
接下来代码,假设有88个灯,R、G、B是三个0-255的数字,效果是第一个灯白色,第88个灯红色。
ws2812.init()
buffer = ws2812.newBuffer(88, 3)
buffer:set(1 , 255, 255, 255)
buffer:set(88 , 255, 0 ,0)这时候还没有完
你需要在nodemcu(esp8266)上架设一个简易服务器,接收http request。
然后在电脑用python+mido(或者pymidi)检测midi事件,用python的urllib向同一个路由器下的nodemcu发送http request以传送按键和RGB数值,在nodemcu中接收到request后就直接对buffer:set(index,r,g,b)——这样就实现了近乎实时的灯控制。
<hr/>当然还有更简单的方法,必要的流程只有:
1、获得midi事件,计算键位和rgb
2、将index和RGB信息转换成ws2812b可以识别的脉冲
3、输出给ws2812b灯带
其中2步骤一般用单片机实现,理论上可以通过声卡+功放实现,或者其他波形发生装置。
本文给出的方案,其中http服务器部分理论上可以不需要。

祝你好运。

哦对,录制好了还需要掌握finalcut或者after effect之类的做后期和特效……
还有,你得会弹钢琴……

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册   手机动态码快速登录

x
打赏鼓励一下!

发表回复

您需要登录后才可以回帖 登录 | 立即注册   手机动态码快速登录

本版积分规则

 
 
点击这里给我发消息
点击这里给我发消息
官方微信

招募城市商务合作 电话/微信 18702940294
 
快速回复 返回顶部 返回列表