0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Arduino的灯光秀

454398 来源:wv 2019-10-17 10:29 次阅读

步骤1:准备木制框架

您可以按照您希望的任何方式构建框架或外壳。我选择木材是因为仅需使用基本工具即可轻松完成工作。

我已使用一些已打捞过的木板来搭建框架。我在长度为30厘米的木板上标记了4个干净的零件,并确保在接头处标记45度斜角。

我用曲线锯进行了所有切割,一切正常。如果您可以使用斜切锯或台锯,则可以使用它们并获得更好的效果。联接不是完美的,但是使用我的皮带砂光机,我可以使零件很好地适合。

在测试配合过程中,我意识到它们太宽了,并且它们会在外壳内部占用很多空间,因此我决定将它们切成2厘米的宽度。再次,我用曲线锯确保不要在线内切割。

斜接连接本身并没有太多的支撑,因此我将三角形的小块切成小块,以补充一些支撑。我敢肯定,这里有很多更好的选择,但这是我目前的最佳想法。

我在接缝的中间用木胶连接了斜接器,在末端使用了CA胶,以便充当夹子并在木胶固化时将其固定到位。仅使用CA胶将小的支撑三角形胶粘到位,以使过程更快。

步骤2:对电路进行原型制作

内部灯光显示的电子设备包括一个带麦克风的Arduino Uno板从坏掉的耳机听房间里的声音,然后通过点亮内部5个led灯条之一来反映总音量。

该电路由两个独立的部分组成。第一部分是带有单晶体管放大器的麦克风,第二部分是LED灯带的驱动器。我们需要它们,因为Arduino和麦克风放大器的工作电压为5V,而LED灯带的工作电压为12V。

麦克风通过10k电阻并通过电容器连接到Arduino的5V输出晶体管的然后,晶体管以2.5V的中间电平放大信号,因此我们可以在Arduino的模拟输入A0上拾取它。

为了打开LED的12V,晶体管的基极通过10k电阻器连接到数字输出,并且同一电路重复5次。我在每个部分只打开3个LED,所以我可以不用晶体管了。如果您想修改项目以使用更长的带材,则需要使用一些MOSFET

尽管它看起来像是一个复杂的电路,但实际上确实是一个非常简单的电路。我已经在试验板上进行了全部测试,并确保可以正常工作后,我建立了一个屏蔽板,可以直接安装在Arduino Uno上。

可从以下网址获得原理图:

https ://easyeda.com/bkolicoski/Arduino_Light_Show-506c62032b0646ae8e1636519d0d17fc

第3步:构建Arduino Shield

一旦我对电路感到满意,我就在穿孔板上为Arduino搭建了一个防护罩。您可以在附件的视频中看到该项目的完整构建过程。

第4步:编写Arduino

该项目的明星是编程到Arduino上的代码。这就是繁重的工作,需要分析麦克风中的声音并将其转换为跟随音乐的可见光。您可以从我的GitHub页面下载整个代码,并可以在视频说明中找到指向该链接的链接以及电子原理图。

简而言之,该代码包含三个主要部分:检索示例进行音乐分析,确定声级,然后根据计算出的值控制向LED的输出。我知道这对某些人来说听起来像是火箭科学,但是一旦掌握了一切,这真的很容易。

开始时的草图定义了我们将使用的所有变量和常量。我确保为他们每个人提供一个解释,以便您可以更轻松地理解它。此后,我们具有设置功能,该功能可以出于调试目的启动串行通信,清空并初始化用于峰峰值检测的阵列,并定义LED的输出。

在代码的循环部分,我们首先开始对音频进行采样,以便可以检测出峰到峰的音量。在常规声波中,没有任何噪声是放大器可以产生的最小和最大电压的中点。在我们的例子中是2.5V。

一旦检测到声音,我们就会得到一个向上和向下移动的波,以便检测高噪声,我们会对该波的组合振幅感兴趣。因此,我们以移动状态将值从0映射到最大值,而不是移动波,以轻松区分高音量和低音量的声音。

