亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺
严格,15 美元的墙上绘图仪

组件和用品

Arduino UNO
× 1
28BYJ-48 带驱动器的步进电机
× 2
TSOP 4838 红外接收器
× 1
SPI Reader Micro SD 存储卡读卡器
× 1
SG90 微伺服电机
× 1

必要的工具和机器

3D 打印机(通用)
烙铁(通用)

应用和在线服务

Arduino IDE

关于这个项目

背景

我不太记得它是什么时候开始的,但我想大约是 1999 年左右。我和一个对机器人和电子领域很感兴趣的朋友正在讨论构建一个可以在白板上绘图的机器人。当然,当时我们从来没有时间做任何严肃的事情,爱好者微控制器的生态系统不是今天的样子。

2002 年,我的朋友向我展示了 Jürg Lehni 和 Uli Franke - Hektor 的出色作品。我很高兴看到类似于我们一直梦想建造的东西被实际建造并与世界分享!我很平静。

一段时间后,我记得向某人展示了 Hektor 项目网站,表示我认为它是多么棒。这一次,虽然我开始更多地查看细节,但意识到它缺少我最初设想的壁式绘图仪具有的属性。我希望它是独立的,所有东西都在一个单元中,只需用电线将它连接到墙壁。如果我没记错的话,此时我研究了步进电机的重量,意识到我的想法不会成功。

时间过去了,在业余机器人领域发生了一些事情。那是 2014 年,我一直在使用 Arduinos 和 RC-servos 进行各种相机控制项目,我可以使用 3D 打印,实际上还有一些空闲时间(!?!)。在偶然发现廉价的 28BYJ-48 步进电机后,我确切地知道我要构建什么:

最便宜的简约壁式绘图仪。

第一次尝试

在等了五周左右之后,对于从中国订购的零件,我开始着手构建绘图仪。我试图制作一个尽可能紧凑的骨架,以适应 Arduino Uno、步进器、伺服器和电池。我不记得有多少愚蠢的,我的意思是不那么聪明的设计,我在 OpenSCAD 之前做了一分钱。 你必须越线!

拥有交叉几何形状在保持墙上的正确位置方面具有巨大的好处。缺点是围绕垂直轴旋转的稳定性较差。这是通过在绘图仪的角落添加一些拉链来解决的,调整后可以防止旋转。

第一个绘图员 硬件看起来像下图。在我寻求尽可能便宜的零件时,我选择使用缝纫线进行导航和消除重力。螺纹穿过打印件中的小孔在 3D 打印底盘的顶部交叉。正如(几乎)所见,让线从笔和电线上干净地运行是一种具有挑战性的几何结构(图中缺少从 Arduino 到右步进驱动器的电缆,因此看起来没有以前那么糟糕)。通过RC伺服将整个绘图仪推离墙壁,将笔从绘图表面抬起。

第一个绘图仪在其 Arduino 程序中编写了硬编码设计。绘图仪的设置是通过在每一侧展开一米长的线并将它们固定一米来完成的。通过这种设置,绘图仪在开机时就知道坐标系,并且可以开始在其内存中绘制路径。它有效,但使用起来很混乱。更改设计时必须重新刷新 Arduino 并不令人愉快。被限制在一米视差设置也令人沮丧。

不过,它是一个很好的平台,可以更好地理解问题空间。一些快速学习:

  • 步进电机不是那么强大 - 线轴太大 .
  • 笔尖从弦的交叉处偏移 - Wicked Wobbliness

这些问题的好处是它们迫使我付出一些努力来实现合理的加速和制动......

进化

绘图仪二号 (封面图片中的白色)有一些改进:

  • 较小的线轴。
  • 线轴移动到笔上方,以便更好地走线并减少钟摆运动。
  • 电子产品更易于使用。
  • 用于存储要绘制的内容的 SD 卡。
  • 新的设置过程允许锚点之间的距离可变。
  • 红外线接收器,能够从遥控器控制所有一切。

