数字测量轮





准备工作:
材料:
材料名称 | 数量 | 型号/说明/备注 |
印刷电路板(PCB) | 1 | |
Arduino Pro-mini,5V 版本 | 1 | |
0.96 英寸 SSD1306 OLED(I2C) | 1 | |
TP4056 1s LiPo 充电器板 |
| |
1s LiPo 电池 |
| |
7 毫米高的鼠标编码器 |
| |
19x6x13mm 滑动开关 |
| 三种 不同 颜色 |
1K 0805 SMD 电阻器 | 2 | |
100K 0805 SMD 电阻器 | 2 | |
47K 0805 SMD 电阻器 | 2 | |
1uf 0805 SMD 多层陶瓷电容器 | 2 | |
6x6x13mm 通孔触觉按钮 | 2 | |
直角 2.54mm 公头 | 1 | |
14x12mm Micro-USB 接口 | 1 | |
FTDI 编程电缆 |
| |
3/4 英寸宽的摩擦带(用于包裹网球拍/曲棍球棒)或柔性 3D 打印灯丝 |
| |
直径为 1/16 英寸 | (1.57 毫米)的金属棒 | 约 2 英寸。 |
8mm M2 螺丝 | 四颗 | |
25x1.5mm 透明丙烯酸方块。 | 1 | |
5+mm M2 螺丝(可选,用于皮带夹) | 2 | |
3 毫米滚珠轴承。塑料、钢、水溶性均可。您甚至可以使用 3 毫米小珠子 | 约 162 |
工具:
工具名称 | 数量 | 型号/说明/备注 |
热胶枪和热胶棒。 | 1 | |
塑料胶和强力胶。 | 1 | |
一些轻质油/润滑油, | 1 | 任何类型 |
带细尖头的烙铁。 | 1 | |
剥线钳和剪线钳。 | ||
子(用于处理 SMD 部件) | ||
3D 打印机 |
施工和设计概述




