4
编者注:本创客项目来自创客Prasantha Jayakody,他来自MIT,是一位资深创客,尤其喜欢机器人。硬创邦对此进行了编译,原文发表在Hackster上。本文著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
如果你看过我的探测车项目——自主避障机器人,你就知道我是一个机器人迷。但是我的兴趣不仅仅局限于轮式车辆。我工作台上一辆双足式的探测车已经放了一年多了,看到它时,一个更加奇妙的想法诱惑了我——我打算造一个可以互动的机器六足昆虫。我计划将这个机器昆虫送给我的女儿当礼物。
我开始使用了一个现成的框架包,但之后我决定使用Arduino兼容的微控制器和伺服控制器代替,我决定使用运行Windows 10 IoT Core的树莓派2代开发板来打造六足机器昆虫,树莓派的计算性能也足够满足我们需要。然后我选用Adafruit的伺服驱动系统编码控制器直接控制六足昆虫的动作。
第一阶段的目标是了解六足机器昆虫的基本机制:运动模式、速度、力量和功耗。我发现每条腿有3个自由度是比较好的,所以需要在6条腿上配置18个伺服系统,在每个方向都能发生运动。坦白讲,六足机器昆虫的动作不能算是最优雅的,但在这一点上却可以通过软件进行完善;加之硬件平台也提供了必要的精度和控制。现在,上述的一切都是可操作的,我会开始跟踪电池寿命,以及试图优化六足机器昆虫的运行速度。
六足机器昆虫物理结构并不复杂,但很多地方我也是新手,尤其是还要在考虑伺服系统数量的同时对伺服中心点做一些机械修整。在软件方面,相对而言,程序不是很复杂,因为我还在学习软件开发和C #,这个项目让我了解了许多新的概念和编程结构。
以下是我在这个项目过程中发现的一些非常有用的资源:
在开始本项目之前,你至少要先掌握以下技能:
能够将Windows 10 IoT Core运行到树莓派2代开发板上;
将Windows 10和Visual Studio 2015安装并运行在你自己的电脑上;
部署一个简单的Windows应用,以确保一切正常工作。
部件:
树莓派2代开发板及相关配件:8GB MicroSD储存卡,电源适配器,有线网络或WiFi适配器
Adafruit 16信道PWM脉宽调制/伺服编码控制器(用于树莓派2代开发板)
Lynxmotion Phoenix三自由度六足昆虫盒(与开发板与电源搭配使用)
XBOX手柄遥控器
3S 3200mAh LiPo电池
5V/6V开关通用电池消除电路
2S 1000mAh LiPo电池
5V USB充电器/电压转换器
工具:
电烙铁
可选:伺服测试器
下面我们就开始一步一步打造我们的机器人吧!
时间:两小时
工具:螺丝刀
部件:昆虫框架和伺服系统
依照说明书来组装你的昆虫盒组装框架和安装伺服系统。我买的Phoenix昆虫盒,其安装说明书写得相对清晰,也写得很好。尽管如此,我仍然花了约两个小时把所有的足和身体的伺服系统安装好。如果你有一个伺服测试器,就可以在在装配前调整好伺服系统,就比拆下伺服后重新调整要简单多了。
时间:15分钟
工具:螺丝刀
部件:树莓派2代开发板,支架销和螺钉和螺母
树莓派2代开发板的底座安装的位置和方法取决于你的六足昆虫盒框架的结构。树莓派2代开发板对于连接其顶部和六足昆虫盒框架底部板的支架鞘来说太长了,所以我把它安装在六足昆虫盒框架的顶部;加之,在六足昆虫盒框架顶部的空间是安装电池的理想位置。这个顶部安装的树莓派2代开发板的位置也能很容易的插入类似手柄遥控器的设备(HDMI电缆,插墙式电器和网络电缆)。我将树莓派2代开发板通过六足昆虫盒框架顶部两个对称的安装孔与前支架鞘对齐装好。两个后支架鞘与该六足昆虫盒框架顶部上其余不对称的安装孔安装好。
时间:30分钟
工具:电烙铁
部件:两个伺服驱动系统编码控制器和头针
每个伺服驱动系统编码控制器最多支持16个伺服系统,所以我不得不再买一个伺服驱动系统编码控制器来控制其余两个伺服系统。幸运的是,Adafruit伺服驱动系统编码控制器是可以堆叠使用的(只是要确保分别订购堆叠头和直角头)。将堆叠头和直角头焊在其中一个伺服驱动系统编码控制器的底部。再将堆叠头焊接在另一个伺服驱动系统编码控制器的顶部。确保设置编码控制器的地址——每个编码控制器有且只有一个唯一的地址——通过一滴焊锡桥接在右边的地址跳线上。
最后,将其中一个编码控制器的底部安装在树莓派2代开发板对应的2x20的头针里,再将该编码控制器的顶部安装到另一编码控制器的底部的堆叠头上。注意使各编码控制器与树莓派2代开发板之间都没有直接接触短路。为了安全起见,我用一些细泡沫件绝缘皮将各编码控制器与树莓派2代开发板之间隔开。
时间:30分钟
部件:电线插针和板上插孔
当把伺服驱动系统编码控制器安装到树莓派2代开发板上以后,就可以着手连接伺服系统的电缆了。我将15个伺服系统连接到顶部的编码控制器上,3个伺服系统连接到底部的编码控制器上。将多个伺服系统连接到顶部的编码控制器上构造出一种将所有伺服系统融为一体的感觉。用塑料夹将每个伺服系统的3根线加起来,直头(顶部的编码控制器)相对直角头(底部的编码控制器)来说更方便,这就是将15个伺服系统连接到顶部的编码控制器上的原因。实际上,塑料夹子加在直角头上很松散,我把电线直接接在直角头上。
如图所示,我将六足机器昆虫的腿按逆时针依次从0到5编号。我将每腿伺服系统按照水平髋伺服,垂直髋伺服和膝关节伺服的顺序与其编码控制器连接。这种一致性使得它很容易计算出编码控制器哪一个通道上的伺服系统的伺服系统连接的腿和关节。
时间:15分钟
工具:电烙铁
部件:开关,电池连接器,通用电池消除电路,圆筒型插孔
通用电池消除电路(UBEC)步进输入你的2S(7.4V)或3S(11.1V)锂电池,能够让你将输出电压设置为5V或6V;我选择了6V,因为这样伺服系统将获得较高的扭矩。伺服驱动系统编码控制器在终端支持5V的输入和5-6v圆筒型插孔输入,所以我在该UBEC输出端拼接两个圆筒型插孔。输出端有三条线,但我们只需要两个阳性(红色)和地面(棕色或黑色)-简单地只需剪去第三线即信号线(白色、黄色、橙色)。)如果你决定使用5V,你可以直接接在终端线而不必使用圆筒型插孔。
我在与电池连接的正极线加了一个内联开关,该让它更容易控制伺服机构的电源通断。这个小开关的安装孔是六足昆虫盒框架上预留的。
工具:电烙铁
部件:5V USB充电器电压转换器,电池连接器
树莓派2代开发板并不需要大范围的电压,所以你需要的仅仅是5V的电压。手机的便携式可充电电池是最好的选择,其恒定输出电压为5V。用一个USB连接器连接到树莓派2代开发板上。我有几个不同的形状和大小的电源可以用于树莓派开发板和Arduino项目。
然而,我也想试试最近得到的这个电压转换器。这个电压转换器也输出5V的电压并支持USB连接。它也能显示电压,它也可以灵活地使用各种电池(或者只是换一个新电池,这样我无需等待电池充满电了)。
工具:Visual Studio 2015
从Github下载六足机器昆虫所需的源代码并将该项目加载到Visual Studio上去。该应用程序主要由三个文件构成:运动源代码、控制器源代码和XBOX手柄遥控器源代码。
XBOX手柄遥控器源代码直接来源于Windows物联网团队发布的机器人套件项目。源代码可以听从XBOX手柄遥控器上DPad键或者左摇杆的动作指示。但DPad键只支持在四个方向上、下、左、右的运动。左摇杆支持基本相同的四个方向,但它也允许输入额外四个方向东北、西北、西南、东南。一旦检测到控制器事件,控制器的方向输入就从控制器传递给控制器代码中。
控制器的代码将使Xbox控制器初始化。它也从机器人套件项目,但我删除了几个其他控制器选项。一旦控制器被初始化后,控制器代码将收到来自Xbox控制器到适当的运动方向的输入信号。
运动源代码首先通过I2C建立在伺服编码控制器的两个通道上。然后,它定义了所有的原始动作:行走、转动和关节运动
我仍在尝试着做新的运动。您将在代码中看到,其中一个关节处有一个附加的参数,决定着一个加合物的摆动度数。我认为,当我减少一些关节的运动范围可以优化速度,使复合运动更快完成。我也需要实验减少延迟时间是否真的可以满足的六足机器昆虫六足转动伺服的要求。
时间:15分钟
工具:螺丝刀
一旦你完成了所有构建和所需部署的代码,你可能需要调整一些伺服系统的位置了。在步骤一中通过伺服试验机,在装配前调整好伺服系统中心大大减轻了伺服系统调整的工作量了,不过对安装在底部的编码控制器上的伺服系统进行微调还是必要的。我只需要调整一个垂直髋伺服和膝盖部就可以了。
首先,将所有的伺服电机移动到他们的中心位置。然后看每一个关节,看看它是否是适当的角度。你可以旋开电动机上的伺服角(在伺服角顶部的单个螺丝)然后将伺服角从电动机的花键上旋下。旋转的伺服喇角(和附加腿组件),直到它得到的所需的角度,然后推动伺服角回到花键上。如果这个角位置为关节提供了所需的角度,则旋转螺钉并拧紧。对任何关节错位重复这个过程。
看看下面的视频吧:
2015-2016赛季全球创客马拉松华南农大站已经开赛啦!只要你的创意够新颖、动手能力够强都可以来参加。还在等什么,快来参加吧!关注“硬创邦”(微信号:leiphone_bang),回复“华农”即可参与报名!
雷峰网原创文章,未经授权禁止转载。详情见转载须知。