首页 >> 除尘布袋

简易CNC控制器,可从SD卡读取G代码,在Indiegogo上查看龟鳖饲料

发布时间:2022-10-09 23:28:23 来源:圣源机械网
简易CNC控制器,可从SD卡读取G代码,在Indiegogo上查看

该控制器是为小型爱好CNC机床设计的,无需将PC连接到CNC机床。 只需将您的g代码放入SD卡,然后按照屏幕上的说明进行操作即可。

该控制器与通用Mach3 g代码一起使用。到目前为止,已经用ArtCam,Free Mill和Mesh Cam对其进行了测试,它们可以生成4轴g代码。

这个项目是几年前开始的,当时得到了一个多功能机器套件。该工具包使您可以构建各种机床,包括车床和铣床。显然,我想使套件自动化,但对CNC或CAM软件一无所知。

大多数业余CNC机器似乎都使用Mach3软件和并行端口接口来控制它们,但还是希望我的机器在不连接计算机的情况下运行。有RAMPS PCB可以让Arduino运行一台机器,但我想为对电子产品一无所知的完整新手创建更简单的东西。

我在电子方面表现相当不错,并且一直在学习使用Arduino,所以决定制作自己的独立控制器。从蜘蛛控制器,T6963 240 x 128 LCD和SD卡插槽开始。此设置使我可以学习如何使用SD卡和T6963库。LCD显示屏包含6x8字符集,可为您提供40 x 16的文本显示。我不介意使用更高级的彩色显示屏,因为除了您刚开始工作时,您不会花很多时间看它。

一旦弄清了基础知识,就可以制作一块PCB。第一个原型使用Allegro A4988步进电机驱动器,该驱动器应该能够在每个输出上提供高达2A的电流。

A4988是表面贴装IC,实际上需要散热片或4层PCB,后者使用背面层作为散热片,如数据表中所示,以提供完整的2A。我发现在芯片因热过载而关闭之前,得到的电流不能超过1.5A。还发现当前硬件扫描按钮和限位开关的方式存在问题。

当设计新控制器时,新增了一点东西,以使MCU I / O引脚以允许软件使用端口操作的方式进行分组。这使软件在控制电动机和扫描按钮/限位开关时运行得更快。它还使人可以访问Arduino软件通常不允许您访问的其他I / O引脚。

在这一点上,应该提到的是,我是不喜欢未使用的I / O引脚的人之一,并且在寻找额外引脚的用途(例如监视电动机保险丝,热过载引脚等)时,走偏了!使用了86个I / O引脚,并希望得到更多。

最后,我添加了一个通过I2C总线链接的ATmega8A处理器。该处理器专用于主轴速度控制,并尝试在负载变化时保持恒定的切削刀具速度,还提供了额外的模拟I / O引脚来监控空气温度,散热器温度和主轴电机电流,可用于检测停转的马达。


由于使用了更大的东芝TB6560步进驱动器,每个驱动器的额定电流为3.5A,并且采用拉链封装,因此更适合安装在散热器上,因此新的MkII PCB的尺寸要大一些。

使用了一个隧道散热器,该散热器的内部有散热片,并有两个40mm的冷却风扇,每端各一个。即使一个风扇死了,另一风扇也可以防止过热,直到更换了弱风扇为止。

您可能已经在照片中注意到,我已经为蓝牙和Xbee / WiFly模块添加了插槽。这个意图是允许无线监控和g代码上传。到目前为止,由于需要将g代码写入SD卡,因此g代码上传一直是个问题。除非以极慢的速度传输数据,否则数据块会丢失。在找到解决问题的方法之前,无线功能仅适用于无线控制和发送信息,例如工作状态。

控制器硬件已完成,现在正在使用该软件。手边有一个适用于3轴机床的版本和一个针对4轴的实验版本。有时间的话会把它们结合起来。支持第5轴,但目前没有可生成5轴g代码供我测试的凸轮软件。下面是在使用MeshCam测试第4轴软件以生成g代码时制作的佛像。

?硬件规格:

电源:12V-36V,最大25A5个TB6560步进电机驱动器,每个驱动器额定电流为3.5A,具有电流限制和热过载保护2个5A主轴电机输出(可逆),带有电流感应,PTC保险丝和保险丝熔断检测2个2A冷却液泵/鼓风机输出,带PTC保险丝和保险丝熔断检测240 x 128 LCD显示屏5x家用开关输入5个限位开关输入2个主轴电机速度传感器输入或1个速度传感器和1个触摸传感器紧急停止会切断所有电机的电源安全键锁定功能可以防止孩子在不看时按下错误的按钮SD卡插槽CP2102 USB接口,用于软件更新/数据传输可选蓝牙和Xbee / WiFly模块的插槽DS1307实时时钟适用于5V和3.3V器件的I2C总线-有助于增加其他硬件

软件:

这对是最难的部分,但尚未完成。我以前从未使用过CNC机器或3D打印机,因此在不了解CNC机器,凸轮软件或g代码的情况下开始了该项目。我试图利用自己缺乏的经验使其他初学者尽可能简单。所有软件均已使用Arduino IDE编写。

处理g代码涉及4个基本步骤:

配置控制器选择g代码扫描g代码运行g代码

必须至少执行一次配置,以向控制器提供有关所连接机器的基本信息,例如每个轴的尺寸,分辨率和偏移量。前3个轴始终是X,Y和Z,但是第4个和第5个轴可以命名为A,B,C,V或W以适合您的g代码,如果不使用,则将其禁用。时间和日期设置也可以调整。

还有一些其他选项可用于更换工具和测量工具长度。通常,触摸传感器用于测量刀具长度,但是如果您没有触摸传感器,则还有第二种选择。该工具以低功率被驱动到床身中,导致电机失速。当工具升回到原始位置时,将计算步数以测量工具长度。

如果安装了蓝牙,Xbee或WiFly模块,则会自动检测到它。无线模块的配置屏幕还允许您配置它们。

选择G代码很容易解释,但是Arduino SD库使用较旧的8.3文件名格式。也就是说,文件名和目录名由8个字母数字字符组成,扩展名只有3个字母数字字符。较长的文件名将被缩短。由于显示器的分辨率低,这实际上是一件好事。它最多可以一次显示42个文件名。

然后,g代码会显示在屏幕上,如果需要检查它,可以滚动浏览它。

扫描G代码似乎有点不寻常。控制器在这里读取g代码,以确定是否存在任何问题,例如不受支持的命令将被忽略。它还确定作业的大小,并将其与配置数据进行比较,以确定机器是否可以处理作业。如果刀具长度未知,则控制器将首先测量刀具长度,以确定Z轴的最大间隙。

扫描g代码后,状态屏幕将显示基本信息,例如文件大小,g代码的行数以及有关作业的尺寸信息。任何问题都将突出显示。然后显示刀具路径的3D预览。这对于检查作业的方向很有用,如果需要,控制器将让您选择对作业进行镜像。

运行G代码也是不言自明的,但是有一些选择。首先,如果未选择任何文件,则按运行将使机器归位。导航按钮可用于点动轴。这对于在加载原料时将切削工具向一侧移动很有用。它也用于编程作业和刀具补偿。

处理作业时,其当前状态存储在DS1307 RTC的NV RAM中。重新启动控制器后,将调出先前的作业状态,使您可以恢复作业。也可以手动选择恢复点,或者可以从头开始作业。

复杂的作业可能需要更改一些工具。当需要换刀时,控制器会将切削刀具移动到合适的位置,并等待换刀。为安全起见,将要求您紧急停车。更换工具并释放紧急停止后,将测量工具长度并恢复工作。

来源:hackaday.io
电路城原创内容,未经允许,不得转载!
板卡评测合作邮箱:yanfen.mo@supplyframe.cn
冰箱门关不严了怎么办
洗衣机嘎吱响怎么回事
油烟机声音太大怎么办
为什么电视老是闪烁
友情链接