4017浏览
查看: 4017|回复: 9

在这个圣诞夜给房子装疯狂灯光动画系统

[复制链接]


基于MIDI、Raspberry Pi的圣诞小屋

在这个圣诞夜给房子装疯狂灯光动画系统图14

硬件清单

  • Raspberry Pi 2 Model B x 1

  • 固态继电器 × 32
    (PF240D25 -  SSR, 3-15VDC, 12-280VAC, 25A)      

  • PCF8574 × 4  

  • 12V / 1,25A电源 × 1
    *(MW DR-15-12 Schaltnetzteil, Hutschiene)

  • 5V / 2,4A电源 × 1
    (MW DR-15-5 Schaltnetzteil, Hutschiene)

软件清单

规划

下图用白色线条标注了LED灯带的位置。在项目的这一阶段,统计了装置需要的电源输出口共52个,每个灯带都需要配置对应的电源;同时还需要测量房屋,窗户等的尺寸。

旁白:大户人家呀,在这个图里我第一眼看到的是一栋大别野和三辆车车。

在这个圣诞夜给房子装疯狂灯光动画系统图1

注意:电网连着千万家,安全系着你我他,安全用电意识不可少。使用230V极为危险!切勿在面包板上使用230V。以下草图仅供参考!电路的安装需要专业电工来进行!

