在开始时我必须警告你......下面提出的解决方案是非常低效和奇怪的。这个项目中使用了一些愚蠢的技术,例如电机的功率输出级或我自己的PC软件。所有这些都是为了娱乐和获得技能而创建的。克隆它可能相当困难,但无论如何我决定发布它 - 只是想分享我所做的;)。检查上面的视频,看看我的绘图仪是如何工作的!
这个概念
很难想象,但在一些高中你仍然需要手工绘制图形(计算机是魔鬼的工作,当然......)。情况太烦人了,我决定为我建一台机器绘图:D。在绘制任何Inkscape图纸(导出为HPGL格式)时也适用。
事实是,我需要一种特殊的软件 - 不仅用于控制机器,还用于设计图形并保存以供将来使用。这就是为什么我决定编写自己的应用程序而不是使用现有的CNC软件。
我使用ATmega16来控制机器 - 它通过连接到PC的USB端口的USB-RS232转换器(FT232)接收数据。使用我自己的通信协议以帧为单位发送数据,这将在后面解释。对于X和Y轴,我在旧扫描仪中找到了两个步进电机。它们具有集成齿轮,因此可以增加扭矩和分辨率,而不会使控制复杂化。Z轴是一个简单的电磁铁(我想从旧打印机中取出)。所有这些都是由HP打印机的双电压电源供电(逻辑和X轴为 16V,Y和Z为 32V)。
我的主要目标是在建造机器时尽可能多地学习 - 这就是为什么我重新发明轮子的原因;)。
需要的零件和工具
正如我在标题中所提到的,该项目的成本约为25美元(我在波兰购物的所有地方,其他国家的价格可能会有所不同)。这是一个简短的清单(仅供参考 - 我将在后续步骤中描述所有需要的部分):
- 控制器部件:7美元
- X轴和Y轴有3个滑块:4美元
- 激光切割有机玻璃零件:6美元
- 家具板(绘图仪的基础):5美元
- 磁箔:3美元
- 一些小零件(钕磁铁,M3螺丝和螺母):1美元
除此之外,您还需要从其他设备中删除一些部件。我有一些旧东西,这是我拆卸的东西:
- 双极步进电机(M42SP-7) - 旧的Plustek扫描仪
- 单极步进电机(M35SP-7T) - 和以前一样
- 电磁铁(TDS-F06A-03) - 激光打印机
- 双电压电源 16V / 32V(HP 0957-2094) - 一台旧打印机
绘图仪的设计易于构建,无需任何专业工具。你需要:
- 烙铁
- 剪刀
- 砂纸(120-150会好的)
- 热胶枪
- 一些胶水(强力胶,木胶,热胶)
- ------------某宝都有卖
在你进入下一步之前还有一件事 - 我很抱歉可怕的照片^^。我的相机很糟糕,唯一的解决方案是启用闪光灯。无论如何,有些照片是用另一台相机制作的,所以它们看起来更好(我希望)。
第1步:设计和装配准备
该项目是在Blender完成的。是的,那个3D建模程序。是的,这很奇怪:D。实际上唯一的原因是我很清楚它的界面,重要的是因为我有很多建模,改变,再次建模......然后再改变和重新开始。哦等等......我提到改变了吗?^^
附件(.blend)是在Blender 2.49中创建的,因为我不喜欢较新的界面。我建议你下载这个版本,打开文件并环顾机器 - 基本的移动可以通过使用鼠标滚轮,SHIFT和CTRL来实现。
绿色框是电源,黄色框是控制器,蓝色框是LCD显示屏。
琥珀色部件采用FR4 1mm层压板制成,浅蓝色部件采用激光切割3mm有机玻璃制成。
步进电机,电磁铁和限位开关为深灰色。
还有一些M3螺丝,螺母和垫片。当然还有一个细线。
所有这些都安装在18毫米的家具板上(不能说出那种颜色,对不起......)。
购买零件
首先,你需要一些18毫米的家具板。买你喜欢的任何颜色 - 但就个人而言,有一些黑色的美。这是以cm为单位的尺寸:35x49,21x7,7x7。最后两件将用作电子设备(控制器,LCD和电源)的平台。
您还需要激光剪切附加的PDF文件。别担心,目前它很便宜(即使在波兰:D)。只需确保订购3毫米有机玻璃。
关于X轴和Y轴滑块的说法 - 它们只是普通的滚珠轴承抽屉滑轨。它们便宜且非常精确。只需确保它们与我的尺寸相同(高约9毫米,宽16毫米,长310毫米)。如果电机太弱而无法移动滑块,您也可能需要更换润滑脂。
第2步:制作控制器
通常,常规CNC控制器只是一个功率放大器。它实际上由PC控制(通过LPT端口)。如您所见,这个控制器要复杂得多。这是因为PC只发送由AVR执行的命令。
外围设备由ATmega16控制。它控制步进电机(带ULN2803和L293D)和电磁铁(带IRLML2502)。它还监视限位开关(JP4)并将数据发送到LCD。
为了与PC通信,我使用了FT232RL芯片(USB-UART转换器)。我使用自己的通信“协议”轻松发送命令和原始数据。这两个TCMT1109光电耦合器用于将PC与控制器电隔离(因为我偶然烧毁了ATmega ^^)。需要使用下面附带的XML文件使用FT Prog对USB-UART转换器进行重新编程。如果不这样做,LED将无法指示它们应该是什么。当所有FT232部件都焊接完毕时,您可以这样做。
PCB上还有4个开关。一个用于重置处理器(它在测试时很有用),但其余部分用于将来用于与用户通信。现在中间开关(“OK”)用于接受启动命令(稍后我会写更多关于它的信息)。
制作PCB
在蚀刻PCB之后,您可以将其镀锡(例如使用常规焊料)。我用Lichtenberg的合金做到了 - 令人敬畏的水平> 9000:D。我建议你按照图片中的顺序焊接。这是零件清单:
- 集成电路:
- ATmega16的
- FT232RL
- L293DD
- ULN2803
- TCMT1109 x2
- 7805
- 电阻器:
- 47
- 100 x3
- 330
- 1k x2
- 2k4 x2
- 4k7 x3
- 10K
2.电容器:
- 22p x2
- 100n x4
- 330N
- 2U2
- 4u7
- 100U
3.晶体管:
- IRLML2502
- BC857 x2
4.二极管:
- LL4148
- LED红色
- LED绿色x2
5.针头:
- 1x2 x4
- 1×3
- 1×5
- 1x6 x2
- 2x4的
- 跳线x2
6.其他:
- 5k电位器
- 16MHz晶振
- 瞬时开关x4
- USB mini B连接器
- AK500 / 3连接器
- 2通道开关
- 16x2 LCD显示屏
最后一张照片显示了我在设计控制器时的错误。我忘记了光电耦合器输出的上拉电阻。这极大地降低了传输速度,所以我不得不焊接2个额外的电阻器。但不要担心,这是固定的,rar中的PCB是完整的。
编程AVR
下面附带的文件包含Eagle中的PCB项目,用C编写的软件,编译的hex文件和FT232RL的XML文件。
如您所见,PCB中有6个额外的焊盘。您可以使用它们对AVR进行编程 - 只需焊接一些电线(它们在Eagle文件中描述,因此请确保连接适配线。在编程芯片之前,将其fusebits设置为:
- 低:0xEE
- 高:0x99
它们只是默认值,CKSEL位改为16MHz外部晶振。
有关源代码的一些信息
仅通过一个AVR来控制所有这些东西并不容易。最困难的部分是当X轴和Y轴都在移动时产生XY运动信号。16MHz的水晶几乎太慢,但最终它的效果非常好。
第二个难点是与PC的沟通。我必须通过UART编写自己的通信协议。它类似于AT命令,但需要更少的内存并且速度更快,因为它的命令代码和参数是单个字节(而不是字符串,如AT中)。
源代码是用avr-gcc编译的。我想,它评论得很好,但我知道它很容易迷失。实际上还有一些其他功能没有使用 - 例如绘制矩形,弧形或一些文本。我写它只是为了获得一些技巧;)。无论如何,您仍然可以通过PC软件中的“命令行窗口”执行这些命令来查看效果。
是时候建造机器的机械部件......我们将从Z轴开始。
首先,找到第一张图片上的有机玻璃零件。除此之外,您还需要4个M3螺丝和螺母以及3个层压板。用剪刀剪掉它们。它们的尺寸应该相似,但不一定相同。
在第二张图片上,您可以看到零件的切割有多糟糕。显然有人没有考虑激光束的宽度。实际上,所有部件都比我订购的要小一些......无论如何,我不得不用砂纸擦掉这部分的两侧。
让我们开始粘合!我在所有有机玻璃零件上都使用了强力胶。接下来,您需要粘贴较小的层压矩形。它只是有机玻璃和电磁铁之间的间距。你可以看到我修改了螺丝孔。正如我所说,零件有点超出规模,电磁铁不合适。现在,留下其余的层压板零件。我们将在下一步中使用它们。
在最后一张照片上,还有一个安装有2个螺丝的附加部件。它将用于保存纸张,但我们稍后会这样做。
第4步:Y轴
使用之前介绍的技术粘合所有部件。如果您感到迷茫,Blender文件将会很有帮助。
将有机玻璃粘合到滑块上时,使用砂纸使表面更加粗糙。只需确保滑块内没有金属屑。之后,您应该用异丙醇清洁表面(对于金属,您也可以使用丙酮)。
安装齿形带
最简单的方法是使用小拉链。将第一端拉到电磁铁支架上(将皮带穿过这两个矩形孔)。然后,将皮带放在齿轮上,拉伸并拉紧端部,就像第一个一样。确保它不会拉得太松而且太紧。
安装限位开关
粘贴限位开关就像图片上显示的那样(超过有机玻璃约3mm)。这条红棕色电缆被拖到滑块内。现在我们需要上一步的层压部件。将其粘贴到电磁铁盒上,这样它们就可以点击开关。
焊接二极管和一些电缆
正如你在照片中看到的那样,我在线圈附近焊接了一个二极管。当线圈改变其状态时,它可能产生高电压。二极管只是使这个电压尖峰短路。核心焊接导线是非常重要的 - 二极管的阴极必须连接到正电位 - 对我来说它是黄色电缆。
在下一张照片上,有所有电缆的描述和颜色。有步进电机电缆(Y ,Y1,Y2,Y3,Y4),电磁铁电缆(Z ,Z-)和限位开关电缆(2x Ymin,2x Ymax)。Ymin是电机附近的开关。
最后一张照片显示的是12线电缆及其连接说明。红色电缆表示Z 线,这使得错误方向变得更加困难。您可以用胶枪粘贴割台以使其更安全。
第5步:X轴
这是最困难的一步......
您需要尽可能平行安装两个滑块。首先,打滑滑块的表面。你也可以稍微打磨基地。清洁后,使用木胶(或类似物)将第一个滑块直接粘在底座边缘。上图显示了尺寸。
要粘住第二个滑块,你需要宽度为242毫米的东西。它必须有平行边缘。正如你所看到的,我并不总能解释你需要做什么。只需按照图片:)。
安装Y轴
等一段时间,确保平行滑块粘合良好。之后 - 一如既往 - 打磨并清洁表面。为此使用超级胶水(因为有机玻璃)。要测量直角,请使用家具板底座 - 它应该匹配。尽可能将其粘贴为垂直,因为这会影响所有图纸的外观。重要的是不要移动滑块直到它完全胶合(给它几个小时)。
安装X步进电机和限位开关
同时,您可以安装X电机。只需按照图片即可。灰色12线电缆可用木胶粘在底座上。
第6步:Fineliner结束和纸架
老实说,这一步是我即兴创作的。这种白色“臂”由5mm泡沫PVC制成。它可以由任何东西组成,我没有别的东西可以做到这一点。
层压板部件有一个8毫米的孔,非常适合我的细线。用热胶枪安装。应将细线系统轻轻按压在纸张上(由于弹簧位于电磁铁的背面)。您可能需要多次重复粘合。
完成第一个层压板部件后,放置PVC臂和第二个部件并粘合。胶水冷却后,您应该能够稍微拉一下手臂。然后将其粘在电磁铁的末端。
安装纸架
该部件旨在防止纸张起皱。正如我所说 - 我在这一步中即兴创作:)。跟着我!
重要的笔记
,我决定安装磁性箔作为工作区。它具有比家具板更光滑的表面,现在我可以用小钕磁铁固定板材。如果您还想这样做,那么您应该在开始此步骤之前安装箔片。不幸的是我忘记拍了一张照片......
第7步:安装在一起
在第二张照片上,您可以看到由层压板制成的“桥” - 它是由于滑块可能会卡在电缆上而制成的。还有两个5W 150欧姆的电阻与X步进电机的线圈串联焊接。我不得不降低电机的电流,但我稍后移动了这些电阻(如最后两张照片所示)。只需连接上面提到的每个goldpin插座。
安装纸张支架
纸张需要固定在恒定位置。用剪刀在层压板上切割这些“角落”并将它们打磨至约0.2mm高度。我用双面胶带安装它们,设置准确的位置,然后用超级胶水粘合。要确定位置,您需要从每个轴的开始到结束绘制线条(只需移除齿形带,插入笔并沿每个轴手动移动)。
第8步:PC软件
正如我在介绍中提到的那样,我必须编写自己的软件。这是我在Visual C#中的第一个应用程序,所以我认为它充满了错误^^。我从来没有编写多线程应用程序,我几乎可以肯定我的许多解决方案都是“更多的单线程”。
该应用程序编写为简单设计多个图表并通过虚拟COM端口与控制器通信。在附件中,有一个完整的项目可以在Visual C#中打开。评论很好 - 但不幸的是,只有波兰语。整个应用程序也很流行。翻译太多了,我很确定没有人会使用这个解决方案:D。
以下是命令行窗口中可用命令的列表:
- returnxy - 返回到原始位置setz z - 降低(z = 0)或升高(z = 1)笔
- setxy xy - 将笔移动到指定位置(mm)
- _setxy xy - 将笔移动到指定位置(步骤,检查应用程序设置)
- getz - 如果引发笔则返回1,否则返回0
- getxy - 返回笔的位置(以mm为单位)
- selectpen - 等待用户单击“确定”按钮
- rect x1 y1 x2 y2 - 根据2个相对的顶点绘制一个矩形(单位为mm)
- arc xyr a1 a2 t - 绘制一个圆弧,其中心位于(x,y),半径r,开始角度a1和结束角度a2(从水平方向); 绘制规则弧(t = 0)或饼(t = 1) - 以mm和度为单位的值
- text xy size spacing text - 在(x,y)处绘制一些给定大小和字符间距的文本
差点忘了。要运行该应用程序,您需要安装.NET Framework 4。
根据您的要求,我决定翻译该申请。好吧,也许它并不完美,但大多数功能现在都是英文版。
第9步:最后的想法
这种指导显示了CNC控制的另一种方式。我不敦促任何人使用前面步骤中提供的解决方案。我刚刚做了一些东西,我发现它很有趣,可以在这里展示。但它并没有改变这台机器无效的事实。在做这个项目时我学到了很多东西。这太棒了(有时令人讨厌)。我很高兴我完全靠自己的(奇怪的)想法做了一台拉丝机。
顺便说一下 - 我证明了ATmega16和最简单的功率输出级足以绘制A4图纸!您甚至不需要计算机(如果您获得第二个AVR来读取和解析SD卡中的数据)。
无论如何,应该改进控制步进电机。它会产生大量的热量。有人建议我在电机不动时(例如等待命令时)发送PWM信号。它非常好,但是这个项目在下一天编码时不值得。;)
好的,是时候结束了。我很乐意回答你的问题。如果你对这个项目感兴趣,也许你会喜欢我的其他人。看看这个:https://www.youtube.com/user/mopsiok。
,