如何利用Arduino UNO制作一个交互式LED桌

描述

介绍

在本文中,我将向您展开介绍我是如何用一个简单的宜家桌子来制作一个使用蓝牙、物理控件和LED矩阵的廉价交互式桌子。同时桌面能够显示音频频谱可视化器、一些游戏和动画。

1.准备项目——Java仿真

有了项目的想法后,首先要做的就是定义一个详尽的待办事项清单、材料清单,并对代码的外观有一个深刻的了解。

为了应对这一挑战,我为我的LEDMatrixonJava设计了一个模拟器。此步骤的目的是设置使设备正常工作所需的主要功能和算法。这样做还能让我更具体地知道完成我的项目需要哪些硬件(尤其是输入)。

该程序显示一个12x12的颜色网格,并使用类似于“FastLED.show();”的方法刷新此网格ArduinoFastLED库用来控制矩阵的函数。该程序显示菜单并能够启动几种模式:显示图像/动画/文本,运行康威的生活游戏,俄罗斯方块,蛇,乒乓球,西蒙游戏等。

交互式

在制作中我遇到的第一个问题,是需要在程序中定义一些静态图像。Arduino的规范不允许我使用.jpg或.png图像,我必须处理24位像素的二维数组(以十六进制定义为0xRRGGBB)。为了让制作过程变得更容易,我编写了另一个Java程序,它将12x12位图图像转换为所需的2D数组。

交互式

只要最终仿真模拟器符合我的期望,就可以开始着手购买该项目所需的所有组件。

2.如何读取音频信号?

我的桌子的主要功能之一是能在我听音乐时在屏幕上实时显示音频频谱。为了实现这一点,我使用了一个运算放大器(TL072)将电压集中在2.5V左右并对其进行放大。Arduino现在能够读取和分析提供的音频信号,该电路焊接在原型板上。

交互式

3.布线和3D打印

我购买了150个LED灯条长5米(或16.4英尺)。这意味着我的12x12屏幕至少是(500/150*12)=40cm宽和长。为了以后有更充足的灵活性,我订购了一块405x405mm的白色亚克力玻璃,并用钻头和锯子在桌子上打了一个410x410mm的孔。

7欧元的IkeaLack桌子非常便宜,并且里面是空的,这对于我们的项目来说很有帮助。(顺便说一句,制作过程中在你身边放一个真空吸尘器可以防止你吸入木屑)

交互式

完成主孔后,我在桌子的侧面钻了4个40毫米的圆形孔,用于放置4个控制按钮,并在桌子底部钻了一个小孔,用于放置母电源插头。之后,我在主控制界面的位置上做了一个方孔。这个界面上的按钮非常小并且彼此靠近,这点需要格外注意。

为了解决这个问题,我在Fusion360上设计了我的界面并通过3D打印的方式制作。接下来我在上面涂了一层底漆,看到这种饰面,我非常满意。

再接着是时候进行布线工作了,我已经将所有东西焊接并粘合到位,如下图所示。

交互式

4.制作画面

我认为这是我最不引以为豪的部分。我强烈建议您使用非常柔软的泡沫板甚至激光切割机来制作像样的网格。我每12个LED切割一次LED灯带,制作12个小灯带,然后将它们粘在410x410mm泡沫板上(接线完成)。然后我粘上了一个用美工刀制作的泡沫板网格。最后,我将丙烯酸玻璃粘在网格顶部并为LED矩阵供电以进行测试。美工刀的问题在于顶部的网格不是很平坦,并且像素没有完全对齐。

交互式

一旦在表格中安装并接线,矩阵就可以执行我们通过USB端口提供给Arduino的代码。

5.安卓控制器

我使用MITAppInventor软件制作了一个非常简单的Android应用程序来通过蓝牙控制我的桌子。

交互式

交互式

6.拓展

之后我可能还会调试一些功能,改进一些功能,并且对其他一些功能进行重编程。

我还想在屏幕和桌子之间的缝隙中切割并安装一些L型铝条,使其看起来更漂亮、更干净

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分