找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

MIDI+树莓派,让房子和灯光一起摇摆!

admin 2020-1-8 18:13 428人围观 嵌入式相关

【点击上方「蓝字」关注DF,一起成为技术颜控!】


正文共:2834字13图

预计阅读时间:6分钟




“HiFi”纯享完整版,可以直接到文章末尾观看!

硬件清单



  • Raspberry Pi 2 Model B x 1

  • 固态继电器 × 32

  • PCF8574 × 4

  • 12V / 1,25A电源 × 1

  • 5V / 2,4A电源 × 1


软件清单



  • Windows 10 IoT 核心版仪表板

  • Aruour

  • Microsoft Visual Studio 2015

  • loopMIDI




调试版(纯享版在文末观看)

规划


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

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



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

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

下图显示了整个电路。草图显示了PCF8574 ,它是具有8个GPIO的端口扩展芯片。两者工作原理相同。




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

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

下图为电控箱:




电控箱包含常规继电器(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:



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

MIDI to Orchestrator bridge


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

  • 将传入的MIDI事件(例如“NoteOn(打开)”或“ NoteOff(关闭)”)映射到多个输出

  • 通过UDP协议发送电控箱的完整状态

  • 提供一个界面仿真器,以允许远程控制

  • 显示调试信息,例如日志和当前功耗

  • 允许手动启用或禁用任一输出

  • 显示每个输出的实际状态

  • 显示从Ardor传入的信息

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







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

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

NAudio库文件下载(https://naudio.codeplex.com )

loopMIDI


这个装置会需要用到一个特殊的工具"loopMIDI",这个工具可以在本地PC上创建一个虚拟的MIDI回环端口。需要此端口才能将Ardor与“bridge”连接在一起。“bridge”并未创建新的虚拟MIDI端口。这意味着Ardor和“bridge”通过相同的循环端口连接,并发送和接收事件。

数据流图


下面的图片中是这个装置中所需组件的连接方式。



效果



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




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

尺寸布局图









项目进行时的照片






视频环节:



LIGHT PI(“HiFi”纯享版)

---------------------------------------------

项目作者:Christian Kratky

本文未经许可不得转载

参考资料:

1、loopMIDI

http://www.tobias-erichsen.de/software/loopmidi.html



大家看完有什么感想,欢迎下方留言

 往期回顾

听说创客们都收藏了这个网站……

自制的大疆S1战车来了!

当谷歌小恐龙变成了一个小人……

焊武帝,他来了!

Arduino大家都熟,你听过Freeduino么?

【福利】Arduino系列引脚大全


1小时内做一个Otto机器人

拾色手电:颜色万千,只取一种


柯南同款,一推就能发光的眼镜

【小白福利】如何入门Arduino(上)

【小白福利】如何入门Arduino(下)


ESPnixie----基于ESP32的辉光钟



大家圣诞快乐~


1人点赞鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

yafeilinux和他的朋友们微信公众号二维码

微信公众号

专注于Qt嵌入式Linux开发等。扫一扫立即关注。

Qt开源社区官方QQ群二维码

QQ交流群

欢迎加入QQ群大家庭,一起讨论学习!

我有话说......