添加 SD 卡读卡器和 IR 接收器比我最初预期的要容易得多。这是其中之一“我为什么不从一开始就这样做”-时刻。新的设置过程运行得非常好,并且为绘制大小图提供了更大的灵活性。迄今为止最大的地块大约有 2.5 米宽。

设置是通过使用遥控器导航绘图仪来完成的。第一个标记位置A ,然后移动到位置 B 并标记它。我在左右缝纫线上放置了 20 厘米的标记,以避免需要任何手动测量。距离m 仅在从 A 移动时计算左侧步进器上的步数 B .一旦绘图员知道d 并且它的当前位置在 B 您可以在锚点之间和下方的空间中随意移动并绘制任何位置。

绘图仪三号 (下面视频中的橙色)与其前身非常相似,只是有一些变化:

  • 所有电子产品都是为 Arduino 设计的。
  • 电池电量看门狗,允许“暂停 - 更换电池 - 恢复”。

这都是好意,但是。将步进驱动器 IC:s 直接放在屏蔽上,跳过步进器附带的驱动器,意味着不再有 LED 闪烁。看着很难过。超级无聊。此外,Arduino 的板载 LED 隐藏在防护罩后面,隐藏了红外接收器接收时方便的闪烁,从而使您不确定是否按下了校准按钮。电池电量测量似乎是个好主意,但实际上我总是求助于使用有线电源进行长时间运行的绘图。

绘图仪四号 (绝妙的!)是作为给我兄弟的生日礼物而建造的。它是迄今为止最漂亮的一款,采用盾牌式电子设备制造,但在其所有荣耀中都可以看到闪烁的驱动程序。请注意,为了美观,电缆会留出不必要的长度!

绘图仪五号 (MacGyver 版)实际上只是作为此项目描述的概念证明而构建的。我想表明您可以在没有任何花哨工具的情况下构建这样的绘图仪。我坐在我的车库里,环顾四周,看看我可以用什么来建造它。扎线(用于连接钢筋的软金属线)是我的第一个明显选择。在寻找它时,我发现了一卷风管带,并认为这可以节省我的时间并提供更多的稳定性。拉链和胶带也在我的清单上,但不是必需的。我唯一无法真正弄清楚的是如何不用太多工作就制作一些好的线轴。我回到屋子里喝咖啡,就在那里,牛奶容器的盖子!老实说,为绘图仪 5 构建框架所花费的时间比 3D 打印原始设计所花费的时间要少。它与我构建的其他产品一样好(至少)。

绘图仪六号

等等,什么?不知何故,我碰巧又建了一个。没办法。一些困扰我的事情需要解决。由于这里的一些评论也有所改进。

  • 绘图仪的 3D 打印尺寸太大且速度太慢。
  • 移动笔而不是整个绘图仪似乎至少值得一试。
  • 将伺服和红外接收器移至“模拟”引脚将允许串行调试! (感谢 jrcTexas 指出我可以!)

所以,这是结果:

那么,这个新东西的效果如何?好和坏。总体而言,这些变化感觉良好,但存在一个问题。由于笔没有固定在框架上,它在绘图时会稍微摆动。这使得精度比上一代差。巨大的好处是清除数字 IO 引脚 0-1,以便它们可用于调试。这让生活变得更加轻松!

我还开始对步进器进行一些压力测试,以找出如何不遗漏步骤:

从压力测试中得出的结论是,我需要放慢一点速度以获得足够的扭矩。我还根据绘图仪在墙上的位置计算了实际的拉力:

我可能会跟进压力测试,以找出不同的步进顺序和电压如何发挥作用。总有一天。

使用绘图仪

我制作了一个视频,展示了设置和绘图在现实生活和实时中是如何工作的。

从视频中可以看出,设置非常简单,只需很少的时间。设置的典型挑战是找到好的锚点。对于白板,我主要使用小吸盘,我将一圈缝纫线或类似物粘在上面,然后用回形针挂住绘图仪。锚点的一个重要方面是让线尽可能靠近墙壁,以获得从笔到墙壁的更好压力。

另一个警告是在广阔的地块上进行高位绘图。当拉动螺纹需要太大的扭矩时,步进器将开始丢失步骤,从而使绘图仪无法精确定位,因为没有编码器可以提供帮助。所以一般的建议是:高挂,低印。

