拿什么拯救你我的k800—Kossel800入坑手册第二弹
啊哈,离第一弹已经过去一个月了,前一段时间楼主跟家人去三亚避冬去了{:5_171:}。在气温开始回升的时候终于回归,当然也带着第二弹逾期而至啦。 随意pa两张在那边儿的照片(已更换成打印的兔子照片哈哈):下面是视频哦 http://v.youku.com/v_show/id_XMTQ2NzQwMTQxNg==.html
哈哈哈哈哈,这一弹呢我将会为大家share一些我修改固件、排查故障、手动调平和切片软件设置的一些心得。盆友,挑着有兴趣滴地方看去吧~~
一、固件修改和烧录机子组装到位了,电子线路也已完成。下一步就要把固件烧录到控制板里了。不过,在此之前可别忘了一件事情——参数测量。我没有将这部分单独列出来是因为需要测量的东西并不多,大概也就下面这些:图片里有中文注释,我就不在每句代码上多做解释了。不过因为有的地方需要测量球头球心之间的距离,这不是很好测量。楼主的经验是,不管三七二十一,先放心大胆地把测量值放上去再说。之后再根据打印的东西偏大、偏小还是有凹凸来修改这些偏置值。这里是根据打印头到滑杆的水平距离和碳杆的长度确定的,需要使用到三角函数来计算:比如我这里测量出来的打印头到滑杆的水平距离是172mm,碳杆的长度是208.5mm,那么计算过程就应该是后者的平方减去前者的平方再开方,计算器大仙告诉我结果:116.96。
但实际上为了避免打印半径太大超出平台,我们实际打印半径还得根据打印平台的实际半径来。比如,我的打印平台的实际半径是100mm,而考虑到固定打印平台时螺丝需要占用一点点的空间,这里我给到固件参数里的半径值是85。小心使得万年船{:5_193:}这里需要注意观察我们的限位开关接的是哪一个端子,公共端C当然是必须接的,而另一根线接的是常开端子和常闭端子。根据这个来定义这里的“true”或者“false”,中文注释很是详细,我就不再作解释啦。
接下来是Z轴的最大打印高度:这个地方呢,我们需要自己测量一下,然后把参数放进去。楼主量出来大概是250左右不用太追求精确,我们在调平的时候会继续修改这个值。在电机这个地方可得小心一下,虽然很多情况大家电机都差不多,但是也有例外的。比如,很多人的电机同步齿轮数是23,可是我的只有20。这里,我们需要自己数一下,然后把参数录入上去图片中://#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER的“//”要删掉,有了这一行定义代码,我们的smart控制器才能工作,如果这一行不注释掉,会发现固件烧录进去之后什么反应也没有,显示器甚至都不会亮起来。
需要自己测量并且修改的参数大概也就这么些,现在我们把固件烧录进控制器。Remember: 板子要选择arduino mega 2560,因为kossel 800的控制板是这一款arduino。
二、故障排查对比起来故障排查,固件的修改真是太轻松的一件事情了{:5_142:}。楼主觉得我大部分的时间都花在了故障排查上了,楼主运气不咋地,几乎把能遇到的问题都遇了个遍,今儿一定要吐槽吐槽。首先我们要用到一个软件,那就是pronterface,这一款软件能够直接控制3D打印机,用调平也是非常棒的选择。
当然只是在故障排查阶段也可以直接使用连接到ramps扩展板上的smart控制,就是带着旋钮、蜂鸣器和led显示屏的那块东西。
1. 电机问题我遇到的第一个问题就是关于电机的,毕竟如果电机不能正常工作是非常直观的,一下就注意到了。但是!要排查电机的故障也是一件很头疼的事情。线序、驱动模块、控制板我把他们仨并称为玩弄电机的三大恶魔~~{:5_199:}线序:如果线序不对,那么电机不会按照我们的想法工作,反而会发出那种“咯嗒咯嗒”的卡壳声。我们从图中可以看见,中间的转子其实是块磁铁,我们要让它正常转下去就一定要让A对应的磁性和B对应的磁性不停的变化,一直吸引磁铁转动,才可以,而这种磁性的变化,又主要由电流的方向来控制(初中的安培定则)
虽然控制电机工作并不是一件简单的事情,因为四相电机工作要考虑到脉冲信号分配、脉冲信号占空比、功率放大等不少问题,但是这里我们使用了专门的驱动模块就不需要对电机阐述太多了。重点就一个,线序一定要正确就行了。为了能快速解决这个问题,楼主建议在电机连接到扩展板上的插头上插上四根公母线,这样可以迅速地切换线序以便找到正确的线序。驱动模块:a4988驱动模块就是用来驱动42步进电机的,只要线序对了,这个地方我们主要考虑的问题就是驱动电流。然而他单纯的外表下,隐藏着一颗极易短路的公举心{:5_137:}用万用表的黑表笔对着驱动模块的GND和可调电阻的调节旋钮金属部分即可测量它输出的驱动电流。(就在这里,楼主短路了两侧,每一次都烧坏了ams1117(降压芯片))
有一点值得注意一下,那就是不同牌子的a4988要求的驱动电流不一样。楼主手上有两种a4988,一种是dfrobot公司产的,另一种是不知名的牌子。经过实际检验,我发现dfrobot公司的a4988对于我所使用的这款电机,正常的驱动电流是1.91mA,而另一块a4988让电机正常工作的驱动电流则是1.31mA。说来也不幸,楼主本来刚好有四个一样牌子的a4988。不过很可惜,有两块的驱动电流不论我怎么调节可调旋钮,都是0。无奈之下我才不得不混搭~~~~
主控板arduino没错主控板总是辣么傲娇,当我电机线序正常,驱动模块也正常工作的时候电机也有可能会玩儿我。原因就是,mega2560有问题啦。那么,这个时候应该怎么检测呢?测波形。我们知道a4988要控制电机,那就意味着它的输出是连接到电机的。那么我们已经确认a4988正常工作(有驱动电流)的情况之下,我们检测它的输入波形就可以得知主控板arduino是否正常工作了。
首先,我们要将a4988翻过来我们仔细观察,找到step和direction端,还有工作的刚需VDD端,我们先测试一下VDD端是否有电压输入。这个地方一般都会有电压输入,要是这里没有电压那么也就意味着主控板也没有输入电压。而1A,2A,1B,2B就是a4988的输出端,现在我们不需要要理睬他们。
所以,我们的重心是在step和derection,step端是控制电机运动信号的输入位置,而direction则是控制电机方向信号的输入位置。这个时候,我们就需要示波器了。将step端用一根线引出来,再讲GND用一根线引出来然后分别接到示波器的红黑表笔。接着我们使用pronterface来控制电机运动,比如这里我点击一下向右移动10mm(x增加10mm)点击这个指令之后立马观察示波器,看是否会出现脉冲波形:如果出现了如图的脉冲,就证明控制板正常工作。但是如果没有出现这个脉冲,就证明mega坏掉啦。具体是哪里坏掉了呢?据流弊的王大师说,这是主控板芯片的数模转换部分坏掉了~~~渣渣表示当时没有听得太明白~~~略过~~~{:5_132:}
总之,这个时候能做的事情有两件:① If you are rich,那么就重新买一块arduino mega主控板,90+rmb~~~② If you are just like me a qiongdiaosi~~~,那么就自己重新找一块mega2560的芯片焊到主控板上去吧哈哈,其实自己动手,反而更添乐趣呢。不过,焊这种多引脚的贴片元件可是需要热风枪的哦。
2. 总爱狗带的ams1117这块小芯片我不得不单独把它拎出来批评一下,截止到今天早上我写这篇帖子的时候,我已经烧坏了4片ams1117了!!!!Ams1117是一块降压模块,将12V的电压降压到5V的稳定电压,以便主控板arduino的正常工作。如果没有它,那么整个电路是没有办法正常工作的。不过很可惜,整个电路中,无论什么地方发生短路,最先跟我们say byebye的一定是我们柔弱的ams1117小公举~~~~:'(作为一个降压模块,她实在是太容易被烧坏了;
所以,在这里我一定要提醒一下各位看官:拔插驱动模块的时候,一定要断电!!!!用万用表检测驱动电流的时候,手持触碰GND黑表笔的那之后千万不要抖!!!!拔插限位开关的时候,也一定要断电!!!!总之,一定要尽可能的保护电路不发生短路。因为,重焊贴片真的很艹蛋{:5_181:}
3. 挤出电机不给力啊不给力我挤出电机的问题是我第一次打印方块的时候才发现的,因为刚开始的时候我使用pronterface让挤出电机转一点点它是可以工作的。没成想,竟然骗了我这么久。{:5_135:}对挤出电机是否正常工作的确认主要靠软件pronterface。首先我们连接上数据线,然后打开pronterface,接着选择端口,然后电机connect。接着,我们要在G代码输入窗口这里输入M302这个代码的作用是让打印机加热头温度没有到达最低允许挤出温度的时候也能过挤出材料。然后就是点击界面上extrude这个按钮了,这个时候我们会发现挤出机成功挤出耗材了耶~~~然而并不能高兴得太早{:5_117:}
我们在长度和速度这里设置一下,把长度设置为100mm,速度设置为500mm/min,并在耗材远离挤出机的地方用记号笔做个记号。这之后再次电机按钮extrude,等待挤出电机结束工作的时候检查一下是否确实往里送了100mm。如果没有,那有可能是压紧弹簧的螺丝不够紧,这个时候只需要用螺丝刀把它拧紧一些就行了。
但是,但是!!但是,如果压紧弹簧的螺丝已经拧到很紧了,送料长度还是不够的话,那就得把挤出电机的挤出部分拆开来看看了。找到上图中的黄色金属件,我仔细一观察,马丹!!这个传送耗材的轴承里将它跟电机死死固定在一起的嵌入式螺丝竟然不翼而飞!!!!如果没有嵌入式的螺丝固定这个轴承和电机,或者是嵌入式螺丝松动,就会导致传送耗材的摩擦力不够。这个时候,我们就得找一个拧进去,或者将原本松动的螺丝拧紧。
4. 断胳膊断腿的限位开关当上面的问题都解决之后呢,我们就要点击pronterface里的home键让打印头回到零点以便之后的调平工作了。当然,这里也是一个对于整个打印机是否正常工作的一个检验。
我在这里的时候遇到了一个并不太好描述的问题:当我home之后,按道理,三个滑车会触碰到限位开关,然后停下来。因为程序的关系,顶多会滑车稍微回退一小段距离,然后再次触碰限位开关。但是其中一个滑车特坑爹(后来证实我错怪他了表情),其他俩滑车都乖乖停下来了,它还继续往上撞个不停,大概10秒钟之后才会停下来。我一度以为是电机、或者驱动模块的问题,后来还是通过pronterface才检查出了真正的问题所在{:5_129:}我使用home之后,发送G代码,发现每一个限位开关的状态也都是一样open
接着,我按压每个开关并且按压的同时发送G代码M119,终于发现问题了。到Y塔的限位开关的时候,我发现就算是我按压了开关,它的状态也依旧是open。我把它取下来一检查,才发现:我把常开和常闭焊上了线,而不是公共端~~~~:dizzy:我觉得这样不能完全怪我粗心{:5_166:},限位开关的接线太容易断了,我一次又一次地将它们焊回去。这一次次地重复工作,难免会有看错的时候嘛,嘿嘿。
三、手动调平调平是一件并不困难但是很花时间的工作,归纳一下其实调平要实现的也就是:让打印头和打印平台之间的距离总是相等的以保证打印出来的东西尺寸标准,表面也不会凹凸不平。
因为找不着了一个必要零件,我选择了手动调平(我也有点担心自动调平不太靠谱)。经过晚上各种翻看网友们的资料,我选择了三点调平。三点调平的大致的方法就是使得X,Y,Z三个塔的底部位置的Z坐标都相同,以保证打印范围的外圈是水平的。然后再校准中心位置,以保证中心和外圈一样平整。
在正式开始调平之前我们要先来确定一下打印的坐标轴以及X,Y,Z三个塔的坐标。
这里我直接使用了kossel_mini手册里滴图片,更直观需要计算一下:X塔,Y塔和Z塔面前的坐标,这是根据选定的打印半径计算出来的,计算公式是:X和Y塔面前的横坐标由R*sin60°计算出来,纵坐标由R*cos60°计算出来。而Z塔面前的坐标就R得值。比如,这个地方我的打印半径选择的是65(刚开始是85,后来修改为了65)。那么,X塔:(X-56.29 Y-32.5 Z5);Y塔:(X56.29 Y-32.5 Z5);Z塔:(X0 Y65 Z5)PS:这里的Z轴都用5,是为了防止打印头戳到打印平台,到了这个位置之后再使用Pronterface慢慢往下降比较安全。
这个时候我们需要打开pronterface,连接上打印机,然后拿出一张A4纸放在打印台上面,接着我们就可以正式开始如下的调平了:
1. 三塔位置确定pronterface连接上3D打印机并且在G代码窗口出现如下的信息:接着home一下,让打印头回到最上边。在开始测定每个塔的坐标之前,为了方便我编辑了几个快捷键,把三个塔的坐标以及中心位置的坐标录入快捷键里,这样就不需要我每次在G代码去里输入代码了。第一次Home之后,我按下了ZTower这个快捷键,接着打印头就来到了Z塔前面。因为ZTower这个快捷键的坐标是(X0 Y65 Z5),所以,按道理来说此时打印头距离打印平台应该有5mm的距离,这个时候我们就点击控制Z高度的按钮。先以1mm为单位向下降,接着感觉打印头离打印平台已经很近的时候就开始以0.1为单位让打印头向下移动直到打印头刚好压紧A4纸。这个时候我们在G代码去输入M114,会出现此时的坐标。按照如上的步骤,分别再得到X塔和Y塔的坐标。千万记住,在测试下一个塔坐标前要记得Home(归零)一下;2. 根据三塔位置差距进行调正我们已经得到了三个塔面前当打印头压紧A4纸时候的坐标了,如果平台是平整的,那么三个塔坐标的Z坐标应该是一样都是0才对。但是现实总是残酷的(表情)正如我上面的图片,发现三个塔面前的Z坐标都是不一样的,这个时候我们可以调节两个地方,一个是限位开关的高度,另一个是滑车上触碰限位开关的螺丝松紧度。
话说这是为啥呢?其实,之所以我们在三个塔面前打印头已经紧贴打印平台的时候Z坐标各不相同,原因就在于这三个滑车在home(坐标归零)的时候高度就是不一样的。比如,一开始的时候X塔的限位开关比Y 的限位开关高一些,那么归零之后实际上X塔上滑车的位置就要比Y塔上滑车的位置高{:5_178:}。而后来我们给定了他们Z相同的坐标,它们就只会下降一样的高度,等到下降相同高度之后所在的位置当然不一样。
所以这个时候我们就要修改三个塔上限位开关的高度。如果在某个塔前方打印头已经触碰到打印平台之后所显示的坐标里,Z坐标是负的。那么,就意味着坐标显示为零的时候打印头还未触碰到打印平台,这就证明滑车归位之后位置偏高了,那么我们就要把这个塔上的限位开关往下调一点。那么这个下调的幅度是多少呢?
这个要根据M114得到的Z坐标来看,如果负得太多比如相差接近10mm那么我们我们就要下调得多也是接近10mm。如果负的不多比如只有1mm甚至只有0.1+mm那么我们就只下调一点。或者,我们也可以拧松触碰限位开关上的螺丝。为什么要拧紧螺丝呢?
这里其实和上下移动限位开关其实是一样的道理,如果我们将螺丝拧松,那么螺丝的位置就会上去一点点。这不就相当于限位开关的位置向下了一点点吗:lol
按照这样的方法,对三个塔的限位开关都做调整。然后,再一次按照1的步骤得到三个塔面前打印头触碰到打印平台的坐标。
听起来很多简单?听起来而{:5_121:}要连续调节很多次,才能够保证三个塔面前的Z坐标都相同。
3. 凹凸调节经过漫长的外圈高度调节,我们终于保证了X,Y,Z三个塔限位开关的高度是一致的。接下来我们可以开始调节凹凸了。凹凸这又是怎么一回事呢?见下图喏喏,就是这样个样子。喷头运行的轨迹其实往往并不是直来直去的,而是有一定弧度的。我们要想办法解决这个问题,不然打印的时候很有可能出现,打印出来的东西两边凹中间凸,或者中间凸两边凹。
那么这个地方又应该怎么调节呢?说起来超简单,那就是当三个塔坐标平的时候(也就是打印头触碰到打印平台时Z坐标为零时),我点击center也就是让打印头回到打印平台正中间的时候一样也是平的。但是~~一般都是不平滴~~~{:5_120:}有两种情况可能出现:①打印头接触到中心平台的时候M114得到的Z坐标是负值这种情况证明在当喷头在外圈已经接触到打印平台的时候,平移到中心位置来的过程里实际上打印头是向上凸了的。那么这个时候我们需要修改这个值调节的方式是:此时打印头移动的弧度是中间向上凸进去,应该增加这个偏置。 ②打印头触碰到中心平台的时候M114得到的Z坐标是正值这种情况证明打印头平移到中心位置的过程中向下凹陷了,这个时候我们就按照第一种情况相反的方法修改这个偏置值。也就是打印头移动的弧度是中间向下凹下去的时候应该减小偏置。
修改这个值之后再次测试一下凹凸,以确认是否已经平整。我归纳了一个小小的修改方法,那就是用X,Y,Z三塔归零点Z的坐标(先让它们三点保持一致)去减去中心点归零点Z的坐标,如果差值是正值,就增加偏置,如果差值是负值,就减小偏置比如:在三个塔前归零点的Z坐标都是-1.0的时候,我中心位置的测量坐标是-0.7,这个时候,他们的差值就是0.3,所以此时就应该增加偏置:
要注意的一点是,如果中心位置得到的Z坐标是正值,调完这个参数之后我们还重新修改一下固件里的最大打印高度。 因为,我们调节的只是打印头运行的轨迹,修改之前如果中心位置在Z坐标为零之 前会碰到打印平台,那么在修改完之后依然会在Z坐标为零之前碰到打印平台。手动调平也就只有这么大几步,不过,想要完全调平也是很需要耐心滴~~~{:5_119:}耐心啊耐心~~~~
四、打印小方块准备——切片软件设置
大致调平之后我们就可以打印一个正方体来检验我们是否已经调平了。不过,在此之前,我们要根据我们打印机的参数来配置我们的切片软件。楼主使用过slic3r和cura这两款切片软件,因为cura看起来更舒服,所以今天楼主选择介绍一下我对cura的配置过程。第一次打开cura之后会跳出来配置界面在机型这里,我们选择其他其他机型这个位置,我们选择deltabot机型选择完毕之后会跳出来一个机型选择成功的界面,确定之后就可以进去主界面了。
接着,我们要修改一些根据我们机型自身参数所必须修改的配置深度宽度高度:深度和宽度就时在固件代码里的打印半径,而高度就是固件里的最大打印高度。构建平台的形状别忘了选择成为circular(圆形)
在高级选项下的机型这个地方喷嘴孔径要填入打印机实际的喷嘴孔径,比如我滴喷嘴孔径是0.4喷嘴孔径修改之后也要修改一下壁厚,壁厚要修改成为喷嘴孔径的倍数。打印的层厚会直接影响到打印物品的外观质量和打印时间。层厚越小,则物品表面越多,也越光滑,但是打印时间也越长;相反的,如果层厚越大,则打印时间会减小,但是表面会出现明显的分层。楼主查阅的资料上说:“理论上说,即使使用0.5mm的喷嘴,层厚也能够打到最小的0.01mm。但是这需要一台调试得相当好的机器以及很长的打印时间。”“一般喷嘴直径为0.35mm,加上热熔丝膨胀的因素,直径最大也就是0.4mm。为了确保足够多的热熔丝挤出,该喷嘴合理的最大层高约为0.3mm。”楼主还没有很多经验,所以先给了一个0.3mm。填充也会影响打印的质量:
我们当然可以设置100%的填充来打印一个实心的东西,但是我肯定不会这么做。因为这样会使用大量的热熔丝,穷屌丝怕呀{:5_119:}而且,这可能会造成打印物品开裂滴~~~
打印速度当然要看自己打印机的实际情况了,比如耗材的融化速度,电机的送料速度等等。我对物体的打印效果和质量要求暂时并没有太高,所以舍定了一个50.打印温度可得好好考虑考虑了,一般说的是pla:210,abs:230。但是,冬天的时候这个温度要增加10°才行哦。不然,料融化不了,喷嘴不会吐丝滴~~~{:5_123:}这些是打印前需要修改的,还有一些高级的设置可以根据注释修改成我们喜欢或者需要的参数。比如,初始层厚设置得小一点,有利于物体的粘附和提升稳固性。但是对于第一次打印来说,这些显得不是那么重要,所以暂时可以不用管它们。
五、打印小方块——检验调平这里感谢闯哥在我新电脑没有装上solidworks给我之前,帮我做了一个立方体的模型发给我。哈哈哈哈哈:loveliness:在上一步将cura整理好之后,这里就可以直接点击load将需要的stl文件加载进去。接着我们在机型了选择一下我们的端口就可以将cura和打印机连接上了成功连接之后会出现这一个图标,名字叫做print with usb我们只需要点击它一下,就可以开始等待打印机工作了
10min之后~~~一个小小的立方体就这样被打印出来了现在我们要观察正方体打印得是否平整,用游标卡尺测量它的尺寸是否标准。我第一次打印出来的立方体,中间有点凹陷,所以还要调节凹凸。一次又一次打印并且测量之后,如果一切都没有问题,那就意味着我们的打印机可以开始正式上岗啦。如果还存在着这尺寸和平整度的问题,那么就需要修改一下固件里的参数,并且重新进行调平。
六、Success!——打印第一个心水的模型当终于得到了最完美的正方体之后,就意味着我们可以给我们的k800颁发一个上岗证啦。在最后这一部分楼主很想录制一个打印斯坦福兔子模型的视频。但是很可惜,刚拿到我给它的工作许可证,它就患病了——“便秘症”{:5_143:}是的,不知道是温度太低,还是啥原因。今儿我满心欢喜地准备打印的时候,发现打印头堵住了,真是心塞。所以第二弹就先到这里吧,等楼主购置一瓶“开塞露”给它疏通一二之后再为大家补发视频
写得这么详细,应该加精{:5_171:} 强悍~~~应该加 吹口琴的钢铁侠 发表于 2016-1-26 22:07
写得这么详细,应该加精
哈哈哈,一不小心写得太多了。弄得我自己看起来都费力。。。 孙毅 发表于 2016-1-27 00:18
强悍~~~应该加
哈哈哈,谢谢谢谢 麻烦共享一下带中文解析的固件 dsweiliang 发表于 2016-1-27 09:25
麻烦共享一下带中文解析的固件
我倒是给忘了,哈哈,现在共享上去。:D
这是带中文注释的固件 好详细啊 marcusme 发表于 2016-1-27 10:16
这是带中文注释的固件
好的,谢谢 好腻害~3D版主@dsweiliang 还特地跑过来跟我说你可以做特约作者~~{:5_148:} 果然精华好贴
luna 发表于 2016-1-27 11:05
好腻害~3D版主@dsweiliang 还特地跑过来跟我说你可以做特约作者~~
话说df的实习生能不能做特邀作者的? dsweiliang 发表于 2016-1-27 11:07
话说df的实习生能不能做特邀作者的?
当然啦~贡献好的内容,我们都很欢迎的~ luna 发表于 2016-1-27 11:05
好腻害~3D版主@dsweiliang 还特地跑过来跟我说你可以做特约作者~~ 果然精华好贴
...
哈哈哈,过奖了,过奖了。
特约作者听起来太高端啦;P,我最近三个月会一直做关于3D打印机的内容。
有什么成果我都会整理一下分享到社区里的。
大连林海 发表于 2016-1-27 10:51
好详细啊
有点过于详细了,显得有点冗杂。嘿嘿~~ 楼主何时回来吃晚饭?{:5_135:} shinkpad 发表于 2016-1-28 12:55
楼主何时回来吃晚饭?
有机会就回去蹭晚饭:victory: 斯坦福兔子模型的打印已经上传咯,欢迎各位盆友提出宝贵的建议。
其实兔子滴耳朵没有打印得很好啦~~
发现我的kossel有好多缺点哈,比如滑车晃动厉害,第一层不容易在平台上成行,强磁容易掉落。
之后还有时间的话,我会继续提升它的性能,解决当下的这些缺陷。
那么,下一弹的题目就是,进化吧我的kossel:lol 楼主,你好,我用的是smothieboard 不知道怎么烧固件,能指点一下吗?
可爱
页:
[1]