这很棒,因为它可以让你以普通卷尺难以或无法实现的方式进行测量。你可以轻松地沿着曲线、拐角等进行测量。同样,由于你不必处理实体卷尺,因此你实际上不受长度的限制。DMW 的上限是 9999.99 厘米(你的普通卷尺可以测量 25 英尺或 762 厘米),这仅仅是由于屏幕尺寸限制。同时,它的最小测量值仅为 1 毫米(0.04 英寸),因此足够精确,可以使用。你还可以立即将厘米转换为英寸,以十进制形式显示,并四舍五入到最接近的 1/16 英寸(可在代码中配置)。
我还添加了管道直径计算模式、内角模式(未在上面的视频中,请参阅步骤 14 中的模式)和转速表/速度模式(用于低转速)。
可以在代码中轻松地重新排序或删除模式。
DMW 的大脑是一个常见的 Arduino Pro-Mini,它可以监控按钮、旋转传感器和电池,同时在 DMW 的 OLED 屏幕上记录和显示测量值。所有电子设备都安装在一个定制设计的 PCB 上,而 PCB 又安装在一个 3D 打印的外壳中。总体而言,DMW 的尺寸几乎与普通卷尺相同,便于携带和操作。
我尝试让 PCB 相当容易组装,即使您是焊接新手。它主要是通孔部件,除了几个 0805 SMD 尺寸的电阻器(应该仍然易于焊接)。同样,我尝试主要使用常见的现成组件,您应该能够在亚马逊、Aliexpress、Ebay 等网站上轻松找到这些组件。
DMW 由可充电锂聚合物电池供电。我应该注意,如果操作不当,锂聚合物电池可能会很危险。最重要的是不要让锂聚合物电池短路,但如果你对它们完全不熟悉,你应该做一些安全研究。
您可以在我的 Github 上找到所有 DMW 的 3D 打印、PCB 和代码文件:这里。
我对这个项目的结果非常满意!希望您也觉得它同样有用!:)
如果您有任何疑问,请发表评论,我会尽力帮助您!
为了让您快速了解 DMW 的组装过程,我在此步骤中附上了分解的 CAD 图。这列出了 DMW 的所有机械部件(3D 打印或其他方式),并希望让您大致了解 DMW 的组装方式。请注意,在本 Instructable 中,我将使用组装图上显示的名称来引用所有零件。
除非另有说明,图纸上的所有零件都是 3D 打印的。
对于车轮握把,您可以使用柔性长丝打印,也可以使用握把胶带(链接在耗材中)。我使用了握把胶带,因此无法评论柔性长丝的有效性。无论您使用什么,它都应该具有足够的抓地力,以防止使用 DMW 时外轮打滑。
您可以在这里找到所有打印部件。
最后,确保您有正确类型的直角公头 2.54mm 接头。两种常见类型具有不同的止动块位置。您需要长脚上有止动块的类型,如本步骤中的图片所示。使用错误的类型将导致 PCB 无法装配在一起。
阅读此步骤的其余部分是可选的。我只是想简单介绍一下 DMW 的工作原理以及我是如何设计的。
基本工作和一些数学:
DMW 的组装方式类似于三明治。它有一个中央旋转齿轮,夹在两个固定的外板之间。齿轮两侧由一组滚珠轴承支撑,使其可以自由旋转。齿轮的其中一个内边缘带齿。齿边与内齿轮啮合,内齿轮与 PCB 的编码器相连。编码器记录内齿轮的旋转,因此,通过一些数学运算,我们可以计算出外轮的行程:
行驶距离 = 编码器步数 * (pi * 车轮直径) / (ENC_STEPS_PER_REV * 齿轮比)
WHEEL_DIAM 是外齿轮的直径
ENC_STEPS_PER_REV 是编码器每转的步数(编码器规格的一部分)
GEAR_RATIO 是外齿轮齿数与内齿轮齿数之比。这是外齿轮旋转一圈时内齿轮旋转的圈数。
number_encoder_steps_taken 是编码器当前记录的总步数。
总的来说,(pi * WHEEL_DIAM) 给出了外轮旋转一圈所行进的距离,而 number_encoder_steps_taken / (ENC_STEPS_PER_REV * GEAR_RATIO) 给出了外轮旋转的总圈数。
类似的方程式可用于计算转速(在给定的时间段内)或测量物体的直径(假设它是圆形的)。您可以在 DMW 的代码中找到这些。
设计:
我使用 Fusion 360 和FM Gears 插件设计了 DMW 。总的来说,我希望它的尺寸和形状与传统的卷尺接近,这样它就可以作为一个舒适的替代品。我已经知道我想在 DMW 中使用鼠标编码器,因为我在之前的 Instructable 中用过它们,而且手头有一些备用的。这两个因素影响了我的设计。
我首先考虑如何安装编码器。最简单的选择是直接将轮子安装到编码器上。这对于小轮子来说没问题,但对于大轮子来说就不好了,因为轮子越大,测量保真度就越低。编码器每转有预设的步数。因此,对于直接驱动轮,每一步覆盖的距离是 (pi * 轮子直径) / ENC_STEPS_PER_REV,这也是最小测量距离。我本可以用更小的轮子,但我觉得它不符合我的卷尺式构想,而且我从我的Digital-Multi-Tool中知道,使用小轮子有点麻烦。也许将来我会用更小的轮子设计一个详细的测量工具。
所以,我知道我需要间接驱动编码器。使用齿轮似乎是最简单的方法,所以我在 Fusion 360 中旋转了几个小齿轮,看看哪种方法可行。最后,我决定水平安装编码器,将其连接到更大的外齿轮上,我将其尺寸调整为与普通卷尺直径大致相同。这为其他电子设备提供了足够的内部空间,但让我将 DMW 的厚度保持在最低水平。我还认为,我不仅可以使用上部和下部外面板将 DMW 保持在一起,还可以将其用作外轮的轴承表面,使其平稳运行。为了降低厚度,我不得不使用 3 毫米的小球,这似乎在价格、可用性和易用性方面取得了很好的折衷(处理一堆 1 毫米的球会很糟糕!)
测试打印了几个较小的齿轮以检查打印机的局限性后,我设置了内齿轮尺寸并转移到 PCB 上。
我根据我的Digital-Level制作了 PCB ,重复使用了大部分组件和设计元素(您可以在Instructable的第 1 步中阅读这些内容)。我确实必须使用直角接头以非常规的方式安装几个部件(有关详细信息,请参阅步骤 3 和 8),但在 CAD 和 PCB 之间来回反复进行一些操作以使所有部件都适合 DMW 设计后,设计就完成了。
编码器组装1








