从洞洞板无法满足我的需求开始,制作PCB就是我心头的痛,刀刻、记号笔描、热转印、感光油墨等方法我都试过了:刀刻费力,不美观,只能用于很简单的电路;记号笔描也是折磨,脖子都折了,线还是歪歪扭扭的,焊盘间距不准;热转印总是要承受断线之苦,总是需要记号笔补漏,成功率不高;感光油墨太麻烦了,感觉像是进入了化学实验室,油墨/显影剂/脱模剂/三氯化铁一字排开,加上辅助的电吹风刷子刮板什么的,每次阵势都很壮观,一不小心就弄的手和台面都很脏,有一次不小心将强碱脱模剂粘到手背上没有及时清理,烧伤了,疼了一个星期,还有一个不爽是晚上还干不了活(买紫外光灯?用的不多,必要性太小)。 为此,我做梦都梦想到自己有一台雕刻机,喝喝茶就看到PCB做好了,多美妙的体验,无奈雕刻机门槛不低,成本不斐。而低成本的光驱雕刻机行程太小,只有大约38*38mm,其实什么都做不了,而且还要单独购买一块Arduino,所以即使我有很多的废光驱我都没有动力去组装一台来玩。 在看到网友themrleon开源的PIC单片机光驱雕刻机<https://github.com/themrleon/OpenCdNC>后,刚好我找到了一个废喷墨打印机,于是乎燃起了一线希望:可以用打印机的框架改一个雕刻机! 打定了主意,就满世界搜有没有其他网友改装过,还真有不少,但是结构大都改动较大,投入大,费工,不合我意。我就自己琢磨怎么样的结构改动小。 开始我就直接使用其DC电机+光栅条结构做为X轴,Y轴采用扫描仪组件(自带步进电机和同步带),Z轴采用软驱步进电机组件。 看下图: ![]() ![]() 研究了几天电机驱动方法,然后自己设计了一个DC电机驱动模块: 有两个隔离的输入端,一正一负正转,一负一正反转,正正或负负则短接电机两级,起刹车作用,通过栅极电阻(我最后用2k,其实小一点也可以)减慢MOS开启速度,通过栅极二极管加快MOS关断速度,避免同侧同时导通导致电源短路。制作时要根据不同的光耦确定其发射管和接收管电阻,保证光耦打开时输出端电压够低,以免两个同侧MOS同时导通。 ![]() ![]() ![]() 打印机上的光栅传感器不是简单的一发两收红外对管,上面有IC,输出有四根线,地线好找,覆铜最多的就是,再找一根连接到一个电阻的线,即为电源线,然后剩下两根就是输出线,提供电源3.3V时,其中一根线输出脉冲低为2.3v左右,高为2.5v左右,另一根线输出脉冲低为0v或2.3v,高为2.5v左右,而且好像每经过一格光栅,一根线要输出两个脉冲?向左和向右运动时输出的脉冲又有点不一样,具体的不一样因为我没有示波器,所以无法确定。 (这四根线我是不停测试才找到的,所以有一个限流电源在DIY过程中很有用,先将电源限流在20mA,然后逐个线尝试,即使接错了也不会烧掉器件。) 根据测试结果,直接使用一个LM358接成电压比较器模式进行光栅脉冲整形和电压变换输出到单片机(高电平要求为大于2V的电压,低为0V),用一个电位器调参考电压,电路很简单,我就不上了。 安装好后机器是能工作了,但是画出来的字边缘不齐的,会逐步的往一边歪,换另一根光栅传感器的输出脚还是不行(我猜这可能其光栅传感器有IC,要综合判断处理两路输出才行,而我只判断了其中一路的脉冲,没有示波器,我只能到此为止),后来我又将光栅条结构改成安装在电机轴上的光栅盘结构,并且使用槽型光耦输出计数脉冲,刻出来的字终于立正了,但是却“长毛”了:边缘不整齐,这是因为偶尔电机会过冲,尝试过尽量减慢电机速度,尝试过在软件中直接计数、采用中断计数、采用CCP模块硬件计数等等方式都搞不定DC电机的过冲问题,终于提出一个猜想(史称著名的C猜想):DC电机+反馈可以准确知道当前位置,但是无法精确停止在某个位置。 那为何喷墨打印机可以用DC电机?是因为其不需要精确停止,只需要准确知道当前位置,然后控制喷头喷墨或不喷墨即可,而喷墨或停止喷墨速度极快,根本不用考虑电机过冲问题。回想步进电机,其实它也是在停止时用电流将电机锁住在一个确定的位置,所以才能准确停止,否则估计也会面临定位准确度的问题(要不过冲要不跳回相邻磁极位置)。 此路不通,看来只能换回传统的步进电机结构了,要尽量使用原先的结构让我废了不少心思,我先直接将DC电机换成很久以前在复印机拆下来的步进电机,结果发现我图样了,步进电机的扭矩太小,带不动墨车。难道只能用丝杆驱动,这下结构改动就大了点吧,而且也看不到怎么样才能在原先结构上很好的安装和固定步进电机和光杆丝杆。或者安装减速机构,但是没有合适的,因此,此项目就暂时搁置下来了。。。。。。 在冥思苦想如何改装时….时间飞逝,眼睛一睁一闭,一天过去了,n睁n闭,n+1天过去了。 在哀莫大于心死、灰尘不至于厚的让我仍掉它之前,我又找到一个废打印机,在拆的过程中,我突然想到扫描仪组件的步进电机所带的齿轮组减速比很高,扭矩肯定没问题,最重要的是超小,可以试一下是否可以直接装在X轴导轨上,左右比一下,在后面挖个孔,就装进去了。 看图: ![]() #p#分页标题#e# ![]() 但是在安装好机器后测试时发现,此齿轮组的回差很大(Y轴的齿轮组就很好,基本上没有回差,所以之前没有发现此问题),圆画出来就变成椭圆了,又无法在齿轮组上安装消回差螺母什么的。 然后感觉项目又要暂停了,再等到找到一个回差小的齿轮组?或者最终还得丝杆驱动? 在某个午餐时,我突然想到,其实回差不一定需要硬件消除,软件也可以做补偿的,然后就简单了,先测试其回差大小,然后在软件中补偿即可。 至此,项目的障碍扫清,剩下的就是体力活了。 是不是有点罗嗦? 我也觉得,不过此项目屡次要烂尾,总算最后完成了,兴奋是难免的,所以情不自禁罗嗦一下。 (有愿意继续倒腾DC电机方案但不熟悉PIC单片机的同学,可以提供给我你的线路图,我可以先给你写一个初稿固件,然后你就可以在上面修改和实验。 因为只有能真正使用DC电机方案,才能惠及更多的想改装喷墨打印机的同学。) 硬件改装过程: (其实明眼人看着图片基本上就都明白了):
![]() ![]()
![]()
![]() 软件和控制部分: 为了尽量省成本,就不采购Arduino了,毕竟我对学习Arduino没兴趣。 MCU采用PIC16F628A,这是PIC单片机里面比较便宜的一款,人民币3块左右一个,其内置1%精度的经过工厂预校准的内部振荡器,在要求不高的情况下不需要外部晶振,省成本也省管脚,我们这个应用对频率的精确性要求不高,和PC的串口异步通讯波特率不要求很准确,所以就可以使用内置振荡器。 不要问我为什么不改用STC,没有其他的,经过对比,我更喜欢PIC的简洁和高效,对于初学者来说,PIC不会比51系列更难入门,还有一个原因,我拆过一些电器,如果有单片机的一般都是PIC,也有STM8,很少见到51系列,不过偶尔见到三星单片机是不是可以勉强算是? 这是我D的JDM编程器,你也可以买其他烧写器比如PICKIT3之类的。 ![]() 其实此项目的控制部分很简单,一块洞洞板即可,三个EasyDriver,一块TTL转RS232小板(我在一个机顶盒上锯下来的,你可以用MAX232之类的芯片搭建或采用分立元件模拟,都很简单),右下角是#p#分页标题#e#5V稳压电源部分,采用一个78M05竖装,PIC单片机的右边是引出的三轴限位开关插针,也可以不需要的,我现在就暂时没有安装限位开关。 ![]() ![]() ![]() 固件编译使用MPLABX +XC8,如果你的脚位分配和我的一样的话,可以直接下载HEX文件,不过建议你重新编译,毕竟即使脚位一样,步进电机齿轮组的变速比也可能不一样,所以defineports.h里面的一些参数也需要修改。 或者你可以购买Arduino,下载开源的GrblController固件,可玩性更好,因为其支持完整的G代码,可以配合各种雕刻机软件,只是这样一来,成本就提高了,看你自己的要求啦。 用我这个PIC的固件,你要配合使用我的上位机软件(开源),PCB设计软件EAGLE输出的Gerber文件经过上位机软件解析转换才能为控制板所解读,要打印图片就先导入到EAGLE,再输出Gerber。 ![]() 上位机使用方法; 参考原项目使用eagle导入图像,因为现在行程行程很大,所以可以直接输入你需要的dpi参数导入即可。 使用浏览按钮选择Eagle输出的Gerber_Rs274x文件,然后使用XYZ轴的微调按钮将笔移动到你需要的原点,绘图笔调到接触纸张,点击“全部清零”按钮,再点击“启动”,享受着看着雕刻机给你干活吧。 PS:固件、上位机软件、接线图等相关资料都开源在github上https://github.com/cdhigh/PrinterCnc 作品展示: 到目前为止,肯定有看官质疑了,那么简陋的结构能有什么精度? 听口音看客官是外地人刚到本坛吧,看来您老有所不知,我的特长就是用最简陋的结构达到最好的精度,用好的(贵的)结构来达到高精度谁都会,那样就体现不了我的绝伦才华了:) (我第一次听到有人将穷说的如此高大上^_^) 以下是作品展示: 龙的书法作品,不过画到最后时笔松动移位了,导致右上角虚了一些,没画好。 ![]() 在开始测试时发现如果笔尖够细(我用超细自动铅笔测试时),精度对于so8封装或更细的封装是完全没有问题了,但是就需要在eagle里面直接用wire工具排版,而不是用导入图像的方式(因为导入图像后eagle用海量的小矩形组成图像)。 你可以想像一下:xy轴都需要移动1886步才移动1cm,则每步0.005mm!所以只要x轴和y轴垂直度和水平度调好了,精度是可以接受的。 有兴趣的同学,可以改成激光雕刻,或者绑定一个白菜白光在Z轴上,就可以在塑料上刻字。如果你的Z轴够结实(我就有一个老旧的5.5英寸的软驱步进电机组,承重没问题,说不定我什么时候就装上去了),可以绑定一个小电机做为真正的雕刻机,或者绑定一个手工雕刻钻(在钢笔戒指等上刻字的小工具),就可以低成本玩玩雕塑料什么的。 当然,对于这个玩具来说,Z轴只需要两个位置(升起或下降),愿意倒腾的可以使用DC电机+限位开关方案,这下扭矩和承重都没有问题了。 写在最后: 我在搜索DIY雕刻机的案例时,看到有一个老外网友写到大概如下的话:做雕刻机是一条无尽的路,一旦你拥有了一台,你就会一直的希望拥有更好的一台! 这话,在我身上应验了。。。。。。 (责任编辑:admin) |