大数跨境
0
0

牛人自制画图机器人Polargraph:美感直逼原画

牛人自制画图机器人Polargraph:美感直逼原画 DF创客社区
2015-04-02
2
导读: 这个机器人,是一种画图机器人,简单来说是一支悬挂着的笔,通过控制它做有规律的机器运动,就可以像绘图仪一样画


这个机器人,是一种画图机器人,简单来说是一支悬挂着的笔,通过控制它做有规律的机器运动,就可以像绘图仪一样画出图来。但其效果,对于以往存于我们电脑里面的高清图来说,确是一种天真的尝试,是去尝试着去打破某些东西的。别太认真,认真你便输了!

它不太会像我们人类这样去画画(尽管他可以去这么做),我们也很难像他那样去画画(尽管我们也能做那么做,但是会非常困难枯燥)。

他可以将图画在很大的地方,如果我们要讨论他能画的最大区域,那答案则是取决皮带线的长度。



步骤一:关于它的历史


最近出现了许多新的画画机器人,能够看到他们将虚拟的东西转成现实实体的感觉真是太好了。对于我来说,我能够非常容易得制作出趣味编程的、跨界的、混搭的,具有虚拟体验的数字作品,但我认为它们意义并不是很大,因为它们并不具备实体性。试想,你可以在一天之中运行一百次,一千次,甚至百万次得去更新一些变化。画出来的东西是一次性的(我不知道该如何翻译,这里),我很难去看到里面的价值,体会到自己动手的乐趣。

因此,3D打印机和一些其他的制作工具、技术(例如激光切割机)已经变得越来越受到大众普遍的欢迎,我们对于这种现实实体的,物理化的,可以用手感触的,甚至可以去闻味的数字作品的渴望、渴求,从心底得,真的很难去估量。


事先申明,它并不是我原创的,让我们看下先前的那些艺术创作,会给你带来更多的灵感:

Hektor—所有悬挂式画画机器人的鼻祖

Der Kritzler—目前为止最smartest的(在窗上作画)

As220Drawbot—我做的画画机器人就是基于他的

SADBotInstructable上的一种自动画画机器人,材料与我的大致相同

或者来看下我做的一些东西吧:

Polargraph website

Polargraph project code

Flickr stuff




步骤二:组成


事实上完全可以有一百种方法来制作这么一个画图机器人,但我打算告诉你们我自己的机器人是怎样做成的,以此作为一个出发点。同时我也希望你们可以自己找到某些可以改进它的地方。


步骤三:转起来,链轮!



我没有能够找到能适配带有珠子的窗帘绳的链轮齿。应该有这样的卷帘机械结构,但还没有一种可以简单使用的结构。于是我自己设计了一个,并且3D打印了出来。JoneAbella设计了一个可调参数的链轮齿文件图,它可以适配其他尺寸珠子的窗帘绳。如果你拥有3D打印机,那你在家就可以自己打印出来了。

将链轮齿推入到步进电机的5mm直径轴上。


步骤四:准备你的电机


拨开电机线的末端,并分别给它们上锡。除非你的电机线本身就很长,否则你就必须对这些线进行延长,任意方法都可以,我用的方法是接在接线端子上。记住,一定要对你的延长线进行记号标注,以免之后错接。


步骤五:画板


去找一个大的硬板或者其他类似的来做你的画板。画板每边都应该比你最大的画纸的每边至少长150mm。

你也可以尝试去用一面墙来作为你的画板,当然前提是你能够在墙上固定步进电机。


步骤六:安装你的步进电机—边缘固定方式



你的步进电机应该被固定,并使你的链轮齿尽可能得靠近画板表面。如果你的画板是厚的,那你很幸运,你只需要用双面的泡沫胶将你的步进电机直接粘在画板上方的两个角上。这种方法可以减缓一些震动。但时间长了会有一些脱落,但在我这里并不是一个真正的问题,除非我让它连续工作好几天。

当涉及到接线和安装其他东西时,这样的安装就非常简洁。所有的东西都悬挂在后面。



步骤七:安装你的步进电机-前侧固定方式




我自己设计一个可用激光雕刻加工的3mm厚、木板材质的电机固定装置,这本身没有什么聪明之处只是用螺丝连接起来,这样电机部分就可以很容易得拆装,而主要的固定板还是放置在原地方。我使用Ponoko网上一块P1大小的硬木板制作出了一个装置,你需要做两套这样的装置。



步骤8:电子-Arduino



你需要使用到一块Arduino UNO控制板,将编译好的代码下载到Arduino上。


步骤9:电子—电机驱动板


这块电机驱动板通常是以套件形式卖的,参照Adafruit上的教程,你会发现它非常容易焊接。这玩意非常棒。

(译者注:电机驱动模块我们选择easydriver,经过测试完全可以,只不过需要在processing控制界面中修改其中一项参数,具体见下文)


步骤10:电子—连线


每个二相步进电机里面都有两个线圈,一个双极性的步进电机有四根线连接出来,每两根线对应一相。

我将Arduino板固定在泡沫板上,然后再将泡沫板固定在画板的后面。这样会使你更容易处理些。