我们将从组装编码器轴和齿轮开始。
如果您还没有这样做,您应该打印上一步中 DMW 装配图中所示的所有零件。
首先将直径为 1/16 英寸的金属棒切割成约 14 毫米长的部分。然后将金属棒插入并粘合到小内齿轮中,如图所示。齿轮的一侧会有一个凸起的小圆圈。插入后,该圆圈应朝向金属棒的长边
下一步比较麻烦,所以你可能需要尝试几次。我建议买几个备用编码器以防万一。
将杆插入编码器的中央鼓孔,使齿轮抵靠编码器。您需要将杆粘到编码器的鼓上,但必须非常小心。编码器的鼓需要能够旋转以计算旋转次数,因此您必须避免将其粘到编码器的金属外壳上。我建议将少量强力胶注入编码器的孔中,然后插入杆。这应该可以最大限度地减少任何危险的溢出。
一旦所有东西都干了,您就应该能够自由旋转齿轮,这也应该能够转动编码器顶部的黑色鼓。您将能够看到它是否正常工作。您应该检查编码器和齿轮轴之间的连接是否足够牢固,以承受快速旋转。
关于编码器(可选):
编码器是测量旋转运动的常用方法。它们通常由一个带有某种标记的圆盘组成,可以是凹痕、狭缝、磁铁等。圆盘连接到旋转轴上,当轴旋转时,圆盘上的标记会经过某种传感器,记录旋转情况。
DMW 的鼠标编码器使用一系列凹痕来弯曲一对金属板,从而形成电路,产生电流脉冲。这就像在编码器转动时按下一对按钮一样。编码器用于跟踪 DMW 外轮的旋转并测量行进距离。它是 DMW 的唯一传感器。
大多数编码器都是正交编码器,可以区分正向和反向旋转。它们通过偏移两组标记来实现这一点,即一组标记“关闭”,而另一组标记“打开”。因此,无论哪个标记首先“打开”,都会决定运动的方向。
由于需要精确计数,编码器通常连接到微控制器的中断引脚。这样,无论微控制器正在做什么,您都可以在后台记录它们的输出。
编码器组装2




取出编码器分线板 PCB,并焊接两个 47K 电阻,如图所示。这些电阻用于限制流向编码器的电流。
接下来,将上一步组装好的编码器和齿轮机构焊接到PCB上。编码器应与47K电阻位于同一侧。
该 PCB 稍后将连接到主 DMW PCB。它是独立的,因此可以以直角安装,使编码器的齿轮能够与外测量轮啮合。
PCB组装1





取出 DMW 的主 PCB,并将 1K、100K 和 1uf 电阻/电容焊接到左上角的焊盘上,如图所示。这些电阻/电容构成了 DMW 按钮的去抖动电路。
接下来,翻转 PCB 板,取出你的 SSD1306 OLED 显示屏。据我所知,常见的 SSD1306 OLED 板有两种不同的版本。两者功能相同,只是有点烦人,它们的 GND 和 VCC 引脚互换了。为了兼容这两种类型,DMW 的 PCB 板上有一组跳线垫,可以切换引脚顺序。如图所示,将 DMW 的通孔与 SSD1306 上的引脚对齐,并焊接跳线垫以匹配。确保不要将三个跳线垫全部桥接,否则你的 OLED 可能会烧坏!
PCB组装2









现在我们将编码器 PCB 连接到主 DMW PCB。为此,首先将编码器 PCB 插入 DMW PCB 上标有编码器的插槽。编码器的杆应穿过 DMW PCB 上的相应孔,如图所示。编码器的齿轮侧应位于 DMW PCB 的底部。
接下来,取四个直角 2.54 毫米公头,并将长边针脚滑入编码器 PCB 上的通孔。短头针脚应朝向 DMW PCB。您需要将编码器 PCB 倾斜到针脚上。
您应该能够将短接头针推入 DMW PCB 上相应的通孔中(如图所示),让编码器 PCB 与 DMW PCB 成直角。
保持编码器 PCB 处于直角,将接头焊接到两个板上。
焊接后,应剪掉多余的针脚。您还可以修剪编码器的杆。
PCB组装3





