在家进行PCB铣削

图片


我不喜欢蚀刻印刷电路板。 好吧,我不喜欢大惊小怪的过程。 在那里打印,在这里熨烫,曝光光刻胶-每次都是故事。 然后考虑在哪里排放氯化铁。 我不认为这是一种负担得起且简单的方法,但我个人想避免使用它。 然后我的幸福发生了:我完成了CNC铣床。 立刻产生了想法:但不是是否尝试研磨印刷电路板。 言归正传。 我从不堪重负的esp-wroom-02中绘制了一个简单的适配器,然后开始了对印刷电路板铣削的研究。 特制小轨道-0.5毫米。 如果这些方法无法解决,那么对于该技术来说该如何做呢。


在这里,您需要一点题外话。 有几种方法可以获取一组用于从cad研磨印刷电路板的gcode。 我认为,它们取决于您使用的CAD系统。 如果您是Eagle的粉丝,那么可以使用专门且集成度高的解决方案: PCB-GCode ,可以在chilipeppr中直接打开BRD文件。 不幸的是,不久前,Autodesk更改了Eagle的许可政策,现在社区对此不太喜欢(您可以看到社区一位杰出代表意见 )。


由于我在重大假期每隔五年亲自制作一次印刷电路板,因此KiCAD足以让我进行设计。 我没有找到专门的便捷解决方案,但是有一种更通用的方法-使用gerber文件。 在这种情况下,一切都相对简单:以pcb,将所需的图层导出到gerber(无需镜像和其他魔术!), 运行pcb2gcode-并获得可以提供给铣刀的现成的nc文件。 与往常一样,现实是一种邪恶的感染,一切都变得更加复杂。


从Gerber文件获取Gcode


因此,我不打算描述如何获取Gerber文件,我想每个人都知道。 接下来,您需要运行pcb2gcode。 事实证明,它需要大约一百万个命令行选项才能产生可​​接受的结果。 原则上,他的文档还不错,我掌握了它,并弄清楚了如何以这种方式获取某种gcode,但我还是希望能轻松一点。 因为找到了pcb2gcode GUI 。 顾名思义,这是一个GUI,用于设置带有复选标记甚至预览的基本pcb2gcode参数。


图片


实际上,在此阶段已收到某种代码,您可以尝试进行铣削。 但是当我打勾时,事实证明该软件提供的深度默认值为0.05毫米。 因此,必须至少以高于此精度的精度将板安装在路由器中。 我不知道有人怎么拥有它,但是我的台式机带有明显更弯曲的铣刀。 想到的最简单的解决方案是将牺牲胶合板放在桌子上,在其中铣削一个口袋,使其达到板子的大小-理想的是将其放在铣刀的平面上。


对于那些已经掌握好路由器的人来说,这部分没有意思。 经过几次实验,我发现有必要在一个方向上铣削一个凹坑(例如,通过将其送入牙齿)并至少重叠30%。 Fusion 360首先给我带来的不胜枚举和来回开车的感觉。 就我而言,结果并不令人满意。


考虑到PCB的曲率


对齐该位置,我在其上粘贴了双面胶带,贴上了软沸石并开始研磨。 结果如下:


图片


如您所见,切割器在板的一侧几乎不接触铜,而在另一侧–切入板太深,而铣削了PCB屑。 仔细观察电路板本身,我发现它最初是不平坦的:略微弯曲,无论您遭受什么痛苦,其高度都会有些偏差。 然后,顺便说一下,我发现对于厚度大于0.8毫米的印刷电路板,±8%的公差被认为是正常的。


我想到的第一个选项是自动校准。 根据事物的逻辑-更容易的是,该板是镀铜的,切割器是钢的,一条导线连接到铜,另一条连接到切割器-在这里,您有一个现成的探针。 采取并建立表面。


我的机器是由grbl在便宜的中国盾牌上控制的。 Grbl在A5引脚上具有探针支持,但是由于某些原因,我的板上没有特殊的连接器。 仔细检查后,我仍然发现引脚A5输出到SPI端口连接器(标记为SCL),附近也有焊盘。 这种“传感器”有一个窍门-电线需要绞在一起。 在铣刀中,它非常容易拿起,如果没有它,传感器将不断产生误报。 即使编织后,它仍会继续,但是非常非常少。


图片


因此,传感器是由测试人员组装,测试的,那么重要的问题是如何检查grbl是否一切正常,并且我不会破坏单个雕刻机。 稍作谷歌搜索就表明他需要派出G38.2 Z-10 F5战队。


