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

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

3天内不再提示

制作一个交互式街机床头钟

科技观察员 来源:NZDoug 作者:NZDoug 2022-06-27 17:37 次阅读

制作一个交互式街机床头钟

这是一个交互式街机床头钟,带有触摸屏和动画街机人物,并且您可以录制您选择的闹钟声音。

该项目包括一个 3D 打印案例和四个可供选择的独立程序

Arcade Clock - DK Mario、Space Invaders 和 Pac-Man 动画

Pacman Clock - 具有时钟功能的交互式动画吃豆人游戏

DK Clock - 具有时钟功能的交互式动画DK游戏

Tumble Ghost - 基于 Flappy Bird 的动画吃豆人幽灵游戏

对于喜欢重温 80 年代街机游戏角色的怀旧情怀的人来说,制作起来充满乐趣,也是一份很棒的礼物。

第 1 步:收集材料

pYYBAGK5eiOAZrvPAARZ_Y6K_qw318.png

Arduino 板 - Arduino Mega 2560

触摸屏 Arduino 扩展板 - 3.2“ Mega Touch LCD 扩展板扩展板

触摸屏 - 用于 Arduino Mega 2560 的 3.2” TFT LCD 显示屏 + 触摸屏

实时时钟模块 - DS3231 RTC

录音机模块-ISD1820录音机

3D打印机用PLA灯丝

用于将外壳粘合在一起的两部分环氧树脂

