Ⅰ 如何制作自己的网页字体图标
从设计单独的图标开始,到把它们转化成@font-face格式以备嵌入,乃至授权给他人使用,整个过程中我们将仅使用免费软件和在线服务。感觉怎么样呢?你不必依托于任何深奥的知识就可以制作出一套成功的英文字体(包括字母和数字),而只需要眼睛来设计——你面对的可能是非常非常小的东西。
最终,你将会收获一个制作设计元素的过程(方法),它的意义远远在制作出简单的图标之上。
在我们继续之前,首先应该谈谈,究竟希望通过在设计中使用图标达到什么目的,又是什么使得一个图标比下一个更成功。先讲理论再讲应用。为了完成这个任务,我们必须思考图标作为符号学的一部分,所扮演的角色。
什么是优秀的图标?
符号学,从广义上来说就是研究符号系统,我们如何对它们的形成和维护做出贡献,它们亦因我们对世界的理解而受到影响。
不论何时,当你从“它象征着什么”—— 它向你的观众传达了什么信息,或者它唤起了他们什么概念——思考你的某一部分设计工作时,你就是以符号学家的角度来审视你的设计。符号学像其它语言学一样,的确可以覆盖一种语言,在一个网站上面,有很多东西不是通过文字表达出来的,例如颜色、字体、形状(图标)。每个人都应该注意的是,这些东西所表达的都含有一种很强的文化因素。在中国,红色可以表示好运气,而在很多西方国家,它却意味着危险。
术语“icon”在符号学中有一个特殊的意思。icon是一个神器,通过相似表达某事物。例如,一个标记地图位置的icon。它拥有一个类似真实的
地图标记的形状,因此它可以表示一个位置,反过来,真正的地图位置标记使人们想起各种有意义的概念。其中这些有抽象的概念,比如地点;也有不太抽象的概
念,比如这个位置可能在什么地方。
一些所谓的图标并不具有真正意义的代表性。无处不在的RSS图标,一个点和两个同心圆弧段,没有什么比它更像Really Simple
Syndication 了。构成RSS图标的形状通过单独约定具有象征意义,对此我们已经达成了共识。不过,一个RSS图标更适合被称为RSS标志。
现在,我希望我们已经确定了下面两项成功的网站icon需要遵循的准则:
要有与真实事物的相似点,例如,一个类似真实打印机的打印图标。
你的图标在符号系统中应该是一个熟悉的,可识别的标志。
字体图标日益受到欢迎
Icon字体,由于其提供了一种图标速记方式,长期以来被认为是一种加强型UI设计,它协助人们理解文本信息。Icon图像以毒品传播的速度在整个web设计社区流传,使用它可以使你的设计更加亮丽、吸引更多用户点击。
与图片相比,使用icon式字体是一个相对新的主意。然而,与图片(背景图片方式)相比,它具备很多固有的优势,因此它的吸引力正在逐渐增长。早在9月初,我在微博上写了它的一些好处,Chris Coyier显然也有类似的想法,几周之后也向更多观众介绍了它。基于以上两篇文章和其它内容,我编写了这个较为完整的特征列表:
它们的尺寸能够轻松调整,并且不会损坏图像质量(作为矢量图);
给icon定义颜色和文本一样简单。例如,对于一个rss图标,color:orange;
可以把许多icons排列在一个组中,也就是一个文件中,这样只需要一次http请求就可以了;
正如Chris所指出的,它们在IE6中也可以借着透明性显示出形状(这一点 与PNG图片不同);
对于那些应该出现在文字附近的图标,对齐方式和包装都不是问题(因为它们是文本);
你可以应用CSS3的text-shadow和background-clip:text效果,以便凸显字型的形状;
不像SVG,icon字体很容易实现跨浏览器兼容;
问题
Chris说过,使用icon字体是一个不错的主意,我要告诉你。
尽管如此,icon字体的使用现状并不理想。首先,一些优质的可用字体,如Pictos, Fico, Klepto, Cheetos, Ponyo 和 Sailor Moon都是收费的。实际上意味着真有两个问题:
你或许不得不投资一部分钱。
无论你是否需要花钱,你将会被迫接受其他一些人的糟糕设计。
除了自动抓取程序,我假定主要是网页设计师将会阅读这篇文章。我是一个设计师,我不认为只有我一个讨厌依靠别人的作品,使自己的设计思路大打折扣这
种事儿。当然,我更不喜欢那种有支付权限的想法。我知道自己要使用什么图标,并且我知道如何才能使其适合我的整体设计。我想要那种控制力。
经过一些搜索,我想介绍一下Inkscape的svg字体编辑器。通过使用Inkscape和一款在线转换器(SVG字体到TTF),我制作出了字体“Heyding”,这个字体在 Simurai’s list(由Coyier的文章链接到)中有介绍。我不打算将自己的字体卖给你(它是免费的),但是我想它会带给你一个非常好的概念。
使用Inkscape制作icon字型
启动Inkscape
我们先从下载和安装Inkscape开始。你也应该使用我的icon字体启动器模板,它们被放在这个GitHub仓库的资源文件夹里(以后这个项目中还会有更多)。一旦你在Inkscape中打开了这个文件,你应该通过在主菜单中打开以下窗口来设置好你的工作空间:
OBJECT → FILL AND STROKE
OBJECT → ALIGN AND DISTRIBUTE
TEXT → SVG FONT EDITOR
在SVG字体编辑面板中,点击“Font”下的“Font1”。现在,你的工作空间看起来应该有点儿像这个截图:
值得指出的是, baseline不是在画布的下边界之下:如果你希望与相邻的字体共享同一条基线,你的图标应该很轻微地悬在画布的底部。我已经用Georgia,Arial和一些网页字体进行了测试。
制作你的第一个字型
为定义字型,点击SVG字体编辑面板中的“Glyphs”选项卡,然后点击面板下方的“Add
Glyh”按钮。一开始你可能不太清楚,但如果你在你的字形(“字型1”)上点击,一个字段将会显示出来,它要求你输入你需要的图标对应的字符。我们首先
要做一个简单的星形,所以我建议你输入的字符“s”,“S”或“*”:
现在我们已经定义了字型对应的字符,我们需要制作字型本身。由于这次我们仅仅要制作一个星星,我们应该从Inkscape左边的工具栏中选择有用的
Stars and Polygons tool
,然后,在画布上绘制一个星星。你会发现,这个工具自带的选项允许您更改星星的外观。在我的例子中,选择了角数为5,spoke
ratio为0.5,rounded value为0.1。
使用Align and Distribute panel(可能在SVG Font Editor下面隐藏着)使星星横向居中,然后乡下拖动形状使触及基线。关闭网格显示之后,画布看起来应该像这样子:
在我们的icon字体中,字型只是形状,没有颜色、层级或者渐变的形状。因此,为了使我们的星星成为一个合格的字体候选者,我们必须将它由一个对象
转化成基于路径的图形。你可以通过在主按钮上选择星星,然后是PATH → OBJECT TO
PATH来完成这一任务。现在,选择了星星之后,我们可以在SVG Font Editor 中,高亮显示可用的“s”字型,然后点击 Get
curves from selection按钮:
当你在Sample Text 区域输入“s”时,你的星星应该被预览出来,如下所示:
制作更加复杂的icon
你已经制作出了第一个可扩展的SVG字体字型。通过使用Fill and
Stroke面板上的选项:编辑路径节点,以及合并对象和笔画,能够使你做出更加不凡的icon设计。由于我们还有很多要讲,我不想深入完成一个完整的
Inkscape教程,但是遵循下面的简单规则会给你带来好处:
坚持使用黑色笔画和填充,只是为了提醒你:那些icon仅仅是形状,而非复杂的矢量图。为icon上色这件工作,我们会在最终产品中使用CSS来完成。
所有对象和笔画(线条)必须被转化成路径(不管使用PATH → OBJECT TO PATH 或者 PATH → STROKE TO PATH)
当有多个对象和/或笔画被用来完成一个icon字型时,它们应该被合并起来(使用PATH → COMBINE 或者,在某些情况下,使用 PATH → UNION)
为了在已有的形状上剪切出想要的形状,将形状放置在主形状上面,选择两个形状,然后选择 PATH → DIFFERENCE。点击Get curves from selection ,黑色块上面的白色区域剔除之后就是你要的形状。
准备嵌入你的字体
假如你已经重复了很多次我刚才所描述的方法,创建了一些有用的图标,并且,字体文件被保存为myicons.svg。现在,你将要准备好把这个图标库用于网页中。
把SVG转化成TTF
你应该采取的第一项措施是,将SVG字体格式转换成一个更熟悉、更通用的格式。 TTF是一种用于本地安装的卓越格式。同时,它还为再转化成@font-face提供了一个良好的基础。可以进行字体转换的在线服务包括: http://onlinefontconverter.com,http://www.fontconverter.org和http://www.font2web.com。然而,我个人最喜欢的,是http://www.freefontconverter.com,因为我不会排队,也从来没看到它产生什么故障。
我想,不需要向你介绍如何使用这个资源也足以显示我的诚意了。醒目的文件上传字段,select元素和巨大的转换按钮会让你迅速抓住重点,真的。
编辑字体信息
既然你已经获得了一个TTF,我推荐你现在编辑产生的元数据。对字体进行重命名、添加属性和描述,使它准备好被安装、嵌入和分发。这也是一种声明字体为你所创造的途径。运行Windows的读者可以选择使用貌似很霸气的 Microsoft Font Properties Editor或者允许免费使用X天的Typograf。对于苹果和Linux用户,我希望得到你们更好的意见。
重要提示:虽然Microsoft Font Properties
Editor允许您添加作者,描述和许可信息,它似乎并没有让你编辑字体名称、附言名称等基本数据。这些字段是被禁用的。如果你想使用这些特殊的功能,你
需要在SVG转换为TTF之前,在SVG代码中编辑禁止的值。在你喜欢的文本编辑器(我用Notepad++)中打开原始的SVG,并编辑以下内容:
Font Name:标签中可以寻找到, font-family 属性
Postscript Name:标签中可以寻找到, id属性
Description:你应该在这个标签中添加一个描述(作者、许可等)。请注意这与TTF描述文字是不同的,转换过程中将不会被保留;你还需要为TTF添加单独的描述信息。
嵌入字体
一旦你在本地系统中安装了TTF,并且已经预览过,确定没有出现意外状况,你就可以在Font Squirrel的 @font-face generator中运行它了。为了使输出代码的效率和效果尽量好,这里有几个专家模式中的选项值得一提:
Subsetting:该选项允许您只运行需要的字符集(包括字符编码、类型、语言等选项),减少文件大小。
Remove kerning:您的图标将几乎总是单独出现,所以字距是没有必要的。据称,这也将减小文件大小。
WebOnly™:如果你希望您的字体仅仅用于web中,而非桌面- 你可以选择此选项。它也可以更好地满足您的授权计划。现在我将介绍许可证。
发布字体
如果你有兴趣发布你的字体,给它添加许可是一个比较好的做法。否则许多字体网站将不会带它玩儿。由于我们制作图标时使用的是免费、开源的软件,发布时也不妨这样做。
目前,有很多可用的授权选项,而逐一调查研究它们有时是令人费解的一件事。 GNU General Public License是完全可以接受的,但你可能要考虑SIL Open Font License。使用这种许可证的主要优点是,reserved font name:即允许其他设计师修改字体,但他们需要用不同的名字。在实践中,这意味着,对图标设计的一些不良行为不能以“你的名字”来进行。
有了这两种许可,你还应该在一个文本文件中保存版本信息,同时在字体的元信息中插入版权声明和完整许可的URL链接。如果需要更具体的说明,请访问各自的许可证页面(上面的链接)。
CSS spriting的终结者
为什么要停下使用SVG字体做通用图标的脚步?有了做图标的能力,也就有了能力去设计出站点独有的形状、品牌元素和装饰。这一点像CSS
sprities,所有这些视觉元素都可以保存在一个文件中,减少了服务器调用http请求的次数;不过,icon字体的元素都可以调整大小,而不必依赖
于位置坐标(背景位置值)才能正确显示。这使它们更适合于 responsive design。
让我们假装要选择使用一个SVG字体去代替一些我的steampunk般的blog里基本的设计元素。组件设计的一个简单的HTML表格呈现会是这个样子:
关于这种方式,最好的事情就是通用性。举例来说,从左边的第二个齿轮形状既可作为一个微小的圆点设计,又可以是一个巨大而抽象的背景装饰。着色很简
单:color:maroon,但没有必要坚持扁平的颜色;多种CSS3效果叠加起来可以为它添加纹理和触感。为了让你一开始有所启发,查看this excellent gallery of CSS3-enhanced webfonts。
关于屏幕阅读器的快速笔记
以这种方式使用字体来显示视觉元素的一个问题是,在屏幕阅读器上输出时会受到影响。直观上的网站访问者会看到齿轮,箭头之类的图标,但是屏幕阅读器将坚持读出指定这些设计的字符。对于使用装饰性的SVG字体元素,我建议听取Coyier的建议:为Unicode的Supplementary Private Use Area分配向量。这样的符号不应该由读者来读出。
一个协作式icon web字体
作为我的JavaScript导师,Rupert,有一天向我指出,使用SVG字体来创建图标集为合作提供了一个有趣的机会。你看,SVG的代码 - XML的一种形式 - 是高度标准化而且轻松可读的。正是源码的顺序让我觉得,icon字体的开发很适合选择像GitHub这样的协作编码服务。
这个想法契合了我想要的符号含义:如果一个图标是由很多人协商之后一致确定的,那么它的形成过程中也存在一定的“共识”。通过我们的图标标识系统设计出来的,一定是最典型的图标。我们应该创建一种属于社区的icon词汇,并且它对于需要的人来说是有意义的。
为了发展这个想法,我创建了一个公开的GitHub仓库Community Icon Font,这个仓库的文件结构并不复杂:仔细阅读上面的Inkscape教程和项目主页的内容应该可以为你解答所有的疑惑。如果你是GitHub的新成员,尝试阅读它们的帮助页面,或者问问你附近的技术人员(我正是这样做的)。
Ⅱ 如何用arinounor3和easydrive做激光雕刻机
本制作项目使用的是一颗大约 200
毫瓦的红色激光发射器,即使不足以烧穿木头,如果不小心可能会亮瞎你的双眼!所以千万别直视激光束,即便是直视反射光也一样非常危险。请注意安全。
1
工具和材料
大部分硬件都可以利用废品制作。铝型材、中密度纤维板和各种螺母、螺栓以及导线。但部分物品需要你另行购买。大部分电子器件都可以在
Sparcfun 上找到,其余的可以到E-bay或者旧货交换市场碰碰运气。○ 1.激光发射器外壳(图中)
○ 2.Easydrive
驱动器电路(图中)
○ Arino
(这是控制电路的核心)
○ Easydrive 步进驱动器
○ 两台 DVD-rom 驱动器
(要是你运气不好的话也许会需要更多),并且至少需要一台DVD-R 驱动器来提供激光发射器
○ 激光发射器外壳
(在E-bay上可以找到零售的)
○ 激光发射器驱动电路
(这玩意儿有许多替代品,我用的是简单的基于 LM317 的电路)
○ 各种螺帽、螺栓以及其他的建材。
2 拆解 DVD-Rom驱动器
坏掉了的 DVD-Rom 驱动器
● 在 DVD-Rom
驱动器中你所需要的只有步进电动机组件和激光二极管。我的运气不太好,发现我的 DVD-Rom 带有一块非常难处理的塑料组件。于是我拆开了三台 DVD-Rom
驱动器,却只用了两台里的零件。拆解的过程相当有难度,而且我打开过的大部分 DVD-Rom 驱动器差不多都是这样的。
此处正下方有个小型的直流电动机,你可以把它拿出来为将来的制作项目做准备
●
在移除了驱动器底部的螺钉以后,你就能把它像个盖子一样掀开了。你很可能会在底盖下面看到两块电路板,这两块对我们都毫无用处。但是要记得保留下其他有用的零件,供其他的制作项目使用。例如在靠前的电路板下面有一台值得留下来的小型直流电动机。
●
现在你就该把前面板连同前置托盘一起拆下来了。当你把托盘拉出来以后前面板就会变得松散(只要利用一根发夹和前面板上的那个小孔就行了)。
●
接下来的步骤需要拆卸螺钉,或许还需要一些蛮力。拆除两块电路板。当心连接在步进电动机上的排线。
需要将这个电动机拆除。
● 如果你把 DVD-Rom
驱动器的右侧朝上放置并把顶盖移除,就应该能发现我们正在寻找的东西——步进电动机组件。拧开螺丝,直接把它取出来就行。●
既然我们已经把步进电动机组件拿了出来,那么我们就该做一下清理工作。把主轴电动机拆除,它可能有点用处,但是我觉得驱动它来太麻烦,于是我就把它们抛弃了。它们通常是用三颗非常小的螺丝固定起来的,不过有时它们会是一个更大的组件的一部分,因此在拆除时候要小心,不要弄坏了支撑镜头的两根杆。
●
镜头嘛,只要用最合适的方法把它拆下来就行了,我们需要留下一个光滑的表面,之后在上面连接一些其他的零件。小心不要弄坏了 DVDR
驱动器的激光二极管。如果你不想要之后再购买一支新的强力激光发射器的话,就要善待这玩意儿。这一整块部件都要拆掉,放在一边为将来的制作项目做准备。
3
组装激光发射器激光二极管
● 从 DVDR
驱动器中取出激光发射器并不难,不过大部分的镜头组件的外形都各不相同。找出激光二极管(会有两个,一个是红外的,一个是红光的)然后从组件中将它们拆下来。这些光学器件可以留给将来的制作项目使用在镜头的两侧各有两个强力磁铁,你值得拥有1.从镜头上拆下来的磁铁
2.镜子和透镜
3.激光二极管
4.废物
●
其中有一光些学器件和两块磁铁,你可以把它们屯下来为将来的制作项目做准备。你需要把激光二极管从支架上拆下来。这需要使一点微弱的力道。小心别伤着了激光二极管其中一个是红外激光二极管,另一个是我们所需要的红色激光二极管从二极管上移除连接电路板●
当你把两个二极管拆下来以后你一定要小心翼翼。这两个二极管非常小,也非常脆弱。
● 从二极管上去除那一小片连接电路版,然后用两节 7
号电池检查一下红色激光二极管是否健在。●
既然你已经有了裸奔的二极管,那么就是时候把二极管安装到外壳中了。在激光发射器外壳背部的小孔正好可以让二极管的引脚穿过●
把二极管放入外壳中,并用外壳的背面和钳子非常小心地把二极管压入外壳中。现在二极管已经牢牢地安置在外壳中了●
当你完成这一步后,你就驶入了终点前顺畅的直车道了。把导线焊接在正极和负极引脚上●
然后把镜头用螺丝拧上,这样你就搞定了。用一些特富龙胶带把镜头固定到位178
毫瓦的输出功率很不错了。不过这会让二极管进入过载状态二极管的工作电流为 310 毫安
4
制作机械部分我很幸运地找到了这些垫片,不过用一根螺栓和一些螺母也能达到很好的效果用一片压克力板作为底座
● 为了尽可能地简单,我找了一块正好比 DVD-Rom
驱动器的步进电动机组件略大一些的中密度纤维板。它将成为底座,固定住 X 轴和 Y 轴的方向。
● 我找到了一些垫片来固定 Y
轴方向,不过几根螺栓和数个螺母也能有不错的效果。这里的尺寸要求并不严格,不过必须确保每一根轴都与其他的轴相互垂直。我发现把第一层组件安装在中密度纤维板上以后在对齐各个零件时会方便一些。●
工作空间位于老的激光二极管组件上。确保它表明平整且水平放置,然后在上面涂上些胶水固定好,工作空间就完成了。我发现一块 1/4
英寸的压克力板刚好合适。它能让工作空间保持足够的稳定性,不过由于激光能够射穿它,所以我不确定这是否存在安全隐患。后来我想出了一个在我看来效果最棒的解决方案。我切下了一片与压克力板的大小相同的DVDR
驱动器的金属外壳,然后用胶水把它粘了上去。这样工作空间依然非常稳定,而且强度也足够了。它还有一个有利的作用,那就是你可以用磁铁把你想要雕刻的东西固定在工作空间上。● 我在废品箱里找到了一些铝型材。● 把它当作了 X
轴,不过你可以使用任何稳固而且够长的材料。
●
测量一下你觉得在雕刻时所需要的适当高度。● 我选择了几根长 7.5
英寸的板材用作支架。这样会给我留下不到 2 英寸的细小间隙。我钻了几个小孔,这样就可以用电缆扎把线拴紧●
一件重要的事情在于,组件上的安装孔并不是对称的。记得测量从支架底端到直线导轨的距离。这样你就能确保所有的零件都对齐。你安装 X
轴的位置取决于激光发射器的安装位置。激光发射器应该位于工作区域的中心,而 Y
轴位于中间。当你将两轴安装在基座板上的时候,先确定所有的零件都相互成直角,然后钻几个供螺丝拧入的小导孔。● 现在你应该已经完成了相互垂直的 X 轴和 Y
轴。这里最重要的尺寸要求就是保证所有的东西都是四方的直角
●
激光发射器的支架不一定要做得很复杂,我用的是一小片塑料板和一个夹子,然后把所有的东西都用胶水粘起来。
●
用夹子固定激光发射器,这样就可以靠简单地把激光发射器上下滑动来改变焦点位置。
●
和其他的零件一样,它的尺寸并不重要,只要一切都相互垂直就行。这里只有一个尺寸是需要你斟酌一番的,那就是激光发射器的位置。当 Y 轴和 X
轴位于中央位置时,它应该处于工作空间的中心。
我在这里用一片和激光发射器支架上相同的黑色塑料进行了测试。最后我用一片从 DVDR 驱动器外壳上拆下来的金属又测试了一次 |
5
电子器件在你寻找所需的排线时,老旧的电脑是你的不二之选这些排线虽不易焊接,但效果很好。我在两台步进电动机上都进行了相同的焊接
●
我开始焊接步进电动机。用一根排线连接步进电动机,然后把它们焊接在
DVD电路板上已有的接口上。我在另一头焊接了一个四引脚的插头,这样就能插在试验电路板上使用。Easydriver 和 Arino
的初次测试——大成功
● 对 Easydriver
也进行相同的处理,焊上引脚插头,然后插在试验电路板上使用。
● Easydriver 有两个引脚,叫做 MS1 和
MS2,它们用于设定步进的序列。将它们双双连在 Easydriver
的5伏电压输出上。这样就把步进序列设为了微步进控制。把从步进电动机伸出的四根引脚连接在电动机的输出端,而控制引脚(step、dir 和 gnd)连在
Arino 上。除了这些以外,Easydriver 还需要连上电动机电源。我用一个12伏的电源适配器驱动电动机、风扇和
Arino。一个电位器被用于控制电动机的电源,把它设到最低就行,要是步进电动机的动力不足的话,就稍微调大一些。我并不清楚步进电动机的额定电压,如果它们发烫了就说明你给的电压太高。在本制作项目中用不到的多余元件●
我在电路图上添加了一个继电器,供风扇使用。因为雕刻过程会产生一些烟雾,所以风扇是很有用处的。
●
风扇只需要连接在风扇输出端上就行了。一只小型的电脑风扇就有不错的效果,你只需把正极和负极的导线连在正确的输出端即可。在焊接所有的引脚时都要记得检查位置是否正确我把 Easydrives
安装在插座中,这样就能在以后的新版本中重复使用了
● 激光发射器的驱动电路是用基于 LM317
的电路制作的,不需要特殊配件。这样的驱动电路可以正常工作,但效果远远说不上是理想。我给激光二极管的驱动电流太大了,大约在 300
毫安,你要是也这么做,那么二极管的寿命不会太长。最好的解决方案应该是找一个更强大的激光发射器和驱动器,但为了坚持廉价和DIY的精神,我还是想要使用 DVDR
驱动器本身的激光发射器。激光发射器开关和风扇所使用的是同一个继电器。
●
如果你想要一切从简,那么你可以跳过整个激光发射器驱动电路的制作,采用现成的驱动器。这样的话你所需要做的就只是把电源接在风扇继电器上而已。当然这样做成本可能会稍微高些。
● 整个电路构成了一种新式的 Arino
电路——激光发射器控制电路。我已经附上了 Eagle格式的电路图和电路板布置图。如果你想要自己布置 Easydrivers 的电路的话,我也准备了带有驱动程序的
Eagle 库文件,你可以在 这里 下载。
6 准备
Arino● 我自己给 Arino
写的软件。但是在搜索通过串口控制移动的好方法的时候我碰巧找到了一个叫做"Grbl"的东东。这是一个有着相当多优秀功能的 g
代码编译器。由于我已经把所有的东西连到了 Arino
上,所以我要么得改变我的连线,要么就改变我的程序。幸运的是在软件中修改控制引脚其实相当方便。只不过我不得不下载 Winavr ,然后再从 github.com
上下载代码。做起来很容易。下载并解压出代码以后,你必须把 config.h
中的端口号修改一下,确保将它们排列为正确的顺序。接着你所需要做的就只是打开一个命令窗口,输入正确的文件夹,然后输入"make"。如果一切如计划那样顺利进行的话,你应该最后会得到一个给
Arino 使用的 .hex 文件。
● 但是我从那时就把引脚改动过了,而在本教程中我使用的是
Grbl 的默认引脚。这样可以让你在跟着教程设置时更加简单。你只需要从 Grbl 的下载页面 hex 文件就行了。
● 无论你选择何种方式,最后你都将得到一个输入
Arino 中去的 .hex 文件。我试过许多不同的方法,其中我最喜欢的是用一款叫做 XLoader 的软件。编程的过程非常直接明了:选择 Arino
的正确的串口;选择 hex 文件以及 Arino 的型号;然后按下上传。如果你使用的是新版的 Arino Uno 的话,那么 XLoader
是不支持它的,你会遇到一个上传错误。碰到这种情况我建议你使用 ARP/ArinoUploader ,不过即便是这款上传器在 Uno
的支持上还是存在一些问题的。当你在给 Arino 编程时,要在各个下拉列表中选择串口端口和微控制器。然后你必须把"AVR Dude
Params"这段文字进行一些修改。删除"-b19200"(不带引号)部分,并点击上传按钮。无论如何你也该在几秒钟之后搞定,准备好进行测试了。退出
XLoader,进入下一部分。
● 你需要针对这一项目对 Arino
进行设置。打开你最喜欢的串行终端,然后打开Arino 所连接的端口。你应该会收到一条欢迎信息:
Grbl 0.6b
'$' to mp current
settings"(输入"$"清空当前设置)
如果你输入一个 $
然后回车,你会看到一系列选项。类似于这样子:
$0 = 400.0 (steps/mm
x)
$1 = 400.0 (steps/mm
y)
$2 = 400.0 (steps/mm
z)
$3 = 30 (microseconds step
pulse)
$4 = 480.0 (mm/sec default
feed rate)
$5 = 480.0 (mm/sec default
seek rate)
$6 = 0.100 (mm/arc
segment)
$7 = 0 (step port invert
mask. binary = 0)
$8 = 25 (acceleration in
mm/sec^2)
$9 = 300 (max instant
cornering speed change in delta mm/min)
'$x=value' to set parameter
or just '$' to mp current settings
ok
● 你必须把 X 轴和 Y 轴的 steps/mm
值都修改为 53.333。只要输入"$0=53.33"(译注:此处疑为笔误,少了一个
3)然后回车,接着输入"$1=53.333"然后回车即可。因为我们并没有用到 Z 轴,所以可以把它忽略掉。加速度可以提高到大约 100
的程度(输入"$8=100"然后回车)。当我们缓慢地操作这台机器的时候,加速度也会很高。加速度太低的另一个副作用是在控制器不停地尝试加速和减速,但却无法达到全速时,曲线图形会比直线受到更剧烈的烧灼。你有可能和我一样发现有一根轴反掉了。这很容易修正。选项
$7 让你能够改变轴的方向。我想要改变 X 轴的方向,于是我输入了"$7=8",这是因为我想要修改 3 号位(8 = 00001000 二进制),如果你想要修改
Y 轴的方向,那么就输入 16(00010000)或者要修改两根轴的话,就输入 24(00011000)。有关掩码设置的 完整文档
可以在这里查看。
●
现在你已经完成了电脑设置的准备。如果你想要尝试进行几下移动的话,可以输入"G91 G28 X0 Y0【回车】"把轴的位置归零。然后输入"X10
Y10【回车】"。你应该会看到两根轴向上都发生了 10 毫米的移动。
7
准备软件●
这一步我将详细地从基础讲起。我会讲到你所需要的软件、如何设置软件,以及基础的工具组合。我只会讲解基于 windows 的系统,你们那些玩儿 Linux
的人只能自行查找了(不过 Inkscape 和相关扩展应该也能在 Linux 上很好地运行)。首先你必须下载以下三个文件:
1 Inkscape
——这是一款开源的矢量编辑软件。
2 LaserEengraverExtension
(激光雕刻机扩展)——这会生成控制激光发射器所需的 g代码。
3 G-codeSender (G
代码发送器)——这是我写的 windows 小程序,用于和 Grbl 进行通讯。
● 根据 Inkscape
的安装指示进行安装。这应该是个非常顺利的过程。如果需要任何这方面的帮助,可以在他们的网页上找到相关文档。接下来就是激光雕刻机扩展。这安装起来要难一些,不过也不是太难。用你惯用的解压缩软件打开
.zip 文件,然后把所有的文件复制到"c:Program FilesInkscapeshareextensions"下面。你必须重新启动
Inkscape 才能让扩展生效。这个扩展其实是个经过大量修改的"Gcodetools"版本。这就是安装 Inkscape 的位置。你可以把"G
代码发送器"放在桌面上或者任何别的地方,过会儿再找出来就行。它不需要安装。
● 关于扩展有一句话我必须声明,我不是 python
程序员,因此在代码中可能存在一些缺陷。
●
我接下来假设你已经安装了所有软件,并准备开始使用了。下面是工作界面的快速浏览录像。
● 我希望这录像的速度并不算太快。网上有数不胜数的
Inkscape 使用教程。我不会讲解任何关于如何使用它的细节。
● G
代码发送器则是另一码事了。网上没有任何文档,因为这是我自己编的程序。所有的文档都在这篇教程中了,不过如果你有问题,那么请放开胆子提出来吧。当你打开程序时,它应该是非常浅显易懂的。唯一奇怪的东西就是行尾选择按钮"nr"和"rn"。根据你所使用的
Grbl
的版本不同,行的结尾也会有所不同。如果一种方法不行的话就试试别的方法。选择你使用的串口,要是你忘记连接激光雕刻机了,那么就把它连好,然后按下刷新按钮,这时你的串口就应该会被显示出来了。按下"open"(打开)按钮,打开欢迎界面。一旦端口打开了,你就能够在打开按钮上面的文本框中像任何命令行终端软件一样输入命令了。如果要开始打开一个文件进行雕刻的话,你可以要么输入文件路径,要么点击
browse(浏览)按钮后选择一个文件。当你点击"print"(打印)按钮时,就开始了文件传输。文件会一直传输到 Arino 的缓存充满了为止,大约就传输
20 行左右。当缓存可以再放入更多的数据时,就会再传输一行。当你按下 stop(停止)按钮时,传输就会停止,但是 Arino
在缓存清空之前是不会停下来的。当你按下"close"(关闭)按钮或者退出程序时,串口就会被关闭,任何传输都会被中止。
● 有时会出现 Grbl 无法解译的 G
代码,它会返回一个错误。大多数情况下这些错误都可以被忽略掉,不过它们会出现在发送器中。这些可能是注释,或者是开头或结尾的"%"符号。如果在命令后面有一条注释,那么就会产生一条错误,不过这条命令依然会被执行。例如"G21
(All units in mm)",G21 命令还是会被执行,不过后面的注释会给出一个错误。
8
最终组装以及额外配件当你把 Easydrivers
装到一个盒子里时,就需要用一个风扇为它们降温。它可是会疯狂地发热
● 为了完善这台小型雕刻机,我用从一张画框中拆下来的
Masonite 牌纤维板制作了一个小盒子。只要用胶水粘起来就行了。
● 前面有一个老显卡上拆下来的小风扇。当你把
Easydrivers 装到任何外壳中的时候都需要对它们进行冷却。它们裸奔的时候就很烫了,放在外壳中就更烫了。用胶水粘上一些垫片可以让它更容易用螺钉固定在底盖上
●
我在盒子中用胶水粘上了一些螺纹垫片,这样我就能在底部旋上螺钉。● 把 Arino
反过来用螺钉拧紧在底部。这样这台雕刻机就变成了一件方便好用的小工具。通风孔所有进入盒子的线路都从顶部穿过我在一块老显卡上找到了这个风扇保护罩完好无损的小风扇
● 这是个 40
毫米的电脑小风扇,与我在电子器件这一步中提到的激光发射器的继电器相连接。风扇的方向朝向工作空间以外,它会和缓地把烟雾吸走。把风扇连接在激光发射器的继电器上,面朝工作空间以外。它能够把烟雾吸走,同时不会影响工作空间中的器件钕磁铁的顶部粘上一个螺母。它可以很好地按住你的工件
●
另一件小而有用的额外部件就是用于按住纸张和其他质量较轻的物体的磁铁。我从一只老玩具中找到了这些磁铁。只要在顶部用胶水粘上一些螺母,就搞定了。当激光发射器处于最低的位置时,焦点应对准工作空间的表面
●
为了改变焦点,你就得通过拧动螺丝来调整镜头。或者你可以先把焦点定在工作空间上,之后再把激光发射器在支架上上下滑动。
●
当激光发射器处于支架上最低位置时,我把它的焦点固定好。接着我所需要做的就只是测量工件的厚度,然后把激光发射器抬升相同的高度。大部分情况下我只要把工件靠在激光发射器的支架旁边,然后把激光发射器移动到正确的高度上就行了。当我把激光发射器移动到与工件相同的高度时,焦点就调整到工件的顶部了
9 大功告成
以下是到目前为止我用雕刻机制作的物品,我会尽量用图片来展示。想象力是唯一的限制哦(除了雕刻机的低功率和工作空间的小尺寸)。