该团队说:开始以Z下降至–10(绝对或相对高度-取决于固件所处的模式)。 它将以5毫米/分钟的速度缓慢下降。 这是因为开发人员本身不保证下降会在触发传感器的那一刻(即不久之后)完全停止。 因此,最好慢慢走下去,以免一切都按时停下来,没有时间上船,所以不要玩耍。 最好通过将头部抬高到10 mm以上的高度并放下坐标系来执行第一次测试。 在这种情况下,即使一切都不起作用,并且您没有时间按下急停按钮,铣刀也不会便秘。 您可以执行两个测试:第一个-不执行任何操作(并且达到– 10 grbl时将发出“警报:探测失败”),第二个-当它出现故障时,用一些东西闭合电路并确保一切都停止了。


接下来,您需要找到一种有关如何实际测量矩阵并根据需要扭曲gcode的方法。 乍一看,pcb2gcode具有某种自动调平支持,但没有grbl支持。 有机会要求团队用手进行测试,但是您需要处理它,说实话,我太懒了。 有疑问的人可能会注意到,对于LinuxCNC,样本运行命令与grbl命令匹配。 但是随之而来的是无法弥补的区别:所有“成人” gcode解释器都将完成测试的结果保存到机器变量中,而grbl只是将值输出到端口。


仔细搜索表明仍然有很多其他选择,但是chillpeppr项目吸引了我的注意:


这是一个由两部分组成的系统,旨在与网上的铁一起使用。 第一个组件-用go编写的Serial JSON Server,在直接连接到硬件的机器上运行,并可以通过Web套接字控制串行端口。 第二个可以在您的浏览器中使用。 它们具有用于构建具有某些功能的小部件的完整框架,然后可以将其推送到页面上。 特别是,它们已经有一个现成的工作空间(一组小部件),用于grbl和tinyg。


chillpeppr具有自动调平支持。 而且,从外观上看,它比我以前使用的UniversalGcodeSender方便得多。 我把服务器放在服务器上,启动浏览器部分,花了半个小时试图弄清楚接口,在那儿加载我的主板的gcode并看到一些垃圾:


图片


看了pcb2gcode生成的gcode本身之后,我发现当命令(G1)在随后的行中不重复时,它只使用新的坐标来表示:


G00 X1.84843 Y34.97110 ( rapid move to begin. ) F100.00000 G01 Z-0.12000 G04 P0 ( dwell for no time -- G64 should not smooth over this point ) F200.00000 X1.84843 Y34.97110 X2.64622 Y34.17332 X2.69481 Y34.11185 X2.73962 Y34.00364 X2.74876 Y31.85178 X3.01828 Y31.84988 X3.06946 Y31.82249 X3.09684 Y31.77131 

从chilipeppr仅显示垂直运动的事实来看,他看到的是G01 Z-0.12线,但不了解F200之后的所有情况。 需要重做显式符号。 当然,您可以动手或归档一些后处理脚本。 但是还没有人取消G-Code Ripper ,它可以将复杂的gcode命令(例如相同的弧)击败成更简单的命令。 顺便说一句,他还知道如何在自动探针矩阵中弯曲gcode,但同样没有内置支持grbl的功能。 但是您可以进行相同的拆分。 标准设置非常适合我(除非在配置中必须提前将单位更改为mm)。 生成的文件开始在chilipeppr中正常显示:


图片


接下来,运行自动探针,不要忘记指定降低样本的距离及其深度。 就我而言,我表示应将其从1毫米降低至–2毫米。 下限不是很重要,可以将其设置为至少–10,但是我不建议这样做:几次我都没有成功设置开始测试的起点,而极限则不在测试范围之内。 如果深度较大,则雕刻机可能会损坏。 所以只是一个错误。 上边界的水平直接取决于它将测量表面多长时间。 就我而言,实际上,电路板几乎不会超过0.25毫米上下,但是1毫米某种程度上更可靠。 单击珍贵的运行,然后运行到路由器进行冥想:


图片


在chilipeppr界面中,出现了一个稍微测量的表面:


图片


在这里必须注意,Z中的所有值都应乘以50,以便更好地可视化所得表面。 这是一个自定义参数,但我认为10和50效果很好。 我经常碰到一个事实,即单点比您可能期望的要高得多。 就我个人而言,我将其归因于传感器抓住尖端并给出假阳性的事实。 chilipeppr的好处是您可以以json的形式卸载高度图,然后可以用手修复它,然后再用手加载它。 接下来,单击“将自动调整的GCode发送到工作区”按钮-正确的代码已经在Pepper中加载:


 N40 G1 X 2.6948 Y 34.1118 Z0.1047 (al new z) N41 G1 X 2.7396 Y 34.0036 Z0.1057 (al new z) N42 G1 X 2.7488 Y 31.8518 Z0.1077 (al new z) N43 G1 X 3.0183 Y 31.8499 Z0.1127 (al new z) N44 G1 X 3.0695 Y 31.8225 Z0.1137 (al new z) N45 G1 X 3.0968 Y 31.7713 Z0.1142 (al new z) 