绘图仪硬件

构建绘图仪非常简单,看起来很像大多数其他 Arduino 项目。你有一个 Arduino Uno,一些你想要它使用的组件和一堆电缆来连接它。

从原理图中可以看出,您将使用几乎所有的数字引脚,然后可能会使用一些模拟引脚,例如。希望监控电池电量。对此的一个警告是,您最终将使用引脚 0-1,它兼作 TX/RX。 避免煎炸东西 您将需要断开所有连接 当你对 Arduino 进行编程时!这就是我在我最近的绘图仪上安装所有电子设备的原因,我可以在编程时将其拆下。

RC 伺服几乎可以是任何尺寸的任何伺服。您只需要有创意并以某种方式安装它,以便它可以将绘图仪推离(或不推开)墙壁。

步进电机和驱动器可能会切换到其他类型,但小型 28BYJ-48 非常方便。不过,它们并不是那么强大,我很想建造一个速度更快的绘图仪。电机的额定电压为 5V,但我很高兴地忽略了这一点,并毫无问题地为它们提供了 5-9V 之间的所有电压。它们确实很热,但我还没有炸过。

micro-sd 卡模块可直接通过 SPI 接口引脚或数字引脚 10-13 连接到 Arduino。

IR 接收器 TSOP 4838 也可以很好地直接连接到 Arduino。

我的第三个和第四个绘图仪有一个电池电量看门狗,通过添加到模拟输入的电阻分压器。我还以为我将以类似的方式添加步进器的温度监控。我的建议是跳过它。

