【2016 年最浪漫礼物】像扎克伯格一样,DIY 机器人(附教程)

Facebook CEO 马克·扎克伯格(Mark Zuckerberg)周末在 Facebook 个人页面上撰文,公布了他 2016 年的一大目标:开发能控制家庭环境的人工智能技术。

以下是扎克伯格的文章全文:

每年,我都会接受个人挑战,学习新事物,在Facebook的工作以外获得成长。近年来,我设定的挑战包括每月读两本书,学习中文,以及每天认识一位新朋友。

2016年,我的个人挑战是开发简单的人工智能技术,控制家庭环境,并协助我开展工作。这类似于《钢铁侠》中的人工智能助手贾维斯。

最开始,我将了解市场上已有什么样的技术。随后,我将教会人工智能助手理解我的语音,以控制家中一切,包括音乐、照明和温度等等。我将教会它识别朋友们的面部图片,在朋友们按门铃时让他们进入。我将教会它提醒我,当我没有陪伴着女儿麦柯斯时,她的房间里是否发生了什么事需要我去查看。关于工作,它将通过虚拟现实实现数据可视化,帮助我开发更优秀的服务,更有效地领导我的组织。

每次挑战都有一个主题,而今年的主题就是发明。

在Facebook,我花了很多时间与工程师们合作,开发新产品。深入了解技术项目的细节使我获益良多。关于Internet.org,我们探讨开发太阳能飞机和卫星,提供互联网接入服务;关于Oculus,我们会了解所涉及的控制器或软件的细节;关于Messenger,我们讨论通过人工智能回答你的问题。但自行开发产品将带来完全不同的收获。因此,今年我的个人挑战就是去做这件事。

对我自己来说,编写代码是有趣的智力挑战。我很期待,在经过一年的学习后可以与你们分享。

by 扎克伯格

制作一个贾维斯那样的机器人,自然不是一件容易的事,这篇文章也只是机器人教学入门,很难有“强大”的智能。但是像扎克伯格一样去探索,去好奇,去挑战 2016 的自己,是我们都可以做的事情。

你也可以@身边的某人,让Ta给你做一个可爱的机器人,这是2016年最浪漫的礼物了~

教学全文

制作一个机器人只需要五步:组装机器人;给机器人接线;连接电源 ;安装Arduino软件;给机器人编程。

你想要学习如何制作你自己的机器人吗?有很多种可以DIY的机器人。大部分人想要让一个机器人从A点移动到B点。你完全可以通过模拟分量(analogue components)或者购买初学者工具包来制作机器人。制作机器人是自学电子学和计算机编程的一种非常好的方式。

第一步:组装机器人

1.收集元件。为了制作一个基本的机器人,你将需要一些简单元件。你能从附近的业余爱好者商店或者在线零售店买到大部分元件(如果不是全部的话)。一些基本的工具包也可能包括所有的元件。这款机器人不需要很多的焊料。

Arduino UNO(或者其他的微控制器)

2个连续旋转舵机

2个适合上述舵机的轮子

1个连铸机辊

1个小型无焊料的试验电路板(要找一个每边有两个正负线的电路板)

1个远程传感器(有四脚连接器电缆)

1个包含1个1万欧姆的电阻的按钮开关

1套线对板连接器

1个6 x AA的电池支架,包含一个9V DC插座

1包跨接线或者22 gauge的布线用电线

强力双面胶带或者热粘接剂

2.翻转电池支架,背面朝上。你将会用这个电池支架作为机器人身体的基础

3.将两个舵机与电池支架末端对齐。这应该是电池支架的电线伸出来的末端。舵机应该触到底部,并且每个舵机的旋转部分应该在电池支架的两边。舵机被合理的对齐是很重要的,这是为了让轮子放的直一些。端机的电线应该从电池支架的背部出来。

4.用胶带或胶水黏贴舵机。确定它们被牢牢地粘在一起。舵机的背部应该和电池支架的背部紧紧地贴在一起。

舵机现在应该占了电池支架背部的一半

5.将电路板平行贴在电池支架背部空下的区域上。它应该距离电池支架前端有一点点距离,横向在电池支架两边应该露出一小部分。在下一步之前,确定它粘附的很牢。“A”排应该很接近舵机。