接下来,将 2.54 毫米公头焊接到 Arduino Pro-Mini 和 TP-4056 板上。
确保使用与 Pro-Mini 相匹配的 A4-7 针脚方向(我的是沿着板子底部排成一排,但有些是沿着一个边缘成对放置)
您需要为 TP-4056 板使用单接头。请勿将接头焊接到 B+ 和 B- 通孔。
然后,如图所示,将 Arduino Pro-Mini、其编程头和 TP-4056 板焊接到位。
编程接头引脚的长脚应朝上。
最后,剪掉多余的引脚长度,但不要修剪编程引脚!
Arduino Pro-Mini 是 DMW 的大脑;它监控编码器和按钮,同时将数据输出到 OLED 显示屏。
TP-4056 是一种常见的 LiPo 电池充电器板/集成电路。它将电池连接到 DMW PCB,并在管理充电的同时保护电池免受损坏。
PCB组装4






接下来,如图所示将 OLED 显示屏焊接到位。仔细检查之前焊接的 GND 和 VCC 焊盘是否与显示屏上的焊盘匹配。
按照 PCB 上的指示将按钮和滑动开关焊接到位。您必须将开关的侧面突出部分折断。
剪掉多余的针长。
最后,将 3D 打印的开关盖粘贴到开关上。忽略步骤图中的 USB 板,我们将在下一步中添加它。
PCB组装5








接下来我们将添加 USB 分线板。它用于为 LiPo 电池充电,并通过 DMW 的 PCB 连接到 TP-4056 的 + 和 - 焊盘。它基本上是 TP-4056 自己的 USB 连接器的替代品,一旦 DMW 组装完毕,该连接器就无法访问。
USB 板的安装方式与步骤 5 中的编码器 PCB 类似。
首先将 USB 板插入 DMW PCB 上的 USB 插槽。USB 应与 Arduino 和 OLED 位于同一侧。如图所示,USB 应面向编码器的 PCB。您应确认 USB 板的 GND 和 VCC 通孔与 DMW PCB 上的 IN- 和 IN+ 通孔对齐。
与编码器 PCB 一样,您应该能够将一组或直角接头滑入 DMW PCB 上的通孔。如图所示,接头的长脚应插入 DMW PCB,而短脚应朝向 USB PCB。
将短脚推入 USB PCB 的通孔,然后将接头和 USB 尽可能推入 DMW PCB。
将 USB PCB 板与 DMW PCB 保持直角,将接头焊接到两个板上。
最后,剪掉多余的针长。
PCB组装6







将 DMW 的 PCB 翻转过来,并用热胶将 LiPo 电池固定在 PCB 的中心位置。您可能需要在电池下方添加一块纸板,以保护电池免受 Arduino 针脚的损坏。确保电池的引线朝向电路板的 TP-4056 端。
接下来,剪断并剥去电池的正极和负极线。为避免电池短路,我建议一次只剥去和焊接一根电线。如图所示,将电线穿过 PCB 上的孔,然后将其焊接到 TP-4056 上的 B+ 和 B- 焊盘上。电池的正极线应连接到 B+,负极线应连接到 B-。焊接前,应使用万用表确认每根电线的极性。
至此,PCB 已完成。现在我们将开始组装外壳和车轮。
在继续之前,您应该跳到代码部分并上传代码。如果一切组装正确,DMW 应该开始工作(切换滑动开关以将其打开)。旋转编码器的齿轮应该会改变显示屏上显示的测量值。
最终组装1