所有线连接完后,将电机驱动板插在Arduino上面,然后你可以转动你的电机了!


步骤11:控制软件—安装


这个设置已经准备完毕,等待测试。控制软件是用Processing编程语言写的一个小应用。你可以运行源文件来打开程序,当然用我已经编译过的应用程序打开更加方便。


步骤12:控制软件—入门


在上面控制窗口中,有三个主要部分:

1. 左边区域:所有的控制键都在这边,

2. 中间灰色长方形区域:代表机器本身,

3. 右边区域:操作命令显示的地方。

接下来让我们将软件和硬件连接起来。


步骤13:控制软件—将它介绍给你的硬件


为了让控制软件与机器通信,你需要切换到setup部分,然后点击里面的serial按键。此时会打开一个小窗口,上面显示了可用的串口。

硬件每次向上发送准备完毕的信息,这个过程需要几秒钟的时间,这就是为什么你需要等待几秒才能看到结果的原因。如果你不想连接两者(因为你手边可能还没有机器),只需要选择no serial connection。

做得好!现在关闭串口选择窗口,然后点击setup部分下的save properties,这样下次打开软件时就会自动连接已选定的串口。


步骤14:控制软件—让它动起来!

确认你已经选择正确的串口号,窗口上方显示绿色的PolargraphREADY,证明已经与Arduino正常通信。如果通信不正常,这一行字会呈现红色。如果你是运行控制软件后再连接机器的,你最好先关闭控制软件再次启动一次。

如果你是从Processing中编译后打开控制软件的,那你可以在Processing的编译框中等待几秒后看到READY。


步骤15:组装贡多拉


贡多拉如上图所示,是一种夹住笔的装置。除了这种设计外,还有其他许多可选的设计,比如说这种3D打印式,很适合用在商业上。我自己的设计比较重些,有一个中空的中心,因此笔可以准确地保持在两根窗帘绳聚合之处。实际上,我不清楚这种设计与其他设计有多大的不同,但是它让我感觉不错。

我第一次做出来的贡多拉,非常简单,使用了一些硬纸板和一块CD盘,接着用胶和轴承连接起来(如上面第三张图)。然后我在里面又加入了一些激光切割出来的零件,但总的原则还是不变。我已经将这个设计以EPS文件开源,尺寸是一张ponokoP1大小的亚克力板。

各部件之间不是固定的,是可以转动的,然后在中间插入一根铜管(见零件列表)。激光切割的零件上都有些地方需要人工用锉子进行打磨,在打磨过程中需要小心些,因为亚克力材料比较脆弱。各零件按顺序全部推放到铜管,如果之间有些松,你可以用一些胶进行固定。我通常将各部分零件堆叠起来,然后在放上最外面的亚克力圆环之前我在铜管周围上放上一些胶。这个上了胶的圆环可以使我在它运行的过程中感到更自信。另外用一些胶在稳定器上也非常重要。

堆叠顺序,从下往上:

1. 大尺寸圆形稳定器

2. 空轴承

3. 圆环垫片

4. 连接竖直悬挂臂的轴承

5. 圆形垫片

6. 连接水平悬挂臂的轴承

7. 圆形垫片(这个垫片我上了胶)

8. 最后是一个木头材料的圆环,作为一个对外的装饰



步骤16:添加窗帘绳和平衡重物


你画面的大小取决于窗帘绳或者皮带线的长度。在安装过程中,请确保你的窗帘绳或者皮带线至少可以从链轮齿端延伸到你最大的画纸的对角上。另外不要忘记了留出一些长度,用来夹住你的平衡重物:只要窗帘绳或者皮带线的一端扣在贡多拉上。


步骤17:回到画板


好的,来看接下来的设置:

1.测量你的机器尺寸

2.找到你的零点

根据上面的说明图,在应该标记的地方画上相应的线。

为了使你的测量精确,在测量时让水平线尽可能得水平和垂直线尽可能得垂直。

现在按照上面的说明示意图,画出那条水平线作为你机器的最上端。它应该是在两个链轮齿中心和电机轴中心连线上。

然后画出另一条水平线,接着,通过你机器的中心点垂直得画出一条直线。这条线和画纸上边界线相交的点就是零点了。机器知道笔在软件中的坐标,而你知道笔的实际坐标。当你们两者的世界统一时,合一,接下来的事就好办了。



步骤18:完成设置你的控制软件


再次打开控制软件,然后切换到setup部分:

设置:

Machine width

Machine height

依次输入你自己测量出来的数据,单位是毫米。其中Machine height这一项并不是非常重要,因为它并不会影响构图,但它会影响灰色区域在你屏幕上显示的大小,因此还是尽量精确些为好。当你调整这些数值时,你会发现代表机器的灰色区域也会实时随之改变。

步骤20:现在让它真正得运转起来!

你需要在每次画图之前进行校准。其中包括了告诉笔在哪里。首先点击Input 部分中的Set home,然后手动得将贡多拉移动到我们之前测量出来的实体零点上。

点击Set home锁住电机,他们已经接上电,因此他们会一直抓紧贡多拉,直至你去取消。

