组装一隻 PrintBot Crab 小螃蟹!





专案起源

此专案源起自废材小六足专案的衍伸,
「竟然有个 PrintBot Crab 专案和废材小六足那麽类似?」老大说道。
「恩卓博士的士兵C,这个 PrintBot Crab 专案就交给你啦!」
随后士兵C就被指派为此专案的负责人。



功能说明

Thingiverse 上有一个有趣的专案叫做 PrintBot Crab,它包含了 GUIA_Printbot_Cangrejo 的组装文件。

我们可以使用 86Duino Enjoy86Duino Zero 实作,并搭配 86ME 使用,就能要让 PrintBot Crab 动起来,连一行程式都不用写呢!



准备材料

把零件用 86Duino Enjoy 印出

首先把 PrintBot Crab 所有的零件用 86Duino Enjoy 印出来(如果在使用 86Duino Enjoy 时有问题可以参考这份教学文件),在用切片软体製作 g-code 的时候发现 PrintBot Crab 有两个零件会超出 86Duino Enjoy 的列印范围,分别是下面的这两个零件:

zero_size

zero_size

利用可以修改 STL 档案的软体,把这两个超出列印范围的零件各自拆成两半,拆成两半后就不会超出 86Duino Enjoy 的列印范围了,如果有需要可以在这裡下载。

下图就是所有印出来的零件,其中被小编拆开来印的零件也已经利用瞬间胶黏在一起了:

zero_size

除了列印件外,还需要准备其他的零件才可以来组装 PrintBot Crab ,在此使用的零件并不完全与 PrintBot Crab 专案使用的一样。

螺丝

zero_size

在此使用现有的螺丝与螺帽,所以规格与原作者不同,在 GUIA_Printbot_Cangrejo 的组装文件裡有列出原作者使用的螺丝规格。

伺服机

zero_size

伺服机使用的是 EMAX ES08MAII,它的工作电压为 4.8V ~ 6V。

电池

zero_size

电池的部份选择锂电池,要注意充电时不能充超过伺服机工作电压太多,有可能会使伺服机毁坏。

线材与转接板

zero_size

准备几条杜邦线用来连接 PWM 的讯号以及电源,以及製作一个转接板方便连接伺服机。

zero_size

转接板最上方的两根脚位是用来连接锂电池,从转接板反面可以看出来正电源以及负电源的针脚用銲锡整排连接在一起,除了电源以外,在最上面还有一排用来连接 PWM,PWM 这一排的针脚不像电源有用銲锡连接在一起,每一个 PWM 的脚位是独立的,有了这个转接板连接伺服机时,只需要把伺服机的线插在转接板上即可。



硬体架设

在此不会将组装的每一步都说明得很清楚,只会提一些较需要提醒的部份,或是作法与原作者作法不同的部份,更详细的组装教学请参照 GUIA_Printbot_Cangrejo

安装伺服机

把伺服机固定于 PrintBot Crab 的列印件上时使用的螺丝在伺服机的配件包裡可以找到。

zero_size

将转盘安装至伺服机上前,要先对伺服机做归零的动作,归零是指将伺服机转动至可动范围的正中央,我们利用 Servo86 函式库将伺服机归零,以下提供范例程式码:

#include <Servo86.h>

Servo myservo;

void setup()
{
  myservo.attach(3);           // 使用 pin 3 输出 PWM
  myservo.setPosition(1500);    // 设定伺服机的位置为 1500 ,1500 为归零的位置
  myservo.run();                // 使伺服机开始动作
}

void loop()
{
}

伺服机归零后我们才能将转盘安装到伺服机上,有时转盘并没有办法完美的安装至你要的位置,但这并不影响,因为后续我们可以在编辑动作时解决这个问题。

三个转盘都安装好后会和下图相同:

zero_size

zero_size

用来把 PrintBot Crab 的列印件固定在伺服机转盘上的螺丝,可以在伺服机的配件包中找到

zero_size

连接转接板

将伺服机和 86Duino Zero 都固定在 PrintBot Crab 身上后,就可以将 86Duino Zero、转接板和伺服机连接在一起,先来看一下接上线后的转接板:

zero_size

上图中有标示 86Duino PWM 的线要连接到 86Duino Zero的 PWM 脚位上,下图可以看到连接完成的 86Duino Zero:

zero_size

PWM 的脚位可以在数位脚位中任选,在此选择使用 9、10、11。

最后将转接板固定起来就可以了,把转接板固定在 PrintBot Crab 的底部,并好好的整线的话,就能让 PrintBot Crab 看起来非常整齐!



步态解说

组装完 PrintBot Crab 后当然要让 PrintBot Crab 动起来,但在编辑动作前我们先来研究 PrintBot Crab 是怎麽动作的。
PrintBot Crab 虽然有六隻脚,但是实际上只有用到三颗伺服机,因为右前和右后是由一颗伺服机控制,左前左后是由一颗伺服机控制,右中左中是由一颗伺服机控制,我们要控制这三颗伺服机藉以控制这六隻脚。
为了方便说明,先把这六隻脚分成三组,右前和右后叫右边的脚,左前和左后叫左边的脚,右中左中叫中间的脚,接着小编将一步一步的说明 PrintBot Crab 是如何移动的:

1. 归零:我们先从 PrintBot Crab 的脚在起始位置开始
zero_size

2. 右边抬高:让中间的脚往右下转,撑起右边的身体
zero_size

3. 右往前,左往后:右边的脚往前移动,左边的脚往后移动
zero_size

4. 左边抬高:让中间的脚往左下转,撑起左边的身体
zero_size

5. 右往后,左往前:右边的脚往后移动,左边的脚往前移动
zero_size

接着只要重複 2->3->4->5->2->3->…,这样 PrintBot Crab 就会一直往前走,一去不復返了~!


动作编辑

理解 PrintBot Crab 是怎麽移动后,我们就可以用 86ME 来编辑动作,让 PrintBot Crab 动起来了!
这一小节会提供本专案使用的设定值,各位可以参考然后进一步设定出自己觉得更理想的样子,如果在使用 86ME 时有遇到困难可以参考 86ME 使用文件

为了让 PrintBot Crab 前进,我们要建立一个 Motion,这个 Motion 内会包含四个 Frame,分别就是上一小节提到的步骤 2、3、4、5,接着只要重複的执行这个 Motion, PrintBot Crab 就会一直往前走

1. 右边抬高

zero_size

2. 右往前,左往后

zero_size

3. 左边抬高

zero_size

4. 右往后,左往前

zero_size

5. 最后记得,将 Trigger Command 设定为 Always On

zero_size

编辑完动作,即可产生 All-In-One Sketch ,再利用86Duino IDE编译并上传到 86Duino Zero,接上电池后,PrintBot Crab 就会向前走了!
在此有提供我们编辑好的86ME档案,供各位参照。

zero_size



成果展示





相关连结


PrintBot Crab 机构档案
86ME 使用教学
Github

废柴小六足机器人 DIY 课程:



The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.