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
    +关注

    关注

    188

    文章

    6469

    浏览量

    187118
收藏 人收藏

    评论

    相关推荐

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

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制器平台,可以通过附加
    的头像 发表于 12-23 09:06 161次阅读

    智能化灯光控制系统

    智能化灯光控制系统,作为现代智能家居的重要组成部分,正逐步改变着我们的生活方式,为家庭环境增添了前所未有的便捷性、舒适性和节能性。这一系统不仅融合了科技理念,还充分考虑了用户的实际需求,通过智能化
    的头像 发表于 12-05 16:50 189次阅读

    基于Arduino的串口通信项目

    基于Arduino的串口通信项目涉及多个方面,包括硬件连接、软件编程、串口参数配置等。 一、硬件准备 Arduino开发板 :确保你有一块Arduino开发板,如Arduino Uno
    的头像 发表于 11-22 09:24 555次阅读

    stm32与Arduino的比较

    在微控制器的世界里,STM32和Arduino是两个经常被提及的名字。STM32是一系列由STMicroelectronics生产的高性能微控制器,而Arduino则是一个开源电子原型平台,基于易于
    的头像 发表于 11-19 15:45 898次阅读

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

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

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

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

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

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

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

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

    arduino如何停止loop循环

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

    arduino中while循环怎么跳出

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

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

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

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

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

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

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

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

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

    Arduino制作循迹小车教程

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