如何制作一个数据统计物理可视化仪表盘

科技观察员

描述

什么是“FizViz”?

我们正在制作数据的物理可视化,以超酷、即时可读的大格式呈现信息。这个概念是,您可以在办公室、车间或任何您想观看和共享重要数据的地方悬挂一组 FizViz 小部件,例如:

- 我今天卖出了多少产品?这与我的平均水平相比如何?

- 有多少人访问了我的网站?他们浏览了多少页?

- 是因为我最近发布的猫视频帖子,我获得了更多流量,还是因为它与我的产品无关,所以每个人都跳出?

或者,将其连接到其他数据源:

- 我的 3D 打印工作还剩多少时间?

- 这里有多少人?

制作 FizViz 的经历

poYBAGK6xQaAIxV9AAOnp8jUOc0028.png

显然,不乏用于过滤、汇总和混合各种形状和形式的数据的在线工具和系统。但是,它们会让你远离你的流程,并且需要(有点神秘的)工作流程知识才能找到你感兴趣的东西。

而且,坦率地说,最终制作完成后它们并不是那么令人兴奋。

项目不会让办公室周围的人欢呼,并且是枯燥无味的、数字化的,通常也是孤独的经历。

poYBAGK6xQKAVwviAAKPoc-gMJ0949.png

FizViz 是如何工作的?

FizViz Widget 由 3 个组件组成:

1)收集您的数据并使用Windows Remote Arduino将当前状态发送到 FizViz Widget的 Windows PC 或平板电脑(我们喜欢 Surface)。

2)一个Arduino MKR1000,它通过 WiFi 从 PC 接收数据并驱动 FizViz Widget 上的物理控件。

3)显示数据的物理组件。目前,我们支持:

用于彩色 LED 效果的NeoPixel 灯条

用于创建刻度盘和仪表的步进电机

用于归零或校准仪表的开关(我们使用簧片开关在 RotoMoto FizViz 小部件上找到零)

基本上,PC 完成了繁重的工作——从您的数据源中提取数据(我们已经包含用于收集 Google Analytics 的源),然后将状态和命令发送到驱动物理安装的 Arduino。

我们提供了所有原理图和信息,用于获取带有步进电机并运行的基本 NeoPixel 小部件。之后,您可以随心所欲地发挥创造力。

我们的愿景是继续为不同类型的数据构建不同的小部件。我们从一个示例开始,但 FizViz 真正是为您想要显示的数据类型制作正确的可视化。没有规则!

pYYBAGK6xP2AN78cAAGXBACy7rM798.png

连接 FizViz 相当简单。我们最新的原理图能在文章下方找到。以下是有关组件的一些注意事项:

Arduino MKR1000 - 我们运营的大脑。这里没什么好说的,只是它很小,而且效果很好!

NeoPixel Strips - 连接到 NeoPixel Strips 非常简单 - 我们在数据引脚和 Arduino 之间使用了一个 460ohm 电阻器 (R1)。然后,通常,我们将条带的电源直接连接到系统的主 5v 电源。Adafruit 的 NeoPixel Uberguide是集成 NeoPixels 的圣经,它包含一个 Arduino 库,您可以在项目中使用它来简化控制。条带可能有两条接地线(黑色)。它们都连接到接地引脚。

Adafruit TB6612 分线板- 控制任何典型的步进电机。制作精确移动的东西(例如刻度盘、仪表或滑块)真的很酷。我们用它来驱动 RotoMoto FizViz 中的针。这里不加太多。我们遵循 Adafruit 提供的说明,使其与内置的 Arduino Stepper 库兼容以进行控制。

簧片开关 - 我们的 RotoMoto FizViz 小部件在针中使用磁铁和簧片开关来检测针何时为零。根据您的小部件的机制,这里也可以使用不同的开关,例如微接触开关或压力开关。

我们将电子产品打包到Adafruit Perma-Proto 半尺寸面包板上以填充到我们的小部件中,但根据您的外形尺寸,您可能需要其他形状。这是我们的样子:

poYBAGK6xPmAPHm1AAY2CnVNT98205.png

固件/Arduino 代码概述

我们在 FizViz-Arduino 存储库包含为 FizViz Widgets 提供支持的最新和最棒的 Arduino 草图版本。有更多关于使项目在那里启动和运行所需的细节的信息,但这里有一些重要的亮点:

WiFi 配置- 请注意有关 WiFi 配置的注意事项。如果你有一个更奇特的 WiFi 网络,你可能需要在这里更深入地挖掘。

外部依赖项 -我们在外部依赖项方面相当简单,但我们确实引用了一些您可能需要安装的库。页面底部始终引用最新的库。