代码的以下两个部分正是这样做的:我们测量峰到峰的幅度,并确定该时间段内该峰的最大值。麦克风的工作方式越远,您可以选择的音量就越小,因此我们需要计算一个系数,该系数将放大或减小所测量的信号,并且在不同的电平上具有相同的反应。

最后一步,我们将麦克风的测量值乘以我们刚刚计算的因子,然后根据结果打开特定的LED。

在电路板全部焊接完之后按照示意图,我确保在继续准备实际专辑封面之前先对其进行测试。

GitHub上的代码:

https://github.com/bkolicoski/arduino-light-show

步骤5:准备封面

在这件作品的前面,我用了一块透明的丙烯酸。我将印刷的艺术品切成一定尺寸,并在表面上涂了一层透明的木胶,而丙烯酸没有保护盖。如果您可以使用Mod Podge或某些透明的丙烯酸凝胶介质,则最好使用它来代替木胶,但效果几乎相同。

应用图像时的技巧是不要像我一样使用过多的胶水,以免在纸上产生皱纹。在这种情况下,越少越好,但必须完全覆盖表面。在胶水仍然湿润的情况下,几乎看不见艺术品,但是在完全干燥后,艺术品会变成透明的。

我离开框架进行固化24小时,然后确定了Arduino在框架内的位置。我希望将艺术品挂在墙上,并且由于需要插入电源,因此我将板子安装在底侧,以便电源适配器的电线从墙上的插座中拔出。

我用钢锯去除了大部分材料,然后用凿子和锉刀完成了工作。如果您有手动铣刨机,那将比凿子快很多。我还在框架上钻了一个孔,以便麦克风可以伸出来并拾取房间中的声音。

在完成之前,我先将框架打磨到240粒度的砂纸,然后再涂上一层木器漆。我用一块布擦拭了污渍,然后过了一段时间。

步骤6:组装灯光秀

框架的厚度不足以将所有电子设备固定到位因此,我已经在框架的两侧切割并粘合了两层5mm黑色XPS泡沫绝缘材料。除了为所有电子设备腾出空间之外,泡沫还使该产品从侧面看起来更加美观。

所有的电子组件都使用热胶从麦克风开始安装,然后从Arduino主主板开始安装在框架内。

在背面,我已标记并切割了一张纸3毫米高密度纤维板的一面为白色,可作为支撑板和反光板。我已经用3.5 x 16毫米的小螺丝从背面固定了它。然后,我从LED灯条上的胶水上取下了衬板,然后将其粘贴到纤维板上。

亚克力正面也用相同的16mm螺丝固定,但我用6mm钻头埋入了螺丝孔,以便它们与正面齐平。如果您有a刨机,则可以在框架上开槽,然后用这种方法将丙烯酸树脂包起来。

最后,仅需从丙烯酸片材上去除另一个保护层,并对其进行全部测试以确保其仍能正常工作即可。要将其挂在墙上,我在背面的两个熨平板之间添加了一根绳子。

第7步:欣赏Arduino Light Show