标准的最大速度是每秒钟600步,加速度是每秒钟700步。切换到setup部分,左键一直按着send speed,通过上下拉拽鼠标来改变参数。


步骤21:加入图片


现在载入一张图片,然后选择画图的区域以及画图风格,并调节好适合的参数。

记住,一旦你找到了你所喜欢的设置,你可以点击save properties来及时保存这些属性设置。如果你不保存的话,下一次打开时都会消失,那时你会欲哭无泪的。


步骤22:选择一种画图风格


到现在为止,总共有四种风格:

1.Shade Square wave—标准的。(默认的)像素密度被转化成一种方形波纹图案。深像素=更多的波纹=更多的墨水。

2.Shade Scaled square wave—半色调的效果。不是去改变波纹的数量,而是通过改变波纹的大小来达到效果。深像素=大像素=更多的墨水。

3.Shade Solid—色度键控效果(是指两幅图像合成时,其中一幅图像中的特定颜色(cyan)为另一幅图像中的内容所取代的现象,如上面3、4图所示)。这种风格中每一个像素密度都达到最大,没有变化。

4.Shade scribble—噪音的效果。这个风格有些像随机的像素—若干线条被画上去,但是它们的方向和长度是随机的(在像素的边界之内)。深像素=更多的线条=更多的墨水。



步骤23:将笔装入,然后开始作画

在一支笔涂上一些胶,然后将它固定在贡多拉中,让笔尖漏出一部分。

将画纸铺在画板上。

将贡多拉校准到零点。

点击“render”按键,选择你想要的风格。接下来,是见证奇迹的时刻!

我已经测试成功了不漏墨的笔和画纸。我个人比较喜欢非常柔滑的纸,配合硬笔尖极细笔。在英国我可以非常容易得买到这些ZIG Millennium笔,他们使用起来效果非常棒。

Pigma MiCRON的笔用起来效果差不多,并且在美国比较受欢迎。

对于画面粗犷的画,使用笔尖粗的笔效果会更好。我之前一直平常的记号笔,尽管他们会渗出墨水,但效果也挺有生气,浓密的厚度营造出别样的效果。



步骤24:用舵机来控制笔的提起和放下


如果你将一个小舵机固定在贡多拉上,那你就可以使用它来让笔尖离开画纸。在驱动电路板上有两个舵机连接部分,如果你连接了SER1,就可以实现软件对它的控制。我在舵机上加了一个角状零件,通过舵机带动这个零件戳在画板上来使画笔离开画板。

可以通过手动按下#或者~来提起放下笔。这个过程不是很精确,但却是可以保证在结束画画时防止笔的墨水渗出。当你开始画画时,这些命令会在开始和结束的时候执行。


步骤25:笔尖的直径


笔尖的大小决定了一个像素由多少波纹组成。如果你像素是20平方毫米,而你的笔尖是1毫米的,那么该像素内你最大只能容纳20条线。加入更多的墨水也不会使它变得更深。

如果你换成0.5毫米的笔尖,那么20条线可就填不满这个像素了,而是需要40条线。机器会基于你设定的笔尖大小,尽可能得以最大密度去作画。


步骤26:矢量图作画


配合新控制软件,可以使用矢量图作画功能,这让机器变得更有用。

使用Inkscape软件

所有的路径需要以SVG格式文件分离。文字需要转换到这些路径中。你可以通过选择任何事物,然后进入Path->Object To Path来完成上面所说的,(这可以将任何形状比如字母变成轮廓),接下再次选择它们,执行Path->Break Apart(这可以打破多轮廓的字母)。在将填充的颜色变成透明后,你会发现这个功能很有用(在底部点击empty swatch),然后将轮廓设置成黑色(在底部点击black swatch)。保存。

切换到input部分,点击load vector,选择你的SVG格式文件。如果你看不到你的矢量图,点击“move vector”,然后你可以看到它更随你的鼠标移动而移动。再次点击放置SVG图片。你可以通过拉拽“resize vector”来控制它大小。这里100代表了它最大的尺寸,inkscape中的一个1px代表了机器中的1mm。

控制软件只会将线画在page区域中。

现在点击rendervector来将线条艺术装换成polargraph命令,然后将这些命令下载到命令列表。对于矢量画作品,move direct命令是用来告诉机器要移动的坐标,然后它就会在画纸上画出一条直线。下面的部分会有一些慢,那是因为它主要是一条线段分割成若干条更细的线条,需要不停地做更多的计算。

如果你将矢量图隐藏起来(show vector),你就可以看到存放在控制命令列表中(show queue preview)的线条直观得预览显示出来。

(译者注:最后这一部分没有认真得翻译,主要也是自己没有亲自试验过,大家自己去尝试)



在这里首先要先真诚感谢原作者Sandy Noble的无私开源(硬件和软件都有,尤其是软件部分),然后感谢翻译这么好教程的michael!(微信教程为简介版,原译者从参数到误区都翻译的非常详细,可点击原文查看详细版)


想要关注更多微信内容

请点击右上角→查看公众账号→点击关注

戳戳下方 阅读原文 注册新会员抽『粘土套件』


【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读1.5k
粉丝0
内容1.3k