Makeblock是一款不错的机构搭建工具,它使得我们对于机构的理解和创新不再只局限于草纸上的理论推算或者是三维软件的仿真之中。但无论是使用机构仿真软件亦或Makeblock这样优秀的百搭平台,建立基本观念避免了盲目的探索,对快速搭建出实用的机构大有帮助。
百搭平台中最常见的两种运动副:
在使用Makeblock搭建的过程中,我们很容易发现有些零件连接在一起后就不会再有相对的运动,成为一个整体,而有些则不是,正因为如此,才有了丰富多彩的运动和动力传递形式。否则就只能是一个好看的静态模型。
为简单起见,我们就以最简单的两种相对运动,绕某一轴转动 和 沿某一直线平动 为起点,开始学习搭建中的技巧。
平动副(Sliding pairs)
这两种运动副最显浅易懂,而且还可以相互转化,后面我们将会看到。
不过,在搭建一个相对复杂的机构,然后给某个转动副环节加上电机企图使其运动的过程中,是否会遇到这样的问题,要么整个机构卡住了,要么机构加了电机似乎整个机构还能自由运动,于是补上一个连接想来约束,结果却又矫枉过正让机构完全无法运动。
要彻底解决这个问题,首先,我们需要先谈谈自由度的问题。
如上图所述,三个两两垂直的坐标轴构成笛卡尔坐标系XYZ。那么一个完全自由的物体,在空间中的运动可以用六个分量来描述,分别是沿X,Y,Z三个轴的平动和转动。
嗯,这还是太复杂了,为了避免引入复杂的数学,我们再一次缩小研究范围到平面XOY,那么就没有六个自由度,而是下图所示的三个
平面的3个自由度:X方向的平动,Y方向的平动,绕Z轴的转动
转动副约束了XY两个方向的平动,保留了Z轴的转动,因此转动副减少了机构的两个自由度
同样平动副约束了X或Y一个方向的平动,还有Z轴的转动,因此平动副业减少了机构的两个自由度
Makeblock介绍
Makeblock是一款铝积木式的结构模块和电子模块的组合,包括基本结构部件,传动部件,电机,传感器,控制器等等。主要零部件是铝合金材质,以Arduino作为控制器。利用此平台,你可以在很短的时间里实现自己的各种创意想法。动手制作机器人或者自动化装置的原型需要制作者同时拥有机械、电子、软件编程三个方面的专业技能,这就使得DIY这类产品的门槛很高。Makeblock主要宗旨是让制作变得很简单,让初学者易于登堂入室,人人都可以动手做一些东西,并体会其中的乐趣,让大人和孩子们共同学习。
1998年,乐高(Lego)推出了它的第一款Mindstorms机器人套件,乐高的形象也由单纯的玩具制造商变成向大众提供创意原型平台而深得人心,至今该产品仍然被广泛的使用,从教育到科研、从学习到娱乐。而现在,一家在深圳的创业公司也在做着和乐高机器人看似相同当却有着更加远大理想的工作————构建开源易用的机械电子百搭平台,产品叫做“Makeblock”。
和许多初学者一样,我在大学的时候经常看到别人网上发布的DIY的机器人倍感鼓舞,准备大展身手,可等到自己真正动起手来的时候却发现问题很多,让本来很好的创意荒废。不过电子方面的问题还算比较好解决的,至少可以找到一些电子爱好者咨询帮助,慢慢也还能上手。而如果你要搭建机器人这类产品,机械零件不可或缺却又困难重重。单个零件的制造不仅成本高昂,来回迭代的设计变更会严重拖延进度,你在实现想法的同时还要消耗大量不必要的精力去寻找愿意接受你制造需求的零件供应者或者代加工者。验证创意的头脑风暴阶段,除了运用软件仿真,我们更加需要简单易用的百搭平台来验证、初步实现我们的想法,然后展现给大家分享或者进行下一步的商业化。更重要的是构建这样一个电子机械兼有的百搭平台,在教育领域激发孩子们的创造力和想象力的助益更是巨大的。
要动手制作智能机器人一般需要做三个领域的工作:搭建机械结构、拼接电子硬件和编写软件程序。在以Arduino为代表的趣味电子制作和开源软硬件运动浪潮席卷国外后,动手制作一些自己感兴趣的项目已经不再是少数技术极客们的专利。随后又出现了各类易学易用的图形化编程工具,大大降低了大众进入这个领域的门槛。如今,经过多批零件的生产,Makeblock的各主要零部件的质量终于有大幅的提高,外观也采用了和苹果手机一样的铝合金氧化工艺,闪闪发亮的金色和蓝色零件对消费者也越发有吸引力。
Makeblock的特色
螺纹槽——极高灵活度的搭建
Makeblock的最主要零件就是两种主梁———双孔梁和U型梁,他们都有我们独创的专利———螺纹槽。螺纹槽的好处不言而喻,你可以在槽任何地方安装螺丝,这样,就可以搭建出任意角度或者间距的梁或者其它零件,这使得整个零件系统搭建的灵活度大大提高。
铝合金——强度和重量的完美平衡
Makeblock绝大部分零件采用铝合金制作,铝合金是典型重量轻而强度相对高的材料。采用Makeblock搭建的小车不仅不会像塑料零件那样容易松动,而且甚至整个结构承受一个人的重量都不会变形或者损坏。
多种规格多种方式——灵活配置你需要的
你可能在某些场合只需要提供很小的扭转动力,也可能需要较大的扭转动力以便于承受更重的负载。我们提供至少3种不同规格的直流电机,供你不同的需求来选择。又或者你并不需要很大的动力,但是需要精确控制运动的位置,这时候你可以选用我们的步进电机,它还配有非常容易控制的电控模块。还有可能你需要电机在某个位置输出一定的力,不会受干扰的偏移原来预定的位置,譬如航模中的摆舵,这时候就可以选用我们提供的大扭力伺服电机(舵机)。
Makeblock平台的灵活性不仅体现在零件选择上有大中小的规格,更体现在自由搭配的数量上。履带就是一个很好的例子,履带是由类似手表带一样的方式,通过中间轴和橡胶的配合一起完成的,使用者可以通过使用不同数量的履带单元,自由调节这种履带的长度以适应不同场合的需求。
多种传动结构——让运动变换更有趣
你可以通过同步皮带轮将电机运动的速度降低,扭矩提高,以达到传动的目的。也可以使用我们提供的直线运动部件让电机的旋转运动变成来回的直线运动。
采用我们的多功能滑轮装上履带或者橡皮车轮,你也可以把电机的运动转换成履带和地面的摩擦运动,这一个零件同时实现了三种不同可能性的功能。
如果你系统的学习过机械原理,知道什么叫连杆机构,说不定可以试试拼个六足蜘蛛来玩玩。这种机器人实现了机械专业学生渴望机构变换搭建的需求,可以作为实验课的配套教具。
不懂接口不想连线——积木式电子接线
机械零件的安装和搭建是容易了,那电子模块呢?也许你曾经看过一些电子模块的接线混乱如麻,不仅连接不可靠,用户更要花费大量时间在对接口找编号上面。Makeblock向用户提供统一的四芯水晶头接口,不仅插拔的用户体验大幅提升,而且连接更可靠,从此再也无需为接线而烦恼。
此外,Makeblock提供的电子模块也是有着和机械结构件一样的通孔大小和间距。用户只需要轻轻摁动可拆卸的塑胶铆钉,便可轻松固定各种电子模块和主控制板Arduino。
我是乐高控——选择Makeblock也继续用乐高
Makeblock是完全开放的平台,我们兼容乐高。乐高零件的标准是直径4mm间距8mm的通孔。而Makeblock也一样,部分零件也采用16mm的间距规格,这丝毫没有妨碍到乐高的用户过渡到Makeblock这个平台上来。不仅如此,你曾经用过的乐高零件还可以作为Makeblock丰富扩展的一部分。
此外,我们还提供从Arduino到乐高零部件的转接板,这样,你完全可以继续使用Arduino来控制乐高的电子零配件,丝毫没有问题,这也许又是一条能让用户感到惊喜的好消息吧?
Makeblock的受众
Makeblock对于喜欢自己动手制作机器人、数控机床、互动玩具产品的创客们显然是极佳的选择。
Makeblock官方网站:http://www.makeblock.cc/
开始搭建一个简单的Makeblock坦克
现在,让我们开始搭建你的第一个简单的Makeblock机器坦克,你必须要确保手上要有一套完整的Makeblock初学者套件。让我们拿出一块Arduino Uno R3或者Makeblock自带的Meduino,它们是完全一样的东西,除了名字。因为Arduino是被注册的商标,除了Arduino官方团队以外,其他完全一样的兼容板也不能使用。
接着在Makeblock套件中找出Makeblock基础盾牌。如下图所示,把它插接到Arduino上。
第一步,添加电机
如图所示,用沉头十字小螺丝将两个电机分别装到电机托架上去,然后把整个电机连托架安装到8个单位长度的双孔梁上,注意,呈斜对角线安装效果较佳。
第二步,搭建机器人底座
将六个单位的双孔梁拿出,如下图所示,两侧插入并用螺丝刀拧紧,坦克底座即完成。
第三步,安装驱动轮
此范例的坦克机器人需要四个轮子,其中两个是主动轮(连接电机),另外两个是被动轮。它们的搭建稍有差别,首先,将两个主动轮用联轴器连接
第四步,连接被动轮
如下图所示,取出一边带螺纹,一边光滑的小轴,此外,我们还需要两个杯轴承,一个白色塑料挡圈以及一个侧面需要旋入止付螺丝的轴套。此步骤稍有点复杂,涉及的新零件较多,请按图逐步操作
第五步,安装履带
Makeblock的履带式可扩展式的,类似于钢带手表的表带,中间通过光滑的小轴连接。本范例需要每边需要20片履带片,在履带片串接小轴过程中,请尽量使用工具(如螺丝刀手柄)来按压,以免受伤。 履带串接好后,即可如下图所示套到底座的轮子上。
Wiring a robot tank
第一步,将基础控制板安装在电池托盘上
将六节AA(5号电池)的电池架安装到塑料托盘上,用3mm的尼龙铆钉固定,再用4根铜螺柱和杯头螺丝安装好主控板。请注意,不要拧太紧,塑料板较脆,容易产生裂缝。
第二步,把主控器及电池托盘安装到坦克上
同样的方式,但使用直径4mm的尼龙铆钉将塑料板安装在坦克的主双孔梁上。
第三步,添加超声波传感器
用两颗M4X8的螺母和两个尼龙铆钉,安装好Makeblock的第二代超声波传感器,你就可以用它来测量距离了。如果你需要了解更多关于这款传感器的信息,请访问Makeblock的官网。
第四步,接线
下图简要表示了主控器如何与电池盒、两个直流电机、超声波传感器和红外接收器连接。如果需要更多关于这两种传感器的知识,请回顾本书第三篇的相关内容。
搭建一个三轮机器人小车
第一步,搭建小车的基本结构
在搭建过程中尤其注意要垂直螺纹槽旋入螺丝,以保护螺纹槽不受损。万向轮的连接螺母不是匹配普通杯头螺丝的螺母,请注意选用正确的螺母。
第二步,将两直流电机安装到小车主结构上
第三步,安装所有小车需要的轮子
此步骤依然需要使用联轴器,可见在电机D轴和多功能车轮的连接过程中,铝联轴器是必不可缺的。先安装联轴器到车轮上,再使用止付螺丝安装车轮到电机的D轴上。此外,在车轮外加装橡胶轮胎能够有效的提供静摩檫力,使小车在干燥的地面行驶时更有效率。
三轮机器车的接线
这些步骤和四轮坦克类似,唯一不同的地方就是超声波传感器、电池夹以及主控板的安装。电池夹和主控板通过4mm的尼龙铆钉安装到双孔梁上,超声波传感器用4mm的尼龙铆钉固定在L型金属片上。
编程
Makeblock的扩展板1.0在用户首次使用时已经内置了我们初学者套件的代码。你可以使用在红外遥控器面板上的测试(TEST)按键来切换超声波壁障模式和红外控制模式。当你开始使用你的机器人,你可以使用红外遥控来控制你的机器人。当你按下测试键,机器人就切换到智能壁障模式,它可以自动的避开障碍物向前行进。在壁障模式中,你依旧可以使用红外遥控来控制你的机器人
安装Arduino开发环境及Makeblock库
安装Arduino部分在本书第一章已经完整阐述相关步骤,这里不再赘叙。下面说明如何在Arduino IDE已经安装好的基础上引用Makeblock的库文件。
下载Makeblock库:
https://github.com/Makeblock-official/Makeblock-Library.
Github是全球知名的开源代码分享社区,Makeblock希望我们的开发者也参与其中,你也可以提交你自己对于代码的理解和修改。点击上述网址,进入github中Makeblock代码库的页面,你可以直接浏览当中的代码,相关内容请读者自己尝试或在网上查阅相关资料。为了在本地运行,点击页面右下角的Download Zip,如图所示,将整个库文件以ZIP压缩包文件的形式下载下来
新版的Arduino IDE支持直接导入Zip格式文件的库,在导航菜单中点击->Sketch->Import Library然后选择Add Library
将路径指向我们刚才下载文件的目录即可,如图所示
当然,你也可以手动安装,这种方式我们在本书第三章有提到。解压文件夹“Makeblock_Library”,并将其放置到Arduino软件根目录下的libraries文件夹下。
运行示例代码库
用USB连接到你的Arduino或者Meduino控制板,新版的Arduino IDE会自动帮你安装控制板所需驱动,这可能需要约一分钟的时间。重启Arduino IDE后,
在导航菜单栏中即可看到Makeblock官方提供的示例代码,如下图所示:
file>examples>Makeblock_Library>examples>makeblock_Robot_Starter_Kit>
选择控制板类型:
在导航菜单栏Tools>Board>中对你所使用的控制板类型进行选择,如下图所示。如果你使用的是Meduino请选择Arduino Uno,如果你使用的事Me-Baseboard,请选择Arduino Leonardo
选择串口
在Arduino IDE的菜单栏中,导航到Tools>Serial Port>Com x如下图所示,选择你正在使用Arduino连接的串口。
-
装载程序
单击upload图标,编译并装载代码到控制板中,当装载过程完成,Arduino IDE的状态栏中会显示“Done uploading”.
装载代码中可能会遇到的问题?
由于Me BaseBoard是基于Leonardo的Arduino控制器,装载代码的过程中可能会遇到如下提示错误: “Couldn’t find a Leonardo on the selected port”. 先检查你是否选择了正确的串口号,如果确认无误,在转载前请按紧控制板上的reset按键不放,同时点击Arduino IDE中的upload按键,如果还不能解决问题,请访问Makeblock官方论坛(英文):
(http://forum.makeblock.cc/t/me-baseboard-leonardo-error/)
来反馈你的问题,并取得技术支持。
运行你的机器人
Makeblock官方提供了两个示例代码IR_Control是用来使用红外遥控远程控制机器人的程序;Ultrasonic_car是自动壁障机器人的示例程序,确保你往控制器中装载的是你想要的程序。
以下两个是你初次使用Makeblock可能会遇到的问题
如何使用红外遥控器
首先,确保你选择了IR_Control 的示例程序并装载好到你的主控器中,同时,还要确保你的红外传感器、超声波传感器接到了主控器中正确的端口,在最新版的Makeblock中,默认红外传感器是接在6号端口的 (PORT_6)。这时你可以打开主控器上的电源开关,注意如果是使用Makeblock扩展板插接在Arduino上,需要打开扩展板上的开关,并且电池连接线需要和扩展板供电,而不是Arduino主控板供电,否则无法向电机供电。
下面的图片显示了红外遥控器上面指令按键的分布,其它并未标记的按键暂时未被使用,将来请你写程序来用上它们。
有些时候,当你发现使用遥控操纵的过程当中,你想让机器人前行,它却转弯。这是因为电机的正负极接线接反了,这时你只需将电机的连接线对调一下,如下图所示。如果你遇到想让机器人前行它却后退的问题呢?嗯,就让我们把这个问题留给读者自己思考吧,多试几次,你一定会体会其中的缘由的。
运行自动壁障机器人
首先,你要确保你是将示例程序Ultrasonic_car装载到你的主控器中的,同时你还需要保证超声波传感器连接的事主控器中的7号端口 (PORT_7);同样,你需要保证红外传感器连接到6号端口(PORT_6).打开开关,开始你人生自制的第一个壁障机器人小车的乐趣吧。
写的很详细,Mark一下!