2699
需用时 05:23
自组装机器人
/gkimage/yv/jp/mp/yvjpmp.png
 
DIYer: Dan
制作时间: 数星期
制作难度: ★★★★★
GEEK指数: ★★★★★
 

如何制作你自己的独立自组装机器人?本制作项目将对应用于我们的科学研究中的机器人的每一个细节作详细描述,包括 CAD 文件、源代码、组装指导等等。你一般可以轻易找齐所有所需要的材料来重现我们的实验,或者制作出一个有趣的玩具。我们的研究有一部分已发表在了《自然》杂志上,附有这份 论文副本 。另外还附上了这篇 博士论文摘录 ,其中包括了利用这些机器人进行的所有实验和它们的结构与规格的细节的汇总信息。下面附上了数次实验的视频。要想了解除了与这些机器人有关的更多进一步的细节,请访问 Growing Machines

 
  • 手动组装演示视频。
 
  • 程序组装1:随机长度的单色队列聚合。
 
  • 程序组装2:棋盘格方阵到单色队列。
 
  • 错误阻碍晶型的形成。
 
/gkimage/2g/0x/rh/2g0xrh.png
 
/gkimage/24/cz/jr/24czjr.png
 
/gkimage/dk/hv/b5/dkhvb5.png
  • 电池端子:2 个
  • 滚柱罩:红色的“滚柱罩”可以在混乱的活动中避免闩锁臂飞出。闩锁臂和滚柱罩都是宽松地安装在黄色底座的槽中的。
  • 电路板:微控制器和简单的电路板;锂离子电池则在电路板下面。
  • 通讯线圈:通讯线圈在其下面
  • 接口:在电路板和电磁驱动器与通讯线圈之间的接口
  • 铜箔:我们用的是背面有粘性的铜箔,用切割机切成标签的形状,将它粘在塑料上。
  • 线圈和磁铁:置于黄色底座中的电磁线圈,以及插入红色闩锁臂的稀土磁铁
  • 通讯线圈:下面有通讯线圈,和表面平齐
  • 闩锁:别的机器人要钩住这个机器人的话,就要靠这个闩锁
  • 闩锁钩:抓住其他机器人所用的闩锁钩
  • 底座:激光切割的丙烯酸(亚克力)底座。黄色的部分厚度为 3/16 英寸,用胶水粘在底部的厚 1/16 英寸的透明丙烯酸塑料板上。
 
 

1   制作印刷电路板(PCB)

/gkimage/yp/q4/ak/ypq4ak.png
  • PCB 是通过 Eagle PCB 设计软件进行设计的。我附上了 Eagle CAD 文件Gerber 文件 。Gerber 文件可以直接发送到 PCB 制作服务,制作出电路板来。我还附上了面板化的 gerber 文件——这个版本将机器人的 PCB 分成了 16 块面板,让制造的效率更高,成本更低。
 

2   电路综览

/gkimage/j0/np/ml/j0npml.png
  • 我们将电路设计得简单而灵活,因为我们在开始并计划着试用了各种各样的控制算法、执行机构,以及通讯方式时还没有将机器人的设计方案最终定下来。我们还需要让电路既小又轻。我们在最终设计方案中决定采用体积非常小的表面封装(SMT)元件,并得以把一个微控制器、10 支表示状态的发光二极管、4 个用于驱动执行机构的场效应晶体管,以及编程/电力接头布置在了一块 25 毫米 × 25 毫米的电路板上,上面还配备了供 4 个执行机构和 4 个传感器连接的接触点。我们试着把电路板做得更小,但那样组装起来难度就太大了。我们所采取的简单而灵活的策略得到了很好的效果——我们后来用多余的电路板又进行了其他 3 项于此完全无关的制作项目。
 

3   执行机构综览

/gkimage/8v/ms/qq/8vmsqq.png
  • 线圈与磁体:电磁线圈被压装在黄色底板上切出的一个孔中,而立方形的稀土磁体被压装在红色的闩锁臂中。
  • 闩锁臂的平衡:闩锁臂的形状让它微妙地平衡在这支点上,因此微弱的电磁力就能够让它开启或闭合。
  • 通讯线圈
  • 闩锁臂挂钩:用于抓住其他的机器人。它通常处于“闭锁”位置,从而可以抓住任何碰上它的机器人。在两个机器人相互进行通讯了以后,它可以决定激活电磁铁,将闭锁打开,升起挂钩,放开那个被抓住的机器人。
 
/gkimage/ws/lp/xc/wslpxc.png
  • 机器人带有两个电磁驱动的闩锁。红色的闩锁臂压装有一个 3 毫米的立方体磁铁(NdFeB 类型),而黄色的机器人底座压装有一个圆柱线圈。这些线圈都是根据以下规格自信制备的:700 匝 42 口径的线圈线,长 4 毫米,缠绕在一个直径 2 毫米的轴上。制作出来的线圈外径大约为 4 毫米,内径大约为 2 毫米。我们之所以选择这样的线圈规格是为了能够直接利用机器人的电源来驱动它们,并且产生适当的电量。我们一开始试着在线圈中插入一个磁芯,这样可以让它的功率更大,但是我们找不到一个可以在线圈断电之后失去磁性的磁芯,而且我们也无法翻转线圈的极性(每个执行机构配备 1 个场效应晶体管是无法做到的,得有 4 个才行)。
 