Z代码移动已添加到代码中,这应补偿表面粗糙度。


选择铣削参数


我开始铣削,得到以下结果:


图片


在这里您可以一次看到三点:


  1. 表面粗糙度的问题消失了:所有东西都被切透(更精确地说,被刮擦)到几乎相同的深度,任何地方都没有缝隙,也没有地方埋得太多。
  2. 深度不足:0.05毫米对于该箔片显然是不够的。 顺便说一句,这些板子是速卖通中一些未知的野兽,铜的厚度并未在此处标出。 铜层是最常见的-从18到140微米(0.018-0.14毫米)。
  3. 雕刻机的跳动清晰可见。

关于深化。 可以轻松地将雕刻机降低至多深。 但是有一个特殊性。 圆锥形雕刻机的投影形状为三角形。 一方面,信息与工作点的夹角决定了工具的折断难度和寿命,而另一方面,角度越大,给定深度处的切削刃越宽。


图片


用于计算给定深度的切割宽度的公式如下所示(不适当地取自reprap.org并已修复):


 2 * penetration depth * tangens (tool tip angle) + tip width 

我们考虑一下:对于角度为10度,接触点为0.1毫米,深度为0.1毫米的雕刻机,切割宽度几乎为0.15毫米。 顺便说一下,基于此,我们可以估算出轨道之间的最小距离将使选定的雕刻机在选定厚度的金属箔上。 很好,即使您不需要在轨道之间形成很小的距离,也不要将切割器降低得太深,因为玻璃纤维甚至可以硬质合金切割器。


好吧,仍然有一个有趣的时刻。 假设我们有两条间隔为0.5毫米的轨道。 当我们运行pcb2gcode时,它将查看Toolpath偏移量参数的值(铣削时偏离轨道多少),并实际上在轨道之间进行两次通过,间隔为(0.5-2 * toolpath_offset)mm,在它们之间将存在(但是只需断开)一块铜,就会很丑。 如果将toolpath_offset设置为大于轨道之间的距离,则pcb2gcode将发出警告,但只会在轨道之间生成一条线。 通常,对于我的应用而言,这种行为是更可取的,因为履带较宽,所以切割器切割的更少-美观。 没错,smd组件可能存在问题,但这不太可能。


这种行为有一个明显的例子:如果您设置了很大的toolpath_offset,那么从Voronoi图的角度来看,我们会得到一块印刷电路板。 至少-它很漂亮;)您可以在我提供的pcb2gcode的第一个屏幕截图上看到效果。 它显示了外观。


现在关于雕刻机的跳动。 这就是我徒劳的称呼。 主轴一点也不差,当然也不会打那么重。 相反,雕刻机的笔尖在移动时会在点之间弯曲和跳跃,从而在此处产生带有点的奇怪图片。 第一个也是主要的想法是轧机没有足够的时间切入并因此跳跃。 通过简单的谷歌搜索,人们可以以约1000 mm / min的速度以50k转的主轴铣削印刷电路板。 我的主轴空载给出10k,我们可以假设必须以200 mm / min的速度切削。


结果与结论


考虑到所有这些因素,我测量了一块新的PCB,开始铣削并得到以下结果:


图片


顶部的与从铣刀出来的完全相同,底部的与用普通砂轮固定几次后完全相同。 如您所见,在三个地方,音轨都没有切穿。 通常,轨道的宽度在整个板上浮动。 这仍然需要解决,但是我假设是什么原因。 起初,我将板子固定在双面胶带上,然后经常脱落。 然后在几个地方,我抓住了螺丝头的边缘。 它似乎保持更好,但仍然发挥了一些作用。 我怀疑在铣削时将其压到该部位,因此实际上并未被切割。


图片


总的来说,这一切都有希望。 该过程完成后,DEM的构建大约需要五到七分钟,然后铣削本身需要几分钟。 看来您可以进一步尝试。 但是,您可以在同一台机器上进行钻孔。 仍然购买铆钉,就会有幸福! 如果主题很有趣,那么我可以写另一篇有关钻探,双边委员会等的文章。

Source: https://habr.com/ru/post/zh-CN402047/


All Articles