第1步:收集零件
要制作此项目,您需要以下内容。请记住机箱的材料,您可以在其他项目中使用大量的剩余物(这使得未来构建的成本更便宜)。如果你想在ebay上查看价格等,我已经上传了你需要的PDF文件。
工具(我假设你已经有了这些)
烙铁
焊料
焊锡泵(如果您出错并需要去除焊料)
热胶枪
热胶棒
工艺刀(又名斯坦利刀)
标尺/卷尺/游标卡尺
无绳电钻+钻头(1 mm至13 mm) )
带切割圆盘的旋转式多用工具(又名Dremel)
清洗液如异丙醇(便宜的须后水)也是如此。
安全面罩(用于喷漆)
其中一些是免费的。旧的电子玩具如果将它们分开,就会将这些漂亮的Mylar扬声器放在里面。当你在那里时,你可能也会得到一个DC桶和一个按钮。
Dupont/Jumper电缆 - £0.99
DS1307实时时钟模块 - £0.99 (我建议改用DS3231)
8 Ohm Mylar扬声器 - £0.99
SPST瞬间推按钮 - £1.49
5.5mm DC桶形插座 - £1.26
5v,0.5A DC电源 - £2.83
MAX7219点阵显示器 - £3.76
外壳(外壳材料成本= 17.19英镑)
60mm方形排水管 - £5.99(你将有ALOT)
黑色喷漆 - £4.85
黑色PVC(foamboard) - £2.99
超级胶水 - £0.99
li》
60mm端盖 - £2.37
总成本=£30.24 :-) 。..。..。.截至今天这是相当于38美元的国际读者。
我喜欢使用PVC方管。它们很容易钻孔,切割,涂漆,我用了一个用于我的蒸汽朋克时钟。
第2步:准备排水管
标出你要放东西的地方
这很容易。我没有使用任何花哨的东西。首先,我用一把黑客锯在家里(约30厘米)将我的长凳的长度缩小到2.5米。我后来用dremel将它剪下来,使边缘变得美观和笔直。然后我将部件放在管道表面上,并使用永久性市场来标记我想要钻孔和切割的位置。我在LED矩阵的外面进行了追踪,并使用了一个旋转式多功能工具来切割一个方孔,使其适合齐平。我使用数字卡尺来测量按钮和DC镜筒的直径,以在背面和顶部切割正确尺寸的孔。
切割挡板
《我有大量PVC泡沫板铺设在以前的项目中。它们非常适合将电路安装到外壳中,使用它将环氧树脂混合在一起,制作其他钻头和外壳。取一个A4或A5尺寸的片,并切割一个5毫米的正方形环绕或边框,以构成LED矩阵。这将隐藏您在切割矩阵方孔时所做的任何不稳定的局限。为此,我在Inkscape上绘制了一个小模板并将其打印出来(附带SVG文件)。然后我用遮蔽胶带将它贴在船上,并用工艺刀仔细切割。要做到正确是很棘手的,我建议首先将内部切割到外部。
涂抹所有东西
钻完所有孔并切割后,将其移除毛边。用一些酒精擦拭物清洁表面以去除任何灰尘或污染(如果您没有任何IPA,可以使用便宜的须后水)。尝试在通风良好的区域喷洒并尽可能使用面罩。我在外面用一些纸板在地板上做了这个但是它并不理想,即使微风也会让油漆飞回你的脸。小心并尽可能穿戴防护装备。
喷涂管道,挡板和端盖,使它们都是相同类型的黑色,然后让它们干燥几个小时。
步骤3:程序Arduino
有关代码的一些信息
归功于GeckoDiode,因为我已经将他的代码修改为使用MAX7219芯片。 Adafruit版本使用I2C总线,MAX使用SPI总线。为此我使用了MaxMatrix库,我将其下载并安装到Arduino IDE中。如果您想了解更多关于MaxMatrix以及LED矩阵如何工作的原因,那么HowToMechatronics.com上有一个非常简短的教程。 LED矩阵完全由单一颜色的LED组成,而不是具有多色显示器。
我有一个令人沮丧的是,没有明确的定义库的功能是什么和需要将哪些参数传递给每个参数。幸运的是,我能够通过反复试验找出了什么做了什么,最后让它正常工作并不困难。首先要了解的是,您必须定义矩阵中有多少个8x8模块。在我的代码中,它存储在一个名为“modules”的整数中,如下所示:
“int modules = 4;”
这是8x8的数字您在显示器中链接在一起的模块。不是LED的数量或你使用发送数据的引脚。接下来要记住的是,如果你的“精灵”或其他任何覆盖所有四个矩阵,那么字节数组需要像这样定义:
“byte text_start_bmp [] = {32,8,。.. *某些字节数据* 。..};”
数字表示行和列的数量矩阵。在这种情况下,名为“text_start_bmp”的字节显示在32列和8行上。这些数字仅显示在一个8x8矩阵上,因此分钟数10如下所示:
“byte minute_ten_bmp [] = {8,8,。.. *某些字节数据* 。. 。};“
入侵者覆盖两个矩阵,因此在字节数据中字节将被赋予16,8。
另一件让我感到震惊的是精灵数据的定位。您可以要求Arduino在默认起始位置的矩阵上的不同X/Y位置显示精灵。对于分钟零,代码看起来像这样:
“matrix.writeSprite(8,0,minute_zero_bmp);”
一个数字是X调整,另一个是Y.不记得现在是哪一个,但是如果你想将精灵向上或向下推动1行或者列,你只需要增加正数或负数。对于8x8矩阵来说足够简单但是当你的精灵覆盖多个矩阵时,你必须相应地设置起始位置。 “POP”精灵如下所示:
“matrix.writeSprite(16,0,invader_pop_bmp);”
现在请注意原位如何16不是8?这里的代码表示精灵从位置行/列16从左到右显示。它认为两个8x8显示器是一个16x8显示器,即使有4个!因此,重要的是要考虑精灵将显示多少显示,并相应地调整每个精灵的字节数组的大小。否则你会有一些非常有趣的精灵!
DS1307 RTC
虽然DS1307与Adafruit RTClib.h库一起工作正常,你无法手动设置时间只是一种痛苦。我刚刚接受了这个,因为它意味着更少的代码需要改变。 DS1307使用从计算机编译代码的时间和日期来设置时间。而是学习如何使用DS3231库并在将来提前一到两分钟设置它。它也有较少的“漂移”,因此随着时间的推移它会保持更好的时间。两个模块都使用I2C总线,我相信如果你想继续使用它,DS3231可以与RTClib.h一起使用。
上传代码
一旦您对代码感到满意,请将其上传到Arduino。我附上了我的Arduino草图供你考虑。
第4步:组装电子设备
虽然上传代码我建议有首先在面包板上用杜邦/跳线组装电子设备,这样当你上传代码时,你知道一切都按照预期工作。这允许您在开始粘合和粘贴之前解决显示精灵等问题。在我的代码中,您可以看到我正在使用数字引脚4,5,6,7,9,但您可以根据需要更改这些引脚。您可能需要将电缆焊接到按钮,DC插孔和扬声器上,但大多数应该是易于推入式连接器。
一旦您满意,电子设备就可以正常工作,您应该考虑焊接连接。您可以使用铜条板/veroboard来完成此操作,但对于少量组件,您可以直接焊接到Arduino的引脚。它看起来像一只老鼠窝,但无论如何都没有人会看到它内部,只要确保所有金属部件都是隔离的,你不要在这种情况下做任何短路。
I当“mainButton”引脚拉低时,按钮工作。我发现Arduino正在识别当浮动电子设备安装在它上面时按下假按钮。在按钮上使用10K下拉电阻并将引脚设置为“INPUT_PULLUP”为我解决了这个问题。
附上PDF和PNG的原理图,以便您知道在哪里连接引脚。
步骤5:安装电子设备并关闭
对于我的时钟,我使用热胶安装电子设备,但要注意不要涂抹太多(电子产品不喜欢被加热太久)。我在挡板周围点了一小滴超级胶水,然后将它压在前面。我通过推动每端的端盖完成了外壳。当然你可以粘上端盖以完全封闭组件,但是我把我的一侧打开了,所以我仍然可以访问arduino的USB端口来重置日期和时间。
第6步:享受
总体而言,我很满意它的出现方式,考虑到它只是一些排水管和喷雾涂料。我希望你喜欢它并让我知道你是否可以想到任何可以添加的很酷的升级。我有兴趣知道是否有人可以使这个更便宜,或者如果有另一种节制方式制作一个外壳我可以在我的下一个项目中尝试。
责任编辑:wv
-
时钟
+关注
关注
11文章
1736浏览量
131589
发布评论请先 登录
相关推荐
评论