如何自己从0做一个写字机器人[AxiDraw]
高玩梁写字很慢,这和高玩梁我错误的写字姿势有关,而且我写字也很累。所以我特别讨厌写大段文字,包括作文,检讨,还有各类无脑抄写的东西。所以我一直想想一个方法找个机器代替我写字(我入团申请书都是打印上的字,虽然后来没用那一个)所以我就找到了一个开源项目:AxiDraw(后来成为了一个商业产品),这是一个写字机器人,包括但不限于写字,画画,制图等。于是我脑子一热,就做了一个(虽然结局很残忍就是了)。
前期准备
一、一定需要买的东西:(Note:Mx:直径x毫米,例如M3就是直径3毫米)
1. 2台 42步进电机
2. 4个直径8毫米(通常叫M8)光轴(两个400毫米长和两个320毫米长)
3. 8个LM8UU直线运动轴承
4. 2个20齿2GT皮带轮(齿带宽6mm就行,10mm的好像塞不进去)
5. 10个F623ZZ轴承
6. 1台SG90舵机(还需要一些较长的公对母杜邦线【至少3根】)
7. 1个Arduino UNO(祖国版也可以,只要是UNO就行)
8. 1个CNC Shield V3
9. 2个A4988步进电机驱动模块
10. 1条2GT皮带(至少1.4米长)
11. 2个M10螺纹杆(每个400 mm长)
12. 8个M10螺母
13. 8个带螺母的30mm长的M3螺钉
14. 8个6mm长的M3螺钉
15. 4个带螺母的16 mm长的M3螺钉
16. 2个直径4 mm、长100 mm的碳纤维管
17. 1个 12V 2A电源(要那种能分出两根线头的那种,这个东西不好买,所以我们就自己做了一个)要圆头的那种,如图,但是不能直接用,相关操作我会在下面说
18. 1根USB电缆(给Arduino烧录数据用的)
19. 1支勾线笔
二、可能需要的东西
1. 若干M3垫圈
2. 2个15毫米长的M3螺钉(老外给了,但是我没用到)
3. 电钻(有的时候3D打印出来的孔不是很大,螺丝插不进去,需要用电钻钻一下,需要M3,M4的钻头)
4. 电烙铁(有些比较大的孔需要用电烙铁烫一烫才能插进去,主要是没有那么大的钻头,而且有的地方需要你飞线,需要点焊,还得准备点焊锡丝,松香啥的以备不时之需)
5. 热熔胶(有的地方需要你上胶,最好再准备点502【主要成分氰基丙烯酸乙酯,这种胶各地叫法可能不同,但是都是这种成分】)
6. 示波器(检测舵机问题)
7. 若干排线(你放心,线这种东西总会用到的)
最重要的当然是3D打印的工件了,你可以在 http://www.thingiverse.com/thing:1444216 或者是 https://www.youmagine.com/designs/4xidraw 下载所需的STL文件,虽然文件很多,但是只需要打印以下几个:
DrawingMachine_-_Arduino_grip(这个也可以不打,也可以打,不过打了也没什么用处)
DrawingMachine_-_base
DrawingMachine_-_base_with_nuts
DrawingMachine_-_newEndX(这个打印两个)
DrawingMachine_-_Pen_Carriage_1
DrawingMachine_-_Pen_holder_1
DrawingMachine_-_servoHolder
EndY
EndY2
共8+1个(不算第一个)
中期组装
机器的3D图在此:http://a360.co/1N6b6tD ,跟着3D图组装框架几乎没啥难度,
但是我贴几张机器图片大家看一下,对一些细节部分再说一下。
电路板组装部分
电路板的话一共就是两个主要的电路板,一个是cnc v3,还有一个就是arduino uno,
其中arduino uno是放在cnc v3的下面
其中CNC V3上面需要两个A4988步进电机驱动,整体摆放是这样的
一定注意A4988的方向,我图中用圆圈标识了一个标志,一定要按照我摆放的顺序摆放,否则......反正我已经烧了4个了,你们看着办。还有你问我那个是X轴,哪个是Y轴?高玩梁比较笨,不知道哪个是X轴,哪个是Y轴。到时候你可以连上软件自己试。
更正:
那个白线和黑线没必要连(前提是你把那根和电源正极连接的蓝线焊到正确的位置上),这样就可以用你买的12v电源供电了
给一张老外的图(没有我的详细,但是比我的清楚)
至于舵机,这个时候就需要公对母杜邦线了,给一张连接图,注意和上面图三根线颜色对起来就行了
至于电源,你可以像我一样自己弄一个,我这个是从一个电动门上拆下来的,因为这个东西不好买(后来才知道没必要弄 /(ㄒoㄒ)/~~ )
所有硬件全部准备完毕,接下来就是软件了。
后期软件调试
首先你需要准备Arduino IDE(下载地址:https://www.arduino.cc/en/Main/Software?setlang=cn )或者ArduinoBuilder(下载地址:https://sourceforge.net/projects/arduinodev/)
然后从GitHub上下载这个 https://github.com/misan/grbl-servo (GitHub怎么下载请自行查询),然后根据https://github.com/grbl/grbl/wiki/Compiling-Grbl 进行安装(英文网站,自己翻译下吧),这个方法使用的软件是Arduino IDE,当然,这个有点麻烦,你可以下载ArduinoBuilder,然后在下载的grbl-servo-master这个文件夹里找到grbl_servo.ino.standard.hex这个文件,然后打开ArduinoBuilder,arduino uno用数据线连上电脑,点击 装入代码或hex文件 ,然后点击COM4(或者是COM5,也有可能是其他数字,但是都是COM什么什么就是了)
等他传入成功就行了
然后下载控制软件:http://winder.github.io/ugs_website/download/ 选 Stable 里的2.0 Platform (Beta)就可以,解压完后打开\bin\ugsplatform.exe(或者是ugsplatform64.exe,根据你电脑位数啦),打开效果是这样的。
第一步先点那个port后面的刷新按钮,然后把 Baud 改成115200,然后点后面那个连接按钮就行了
然后你可以点击左边的按钮测试你的机器有没有问题,如果点击X+是往左动或者是往上动就试试X轴,Y轴有没有插反,插反了就翻过来。(插口也分正反,不一定是XY插错了,也有可能是口插反了)【吐槽:Z轴按了咋没效果?——大哥,这个机器就是一个平面绘图机,你按Z轴,是想让他飞起来画不成??】
然后在下面的command里输入M3 S50,测试舵机有没有问题,如果舵机转了那就没问题,如果没转就说明可能有各种问题。(我们用的是es08mdII舵机【因为实验室有免费的】,不是要求的SG90舵机,导致最后舵机不转,所以我们甚至动用了示波器来检测,后来改写了源程序,才让他能动一个小角度)
使用命令M3 Sxxx(xxx介于0和255之间)将舵机旋转0-180。命令M5将舵机转到零度。
如果都没问题,恭喜你,你基本已经完成了。
可能有些人问笔架如何安装,看个人情况,我会在接下来的视频中说一下这个情况。
所以说怎么让他写起来呢??
这个问题问的好,我曾经使用了很多软件,后来还是放弃了那些国产软件,因为他们都莫名其妙写不出来字,或者写的都很鬼畜。最终我选择了一个国外的软件叫Inkscape,官方自带简体中文,首先需要在这里下载 https://inkscape.org/release/inkscape-0.92.4/ 下载完之后,安装,打开软件。比如我想写一个“高玩梁”,首先我要在纸的左下角打上“高玩梁”三个字,至于在左下角的原因是因为左下角是开始写的的(0,0)点,注意,字不要太大,4号或更小的字是最好的。
然后选中“高玩梁”三个字,然后选择 路径-对象转化为路径
然后选 扩展-Gcodetools-工具库
在打开的菜单里选涂鸦,然后点应用。
然后出来了一个绿框框
把这个绿框框移到一边,然后用文字工具对上面的信息进行更改,根据个人情况,比如我是M3 S255是抬笔,M5是落笔,就把gcode before path改成M5,gcode after path改成M3 S255(大家不要改成M3 S255,正常M3 S255是舵机转180度,一般转不了那么大,但是我的舵机即使调到M3 S255也转不了多少,这个改根据个人情况,直接在上面改就行,括号里是东西可以删掉)
改好之后选 扩展-Gcodetools-定向点,不用做任何改动,直接应用即可
之后选 扩展-Gcodetools-Gcode的路径
然后在弹出框里选 首选项
填上一个文件名(后缀名就是ngc不用改),然后在目录里写你想放到的文件夹,这个文件夹一定要存在。然后回到 Gcode的路径 菜单,点确定,要不然可能会出问题
然后一定会弹出一个错误,不用管他。
当你发现你打字的地方变成一团爆炸形状时候,你就成功了
然后你可以去那个文件夹找到那个文件,打开刚才的ugsplatform这个软件,然后点上面的browse,选择你生成的那个ngc文件。
点击那个开始按钮就可以画了
画图片我还没研究过,大家感兴趣可以自行研究,我就先写这么多了,大家感兴趣也可以自己做哦。
特别感谢:https://www.instructables.com/id/4xiDraw/
这是老外写的版本,但是不符合我的情况,我就自己重写了,但是大部分思路来自这里,毕竟这个项目是开源的,我爱开源ヾ(≧▽≦*)o