86小六足组装教学



专案起源

「嗯…经过史加纳专案后,好想再做一只可爱版的六足机器人啊…」 大概是之前史加纳专案成功地引起广泛关注和讨论,引发了老大内心的 Maker 魂,从那之后只要工作一有空档,老大便想着如何扩大机器人对教育市场的影响,现在的想法就是如何让人人都能自己组装一台…,突然, 「对了!我们有 3D 印表机印匠!!」 老大灵光乍现。 「恩卓博士,准备!!」 「嗯?什….」恩卓博士正处于萌呆状态,然而老大并不理会便朝桌上拍出一张纸, 恩卓博士一看,纸上写着:台啤、烧肉串。 「这是?」 「别发呆,快去准备这两样东西,我打算用它来交换新小六足的设计!」 「难道…是要请动那位传说中的 U大!?」 恩卓博士豁然开朗。 「没错,如果这些不够,我们再加!!」 老大的眼神充满了星芒。心中的 Maker 魂已经蠢蠢欲动。 就这样,经过一番游说(贿络)后,全世界第一台 86小六足在 U大鬼斧神工的设计下横空出世了。

功能说明

86Duino 3D 列印小六足! !从机构图到程式码完全开源,可在家自行下载档案,搭配 3D印表机和教学,满足手作欲望。不用写程式就能让马达动起来,使用开源 86ME 动作编辑软体,完成 86小六足走路、转弯、跳舞等等动作,赋予 86小六足强韧的生命力。一切从零开始,详细步骤全在下面教学内容,手作实力超强的你,还不赶快准备材料做一波! !

准备材料

  1. 一片 86Duino One 或 86Duino Zero 主控板(任一)
  2. 12 颗 Tower Pro SG90 伺服机(如第一次实作,建议多买 2 颗备用,即 14 颗)
  3. 一台 3D 列印机(此专案使用 86Duino 印匠 ENJOY) .辅助工具:锉刀、尖嘴钳
  4. 2mm x 4mm 螺丝 1 包(20 支以上) 2mm x 8mm 螺丝 1 包(20 支以上) 2mm x 15mm 螺丝 1 包(20 支以上) .组装工具:螺丝起子、2mm 攻牙刀、2mm 钻孔刀
  5. 一片电子扩充板(使用 86Duino Zero 时才需要,需自行手作,点我看详细) .一片洞洞板、3 个 3×4 的杜邦针脚和 1 个 1×2 的杜邦针脚 .焊接工具:烙铁、焊锡
  6. 2.54mm 杜邦线 12 条

准备好材料后,让我们动动手、活动活动筋骨,动工啦! ! 欧拉欧拉欧拉! ! (意义不明的呼喊)

列印机构

我们这里使用的 3D 印表机是 86Duino Enjoy,首先要下载并安装 86DuinoRepetier-Host, 然后按照 86Duino Enjoy 快速入门教学手册,把 86Duino Enjoy 的软体设定、机械参数调校好, 接下来就可以到 Thingiverse 网站下载 86小六足 STL 档案啰~ 下载回来的档案解压缩后,有 6 个档案: zero_size

这 6 个档案的档名,是一一对应到 86小六足身上零件的,如下图: zero_size zero_size 前 4 个零件:A_arm_bottom、A_arm_top、leg、linker,都是小六足脚部的分件,全部印好可以组合成一只脚(即脚数量的 1/6),只要重复列印 6 次,就会有小六足的 6 只脚了。 然后是 body_top 零件:小六足身体上半部零件 然后是 body_bottom 零件:小六足身体下半部零件 组合上面 2 个零件可以完成小六足身体,最后再把 6 只脚接上,86小六足就完成啦~ 我们先来看用 86Duino Enjoy 要怎么列印零件吧! 开启我们已经安装好的 86DuinoRepetier-Host,并且点击 Load 按钮,载入 4 个 86小六足脚部档案:A_arm_bottom、A_arm_top、leg 、linker。 zero_size

载入后的图如下: zero_size 点选 Linker,将零件沿着 Y 轴翻转 90 度,如下图: zero_size 翻转后的 linker 零件,摆放角度应如下图:

zero_size

点选 A_arm_bottom,将零件沿着 Y 轴翻转 180 度,如下图: zero_size 翻转后的 A_arm_bottom 零件,摆放角度应如下图:

zero_size

翻转完成后的足部零件如下图: zero_size 打开支撑选项,设定 Support Type 为 Everywhere: zero_size 来到这边,我们一共经历了 2 种过程:

1. 翻转零件

2. 开支撑

到这里有很多人不明所以,为什么要这样做呢?

首先,我们知道这台 3D 印表机是以一种叫 "熔融层积" 方法进行列印的,它会加热喷头让印料融化,再将印料从喷头挤出,热的印料遇到冷空气很快会变冷、变硬,随着喷头走完所有路径,冷却的层形成一个坚硬的平面,然后喷头向上拉高(或降低零件座),让第二层继续堆积上去,就是这样的过程,印完一层,喷头拉高,印完一层、喷头拉高,反覆下去直到零件最顶层,那么零件就 "印" 出来了。