6.将Arduino微控制器粘在舵机的顶部。如果两个舵机放的很合适的话,应该它们之间的接触部分应该有一段平的区域。将Arduino微控制器放在这部分区域上,以使Arduino的USB和电源线朝后(远离电路板)。Arduino的前端应该刚刚与线路板有重叠。

7.将轮子装在舵机上。将轮子紧紧的装到舵机的旋转部分中。这可能需要很大的力量,因为轮子被设计目的就是为了紧紧嵌入舵机来提供最大的牵引力。

8.将连铸辊接在接线板底部。如果你把机身反过来,你应该看到电路板露在外边一点。将连铸辊装到露在外面的部分,必要的话使用冒口。连铸辊的作用是前轮,方便机器人转向。

如果你买了一个工具包,里面可能附带了一些对应连铸辊的冒口,以保证连铸辊接触地面。

第二步:给机器人接线

1.改造两个三脚连接器。你将用这些将舵机连到电路板上。移动针部,让两边距离相等。

2.插入两个连接器到电路板E排的1-3插口和6-8插口。确定它们被牢牢的插入。

3.将舵机电缆连到连接器上,黑色电缆在左边。(接到1口和6口上)。这会将舵机与电路板连接在一起。确定左边的舵机连接到左边的连接器上,右边的舵机连接到右边的连接器上。

4.红色跨接线分别从C2针和C7针连到红色导轨(正级)针上。确定你用的是电路板后部的红色导轨针(red rail)(靠近机身的其他部分区域的红色导轨针)。

5.将黑色跨接线分别从B1针和B6针接到蓝色导轨针(地线)上。确定你用的是电路板后部的蓝色导轨针(blue rail pins)。不要插到红色导轨针上。

6.白色跨接线从Arduino 的针12和针13连接到A3和A8上。这让Arduino控制这些舵机和轮子。

7.将传感器装到电路板前面。它不能插到电路板的外部电源区域中,应该插到第一排J行中。确定你精确地插到了中间区域,两边有数量相等的针数剩余。

8.黑色跨接线连接针I14和传感器左侧第一个可用的蓝色针。这会让传感器接地。

9.黑色跨接线连接针I 17和传感器右侧第一个可用的红色针。这给传感器提供电力。

10.白色跨接线连接针I 15和Arduino上的针9,类似地,再连接针I16和针8。这将传感器的信息提供给微控制器。

第三步:连接电源

1.翻转机身,看到支架中的电池。让其电池支架的电缆线从左下角伸出。

2.用红色的电缆线连接左下角的弹簧。一定要确定电池支架放置正确。

3.用黑色电缆线连接右下角最后一个弹簧。这两个电线给Arduino提供正确的电压。

4.将上述红色和黑色的电线连到电路板最右边红色和蓝色的针上。黑色电线应该插入到蓝色导轨针的针30处。红色电缆线应该插到红色电缆线的针30处。

5.黑色电线连接Arduino上的GND针和电路板后部的蓝色导轨针。蓝色导轨针处连接位置是针28.

6.一个黑色电线连接电路板后部的蓝色导轨针和前部的蓝色导轨针(位置均在针29处)。不要连接红色导轨,因为那样很可能损坏Arduino。

7.连接电路板前部的红色导轨针(针30)到Arduino上的5V针。这将会给Arduino提供电力。

8.在两排的间隔处pin24-26处插入按钮开关。这个开关让你不需要通过拔电源就能关闭机器人。

9.用一根红色线连接H24和传感器右侧下一个可用的针。这会给按钮提供电力。

10.用电阻连接H26和蓝色导轨针。直接将电阻与针连接,并连到几步之前用到的黑色线旁边。

11.用一根白色线连接G26和Arduino的针2处。这让Arduino在按钮那里注册。

第四步:安装Arduino软件

1.下载并提取Arduino IDE。这是Arduino的开发环境,这样,你可以将指令编程并上传到你的Arduino微型控制器中。你可以从arduino.cc/en/main/software网站中免费下载它。解压下载下来的文件,找到该文件夹,不需要安装程序,只需要双击arduino.exe来运行它。

2.将电池架连到Arduino上。给Arduino的连接器接上电池组来为其提供电力。

3.用USB将Arduino接入电脑。Windows很有可能不识别这个设备。

4.按下win+R,并输入“devmgmt.msc”。这会调出设备管理器。