Windows / 远程 Arduino 概述

我们的策略是从 ms-iot 的远程 Arduino 接线代码开始。我们没有直接从 Windows 应用程序控制引脚,而是设置了几个自定义 Firmata 控制消息。我们对远程接线代码做了一个小改动,以允许将自定义消息传递到 Firmata 层。然后,我们在 Arduino 项目中实现了自定义消息处理程序,根据 Windows 应用程序的控制命令更新 FizViz 状态。

我们还增加了对从 Google Analytics 收集分析数据的支持,因为这是我们自己的 FizViz Widgets 的主要用例。希望这将有助于作为参考,即使您决定连接到不同的数据源。

pYYBAGK6xO6ANsydAAKXS_LKxlU797.png

小部件 #1 - “RotoMoto”

我们构建了 RotoMoto 来展示 FizViz 的所有功能。它通过在一个小部件中展示我们的照明和步进控制的非常酷的应用程序来锻炼平台,您可以自豪地挂在任何办公室。

构建您自己的 RotoMoto 非常简单。即使您没有所有相同的工具,也有很多方法可以实现与我们相同的效果,只要您能拿到手上的任何东西。本文的其余部分解释了构建以及您可以在哪里对不同的效果进行一些调整。

CAD 存储库

首先,我们将 CAD 文件保存在Github 的 FizViz-CAD 存储库中。您会发现我们为制作 RotoMoto 小部件而制造的各种部件的 STEP 和 STL 版本。

附加部件

除了我们的 CAD 设计之外,这里是我们在装配中使用的零件列表:

Description Supplier Part # Notes

Stepper Pulley McMaster-Carr 1375K15 15 tooth

Needle Pulley McMaster-Carr 1375K28 30 tooth

Bearings McMaster-Carr 60355K701 Used 2

Belt McMaster-Carr 7887K28

Stepper Motor Screws De Mode Elec. 54-410-100 2.6mmx8mm

Reed Switch Digikey 306-1124-1-ND

Magnet Digikey 469-1002-ND 0.5“Dx0.125”H

安装板

RotoMoto 构建的支柱是安装板。基本上,它容纳了机械和电气组件,并将所有东西都整齐地藏在显示器发光的边框后面。

我们使用 ShopBot CNC 从 1“ 厚 MDF 板上铣出我们的安装板。还有各种其他方法可以切割出形状(激光切割机、拼图等),但由于 CNC 就在这里,这就是我们使用的。

pYYBAGK6xOiAQRP-AAPur3h9Udc548.png

挡板

到目前为止,我们构建的最大特点是发光挡板。我们用 1/2” 厚的亚克力板切割这部分。同样,在 ShopBot 上。照明技术的关键是任何“结霜”的表面被切割的地方都会被照亮。您可以使用 Dremel 或其他手创建标记- 工具也是如此。

我们提供的 CAD 模型减半,因为以这种方式使用材料更有效。用丙烯酸水泥将这两个部分连接在一起,或者如果您打算一次性完成,可以合并模型(这就是我们演示的构建方式)。

poYBAGK6xOSAabhHAAQdzdi8D18522.png

内圈

内环是构建中的关键部件 - 它是 NeoPixel 条连接并隐藏在丙烯酸表圈后面的位置。我们的制造包括用 PLA 将其大块 3D 打印在 TAZ5 上,然后将其粘合在一起。经过大量的填充物和底漆后,我们得到了一个非常坚固的环。

pYYBAGK6xOCAAISIAAeY-gpccgk082.png

电机和机械

CAD 存储库包含我们的 Sanyo Pancake Stepper 的电机支架以及皮带张紧器和轴的文件。安装相当简单 - 皮带和滑轮的安装如下所示。在安装座中使用两个轴承有助于提高刚度并保持轴笔直。

poYBAGK6xNyAYl5nAAVKPmpGpg0579.png

接线

让一切都适合是有点棘手。首先,将 NeoPixel 条胶粘或粘贴到内环上,使其牢固地固定到位。然后,簧片开关和 NeoPixels 的电线穿过底座主体上的孔。之后,内环滑过挡板并进入安装座。

pYYBAGK6xNiAQFiqAAdgnEhNXg8159.png

完成步骤

最后一件事是打包电线并固定所有东西。完成接线,然后你就拥有了你自己的 RotoMoto!

pYYBAGK6xNSALjg6AAeiA6lLNgM978.png

打开APP阅读更多精彩内容

电子工程师必装软件(附AD封装库

值得收藏!用过都说好!

全部0条评论

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

×
20
完善资料,
赚取积分