电子设备完成后,我们将进入 DMW 的最终组装。
开始之前,您应该打印出步骤 2 中的装配图上所示的所有零件。
开始组装时,如图所示,将一块透明的丙烯酸方块粘到顶板上。应避免使用强力胶,因为它会使丙烯酸起雾。该方块的主要用途是保护 OLED 显示屏,因为它们很容易破裂。
接下来,我们将为外齿圈添加一些抓地力。我们希望它具有抓地力强的表面,这样它即使在光滑的表面上也能轻松滚动。为此,您有两个选择:要么使用柔性细丝打印出车轮抓地力并将其滑过齿圈,要么用抓地胶带包裹齿圈(在耗材中链接)。我手边没有任何柔性细丝,所以我用了抓地胶带。抓地胶带粘在自己身上最好,所以你需要缠绕两到三层。让它干燥一会儿。
最终组装2








现在我们开始把所有部分组装起来。
取下底板,将 8mm M2 螺钉穿过四个支撑柱。然后将底板放平,并将 3mm 滚珠轴承添加到其外槽中(如图所示)。再滴几滴轻油。
接下来,将外齿圈滑到板上。齿圈上的凹槽应靠在滚珠轴承上,以使齿圈能够平稳旋转。确保齿轮齿位于齿圈的底部,如图所示。
现在,将第二组滚珠轴承放入外齿圈顶部的凹槽中。像以前一样添加几滴轻油。
最终组装3




这是组装的最后一步。
首先将顶板放在 PCB 上。PCB 的按钮和开关应适合顶板的孔,丙烯酸方块下的切口应与 OLED 显示屏对齐。
顶板的外槽应支撑外齿圈中的滚珠轴承,以使齿圈能够自由旋转。
下一步有点棘手。您需要轻轻抬起并握住顶板和底板,不要让任何滚珠轴承掉出来。抓住板后,将底板上的 M2 螺钉拧入顶板,将两块板绑在一起。调整松紧度,使外轮不会卡住。
如果遇到麻烦,您可以反向组装,从顶板开始,到底部结束,这样螺丝孔就朝上。您必须在顶板下面放置一些东西来支撑它,否则 PCB 上的按钮和开关会伸出来,很难保持一切水平。
您可以选择使用两个 5+mm M2 螺丝将皮带夹添加到 DMW 的背面。
此时 DMW 已接近完成,您只需要上传代码并校准车轮。
最终组装4





这是组装的最后一步。
首先将顶板放在 PCB 上。PCB 的按钮和开关应适合顶板的孔,丙烯酸方块下的切口应与 OLED 显示屏对齐。
顶板的外槽应支撑外齿圈中的滚珠轴承,以使齿圈能够自由旋转。
下一步有点棘手。您需要轻轻抬起并握住顶板和底板,不要让任何滚珠轴承掉出来。抓住板后,将底板上的 M2 螺钉拧入顶板,将两块板绑在一起。调整松紧度,使外轮不会卡住。
如果遇到麻烦,您可以反向组装,从顶板开始,到底部结束,这样螺丝孔就朝上。您必须在顶板下面放置一些东西来支撑它,否则 PCB 上的按钮和开关会伸出来,很难保持一切水平。
您可以选择使用两个 5+mm M2 螺丝将皮带夹添加到 DMW 的背面。
此时 DMW 已接近完成,您只需要上传代码并校准车轮。
代码

您可以在我的 Github 上找到代码:这里。
您需要手动或使用 Arduino IDE 的库管理器安装以下库:
编码器(Paul Stoffregen)
Adafruit 的 SSD1306 库
电压参考(Roberto Lo Giacco)
我感谢Adafruit、Paul Stoffregen和Roberto Lo Giacco为创建这些库所做的工作。
要上传代码,您需要将 FTDI 编程电缆连接到 Arduino pro-mini 上方的六针接头。FTDI 电缆应该有一根黑线,或者某种用于定位的标记。将电缆插入接头时,黑线应该滑过 DMW PCB 上标有“blk”的引脚。这是接头上最左边的引脚。如果您正确插入,Arduino 上的电源 LED 应该会亮起,否则您必须反转电缆。
您也可以按照此处所述使用 Arduino Uno 上传代码。
无论使用哪种方法,您都应该能够像上传到任何其他 Arduino 一样上传代码。上传时,请确保在工具菜单下选择 Arduino Pro-Mini 5V 作为主板。
如果您无法上传代码,您可能必须使用工具菜单将开发板设置为 Arduino Uno。