5.右击在“其他设备”选项中的“未知设备”,并选择“更新驱动软件”。如果你没有看到这个选项,点击“属性”,选择“驱动”标签,接着点击“更新驱动”。

6.选择“浏览我的电脑来寻找驱动软件。”选择Arduino IDE中自带的驱动软件。

7.点击“浏览”,接着找到你之前下载并解压好的文件夹。你会在文件夹里找到一个名为“drivers”的文件夹。

8.选择“drivers”文件夹,并点击“确定”。如果你被警告“这是未知软件”,确认你想要继续。

第五步:为机器人编程

1.双击IDE文件夹中的“arduino.exe”启动Arduino IDE。你会看到一个空白的工程。

2. 粘贴以下代码来让你的机器人可以走直线。以下的代码将会让你的Arduino不停地前进。

回复“code1”得到代码

3.构建并上传代码。点击左上角的“向右的箭头”来将代码构建并上传到USB连接着的Arduino。

你可能想要把机器人拿起来,因为一旦代码上传好,它会继续向前移动。

4.增加关闭功能。增加代码(回复“Code2”得到代码)到源代码的“void loop()”部分中来激活关闭功能。具体位置在“void loop()”中“write()”函数上面。

5.上传并测试你的代码。有了增加后的关闭功能,你可以上传并测试机器人了。它应该在你按下按钮之前不停的前进,当你按完后,它会停止。回复“Code3”得到,全部代码。

示例

这里提供一份示例代码,它用了机器人身上的传感器,来让它在遇到障碍时向左转。代码中的注释解释了代码每个部分是用来做什么的。回复“Code4”得到示例代码。

原文发布于微信公众号 - 新智元(AI_era)

原文发表时间:2016-01-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏西枫里博客

小米4手机更换电池复活记

过年那天,手机也忙坏了,竟然自爆了(电池持续发热,熔芯了)。这大过年的没手机,春晚红包也抢不到啊,悲剧。将就先把淘汰下来的iphone5s拿来应急,这个原本是女...

382
来自专栏AI研习社

Google 工程师:教你用树莓派 + Arduino + TensorFlow 搭建图像识别小车

从买第一个Arduino套装开始,我接触机器人有好几年了,但直到最近才开始做完整的课题。期间有两项技能为我打开了新世界的大门:Python和Linux。他们背后...

42111
来自专栏北京马哥教育

最新的10个优质Python开源项目

来源:Python程序员 ID:pythonbuluo 在过去的一个月中,我们对近250个Python开源项目进行了排名,选出了前十。 我们比较了在此期间有...

2558
来自专栏睿哥杂货铺

我的写作工具链

1)源文件持续修改中出现的回归编辑工作,互相引用的链接较多

1979
来自专栏FreeBuf

使用USRP探索无线世界 Part 1 | USRP从入门到追踪飞机飞行轨迹

温馨提示:请自觉遵守无线电管理法规,依法设置和使用无线电设备 Author:雪碧0xroot @漏洞盒子安全团队 cn0xroot.github.io 0×00...

1957
来自专栏编程直播室

Python教程之HelloWorld

1358
来自专栏FreeBuf

挖洞经验 | 看我如何挖掘成人网站YouPorn的XSS并成功利用

事情开始变得有趣起来,使我不得不停下手中的工作。我很惊讶,这个问题之前竟然没有人能发现它。搜做表单中的XSS是最基本的情况之一,我和我的朋友都经常逛YouPor...

1365
来自专栏Jerry的SAP技术分享

Jerry的CRM Middleware(中间件)文章合集

我在SAP成都研究院做过的CRM中间件的项目其实并不是很多:

1815
来自专栏顶级程序员

你写过什么有趣的程序?最后一个笑出猪叫

源 / 程序员之家 苍冥说: 我们从高一到高三都强制采用图形计算器,可以画函数图像的那种。我们用的是德州仪器系列,Ti-Nspire,贵的要死要死的。然而我却买...

37111
来自专栏FreeBuf

极客DIY:使用Arduino制作一块开源手表

1 - 引言 首先让我们看下这个项目要考虑到的问题: 1.)使用100%Arduino兼容性硬件 2.)保证存储器足够大可以装下大量的稍后会扩展的新内容 ...

2006

扫描关注云+社区