倒数计时器
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
|
应用和在线服务
|
关于这个项目
简介
我 6 岁的孩子仍然没有时间感。当我告诉她她可以在来晚饭前继续玩 2 分钟时,30 秒或 10 分钟可以过去,她不会知道其中的区别。我开始在微波炉上设置定时器,但她在游戏室里看不到它滴答作响,也没有从她的卧室里听到蜂鸣器的声音。所以,我决定创建一个便携式计时器,我可以放在她旁边,让她可以直观地指示时间的流逝。
我开始在 16x2 LCD 面板上进行简单的数字倒计时,但这真的不是很有趣。而且,即使她可以数数并知道 45 远远超过 15,但这并没有真正让她感觉到真正剩下多少时间。所以,我转向了视觉效果——8x8 LED 矩阵上的沙漏。在我看来,8x16 矩阵确实是很好地表示沙漏的最小值;无论哪种方式,沙漏也不是一个引人注目的东西。
在尝试了其他一些视觉效果和动画级别后,我和我的女儿决定采用这种设计——多色水滴随着时间的流逝而落下并聚集在一起。每隔几秒,准确地说是倒计时间隔的 1/64,就会有一个水滴上升——也就是 LED 保持点亮状态。一次,所有 LED 保持亮起,然后时间到,整个 LED 矩阵闪烁,蜂鸣器响起。为了使其更灵活地适应各种情况,可以选择不同的倒计时间隔 - 1 分钟、2 分钟、5 分钟等。而且,为了让它更有趣,可以通过对着我的 Windows mobile 远程设置倒计时间隔电话。时间一到,我可以选择给她额外的时间,再次通过对我的 Windows 手机说出倒计时间隔,即使我们在同一个房间(只要我在 LED 矩阵的蓝牙范围内)。
该项目的核心组件是 Arduino Uno、neopixel 8x8 RGB LED 矩阵和蓝牙模块。 Adafruit neopixel 矩阵的酷炫之处在于,只需要一个 Arduino 引脚来控制它,因此有大量引脚可用于各种附加功能。蓝牙模块用于手机和Arduino之间的通信。适用于 Arduino 的 Windows Virtual Shields 应用程序在 Windows Phone 10 上运行,使我能够在我的 Arduino 草图中利用手机的功能。
这是初学者项目,不需要高级软件或硬件技能。排除先决条件,如果你有任何 Arduino,这个项目可以在 30 - 45 分钟内完成。如果这是您的第一个电子项目,我建议您在开始之前花几个小时观看一些介绍 Arduino 的视频。
如果您进行了任何改进或修改,请发表评论并告诉我进展如何。我真的很想知道您创建了什么样的倒计时设计,或者您如何将其他 Virtual Shields 功能集成到您的项目中。
以下是我在整个项目过程中发现非常有用的一些在线资源:
- Microsoft 的 Windows On Devices 提供了非常好的分步指南,可帮助您开始使用适用于 Arduino 的 Windows Virtual Shields。
- Adafruit 的 Neopixel Uberguide 提供了大量有关如何使用 LED 矩阵的详细信息。
- Nulsom 用于 Arduino 的 LED 矩阵库也适用于该硬件。
- YouTube 上有无数视频可以帮助您开始使用 Arduino,包括安装 Arduino IDE 以及将微控制器连接到您的 PC。我强烈推荐 Jeremy Blum 的 Arduino 教程系列。
先决条件
- 为 Windows Virtual Shields 设置您的 Arduino(此处的说明)。
- 为 Windows Virtual Shields 设置您的 Windows 手机和 PC(此处的说明)。
注意:如果您尚未安装 Windows10 和 Visual Studio 2015,则需要 2-3 小时才能完成先决条件,但大部分时间是无人值守的。
你需要什么
零件:
- Arduino Uno 和标准 A/B USB 数据线
- Neopixel 8x8 RGB LED 矩阵
- 蓝牙模块
- 压电蜂鸣器
- 公-公和公-母跳线
- 迷你面包板
- Lumina 635(或其他 Windows Phone 10 兼容设备)
- 可选:直角标题 - 男性或女性
- 可选:便携式 5v 可充电电池充电器
工具:
- 烙铁和焊锡
项目说明
步骤 1:将 LED 矩阵连接到 Arduino
时间: 15分钟
零件: Arduino Uno、neopixel 8x8 RGB LED 矩阵、3 针接头、跳线、迷你面包板
工具: 烙铁、焊锡
我尝试了几种不同的 LED 矩阵,但我很难让一些屏蔽类型的矩阵适用于这个项目。它们自己可以正常工作,但是当我连接蓝牙时我无法让它们工作。除了物理问题 - 防护罩占用了所有引脚 - 还有技术问题 - 可能与 D0 和 D1(Arduino 的 RX 和 TX 引脚)发生冲突。所以,然后我尝试了 neopixel 矩阵。它工作得很好:只需要一个控制引脚,没有 RX/TX 冲突。
在将 LED 矩阵连接到 Arduino 之前,我必须将一个三针头焊接到 LED 矩阵上。选择直接头还是 90 度接头实际上取决于您将如何安装 LED 矩阵。而且,公头与母头确实取决于您拥有的跳线类型。或者,就像我的情况一样,头球的决定完全取决于我手头的东西——90 度的男性头球。或者,您可以将跳线直接焊接到 LED 矩阵,但我喜欢插头引脚提供的灵活性。
Neopixel LED 矩阵和 Arduino 之间只需要三个连接。首先,使用公-公跳线将 Arduino 的 5v 引脚连接到迷你面包板上未使用的行。然后将此电源轨的公母跳线连接到 LED 的 5v 引脚。使用另一个公母跳线将 Adruino 的地连接到 LED 的 GND。并且,为了控制 LED 矩阵,将公母跳线从任何 Arduino 的数字引脚(引脚 D0 和 D1 除外)连接到 LED 矩阵的数字输入 (DIN) 引脚。对于我的项目,我使用了数字引脚 9。
注意:5v、GND 和 DIN 引脚的顺序因制造商而异,因此在连接电线之前,请仔细检查 LED 矩阵上的标签。
第 2 步:测试 LED 矩阵
时间: 5分钟
零件: 不适用
工具: 不适用
几乎所有 LED 矩阵都带有一个库,可以让您快速启动和运行。 Adafruit 矩阵也不例外,因为它带有自己的库。但是,我更喜欢 Nulsom 提供的库。我还没有深入了解这些差异,但我发现使用 Nulsom 库时该项目的效果要好一些 - 当我清除矩阵时 LED 始终关闭,并且虚拟防护罩的工作更加一致。
我从 Nulsom 网站下载了库文件并将它们复制到我的 Arduino\libraries 文件夹中。然后我启动了 Arduino IDE,打开其中一个示例草图,并将草图上传到我的 Arduino。啊,漂亮的灯!
第三步:连接蓝牙模块
时间: 5分钟
零件: 蓝牙模块、跳线
工具: 不适用
这是我第一次使用蓝牙模块 - 它非常简单,现在蓝牙将在我的项目中猖獗。我从 SparkFun 购买的 BlueSMiRF Silver 模块本质上是串行电缆的替代品。我确实必须焊接一个公头针,但一旦完成,我就准备好滚动了。
将蓝牙模块插入面包板以简化连接。要为模块供电,请将跳线从步骤 1 中创建的电源轨连接到模块的 Vcc 引脚。并在模块的 GND 引脚和 Arduino 上的任何 GND 引脚之间运行一个公-公跳线。要建立串行通信,将一个公-公跳线从蓝牙模块的 TX 引脚连接到 Arduino 的 RX 引脚(数字引脚 0),另一个从模块的 RX 引脚连接到 Arduino 的 TX 引脚(数字引脚 1)。
注意:当您将蓝牙的 TX 和 RX 引脚连接到 Arduino 时,您将无法将草图从 Arduino IDE 上传到 Arduino。当您需要上传草图时断开它们并在成功上传草图后重新连接它们。
步骤 4:连接 Peizo 蜂鸣器
时间: 5分钟
零件: Peizo蜂鸣器、跳线
工具: 不适用
peizo 蜂鸣器只有两个引脚。将蜂鸣器插入面包板中任何未使用的行,并使用跳线将标有“+”的 peizo 引脚连接到 Arduino 上的数字引脚(我使用了引脚 3),将标有“-”的引脚连接到 Arduino 上的 GND 引脚。
第 5 步:下载和部署代码
时间: 10分钟
零件: 不适用
工具: 不适用
现在您已完成所有连接,请从 github 下载代码并将其加载到您 PC 上的 Arduino IDE 中。务必拔掉蓝牙模块的 TX/RX 跳线,然后上传草图。将 TX/RX 跳线重新连接到 Arduino 的数字 0 和数字 1 引脚。
启动 Virtual Shields 应用程序并将手机与蓝牙模块配对。如果您需要说明,请参阅上面的先决条件 #2。
最后,按下 Arduino 上的重置按钮以重新启动草图。
出现提示时,对您的 Windows 手机说出倒计时时间 - 即一。然后,LED 将开始做他们的事情。
第 6 步:使其便携
时间: 5分钟
零件: 5v充电电池充电器
工具: 不适用
便携性的关键是能够独立于 PC 为倒数计时器供电。您可以使用壁挂式插座/插头,但您仍然需要四处寻找壁式插座。我更喜欢使用便携式可充电电池充电器,这样倒数计时器可以去任何地方 - 包括院子里。
拿到充电器后,请使用 PC 或壁式充电器为充电器充电。然后,将 Arduino 的 USB 数据线连接到充电器上,瞧,Arduino 已通电且便携。
代码
倒数计时器
https://github.com/peejster/Countdown-Timer示意图
countdown_timer.fzz制造工艺