4   通讯

/gkimage/85/4q/35/854q35.png
  • 通讯线圈1:通讯线圈被压装在黄色底座中。其顶端与底座表面齐平。当两个机器人闭锁在一起时,它们的通讯线圈就会正好靠在一起,虽然由于空气曲棍球台面上混乱的环境会让机器人发生剧烈的扭曲,因此实际上这两个线圈可能相距最多有 5 毫米。
  • 通讯线圈2:在这个标签下面还有另一个通讯线圈
  • 塑料弯片:在黄色底座上插入一块特殊设计的塑料弯片,让通讯线圈固定在其中。
  • 机构线圈:驱动闩锁臂的执行机构线圈
  • 铜片:粘贴式的铜片让电路联通到另一个通讯线圈上
 
  • 这些机器人利用电感耦合来进行短距离的无线通讯。每个机器人带有 4 个小(3 毫米 × 2 毫米)线圈,各位于四个面上。它们在安装后与表面齐平,这样一来当两个机器人在一个面上适当组合起来之后,两个线圈之间的间距就总是在几个毫米以内了。我们之前说过要使用的是简单的 8 位微控制器,带有 1K 的 RAM,最大模数采样率为 10 千赫兹,其总时钟频率为 8 兆赫兹。这其中根本就不需要数模转换的电路。因此我怀疑既然线圈的谐振频率高于模数采样率,而且我们无论如何也无法生成正弦波形,那么它可能无法发送或接收 AM 或者 FM 的无线电信号。而且我们也没有足够的计算能力来处理这么庞大的快速傅立叶变换算法(FFT)。因此我们转而意识到所需要发送的数据寥寥无几,所以我们可以让它慢慢传输。我们只是简单地通过开关通讯线圈来发送电磁脉冲信号。每当线圈通电或断电时,它就会生成一道短暂的电磁(EM)脉冲序列,其频率为其固有频率。周围任何线圈都会与它形成磁耦合,并生成相应的脉冲输出。我们只要利用微控制器的模数转换寻找这些脉冲就行了。由于脉冲的频率高于模数采样频率,所以我们不能指望检测到每一道脉冲。因此我们发送大量脉冲,并且进行大量的检测。这个方案很有效。这是有史以来最庞大的 Hack 了!一旦在空气曲棍球台面上有一群这样的机器人到处横冲直撞,整个环境就变得非常混乱了。我们不断地在软件中添加错误检测和修正层,最终让通讯可靠程度上升到了 50 个随机碰撞单元每小时大约只发生 1 次错误。大功告成之后,在两台机器人之间的数据传输率为每 2 秒 2 比特。那可是比特啊,不是千比特。这是在假设没有数据发生冲突或者出现错误的情况下的最大值了。每个线圈既用于发送也用于接收数据,因此有时会发生冲突,这就需要重新发送了。发送数据大约耗时 200 毫秒,在随机状况下,由于冲突而需要重新发送,所以耗时在 2000 毫秒的范围以内。
 

5   微控制编程

  • 我在这里附上了 AVR微控制器的代码 。这段代码完成了如下的自组装算法,在视频中也有所演示:
1)列队一群黄色和绿色的机器人将会排列成黄色的一排与绿色的一排。
2)错误修正结晶:单个的“种子”晶体将会以螺旋形式组成一个完美的黄绿相间的棋盘。
3)感染和重新编程:机器人们一开始使用结晶算法组合。接着放入一个病毒机器人,它会对其他机器人注入新的程序,并在晶体中传播开来。最后晶体组合会散开,这些机器人单元会使用列队算法排成两排
4)DNA复制:单独的一串机器人(4 个、5 个等等)被放入一群自由的机器人之中。其 DNA 通过只有本地状态和本地信息传输的错误修正算法以指数增长的速度进行复制——就像真实的 DNA 复制一样。
 
  • 每个机器人单元都以含有所有算法的代码进行了程序编制。接着,一个特殊的“编程”机器人单元就可以轻易设定每个机器人单元所激活的算法和所激活的颜色。
 

6   制作机器人过程综览

/gkimage/n8/c2/89/n8c289.png
 
1. 制作印刷电路板
2. 在印刷电路板上布置元件
3. 对微控制器进行编程
4. 制作机器人的塑料零件
5. 组装机器人的塑料零件
6. 在机器人的架构中组装磁体
7. 在机器人的架构中组装电子器件
8. 测试
 

7   DIYer签到处

 

资料来源

编辑: 小蜂

果壳DIY站QQ群:132647923(加入时请报上你在果壳的个人主页地址,以防广告ID)

果壳DIY站微博: http://t.sina.com.cn/guokrdiy

The End

发布于2011-07-27, 本文版权属于果壳网(guokr.com),禁止转载。如有需要,请联系果壳

举报这篇文章

白之牙

果壳DIY站翻译

pic