FizViz - 用于统计数据的大规模物理可视化!
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
| ||||
| ||||
| ||||
| ||||
|
关于这个项目
什么是“FizViz”?
我们正在对数据进行物理可视化,以大格式、超酷、即时可读的方式呈现信息。这个概念是,您可以在办公室、车间或任何您想观看和共享重要数据的地方挂一组 FizViz 小部件:
- 我今天卖出了多少产品?这与我的平均水平相比如何?
- 有多少人访问了我的网站?他们浏览了多少页?
- 我是因为我最近发布的猫视频获得了更多流量,还是因为它与我的产品无关,所以每个人都在反弹?
或者,将其连接到其他数据源:
- 我的 3D 打印工作还剩多少时间?
- 这里有多少人?
- 已经为 Hackster 世界最大的 Arduino 挑战提交了多少挑战条目?
我们为什么要制作 FizViz?
去年,我们的团队创建并推出了我们的第一个“真正的”产品。我们设计、调整、众筹、建造、重新设计、认证、笑、哭、发誓,并最终……发货了产品。比我们想象的要困难得多(但每个人都这么说)。
然后......我们开始了强迫性的指标观察。有多少人访问了我们的产品页面?我们的店?他们呆了多久?他们是怎么到那里的?当我们在推特、博客、发帖和分享时会发生什么?当我们没有做任何这些事情时,为什么我们只卖了 10 个单位?
好奇心想知道。
尽管我们是一个敬业的团队,但并不是每个人都有机会或有兴趣仔细梳理 Google Analytics,试图回答这些问题。而且,我们这些确实发现我们最终会查找相同的关键分析,有时一天要查找很多次。通常,当我们看时它们变化不大,或者当我们不看时它们变化很大。
显然,不乏用于过滤、汇总和混合各种形状和形式的数据的在线工具和系统。但是,它们会让你远离你的流程,并且需要(有点神秘的)工作流程知识才能找到你感兴趣的东西。
而且,坦率地说,它们并不是那么令人兴奋。
他们不会让办公室周围的人欢呼。它们不会宣传团队的成就,也不会宣传看到成功的冲动。它们是枯燥的、数字化的,而且通常是孤独的体验。
FizViz 是如何工作的?
FizViz Widget 由 3 个组件组成:
1) 一台 Windows 电脑或平板电脑 (我们喜欢 Surface)收集您的数据并使用 Windows 远程 Arduino 将当前状态发送到 FizViz 小部件。
2) 一个 Arduino MKR1000 通过 WiFi 从 PC 接收数据并驱动 FizViz Widget 上的物理控件。
3) 显示数据的物理组件 .目前,我们得到了以下支持:
- 用于彩色 LED 效果的 NeoPixel 灯带
- 用于创建刻度盘和仪表的步进电机
- 用于调零或校准仪表的开关(我们使用簧片开关在我们的 RotoMoto FizViz 小部件上找到零)
基本上,PC 会完成繁重的工作——从您的数据源(我们已经包含了用于收集 Google Analytics 的源)中提取数据,然后将状态和命令发送到驱动物理安装的 Arduino。
我们提供了所有原理图和信息,用于启动和运行带有步进电机的基本 NeoPixel 小部件。之后,您可以随心所欲地发挥创意。
我们的愿景是不断为不同类型的数据构建不同的小部件。我们从一个例子开始,但 FizViz 实际上是关于为您想要显示的数据类型制作正确的可视化。没有规则!
电气概述
连接 FizViz 相当简单。我们最新的原理图总是可以在 GitHub 上的 FizViz-Electrical 存储库中找到。以下是关于组件的一些注意事项:
- Arduino MKR1000 - 我们操作的大脑。这里没什么好说的,只是它很小,而且效果很好!
- NeoPixel 条带 - 连接到 NeoPixel 条带非常简单 - 我们在数据引脚和 Arduino 之间使用了一个 460 欧姆的电阻器 (R1)。然后,通常,我们将条带的电源直接连接到系统的主要 5v 电源中。 Adafruit 的 NeoPixel Uberguide 是集成 NeoPixels 的圣经,其中包含一个 Arduino 库,您可以在项目中使用它来简化控制。条带可能有两根地线(黑色)。它们都连接到接地引脚。
- Adafruit TB6612 分线板 - 控制任何典型的步进电机。制作精确移动的东西(例如刻度盘、仪表或滑块)真的很酷。我们用它来驱动 RotoMoto FizViz 中的针。这里就不多加了。我们遵循了 Adafruit 提供的说明,使其与用于控制的内置 Arduino Stepper 库兼容。
- 簧片开关 - 我们的 RotoMoto FizViz 小工具在指针中使用磁铁和簧片开关来检测指针何时为零。此处也可以使用不同的开关,例如微接触开关或压力开关,具体取决于您的小部件的结构。
我们将电子产品打包到 Adafruit Perma-Proto Half-sized Breadboard 上以填充到我们的小部件中,但根据您的外形尺寸,您可能需要其他形状。这是我们的样子:
固件/Arduino 代码概览
我们在 GitHub 上的 FizViz-Arduino 存储库包含支持 FizViz 小部件的 Arduino 草图的最新和最佳版本。关于在那里启动和运行项目所需的细节有很多信息,但这里有一些重要的亮点:
- WiFi 配置 - 注意 WiFi 配置的注意事项。如果你有一个更奇特的 WiFi 网络,你可能需要在这里更深入地挖掘。
- 外部依赖 - 我们在外部依赖项方面相当轻量,但我们确实引用了一些您可能需要安装的库。页面底部始终引用最新的库。
Windows / 远程 Arduino 概述
我们在 GitHub 上的 FizViz-Windows 存储库是 FizViz 的 Windows 代码的主页。再次重申,GitHub 上有大量更具体的信息,因此我们建议您详细阅读那里的说明。
我们的策略是从 ms-iot 的远程 Arduino 接线代码开始。我们没有直接从 Windows 应用程序控制引脚,而是设置了几个自定义 Firmata 控制消息。我们对远程接线代码进行了小幅更改,以允许将自定义消息传递到 Firmata 层。然后我们在 Arduino 项目中实现了自定义消息处理程序,根据来自 Windows 应用程序的控制命令更新 FizViz 状态。
我们还添加了对从 Google Analytics 收集分析数据的支持,因为这是我们自己的 FizViz 小部件的主要用例。希望这将有助于作为参考,即使您决定连接到不同的数据源。设置用于 API 访问的 Google Analytics 帐户需要执行许多步骤,因此请查看回购说明以了解更多详细信息。
小工具 #1 - “RotoMoto”
我们构建了 RotoMoto 来展示 FizViz 的所有功能。它通过在您可以自豪地挂在任何办公室的小部件中展示我们的照明和步进控件的非常酷的应用程序来锻炼平台。我们的梦想是让 4 或 5 个这样的美女并排悬挂,但我们需要更多的 MKR1000 来实现这一目标!
构建您自己的 RotoMoto 非常简单。即使您没有所有相同的工具,也有很多方法可以使用您可以使用的任何工具来实现与我们相同的效果。本文的其余部分介绍了构建以及您可以对不同效果进行一些调整的位置。
CAD 资料库
首先,我们将 CAD 文件保存在 Github 上的 FizViz-CAD 存储库中。您将找到我们制作的用于制作 RotoMoto 小部件的各种部件的 STEP 和 STL 版本。
附加部分
除了我们的 CAD 设计之外,以下是我们在装配中使用的零件列表:
描述 供应商零件编号 备注Stepper Pulley McMaster-Carr 1375K15 15 齿Needle Pulley McMaster-Carr 1375K28 30 齿轴承 McMaster-Carr 60355K701 二手 2Belt McMaster-Carr 7887K28 步进电机螺丝。 54-410-100 2.6mmx8mm簧片开关 Digikey 306-1124-1-ND 磁铁 Digikey 469-1002-ND 0.5"Dx0.125"H
安装板
RotoMoto 构建的支柱是安装板。基本上,它容纳了机械和电气组件,并将所有东西都干净地藏在显示器发光的边框后面。
我们使用 ShopBot CNC 从 1" 厚的 MDF 板上铣出我们的安装板。有各种其他方法可以切割形状(激光切割机、拼图等),但由于 CNC 在这里,这就是我们使用的.
挡板
到目前为止,我们构建的最大特点是发光的表圈。我们从 1/2" 厚的亚克力板切割这部分。同样,在 ShopBot 上。照明技术的关键是,切割表面的任何“磨砂”都会被照亮。您可以使用 Dremel 或其他手创建标记-还有工具。
我们将 CAD 模型切成两半,因为以这种方式使用材料更有效。用丙烯酸水泥将这两个部分连接在一起,或者如果您打算一次切割就合并模型(这就是我们的演示的构建方式)。
内圈
内环是构建中的关键部件 - 它是 NeoPixel 条带连接和隐藏在亚克力表圈后面的地方。我们的制造包括在我们的 TAZ5 上用 PLA 将其大块 3D 打印,然后将其粘合在一起。经过大量填充物和底漆后,我们得到了一个非常坚固的环。
电机和机械
CAD 存储库包含用于我们的 Sanyo Pancake Stepper 的电机安装件以及皮带张紧器和轴的文件。安装相当简单 - 皮带和皮带轮的安装如下所示。在安装座中使用两个轴承有助于增加刚性并保持轴直。
接线
让一切都适合是有点棘手。首先,将 NeoPixel 条带粘到内圈上,使其牢固固定。然后,簧片开关和 NeoPixels 的电线穿过支架主体上的孔。之后,内圈滑过挡板并进入安装座。
一张图值一千字....
完成步骤
最后一件事是打包电线并固定所有东西。它非常合身,但我们已将其全部装入。完成接线,然后您就应该拥有自己的 RotoMoto!
代码
FizViz-Windows
我们的 GitHub 存储库包含 FizViz 的 Windows 源代码。https://github.com/iotdesignshop/FizViz-WindowsFizViz-Arduino
我们的 GitHub 存储库包含 FizViz 平台的 Arduino 源代码。https://github.com/iotdesignshop/FizViz-Arduino定制零件和外壳
FizViz-CAD
包含 FizViz 小部件最新 CAD 文件的 GitHub 存储库https://github.com/iotdesignshop/FizViz-CAD示意图
FizViz-Electrical 存储库
最新 FizViz 电子设计的 EAGLE 原理图和位图版本 https://github.com/iotdesignshop/FizViz-Electrical.git制造工艺