每条LED灯带都通过一个配电器进行控制,配电器内部带有DIN导轨。这个装置用到了来自CCTools(http://cctools.eu) 的板子,其中包含所需的固态继电器、电阻和用于保护继电器的元件。继电器需要一个5V的端口扩展板。CCTools的MAX7311端口扩展板,带有16个GPIO。可以将端口扩展芯片放在DIN导轨上,并通过螺钉连接电缆

下图显示了整个电路。草图显示了PCF8574 ,它是具有8个GPIO的端口扩展芯片。两者工作原理相同。
在这个圣诞夜给房子装疯狂灯光动画系统图2

注释

DIN导轨:德国工业标准,使用导轨是工业电气元器件的一种安装方式
GPIO(英语:General-purpose input/output),通用型之输入输出的简称
PCF857是CMOS电路

一开始费解了好久CCTools的板子到底是什么,在把这个网站点了一遍之后大概知道了,下图电控箱里面除了树莓派以外绿色的板子应该都是这个牌子的。找了几个看着像的作为参考(在图片里都能找到):
[HSRel5 - I²C-Bus-Relaisplatine]
HSRel8(+8) - 8fach-Relaisplatine

下图为电控箱:
在这个圣诞夜给房子装疯狂灯光动画系统图7

电控箱包含常规继电器(12V,橙色)和固态继电器(5V,黑色)。固态继电器的最大功率只有200W,因此需要更高的功率时需要使用常规继电器,但缺点是不能快速切换。Raspberry Pi 2位于左下方。

电控箱使用基于(headless模式下的)UWP的应用,用以接收专用接口上的UDP数据包。每个UDP包都包含一个前缀和所有输出的当前状态。因此,数据包不可能仅发送一次。但电控箱在处理UDP包时会自动忽略其余数据包。这意味着不会因为数据包排队而造成阻塞。这样可以确保发送大量事件不会造成延迟。

注释

headless模式:Headless模式是在缺少显示屏、键盘或者鼠标时的系统配置
UDP数据包:UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。

MIDI 音频编辑器

推荐以下MIDI音频编辑器(Ardour: https://ardour.org),物美价廉,物超所值。Ardor是一款录音软件。因此,需要连接一个MIDI设备用来录制声音。然后,在点击播放时,按下的音符将发送到MIDI输出设备。以下屏幕显示了运行中的Ardor:

在这个圣诞夜给房子装疯狂灯光动画系统图3

屏幕上显示了歌曲“ Silent Night”的已加载项。有多个带有不同种类动画的MIDI音轨。它们已经通过MIDI键盘演奏并输入了精确的节奏和旋律。

MIDI to Orchestrator bridge

该虚拟MIDI输出设备称为“ MIDI 2 Orchestrator Bridge”(以下称为“bridge”),也是该项目的一部分,并包含在GIT库中。它具有以下功能:

  • 将传入的MIDI事件(例如“NoteOn(打开)”或“ NoteOff(关闭)”)映射到多个输出
  • 通过UDP协议发送电控箱的完整状态
  • 提供一个界面仿真器,以允许远程控制
  • 显示调试信息,例如日志和当前功耗
  • 允许手动启用或禁用任一输出
  • 显示每个输出的实际状态
  • 显示从Ardor传入的信息

以下屏幕显示了具有上述功能的Orchestrator Bridge:

在这个圣诞夜给房子装疯狂灯光动画系统图4
在这个圣诞夜给房子装疯狂灯光动画系统图8
在这个圣诞夜给房子装疯狂灯光动画系统图9
在这个圣诞夜给房子装疯狂灯光动画系统图10
在这个圣诞夜给房子装疯狂灯光动画系统图11

仿真器的布局(右上)与实际屋子上安装的灯带位置相同。这样就可以在不看房子的情况下录制动画。当播放动画时,bridge将通过UDP将其转发给电控箱。右下角有一个复选框可启用或禁用此功能。

最重要的功能是创建“Mappings(映射)”。这些映射将音符与输出连接起来。映射包含音符和被音符激活的输出的列表。输出会被关闭直到释放音符为止。也可以选择一个通道来创建许多映射,而无需大量按键。

NAudio库文件下载(https://naudio.codeplex.com
下载附件restup-master.zip

loopMIDI

这个装置会需要用到一个特殊的工具'loopMIDI'(http://www.tobias-erichsen.de/software/loopmidi.html) 这个工具可以在本地PC上创建一个虚拟的MIDI回环端口。需要此端口才能将Ardor与“bridge”连接在一起。“bridge”并未创建新的虚拟MIDI端口。这意味着Ardor和“bridge”通过相同的循环端口连接,并发送和接收事件。
下载附件NAudio-master.zip

数据流图

下面的图片中是这个装置中所需组件的连接方式。
在这个圣诞夜给房子装疯狂灯光动画系统图5

效果

因为大部分使用的是LED灯带,并没有防水的功能。为了安全起见,需要将他们安装在了安全的地方。但也会用到一些LED灯珠。每一条灯带都单独接了230v的电缆,这些电缆通向屋子后面的电控箱。夜里,当所有灯带被打开的时候,看上去是下面这样:

在这个圣诞夜给房子装疯狂灯光动画系统图6

还有一个应用程序(基于HTML,JavaScript)可以手动打开和关闭所有灯。该应用程序还使用库“ restup”(https://github.com/tomkuijsten/restup )托管在树莓派上。

尺寸布局图

在这个圣诞夜给房子装疯狂灯光动画系统图12

项目进行时的照片

在这个圣诞夜给房子装疯狂灯光动画系统图13
图片太多上传到了相册里:点击查看

视频演示






项目制作者:Christian Kratky
本文未经许可不得转载

LightPi-master.zip

978.16 KB, 下载次数: 88

Schematics.zip

276.08 KB, 下载次数: 73

DFrJ5KYVQaH  中级技匠

发表于 2019-12-26 07:06:32

工程量很大哦
回复

使用道具 举报

Llllllambt  初级技师

发表于 2019-12-26 18:00:55

看着很有趣
回复

使用道具 举报

DFr1s6yUMyU  学徒 来自手机

发表于 2019-12-27 21:18:50

中二点 发表于 2019-12-25 11:29
[md]## 基于MIDI、Raspberry Pi的圣诞小屋



厉害,真不错!
回复

使用道具 举报

星穆  见习技师

发表于 2019-12-27 21:37:28

大佬可以教教我嘛,我实在是太喜欢这个了
回复

使用道具 举报

Nicholas  见习技师

发表于 2020-1-2 03:45:11

这个是大神
回复

使用道具 举报

wwwdelphi  初级技师

发表于 2020-1-4 14:53:16

大工程,厉害的大神!
回复

使用道具 举报

changgg  学徒

发表于 2020-1-18 14:12:55

好好看
回复

使用道具 举报

虚无缥缈  见习技师

发表于 2020-1-19 20:51:45

有趣!
回复

使用道具 举报

kylinpoet  初级技神

发表于 2020-2-18 18:33:15

楼主强大,多谢分享。
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail