用手在家制作机器的想法并不新鲜。每个在家中考虑使用此类设备的人都应以其创作动机为指导。这对我来说是必要的,因为从本质上讲,我没有太多的直达手来制作或多或少的整体零件,而且常常要制造一个精确而复杂的零件,从而使机器能够很好地处理。总是有足够的新想法和实施想法,但是没有太多时间。
关于作者的简要介绍
4- , « », « », « ».
扰流板
. , . , , , . . , - , .
职权范围或出口预期
最终的铣床必须满足以下条件:- 拥有可接受的工作区域
- 具有可接受的轴向速度
- 用于加工中等硬度和高硬度的木材。理想地处理铝
机器的主要规则是刚性。机器的刚性越高,振动,反冲,下沉,弯曲和其他缺陷的影响就越小,这些缺陷会影响加工后的毛坯的质量。由于机器将完全在家里制造,因此唯一真正可以在家中如此数量地加工并且可以用来制造机器床的材料就是一棵树。当然有不同的类型。而且由于缺乏大笔资金,对于学生来说,发现的一切都将被用来创造。从本质上讲,这是一块带有较软树的钻头的样品板。虽然也有小片胶合板。什么是丰富的,那么它将被使用。还值得注意的是,将启动对计算机的什么控制。这里有一台非常古老的计算机,它的岸就正好用于这种目的。AMD Duron 1.2 GHz,RAM 768 MB,64 MB视频内存,HDD 20 GB。恰好适合这些目的。管理将在Linux CNC下进行。对于Win下的Mach3,不想智能地工作。他需要更多资源。发展历程
机器的开发将分为几个部分。- 步进电机控制器的开发
- 步进电机驱动器的开发
- 光电隔离设计
- 营养计划制定
应当立即说,机械零件的开发还不存在,因为没有太多的经验来开发和预期。因此,开发是在组装阶段立即进行的。步进电机控制器的开发
步进电机控制器将在PIC微控制器上开发。怎么了首先,有必要最终了解步进电机的工作原理,其次,它更有趣,其次,由于某种原因,同一块成品L297芯片的成本略高,结果证明,将其组装在微控制器上要便宜一些。
由于控制单片机是PIC16F630。它具有最小的外围和足够数量的支腿来控制。端口C用于直接输出控制脉冲。引脚A1,A2具有输入信号DIR,STEP。引脚A2在外部中断模式下使能,并且DIR像常规输入引脚一样工作。该控制器通过20 MHz的石英发射。该代码使用一个小的asm插入物用C编写,并在CCS C编译器上编译。#include <16f630.h>
#case
#FUSES NOWDT
#FUSES NOMCLR
#FUSES HS
#FUSES PUT
#FUSES BROWNOUT
#use delay(clock = 20 MHz)
#use fast_io(C)
#opt 9
#define DIR PIN_A1
#define CLK PIN_A2
#define LED PIN_A0
#zero_ram
const int steps[256] =
{
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101,
0b00000100,0b00000110,0b00000010,0b00001010,0b00001000,0b00001001,0b00000001,0b00000101
};
unsigned int8 nowStep = 0;
#INT_TIMER1
void LoadDrop_isr()
{
output_c(0);
}
#INT_EXT
void clk_isr()
{
#asm asis
BTFSC 05.1
INCF nowStep,F
BTFSS 05.1
DECF nowStep,F
#endasm
output_c(steps[nowStep]);
set_timer1(0);
}
void main()
{
output_a(0);
input_a();
set_tris_c(0);
output_c(0);
setup_comparator(NC_NC_NC_NC);
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
set_timer1(0);
ext_int_edge(L_TO_H);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
unsigned int16 blinkCounter = 0;
MAIN_LOOP:
if(!blinkCounter++)
output_toggle(LED);
goto MAIN_LOOP;
}
为了描述代码,从控制器的逻辑开始会更容易。控制器启动时,将进行熨斗的初始配置并包含中断。步骤编号存储在无符号的8位变量nowStep中,并且开头的编号为零。接下来,将在MAIN_LOOP中启动永久编程周期,其中仅会出现与引脚A0相连的LED闪烁的情况。为了什么首先,很明显,石头没有冻结,其次,特效!引脚A2配置为在上升沿用于外部中断。当在脚上记录一个事件时,将处理INT_EXT中断,并在其中切换下一步。为了显示下一步,依据输入的DIR,对nowStep步骤指针进行递增或递减操作。然后,从位置nowStep的步骤数组中,在端口中显示切换电机绕组的新组合。同样,在微控制器初始化开始时,定时器1被设置并启动,该定时器复位输出信号以防止电动机过热。设置信号后约100 ms,定时器将输出信号复位。也就是说,这纯粹是预防措施。在仿真中,有可能获得15 s的CLK信号周期,这对应于66.(6)KHz的频率。我认为,这还算不错,但是,进一步优化是可能的。步进电机驱动器的开发
无需走远。典型方案。该驱动程序是基于完成的驱动程序L298N构建的。
为什么使用电阻R1-R4?老实说,我不知道。最初,文档与L297一起进入电路,所有通信都没有电阻。但是,在Internet上,我发现线路上带有电阻的电路。我查看了L298N数据手册中的框图。所有的INPUT行都输入到反向输入AND元素。没有电阻,什么也不会发生。但这次我决定不冒险,以防万一插入。情况不会太糟,入口处前部的陡度将下降。该方案的其余部分重复了数据表中给出的方案。光电隔离设计
光耦合器板用于保护控制机器(在这种情况下为计算机)免受机器电源部分的影响。因此,如果有东西从机器侧面开始冒烟,则它只会向光耦合器板上冒烟,从而将损坏降到最低。该方案很大,因此请单击以查看完整大小。
最初,采用了4N25光耦合器。因为我以为今天的任何光耦合器都可以延伸60 kHz。但实际上,不,他们没有延长合同,没有时间。因此,结果,我不得不将其替换为6N135,其性能要高得多(就数据表而言,高达2MHz)。通过引脚,它们不直接兼容,但是,可以在不改变整个电路板的情况下插入它们。我认为我没有制定新计划,无论谁愿意,都可以自行为董事会充电。
应当将电路电源从机器端和计算机端分为两部分。从计算机端,电源是通过USB电缆供电的,这是其唯一的目的。在机器侧面已经有5 V的任何电线束。营养计划制定
另外,由于并非全部以单块形式完成,而是以小块形式完成,因此有必要分开比通常更多的电线以用于电源和信号。因此,为简化布线,我决定制作一个单独的带连接器的小板,用于在12 V和5 V线上分配电源,该电源板
包含6个用于5 V和12 V线的连接器,以及两个用于连接冷却器的独立连接器。组装与结果
由于我从一开始就没有开始拍照,也没有写文章的计划,因此缺少许多组装步骤,但我将向您展示。此部分中的所有照片都是可单击的。制作步进电机驱动器
使用LUT移动图片:
蚀刻并镀锡:
钻孔:
密封:
接下来,有必要再重复2个轴的成功操作:





光隔离板制造
移动LUTom并用标记进行校正:
蚀刻:
染色:组装
所有电子产品:


机器组装
该机器由10毫米厚和18毫米厚的胶合板组装而成。组装时使用了家具导轨,这是我第一次没有发现更好的东西,而且从心理上讲,我还没有准备好至少加工相同的金属角。最初有这样一种构造:
Z轴的第一个版本:
但是据我现在所知,它一点都不好,所有的事情都发生了变化,错开了。总的来说,没有任何僵化的言论。随后进行了另一种尝试:
在此期间,将X轴和Y轴移动到一个单独的平台并变成可移动的工作台:
虽然已经更好了,但距离没有错开的地方还很远。结果,我来到了这个选项:
但是,Z轴仍然抽动和弯曲太多。这次我坐下来思考得很好,已经开始进行一些设计了。结果就是这种设计:
以25mm的架子和2mm的厚度的等铝角作为导向。我找不到钢。他们会好很多倍。当然,工业制造指南仍然无法比拟。移动托架:
组装新的Z轴:
结果。您会注意到,即使已设计的轴,组装后的轴以及整个设计仍然存在差异。然而,当您只需要游标卡尺和手钻时,将轴对齐和居中是一项相当困难的任务。因此,我不得不改变主意并随时随地进行试验:
磨碎样品:即使有这么多的设计,即使设计如此不完美,我也设法创造出了可行的作品,其结果给我留下了深刻的印象。控制电脑
CNC机床的控制软件必须在实时系统上运行才能生成精确同步的信号。因此,Windows不太适合于此。当然,对于正确的操作,将编写解决此问题的驱动程序,但是通常它需要更多的资源,并且这种系统的稳定性低于实时系统。处理是在LinuxCNC的控制下进行的。安装和配置不会造成太大困难。该计划的网站已经有现成的建筑和美食资源。有几种安装方法:在已安装的系统上或从头开始以及配置的OS。我选择了第二个选项,因为我对Linux没有太多的经验,并且没有足够的时间来处理补丁程序。第二种选择是常规的Debian发行版,其中已经安装了RTC内核和LinuxCNC。安装后,有必要调整机器的轴:信号映射,速度,加速度等。结果是一个用于启动的输出文件,启动后将显示带有指定参数的机器控制程序本身。结论
由于完成了这些工作,因此留下了许多印象,还有许多问题和任务需要改进最终的机器。- 将电动机的电压从12 V增加到其工作的24 V
- 加强设计,理想地准备具有初步完整设计的新机器设计
- 添加限位开关和紧急停止按钮
- 优化电动机控制器的操作
- 在一块板上重新安装机器的电子设备,但光电隔离板除外
- 用与目的相符的主轴替换机器主轴。与当前的中国雕刻师相比,这是一个极具启发性和更强大的引擎。
- 更换Z轴上的引擎,因为当前引擎的功率较小且负载最大
最终的机器在X和Y轴上的工作区域大于270 mm,在Z轴上的工作区域大于150 mm。沿X和Y轴的运动速度大于500 mm / s,沿Z的运动速度大于300 mm / s。工作电压为12V。那是他们表现的一半。有成长的空间。可以肯定地说-这是值得的。机器现在至少可以完成一项任务:切菜板。您可以忘记蚀刻和LUT。切菜板当然有其缺点,但是最好有替代品,而不是唯一选择。在作品的视频中,可以看到一个3毫米铣刀如何铣削字母M,也许是低进给速度和0.1毫米的层数,但这也是结果。到目前为止,散布某些源或PCB板的意义不大。机器无法适应任何严重的负载,或者非常稳定和独特。但是,这并不是做任何事情的最后尝试,并且我希望下一个开发迭代正在准备更好的尝试。