USB 电缆 2m 长 USB 充电器(用于时钟的电源

热胶枪

束线带 X 3

仅在床头钟的情况下才需要可选的自动背光调光组件:

电阻 270k 欧姆

稳压二极管 3.3v

0.5 瓦电阻 47 欧姆

光敏电阻 (LDR)

第 2 步:打印 3D 外壳

你可以在此找到我的3D打印外壳文件。

第 3 步:构建电路

pYYBAGK5eh-ABKvIAAMbwYzr08Y209.png

整个电路包含实时时钟、Arduino Mega、声音模块、触摸屏和屏幕屏蔽。

实时时钟

poYBAGK5ehyAcKmHAAPGhoHsM9I734.png

如图所示,将实时时钟安装在 Arduino Mega 背面。我使用了热胶枪和包装泡沫以确保它们不会接触并且有一些缓冲来吸收运动。就我而言,我将 2 个 RTC 腿直接焊接到 Arduino 上,并使用连接线将 5v 和 GND 连接到 Arduino。

pYYBAGK5eheAJVcOAAOfJnkqnTs851.png

录音模块

这些真的很酷且易于使用。以与上述类似的方式,使用泡沫和热胶将模块和扬声器放置在 Arduino 的背面,注意确保它们与接触绝缘。声音模块是由 Arduino 上的 D8 触发的,所以这个和电源需要按照提供的电路图连接。

自动背光调光器(可选)

poYBAGK5ehSAJRZFAAK9T9bYEUY140.png

如果您打算用作床头钟,那么您可能希望在晚上自动调暗背光,以免影响您的睡眠。(如果没有,那么你可以跳过这一步!)不幸的是,TFT 屏幕中的背光是硬连线到 +3.3v 的,不能用 Arduino 调整。这意味着我们必须断开它并重新连接到 Arduino 上的 PWM 引脚来控制背光亮度。我想在对组件上的引脚或轨道造成最小损坏的情况下做到这一点,因此采取了以下方法。请仔细按照以下步骤操作:

(a) 为了实现这一点,光敏电阻 (LDR) 位于单元的背面以检测光。在外壳上钻两个 3 毫米的孔,然后将 LDR 支腿穿过孔。在机柜内部使用热胶将支腿固定到位。在外壳内部焊接两根电线并按照电路图连接它们。根据电路图在 Arduino 的 A7 上添加一个 270k 欧姆电阻。

poYBAGK5ehCADFA5AAJuyRLB0qU125.png

(b) 取下 TFT 显示器,并将其放在坚固的表面上。识别针脚 19 (LED_A) 并小心地去除针脚底部几毫米的塑料。如上图所示,将引脚弯曲并远离连接器。检查 TFT Sheild 是否可以紧密插入,并且弯曲的插针不会阻碍插头或插座。

(c) 将一个 47 欧姆的寄存器焊接到弯曲的引脚上,并将一根电线从电阻器连接到 Arduino Mega 的 D9。Arduino D9 引脚可吸收高达 40mA 的电流,因此电阻器将其限制为小于此值。将一个 3.3v 齐纳二极管连接到同一引脚 (LED_A) 并按照图表将其接地。这样做的目的是保护背光免受过压,因为它将电压调节到 3.3v。

TFT屏幕和Arduino Shield

小心地将 3.2‘ TFT 触摸屏连接器推入 TFT Arduino Shield。然后按照提供的图片小心地连接到 Arduino 的顶部。RTC 有一块电池,因此即使断电也能保持正确的时间。闹钟时间存储在 Arduino 上的 Eeprom 中,这意味着如果停电,它将保留。

第 4 步:加载代码

该项目将需要在编译和运行之前加载以下文件和库。代码是独一无二的,围绕着我借用的库、硬件、一些自定义图形和其他项目的功能构建。

请注意:此项目的代码开发使用了 IDE v1.06,并且一些所需的库已过时。这意味着有些人在加载代码时遇到了新的 IDE 版本 1.6 及更高版本的问题。因此,为了简单起见,我建议人们使用 IDE v1.06,并在教程第 4 步底部的 zip 文件中包含正确版本的库文件。

Arduino IDE

我一直在使用早期版本的 Arduino IDE,因此为了简单起见,我建议您在安装代码之前在台式机上下载 Arduino IDE 1.06 版。你可以从这里得到他的版本。

TFT 屏幕变化

TFT 屏幕和制造商的模糊性导致了这些注意事项。

(a) Sainsmart - 如果您购买了 TFT 设备背面标有 Sainsmart 品牌的 3.2 英寸 TFT 屏幕,您会发现他们必须修改库以解决显示问题。如果您已经购买了 Sainsmart TFT 显示器,下面有修复

编辑文件“initlcd.h”并修改以下行

LCD_Write_COM_DATA(0x01, 0x2B3F);

LCD_Write_COM_DATA(0x01, 0x3B3F);

您需要重新启动 IDE,然后将代码重新加载到 Arduino。

(b.) TFT 控制器芯片组 - 购买了 3.2 英寸 TFT 屏幕的人可能会发现他们也可能拥有两种不同的芯片组“SSD1289”或“ILI9341”中的一种,令人讨厌的是,在线区分差异并不容易。好消息是它很容易修复。如果加载代码后出现空白屏幕,那可能是因为它是 ILI9341 控制器。

要修复,您需要对代码进行以下更改。编辑代码,修改下面这行代码

UTFT myGLCD(SSD1289, 38, 39, 40, 41); //应根据您的 Display/Schield 模型调整参数

UTFT myGLCD(ILI9341_16, 38, 39, 40, 41); //应根据您的 Display/Schield 模型调整参数

现在尝试将代码重新加载到 Arduino。

(c.)倒置触摸屏控制

一些制造商报告说 Y 轴触摸屏按钮已被反转。确定了对此的修复,其中两行代码要更改以翻转触摸屏读数。

查找:“yT = myTouch.getY();” 将其更改为:“yT = 240 - myTouch.getY();”

不要忘记搜索两次,第一个实例是在时钟模式下控制 pacman,第二个是在设置菜单中。

图形文件

当您开始加载到 Arduino 中时,我在下面包含了一组位图文件,它们需要与 Arduino 代码位于同一子目录中。因此下载以下文件并使用 IDE 进行加载。

设置时钟

成功加载代码后,按屏幕中心,这应该会调出设置屏幕。使用菜单以 24 小时格式设置时间和闹钟。按 SAVE 按钮保存设置。RTC 有一块电池,因此即使断电也能保持正确的时间。闹钟时间存储在 EEPROM 中,这意味着如果断电,它会保留。

测试警报

Sound 模块用于提供警报。ISD1820 由 Arduino D8 引脚控制。通过向麦克风播放声音,同时按下 ISD1820 上的录制按钮,可以轻松添加声音。就我而言,我从另一个设备播放的音频文件中录制了原始的 Pac-Man 介绍音乐。录制声音后,可以通过按下 PLAY-E 按钮来测试录音,该按钮应通过扬声器播放声音。使用设置菜单将时钟时间和闹钟时间设置为相隔几分钟。请务必“设置”警报并按下“保存”菜单按钮。返回主屏幕后,警报应在时间到来时响起。可以通过按下触摸屏面板的中心来关闭警报,从而进入设置屏幕。

触摸屏校准

一些制造商发现设置屏幕上的按钮与 TFT 触摸控件不对齐。在这些情况下,触摸屏需要校准。这可以通过使用 URtouch 库中提供的触摸屏校准代码和说明轻松完成。如果您发现此问题,请按照这些说明进行操作。

四种不同的程序可供选择

1. 街机时钟 - DK 马里奥、太空侵略者和吃豆人动画 2。Pacman Clock - 具有时钟功能的交互式动画 Pacman/Ms Pacman 游戏

3. DK Clock - 具有时钟功能的交互式动画DK游戏

4. Tumble Ghost - 基于 Flappy Bird 的 Pacman Ghost 动画游戏

第5步:把它们放在一起

poYBAGK5egeAYoXVAAQJmoP4UEQ038.png

增加外部电源

最后一步是添加外部电源。使用钻头,在机柜背面添加一个孔。将 USB 电缆穿过后面板,然后按照电路图将 USB 电缆 VCC、GND、D+ 和 D- 线连接到 Arduino USB 连接器的底座。这有两个好处,首先Arduino Mega Boards的USB输入具有过流保护,其次,您可以使用USB电缆上传代码更改而无需拆卸盒子。将电源线绝缘层热粘合到 Arduino 背面,以在组装前后面板时防止电缆张力。在距离 Arduino 连接 6-8 厘米的电源线上,将电缆扎带紧紧地围绕在外壳内侧的电缆上,为电缆添加一个线夹。

在机箱中安装电子设备

将电路放置在前面板顶部,带有四个孔导向器,该导向器应将屏幕中心对准切口。打开电路电源,您可以看到前面板屏幕,检查屏幕图像是否处于正确位置,然后用热胶将其粘合到位。结果是与位于切口孔中心的方形屏幕紧密配合。

总装

将前面板轻轻推到后面板上,然后轻轻拉动 USB 电源线以收紧后面板的松弛部分。线夹在这里很有用,可以保护接线的任何损坏。插入 USB 充电器,您就可以开始使用了。

pYYBAGK5egSAZnrlAAbxic-pCIg481.png

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

    关注

    0

    文章

    77

    浏览量

    27064
  • 交互式
    +关注

    关注

    0

    文章

    26

    浏览量

    9706
  • DIY设计
    +关注

    关注

    2

    文章

    59

    浏览量

    19801
收藏 人收藏

    评论

    相关推荐

    altium designer 10 怎么没智能交互式布线啊

    altium designer 10 怎么没智能交互式布线啊? 前两天看网上出altium designer 10 了,就下了装上了,但是用的时候发现没有智能交互式布线的菜单,由于刚学这个软件不久,想请问各位大虾是怎么回事啊?
    发表于 04-29 22:32

    交互式高速PCB设计

    交互式高速PCB设计
    发表于 08-16 16:00

    UVM交互式调试库介绍

    什么是UVM交互式调试库
    发表于 12-17 07:34

    种基于Ajax 和Smil 技术的交互式电子手册制作方法

    本文在简要分析IETM 的研究现状的基础上,介绍了种基于Ajax+SMIL 技术的交互式电子手册的制作方法。主要描述了种通用的,动态导航树型结构的实现方案,该方案基于Ajax(As
    发表于 08-13 10:19 29次下载

    什么是IPTV(交互式网络电视)

    什么是IPTV(交互式网络电视) IPTV(InternetProtocolTVorInteractivePersonalTV)也叫交互式网络电视,是利用宽带网的基础设施,以家用电视机或
    发表于 10-27 08:52 7493次阅读

    选购交互式白板的心得

    选购交互式白板的心得   在选购交互式白板的过程中,许多人对于交互式白板的硬件、软件、服务都不可能做到面面俱到,于
    发表于 02-09 10:00 724次阅读

    mimio美妙交互式电子白板知多少(续)?

    mimio美妙交互式电子白板知多少(续)? 之前介绍了美国mimio美妙交互式电子白板的基本情况,本文将把mimio美妙交互式电子白板的分类及基本使
    发表于 02-09 10:32 751次阅读

    WebServer的嵌入实现与交互式设计_高翔峰

    WebServer的嵌入实现与交互式设计_高翔峰
    发表于 03-19 11:28 1次下载

    基于B/S的web交互式教学平台

    针对现代网络教育师生交互性差的问题给出解决方案。采用当前流行的MVC模式的Django框架开发了B/S结构的基于Web的交互式教学平台系统。交互
    发表于 11-13 10:45 12次下载
    基于B/S的web<b class='flag-5'>交互式</b>教学平台

    如何处理orcad与Cadence Allegro的交互式操作

    orcad与Cadence Allegro的交互式操作应该怎么处理? 答:orcad与Cadence Allegro的交互式操作需要满足以下两要求才可以实现: Ø Orcad输出的是Allegro
    的头像 发表于 11-17 11:11 1.1w次阅读
    如何处理orcad与Cadence Allegro的<b class='flag-5'>交互式</b>操作

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

    在本文中,我将向您展开介绍我是如何用简单的宜家桌子来制作使用蓝牙、物理控件和LED矩阵的廉价交互
    的头像 发表于 04-06 16:25 2990次阅读
    如何利用Arduino UNO<b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>个</b><b class='flag-5'>交互式</b>LED桌

    交互式LED名称

    电子发烧友网站提供《交互式LED名称.zip》资料免费下载
    发表于 11-11 09:12 0次下载
    <b class='flag-5'>交互式</b>LED名称

    制作非接触多用途床头

    电子发烧友网站提供《制作非接触多用途床头灯.zip》资料免费下载
    发表于 11-16 09:59 0次下载
    <b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>个</b>非接触<b class='flag-5'>式</b>多用途<b class='flag-5'>床头</b>灯

    介绍开源的制作交互式BOM的AD插件!

    介绍开源的制作交互式BOM的AD插件!
    的头像 发表于 01-10 14:15 6557次阅读
    介绍<b class='flag-5'>一</b><b class='flag-5'>个</b>开源的<b class='flag-5'>制作</b><b class='flag-5'>交互式</b>BOM的AD插件!

    如何制作交互式BOM的AD插件

    介绍开源的制作交互式BOM的AD插件
    的头像 发表于 01-30 15:09 4986次阅读
    如何<b class='flag-5'>制作</b><b class='flag-5'>交互式</b>BOM的AD插件