我强烈建议您一次构建和测试一件事。不要组装所有东西,将您的图形放在 SD 上并希望立即绘制。我建议执行以下操作:

  • 首先测试红外接收器。使用 IRRemote 库附带的 IRRecvDump 示例。无论如何,您都需要使用它来记录遥控钥匙的代码。
  • 测试您的伺服器。例如,使用 Servo 库中的 Sweep 示例。
  • 测试您的 SD 卡。试用 SD 库的示例。
  • 测试控制步进器。试用 Stepper 库的示例。
  • 当您对上述部分感到满意​​时,将绘图仪程序刷入 Arduino,然后连接所有组件。 (暂时不要组装和制作任何漂亮的东西)
  • 启动 Arduino,看看会发生什么。如果一切正常,伺服应该在通电后立即进行一点扫描。
  • 尝试从遥控器控制步进器。确保你弄清楚哪个步进器是左边的,哪个是正确的。确保将它们连接起来,以便“REEL_IN”按钮实际拉入字符串而不是相反。我给你 50% 的机会,你需要在软件或硬件中翻转引脚的顺序。 (不值得花太多心思,只需转动连接器就很容易了。信任,但要验证!
  • 当您对上述所有工作充满信心时,您就可以将所有东西组装成绘图仪一样的形式并尝试将其挂在墙上!

我不会在这里给出任何关于零件组装的超级详细说明。最好探索您的硬件并找到适合您的解决方案。受到上面“MacGyver”绘图仪的启发,保持简单。你以后总是可以变得花哨和完美。下面是我谈论一些硬件的非常不连贯的视频。您还需要熟悉该软件并制作用于绘图的文件,请参见下文。

绘图软件

所有软件都可以在 GitHub 上找到。我为代码的状态道歉,它真的是一个黑客。也许我会花时间清理它,但很可能你会在这之前查看它。对不起。

绘图仪上的软件几乎可以做两件事:

  • 允许从遥控器进行导航和设置
  • 绘制存储在 SD 卡上的 .svg 文件的内容。

由于 Arduino Uno 上的程序内存非常有限,因此采用了许多丑陋的快捷方式来将代码放入内存中。对于第一台没有 SD 卡且图形也需要直接编程到 Arduino 中的绘图仪来说尤其如此。 .svg 的解析极其有限,只能处理带线的路径(无曲线),并且要求它是我使用 INKSCAPE 输出的 .svg 的特定方言。

.svg 文件以 1.svg、2.svg 等形式存放在 SD 卡的顶层文件夹中。通过按遥控器上的相应按钮选择要绘制的文件。这使我可以为绘图仪准备一些我可以快速丰富人们的白板的收藏夹。

Arduino IDE 已用于构建和编程控制器。唯一使用的附加库是 IRRemote(由 shirriff)。

创建可绘图文件

可能有数百种方法可以创建将绘图的 .svg 文件,但我在这里只介绍一种:

  • 使用 INKSCAPE
  • 绘制任何你想要的并将其转换为路径“路径->对象到路径”
  • 选择“按节点编辑路径 (F2)”
  • 选择所有单独的路径和节点。 Ctrl-A 两个
  • 通过“扩展->修改路径->展平贝塞尔曲线”转换为线条
  • 另存为“Inkscape SVG”
  • 在模拟器中运行,见下文

模拟器

还有一件事!有模拟器。在尝试打印之前,或多或少必须通过模拟器运行您想要执行的任何绘图。这主要是必需的,因为 .svg 解析太糟糕了,绘图仪可能无法正确解释某些内容。

模拟器通过为 osx 或 linux 编译绘图仪代码并将“digitalWrite”调用替换为打印到标准输出(时间戳、引脚、状态),然后通过管道传输到可视化 UI 中。

模拟器是在我遇到一个错误后编写的,该错误导致 2 小时的打印在 95% 左右后悲惨地搞砸了。我对发生的事情完全不知所措,并意识到我需要某种方式来调试它。结果证明这是一个浮点解析错误,由 .svg 中的一个数字引起的小数位数荒谬。 (我做了自己的解析,因为库函数不适合内存)。这是一个很大的错误,因为它迫使我制作模拟器。

在开发过程中使用模拟器会有很大帮助。它可以比实时运行快得多,非常方便。它还输出实时运行时绘图实际需要多长时间。模拟器代码旁边有一个关于如何使用它的自述文件。

未来的改进

以下是我脑海中关于可以改进的内容的列表:

  • 停止在绘图仪上解析.svg,在计算机上安装一个真正的解析器并为绘图仪创建一个好的格式。
  • 更好的突破,目前的软件只读取前面的一个线段,如果轻微的转弯变成急转弯,有时会太少。
  • 编码器或某种类型的反馈,以避免在丢失步骤时迷路..
  • 编写适当的干净软件。
  • 使用支持 WiFi 的控制器并使用手机而不是遥控器。

一些最后的话

正如您现在可能理解的那样,我花了很多时间在这个项目上,主要是很久以前。我仍然认为玩起来很有趣,我有很多想法可以改进,新的变化和新的墙壁来装饰。但是我就是没有时间,还有很多其他的项目和事情,比如家庭和工作。

我真正希望的是,如果互联网上的一些优秀人士从阅读本文中获得一些东西,并为自己的项目获得灵感。如果你们中的一些人建立自己的绘图仪并使它们工作,我也会很高兴!

虽然我认为我成功地构建了一个简约的绘图仪,但我没有设法将成本控制在 10 美元以下,因为我为自己设定了目标。但随着零件越来越便宜,它可能会在一年左右的时间里出现......

哦,还有一件事。请不要因为意大利面代码而杀了我。从来不是写出来分享的,我当时忙着在墙上画画,根本不在乎代码。无论如何我决定分享它,所以要为此感到高兴。

一路顺风,

弗雷德里克

代码

严格
壁式绘图仪 Stringent 的代码、文档和 cad 图纸。https://github.com/snebragd/stringent

定制零件和外壳

为基地上传了一个新的 stl,旧的不知何故坏了。绘图仪的新基地。占地面积更小 -> 打印量更少。伺服动作现在是移动笔而不是将绘图仪推离墙壁。

示意图

简单的电子原理图

制造工艺

  1. 使用 ACS712 测量任何交流电流
  2. Spectrino:TinyML Arduino 和基于物联网的无接触解决方案
  3. Arduino Audio Reactive Desk Light
  4. 自动滴滤咖啡机
  5. 棒球帽
  6. Arduino 动力服务电梯