我们知道,零件可不总是一块实心立方体,如果是,那很容易就印成功了,嗯?难道列印还会失败? 没错,不了解列印过程的话,要失败的机率还不小,下面带大家看一下使用这类印表机必须注意的地方,就会知道我们要翻转零件和开支撑的原因了:

像我们上面看到的 linker 零件,它是一个多孔不规则零件,以 "熔融层积" 列印方法,一定会印到一层中的 "某些路径" 刚好是没有前一层做支撑的(即该路径下方是悬空的,可能就是一个孔!),那么喷头经过这些路径时,印料会来不及冷却而被重力拉垂,轻则让外观难看,重则让零件整个无法成形。外观难看似乎可以理解,但严重到无法成形是哪招?

关键在悬空那层是否能形成一个稳固平面,一旦无法形成,这层之上的所有层自然没了个底,那么印料等于从喷头落下,直接在空中冷却(因为没有底),随着喷头移动在空中形成一条条凌乱的线,最后我们得到的是一堆线而不是完整的零件,不仅浪费了时间也浪费了印料。

为了不发生这样的事件,所以我们将零件翻转,让零件每一层的悬空路径最短、甚至完全没有,那么不仅提升了成功率,同时也提高了成品外观。毕竟我们的零件都不是实心立方体。

如果不管怎么翻,总找不到适合的角度怎么办?

这时候我们可以开启软体的 "支撑" 选项,让软体自行产生支撑件,让那些悬空区域有个底,等列印完成,再手动拆除这些支撑件就好,虽然后续多出了拆除步骤,但总比列印失败要好!

看到这里,有些初次使用 3D 印表机的人问了,如果我不考虑摆放角度,直接开启软体的 "支撑" 选项可不可以? 老实说,是可以的,这样最省时而且不必考虑怎么翻,是吧? 反正是软体自动产生支撑件,那也不用怕印失败,开下去就对了!

从结果上来说,这个想法或许是正确的,但是软体在哪里产生支撑件,产生多少支撑件,我们不能控制,只能由软体根据它的演算法来任意产生,导致印完后您可能会陷入拆支撑件地狱中(因为产生的支撑件过多),尤其是狭小缝隙的支撑件,想快速拆除又很难拆,好不容易拆完,边缘还有残渣,影响组装,所以拿锉刀磨平…。过多的支撑件总是在后续拆除时把我们给惹火,如果不想经历这种 "磨" 难,建议替零件翻面数次,主动找到让支撑件产生最少的角度(一方面也节省了印料)。

有些人说他很喜欢拆支撑件的感觉….霹雳啪啦听起来很爽,那要选择此方法我们也不反对(你知道,过程总是藏着某些人的 Maker 魂)。

以上是玩这类 3D 印表机的心得体会,不管你有没有看完那些落落长的叙述,接下来,就要进行下一步,按下切片按钮(slice),软体会自行加上它认为应该要加上支撑的部位,最后产生 G-code 档,这是 86Duino Enjoy 印表机看的懂的档案, zero_size 完成后会出现类似下面画面: zero_size 这时候就准备传输档案给 86Duino Enjoy 啦~ 传输方法有两种:

方法一:使用 USB 线传输

切片完成后,接上 USB 传输线,然后按下列印按钮,86Duino Enjoy 就会立即开始列印: zero_size

方法二:使用 SD 卡

插上 SD 卡至您的电脑, 切片完成后,点击如下图示, 将 G-code 档储存至 SD 卡中:选择 G-Code Editor 分页 > 按下储存按钮 zero_size 将档案储存在 SD 卡中的 gcode 资料夹下,储存档名改成 auto.gcode,按存档 zero_size 从电脑拔出 SD 卡,将此 SD 卡置入 86Duino Enjoy 背面的 SD 卡插槽,

打开 86Duino Enjoy 电源,86Duino Enjoy 会自动读取 auto.gcode 档开始列印!

要完成一整只 86小六足一共要列印:

1. 6 个足部

2. 1 个身体上半部

3. 1 个身体下半部

列印的过程,可能会花一段满长的时间,您可以喝个咖啡,休息一下,等零件全部印完再进行下一步。

组合零件

刚印好的零件上面是有很多支撑的,我们必须先拆除它们: linker 零件,使用尖嘴钳拆除以下支撑: zero_size body_top 零件,使用尖嘴钳拆除以下支撑: zero_size 支撑拆下来后,您会发现拆除面还残留一些毛边(凸起),这不利于接下来的组装,所以我们拿起手边的平锉刀,将这些毛边打磨平整。 对于 linker 零件,用平锉刀将不平整的表面磨平(下图箭头处): zero_size 磨到可以将伺服机顺利置入即可: zero_size 对于 body_top 零件也是一样,打磨到伺服机可以容易的置入: zero_size 最后是 body_bottom 零件,打磨到伺服机可以顺利压入: zero_size 接下来可以开始组装了吗?别急,我们要还要钻孔与攻牙:

需要攻牙的孔,如下图红圈处:

Linker 零件: zero_size A_arm_bottom 、leg 零件: zero_size body_top 、body_bottom 零件: zero_size 需要钻孔的孔,如下图红圈处:

Linker、A_arm_bottom、A_arm_top 零件: zero_size body_top、body_bottom 零件: zero_size 完成后,我们便可以准备将转盘安装至伺服机上,但要先对伺服机做归零的动作,归零是指将伺服机转动至可动范围的正中央,我们利用 Servo86 函式库将伺服机归零,并使用 86Duino IDE 烧录归零程式至 86Duino 开发板上,以下提供范例程式码:

86Duino Zero 归零程式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include <Servo86.h> // 使用 Servo86 函式庫

  

Servo myservo1; // 初始化 Servo 物件

  

void setup()

{

  // 設定 Servo 腳位為 2

  myservo1.attach(2);

 

  // 送出 1500us 的 PWM 信號,使伺服機歸零至中點

  myservo1.write(1500);

}

 

void loop() {}

86Duino One 归零程式

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include <Servo86.h> // 使用 Servo86 函式庫

  

Servo myservo1; // 初始化 Servo 物件

  

void setup()

{

  // 設定 Servo 腳位為 21

  myservo1.attach(21);

 

  // 送出 1500us 的 PWM 信號,使伺服機歸零至中點

  myservo1.write(1500);   

}

 

void loop() {}   

烧录完成后, 86Duino 会立刻从指定脚位送出 duty 为 1500us 的 PWM,接着我们要将伺服机与 86Duino 连接起来。

将 86Duino 接上电源/电池后,伺服机会立即转到中点位置,此时将十字型配件盘的短轴对齐中点 (标记线),套在伺服机输出轴上,如下图所示: zero_size 完成后便可用螺丝锁上零件,最后完成图如下,也可以用斜口钳修饰配件盘,剪除较长的边:

zero_size

完成六个足部后接着就可以来组合身体,将 6 颗伺服机置于 body_bootom,如下图:

zero_size

将落在外侧的伺服机连接线,各别拉至身体中央,统一从一端伸出 (这么做是为了方便后续整线): zero_size 盖上 body_top 零件,并用 6 颗长度15mm 的螺丝锁紧 body_top,如下图红圈处:

zero_size

使用钻孔刀对一字型配件盘钻孔 (由中心数来第二个孔,如下图),一共要对 6 个一字型配件盘钻孔: zero_size 用刚才提供的归零程式把六颗伺服机分别归零至中点,并将一字型配件盘照下图方式套至伺服机输出轴:

zero_size

用 3 颗 2mm x 4mm 螺丝结合足部 (2 颗固定配件盘,另一颗固定 linker 与 body_bottom),并以自攻螺丝锁紧伺服机一字型配件盘,可以用斜口钳将一字型配件盘凸出的部分剪除,增加美观:: zero_size 6 个足部全部锁上后,如下图:

zero_size

装上 86Duino Zero 开发板

对应下图红圈处,用 3 颗 2mm x 4mm 螺丝固定 86DuinoZero 于 body_top 上: zero_size 用 2 颗 2mm x 4mm 螺丝固定扩充板: zero_size 86小六足伺服机编号与扩充板上的脚位对应如下: zero_size 使用 12 条黄色 (PWM)、1 条红色(VIN)、1 条黑色(GND)的杜邦线连接 86DuinoZero 和转接板: zero_size

装上 86Duino One 开发板

对应下图红圈处,用 3 颗 2mm x 4mm 螺丝将 86DuinoOne 固定于 body_top 零件上: zero_size 86小六足伺服机编号与 86DuinoOne 上的脚位对应如下: zero_size 将所有伺服机连接线连接至 86DuinoOne 上: zero_size 最后我们将外露的连接线稍做整理,让 86小六足看起来更美观。 先将外露的伺服机连接线拉至 86小六足身体内,将伺服机连接线来回折短,用束线带固定在两旁支架: zero_size 用束线带固定完成后,尽量让右图红框处没有伺服机连接线穿过,因为这是未来要放置锂电池的空间。

动作控制

由于 86ME Mk-II 已经将 86小六足的应用专案设为范例专案,你可以在 C:\ProgramData\86ME\examples 里面找到 86Hexapod.rbm 的步行动作。 开启专案后记得要根据每台 86小六足去微调它的 offset 值,可以校正一些伺服机上的小误差。

成果展示

— DEMO影片 —

相关资料

[1] 完整课程影片

[2] STL 机构档下载

[3] 86小六足机器人 DIY 课程教材:


 

自造游乐园主页面

86Duino 参考资料的文本遵循 知识共享署名-相同方式共享 3.0 许可证。参考资料中的代码示例已发布到公共领域。