总的来说,我对此感到非常高兴。如果我拥有适当的木工工具,则外壳可能会更好一些,但它仍然是不错的墙壁装饰。自从我建造它以来,我们和孩子们在一起玩得很开心,但是现在该找一个新家了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186566
收藏 人收藏

    评论

    相关推荐

    如何使用Arduino实现CAN总线通信

    CAN总线(Controller Area Network)是一种多主控制的串行通信协议,广泛应用于汽车电子、工业自动化等领域。它以其高可靠性、实时性和灵活性而受到青睐。Arduino作为一个
    的头像 发表于 11-12 10:09 195次阅读

    STM32项目实战:基于STM32F4的智能灯光控制系统(LVGL),附项目教程/源码

    《智能灯光控制系统_STM32F4》项目完整文档、项目源码,私信小雯老师免费领取。STM32项目实战之“智能灯光控制系统”(基于STM32F4)今天小编来分享一个《智能灯光控制系统》的项目案例,硬件
    的头像 发表于 10-17 16:16 568次阅读
    STM32项目实战:基于STM32F4的智能<b class='flag-5'>灯光</b>控制系统(LVGL),附项目教程/源码

    灯光定时器自动控制器怎么调

    灯光定时器自动控制器是一种智能家居设备,它允许用户设定特定的时间来开启或关闭灯光,从而实现节能和自动化控制。这种设备通常可以通过物理按钮、遥控器或者智能手机应用程序来设置。 灯光定时器自动控制
    的头像 发表于 10-17 14:13 617次阅读

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用?
    发表于 06-12 07:21

    腾讯QQ立项调研PPT(作者Kurt Xu)

    电子发烧友网站提供《腾讯QQ立项调研PPT(作者Kurt Xu).pptx》资料免费下载
    发表于 05-10 17:27 0次下载

    智能家居灯光控制系统功能特点

    智能照明是可以实现自动控制的先进照明方式,智能家居灯光控制系统是现代家居科技的重要组成部分,通过自动化控制、物联网等技术,实现了对家庭照明系统的智能化管理。旨在提高生活的舒适度和便利性,有效节约能源
    的头像 发表于 04-25 16:21 1092次阅读

    arduino如何停止loop循环

    Arduino的loop循环是其主要的程序执行部分,该循环将在Arduino开发板上持续运行,并且只有在程序被重新上传或开发板断电重启时才会停止。然而,在某些情况下,你可能需要在程序执行过程中停止或
    的头像 发表于 02-14 16:24 4111次阅读

    arduino中while循环怎么跳出

    Arduino 是一款开源的硬件平台,广泛应用于各种物联网和嵌入式系统项目。在 Arduino 上编写代码时,循环结构起到了至关重要的作用。而其中的 while 循环更是常用于需要根据特定条件重复
    的头像 发表于 02-14 16:22 2334次阅读

    小区LED灯光亮化设计方案:SM18512PK

    在现代社会,LED灯光越来越被广泛应用于城市的照明设计中。作为小区居民的我们,也可以利用LED灯光来打造更舒适、更美观的居住环境。下面就给大家介绍一些小区LED灯光亮化设计方案。 首先,我们可以考虑
    的头像 发表于 01-26 15:33 646次阅读
    小区LED<b class='flag-5'>灯光</b>亮化设计方案:SM18512PK

    2023年Arduino开放原码报告:持续茁壮的Arduino生态系!

    所谓出钱就是买一片Arduino开发板或是付费订阅Arduino Cloud云端服务,或单纯资金赞助;出力就是撰写Arduino相关的程序并无私的分享程序代码或回报错误或投入翻译等,笔者即有若干翻译新版
    的头像 发表于 01-25 16:45 1303次阅读
    2023年<b class='flag-5'>Arduino</b>开放原码报告:持续茁壮的<b class='flag-5'>Arduino</b>生态系!

    LED树木灯光亮化方案的设计与控制技术解析

    LED树木灯光亮化方案的设计与控制技术解析
    的头像 发表于 01-24 17:54 677次阅读
    LED树木<b class='flag-5'>灯光</b>亮化方案的设计与控制技术解析

    智能灯光控制系统怎么布线 智能灯光控制系统的组成

    智能灯光控制系统是一种应用于家庭、办公室、商业建筑等场所的智能化设备,能够实现灯光的智能控制和管理。在布线方面,智能灯光控制系统主要包括控制中心、灯光控制设备、传感器、电源和通信线路等
    的头像 发表于 01-22 11:28 1957次阅读

    工业POE交换机:点亮灯光控制与建筑自动化的新时代

    随着科技的不断发展,灯光控制和建筑自动化在现代建筑中扮演着重要角色。而工业POE交换机作为一种创新的网络设备,不仅能够为灯光控制和建筑自动化提供稳定可靠的网络通信,还具备便捷的供电功能。本文将探讨工业POE交换机对灯光控制和建筑
    的头像 发表于 01-17 09:26 512次阅读

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 4次下载

    Arduino的功能及其限制

    Arduino是一种开源电子原型平台,它基于易于使用的硬件和软件,可以用于制作各种嵌入式系统。然而,尽管Arduino非常强大,但它也有一些功能上的限制。本文将详细介绍Arduino的功能,并探讨
    的头像 发表于 12-21 14:15 1121次阅读