第1步:所需的零件和工具
零件
3D灯丝(我使用的是黑白PLA但ABS也可以使用)
至少8台SG90舵机(我说至少因为我们会破坏它们而且可能会破坏它们
钓鱼线
细弹力绳
4个弹簧
热缩管
备用电线
编织尼龙套管(这是可选的,很难找到少量,你可以找到替代品或只是使用拉链)
Arduino Uno
电池(我使用了9v,但可充电的脂肪是理想的)
工具
3D
烙铁
螺丝刀和其他基本车间工具
超级胶水和/或环氧树脂
用于清洁支撑结构的钻头和钳子
剥线器/切割器
步骤2:打印
关于打印的一些评论:
指尖设计用于双挤压3D打印机,因为黑色笔尖太薄而无法自行打印。 (如果您使用单个挤出打印机,您将不会在指尖上使用黑色饰边,因为它们太薄而无法单独打印并粘上胶,或者您可以重新设计黑色指尖更厚)
我个人使用PLA但是ABS塑料也可以使用
为了减少打印时间我将手掌和前臂等较大的部件打印在0.3mm的层高,而其他一些部件,如手指,我做了0.1mm。
取决于您打印的分辨率
我发现白色塑料很容易出现污垢(因为它很容易被印刷层之间的凹槽夹住),在选择颜色时请记住这一点
步骤3:黑客劫掠(第1部分):连续旋转伺服
舵机的旋转受限于电位计(具有可变电阻且旋转旋转变化的装置)的事实可以读取并从中计算出一个旋转角度不能旋转超过180度。
为了克服这个限制,打开伺服并切断最顶部齿轮上的塑料塞。然后向下钻一个孔,这个挡块允许齿轮自由旋转,然后咬住电位计的D形针座(见上图第4张图)。现在齿轮可以连续旋转,而电位计完全不动。按原样重新组装伺服,并使用下面的代码进行测试,确保它在两个方向上连续旋转。制作其中2个伺服电机。
测试代码
重要:修改伺服时,请确保将电位器旋转到中间位置。这是因为代码会告诉伺服旋转到180度或0度(取决于旋转方向),并且由于顶部齿轮不再咬合电位器,电位器将永远不会移动,因此电机将继续旋转试图永远达到0或180度的同一方向。但是,如果您的电位计旋转到任一端,它将读取180或0的角度,并且代码将不起作用,因此确保电位计旋转到大约中间位置。 (我不知道我是否以一种有意义的方式表达自己,如果我应该回来重写一下,请在下面的评论中告诉我)
步骤4:黑客劫掠(第2部分):二合一紧凑型直流电机
我想保持这只手的审美和逼真,因此空间有限在掌上用于伺服。
以下步骤将讨论如何使2个伺服器适合更小的空间,同时保持伺服基本上(就电路而言)完全相同。本质上,我所做的唯一改变是增加连接电机,电位器和芯片的电线长度。
打开伺服电源
切断电位器和芯片(将它们放在一边以备日后使用)
在3个蓝色塑料外壳组件中切割下面的2个,如图/视频所示。重要的是要确保轴上没有切断的凹痕(图4)
切掉最顶部齿轮上的塑料挡块(这样可以使伺服连续旋转)
如图所示重新组装外壳
因为我们已经拆下了电位器2,所以齿轮没有轴可以旋转。我最初尝试通过将塑料外壳中的一个螺钉切割成8.5mm的长度来更换轴,但发现它引起了太大的振动。相反,我后来发现了一些直径更好的废料棒。
在第二个伺服系统上重复上述步骤
使用环氧树脂将伺服系统按上图所示方向粘在一起(小心不要在齿轮上涂上任何环氧树脂)
将直流电线上的电线焊接到直流电机的电线上
为了测试电机的工作情况,我还使用连接到其中一个电机的3.7v脂肪,检查它是否在两个方向上连续旋转(通过反转实现)电池)然后测试第二个电机。
在后面的步骤中,我们保存的电位器将放入指关节,以读取手指旋转的程度(0到90之间)度)。通过将电位器和电机连接回芯片,它可以像连接到Arduino时的任何其他伺服一样用作伺服。
侧面思考:
另一个设计我曾考虑用于拇指运动,如上图(图8)和视频所示。我最终决定反对它,因为我无法找到一种方法从花盆中获取读数,同时保持设计紧凑和美观。但是制作它的步骤与上面完全相同,除了步骤8,你应该先粘贴2个电机外壳。如果你最终在你制作的任何其他项目中使用这种类型的设计,请告诉我,我很想知道!
第5步:黑客劫掠(第3部分):剩余舵机
舵机中的3个可保持原样,不变:
其中一个舵机将用作拇指旋转伺服。
两个舵机将用作手腕的左/右和上/下运动
注意:实际上,sg90舵机没有足够的扭矩来旋转手腕。在后来的版本中,我将使前臂更大,以适应更强大的伺服,例如两个Kuman MG996伺服系统。
从第四个伺服系统我们唯一需要的东西是黑色电位器,其余可作为备件预留。 (你可能在前两个步骤中打破了塑料外壳/齿轮,从而使它们无用,而不是浪费另一个伺服,只需使用那些电位器)。或者,您可以尝试在线查找相同的花盆(我还没看过)。
步骤6:组装手指
注意:并非所有黑色部分都适合如果您愿意,可以通过更改Fusion 360文件来解决这两个问题。
用钻头清理支撑结构,确保在继续之前可以将绳子穿过每个孔(当手指被胶合时难以纠正问题)
将手指部分布置为在视频和胶水(超强力胶水或环氧树脂)中显示它们在一起,小心不要粘合接头,或者绳子穿过的孔
通过顶部的孔进给弹性,并且可选择如果你想要通过底部的孔测试手指喂鱼线。当钓鱼线被拉动时,手指应收缩,松开时松紧带应将其拉回。如果您选择测试它们,请立即移除钓鱼线。
重复4个主手指(拇指在以后完成,以免在装配手时妨碍)
使用之前保存的3个电位器,焊接延长线到他们。我建议将热缩管放在延长线的末端,并开发某种颜色代码来区分每根电线(包括电线与伺服电机,总共有22根电线从手中出来,它如果你没有某种编码系统,将无法区分它们。
将所有花盆旋转至90度(即两端阻挡旋转的中间位置),然后将每个花盆推入食指,中指和无名指。小指不需要一个,因为它和无名指连接到同一个伺服,但是如果你想给小指自己的锅,我有空间。
将手指放入3D打印手掌(顶部)的孔中,然后将弹性体穿过手掌上的孔。在保持弹性紧密的同时,在孔中加入强力胶或环氧树脂。您可以尝试打结而不是粘合但是在此过程中您可能会失去弹性的张力,如果弹性不紧,则手指不会弹回到位。
将电线穿过手掌并从手腕附近的孔中取出。
步骤7:构建手
将4个黑色滑轮拧到4个经过修改的伺服系统上。
上面你可以找到手中所有舵机的位置以及钓鱼线连接的手指的图片。为了使布线简单,我建议按以下顺序组装:
拇指收缩的连续旋转伺服(注意:这个需要粘贴到位,因为没有足够的墙壁保持在适当位置,你可以使用环氧树脂,但我选择了热胶水,以便我可以在以后需要时将其打捞出来。
拇指旋转的正常,未改变的伺服,如图所示,通过手掌送入接线。
2合1紧凑型直流电机(注意:小指和拇指系在一起的皮带轮比其他3个皮带轮大)
中指连续旋转伺服收缩。
在继续之前,我建议只需仔细检查所有舵机是否仍然有效(在组装手之前更容易解决问题)。
花盆的所有电线并且马达应该从手掌侧的孔中出来。如前一步所述,请确保您有一些系统可以将不同的电线分开。我建议使用彩色热缩管。为了保持整洁,我在编织线上滑动编织尼龙套管,套筒是理想的,因为它的柔韧性,你也可以使用胶带或拉链。
在每个滑轮上绑一条钓鱼线。我使用了一点带有强力胶水的丁香栓来确保钓鱼线不会滑动。将钓鱼线穿过另一半手掌的孔,然后朝向手指。
将手掌的两半拧在一起。将鱼线穿过4根手指并将它们系在每根手指末端的结中
步骤8:做手腕
我从旧打印机中拯救了几个弹簧,因此遗憾的是,我没有他们的部件号或名称。用8个螺钉(4个弹簧的两端各一个)拧紧,重要的是使用头部足够宽的螺钉,它们不会滑过弹簧的末端,或者在螺钉上加一个垫圈。
拧入弹簧两侧,一个拧入手掌,一个拧到前臂。这可能很棘手,需要弯曲弹簧并使用薄螺丝刀(注意不要弯曲/拉伸弹簧导致永久变形)。
一旦所有4个弹簧将前臂连接到手掌,将弹出的3D打印球体弹出。也许可以使用乒乓球,实际上比0.1mm的印刷层更平滑,乒乓球可能是减少摩擦的理想选择(我没有测试过这个想法,并且有可能在一段时间之后乒乓球可以在压力下破裂。
将电枢连接到2个SG90伺服电机并将它们移动到90度,然后再继续。可在此处找到此代码。
一旦达到90度,将两条钓线连接到每个伺服机构,每个机架两端各一根。将伺服器安装在前臂上。
几个设计缺陷:
在用于安装伺服器的4个螺孔中,只能用螺丝刀到达一个(疏忽)
负责左/右运动(即挥动)的伺服可以很容易地从其底座上撕下来,而不是我应该在墙的另一侧放一堵墙。伺服,以防止它在自己的旋转下自行拉出。
sg90伺服系统太弱而无法实际旋转手腕(至少对于我使用过的弹簧),所以这一步实际上有点多余,因为手腕不会移动。
安装舵机后,将钓鱼线穿过各自的孔并从前臂伸出(小心不要让它们扭曲),在小螺钉周围打结(用较大的头部或垫圈确保)钓鱼线不会滑落)然后将它们拧到位。我再加上一点强力胶是安全的。
第9步:前臂和接线
将电线穿过第一前臂片侧面的管子。
将第二个前臂片拧到第一个上。请注意,在视频和图片中,我的前臂的第二块在打印中间失败,因此我不得不将失败的打印件的两半粘在一起,这对您来说应该不是问题。
将9伏电池放入第二前臂片的插槽中,并焊接在母DC插头上,中间有+ ve。
在第4张图片中,您可以看到芯片的外观与先前步骤中制作的2合1改装伺服器相同。虽然“二合一改装伺服”中的2个电机不再“看起来”像舵机,但我们可以用与舵机相同的方式将它们以相同的方式连接回来“操作”。在第5张图中,有一个如何做到这一点的图表,只需焊接电机和相应的电位器(位于指针和无名指指针),然后将它们如图所示焊接到芯片上。伺服现在“功能上”与任何其他伺服相同。
在第6张图中,有一个如何将所有内容连接到Arduino Uno板的图表。请注意,红色伺服系统是常规伺服系统,紫色伺服系统是没有从电位计读取位置的伺服系统。更具体地说,2个紫色伺服系统是在之前的步骤中被修改为连续旋转伺服系统的伺服系统。
将电位计置于中指指节中,我们可以获得位置读数并使用它来控制相应的紫色,连续旋转伺服。
用于拇指收缩的另一个紫色连续旋转伺服器没有位置读数。这是一个严重的设计缺陷,必须在以后的版本中修复。目前它只能通过视线操作(即观看拇指移动的人并告诉Arduino何时停止),如果留在自己的设备上,它将继续旋转直到伺服或拇指断开。我添加了一个连接到引脚6的瞬时开关,可用于告诉Arduino何时停止收缩手指。
将Arduino uno安装在其框架中并从电池插入电源插头。将前臂的黑色最终塑料片粘上。
步骤10:添加拇指
以与其他手指相同的方式组装拇指的前几个部分。然而,不是将弹性材料送入手中,而是将其粘贴在最后一段(参见上面的第2张和第3张图片)。
将拇指轴安装座拧到从手伸出的伺服器上。正如在第4张照片中,胶水两侧的胶水围绕轴(这种设计在结构上很薄弱,但足以满足这个原型,可以根据需要自由调整)。
将钓鱼线穿过拇指底部的孔和拇指末端的结。
步骤11:代码
可以在此处找到代码
使用代码时要记住的一些事项:
在代码中我只有3个基本的手部动作:波形,拳头和按键保持。您可以随意自定义并添加自己的。
由于电位器在关节中的定向方式,伺服系统的运动范围为[90,180]度。例如,90度对应于手指处于静止状态,完全伸展,并且在180度处手指完全收缩。范围之外的值无效,并且对应于向后弯曲手指。
中指电位器读取模拟范围最高为1023的值,我使用134行 中的map()函数将范围转换为相同的[90,180] ]范围与其他手指一样。对于不同的电位器,您映射的值可能不同,因此在setup()中,有几行专用于电位器的校准,如果您不希望每次运行代码时重新校准电位器,您可以简单地记录校准值并将变量MidExtd和MidCont设置为等于它们。
如前所述,在“前臂和接线”中,控制拇指收缩的伺服没有位置反馈,必须使用瞬时开关手动控制,有关详细信息,请参阅moveThumb()函数。
最后如关于如何进行连续旋转伺服的步骤中所述,重要的是修改伺服确保将电位器旋转到中间位置(即不是0的极值,也不是180度)。这与拇指收缩和中指收缩有关,因为我们将写()到任何一个极值:0或180,这取决于我们想要旋转伺服的方式。
在函数moveThumb()中,我需要将rotAngle的范围从[60,140]更改为不同的值,具体取决于连接拇指时伺服旋转到的位置,只需使用范围,直到找到合适的一个。
自从上次测试(并且有几个伺服器断开)后,我对代码进行了一些修改。一切都应该可以正常工作,但如果我错了就在下面评论,我会去解决它。
第12步:结束
虽然我没有达到预期的结果我曾经希望,我已经学到了很多东西,而且知识将被构建到未来的版本中。尽管还有一些问题仍然需要解决,但我特别高兴我能够控制所有舵机。
虽然sg90舵机有足够的扭矩来移动手腕,但是当用更大的舵机进行测试时,手腕会按预期移动。下次我将更宽的前臂,以适应这些优质的伺服器。我唯一担心的是手腕重复使用后手腕可能会开始断裂。
我早些时候已经超越了这个缺陷所以除了说我鼓励之外我不会在这里多说些什么。在设计自己的机器人手臂时,请仔细阅读并牢记这些内容。无论如何都可以随意使用和改变我共享的融合文件,但我相信这可能是一个更好的时间分配,可以开始重新设计,记住以前的知识。
-
机械臂
+关注
关注
12文章
513浏览量
24550 -
3D打印
+关注
关注
26文章
3547浏览量
109013
发布评论请先 登录
相关推荐
评论