alibaba 发表于 2016-1-20 11:45:39

技术宅们自制最浪漫礼物:DIY 机器人(附教程)

技术宅们自制最浪漫礼物:DIY 机器人(附教程)

2016-01-20 09:11:55


导读: 你想要学习如何制作你自己的机器人吗?有很多种可以DIY的机器人。大部分人想要让一个机器人从A点移动到B点。你完全可以通过模拟分量(analoguecomponents)或者购买初学者工具包来制作机器人。制作机器人是自学电子学和计算机编程的一种非常好的方式。   FacebookCEO马克·扎克伯格(MarkZuckerberg)周末在Facebook个人页面上撰文,公布了他2016年的一大目标:开发能控制家庭环境的人工智能技术。
  以下是扎克伯格的文章全文:
  每年,我都会接受个人挑战,学习新事物,在Facebook的工作以外获得成长。近年来,我设定的挑战包括每月读两本书,学习中文,以及每天认识一位新朋友。
  2016年,我的个人挑战是开发简单的人工智能技术,控制家庭环境,并协助我开展工作。这类似于《钢铁侠》中的人工智能助手贾维斯。
  最开始,我将了解市场上已有什么样的技术。随后,我将教会人工智能助手理解我的语音,以控制家中一切,包括音乐、照明和温度等等。我将教会它识别朋友们的面部图片,在朋友们按门铃时让他们进入。我将教会它提醒我,当我没有陪伴着女儿麦柯斯时,她的房间里是否发生了什么事需要我去查看。关于工作,它将通过虚拟现实实现数据可视化,帮助我开发更优秀的服务,更有效地领导我的组织。
  每次挑战都有一个主题,而今年的主题就是发明。
  在Facebook,我花了很多时间与工程师们合作,开发新产品。深入了解技术项目的细节使我获益良多。关于Internet.org,我们探讨开发太阳能飞机和卫星,提供互联网接入服务;关于Oculus,我们会了解所涉及的控制器或软件的细节;关于Messenger,我们讨论通过人工智能回答你的问题。但自行开发产品将带来完全不同的收获。因此,今年我的个人挑战就是去做这件事。
  对我自己来说,编写代码是有趣的智力挑战。我很期待,在经过一年的学习后可以与你们分享。
  by扎克伯格
  制作一个贾维斯那样的机器人,自然不是一件容易的事,这篇文章也只是机器人教学入门,很难有“强大”的智能。但是像扎克伯格一样去探索,去好奇,去挑战2016的自己,是我们都可以做的事情。
  你也可以@身边的某人,让Ta给你做一个可爱的机器人,这是2016年最浪漫的礼物了~
  教学全文
  制作一个机器人只需要五步:组装机器人;给机器人接线;连接电源;安装Arduino软件;给机器人编程。
  你想要学习如何制作你自己的机器人吗?有很多种可以DIY的机器人。大部分人想要让一个机器人从A点移动到B点。你完全可以通过模拟分量(analoguecomponents)或者购买初学者工具包来制作机器人。制作机器人是自学电子学和计算机编程的一种非常好的方式。

  第一步:组装机器人


  1.收集元件。为了制作一个基本的机器人,你将需要一些简单元件。你能从附近的业余爱好者商店或者在线零售店买到大部分元件(如果不是全部的话)。一些基本的工具包也可能包括所有的元件。这款机器人不需要很多的焊料。
  ArduinoUNO(或者其他的微控制器)
  2个连续旋转舵机
  2个适合上述舵机的轮子
  1个连铸机辊
  1个小型无焊料的试验电路板(要找一个每边有两个正负线的电路板)
  1个远程传感器(有四脚连接器电缆)
  1个包含1个1万欧姆的电阻的按钮开关
  1套线对板连接器
  1个6xAA的电池支架,包含一个9VDC插座
  1包跨接线或者22gauge的布线用电线
  强力双面胶带或者热粘接剂


  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针连到红色导轨(正级)针上。确定你用的是电路板后部的红色导轨针(redrail)(靠近机身的其他部分区域的红色导轨针)。


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


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


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


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


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


  10.白色跨接线连接针I15和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.下载并提取ArduinoIDE。这是Arduino的开发环境,这样,你可以将指令编程并上传到你的Arduino微型控制器中。你可以从arduino.cc/en/main/software网站中免费下载它。解压下载下来的文件,找到该文件夹,不需要安装程序,只需要双击arduino.exe来运行它。


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


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


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


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


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


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


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

  第五步:为机器人编程


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


  2.粘贴以下代码来让你的机器人可以走直线。以下的代码将会让你的Arduino不停地前进。
#include <Servo.h> // this adds the "Servo" library to the program

// the following creates two servo objects
Servo leftMotor;
Servo rightMotor;

void setup()
{
    leftMotor.attach(12); // if you accidentally switched up the pin numbers for your servos, you can swap the numbers here
    rightMotor.attach(13);
}


void loop()
{
    leftMotor.write(180); // with continuous rotation, 180 tells the servo to move at full speed "forward."
    rightMotor.write(0); // if both of these are at 180, the robot will go in a circle because the servos are flipped. "0" tells it to move full speed "backwards."
}

  3.构建并上传代码。点击左上角的“向右的箭头”来将代码构建并上传到USB连接着的Arduino。
  你可能想要把机器人拿起来,因为一旦代码上传好,它会继续向前移动。



  4.增加关闭功能。增加代码到源代码的“voidloop”部分中来激活关闭功能。具体位置在“voidloop”中“write”函数上面。
if(digitalRead(2) == HIGH) // this registers when the button is pressed on pin 2 of the Arduino
{
    while(1)
    {
      leftMotor.write(90); // "90" is neutral position for the servos, which tells them to stop turning
      rightMotor.write(90);
    }
}

  5.上传并测试你的代码。有了增加后的关闭功能,你可以上传并测试机器人了。它应该在你按下按钮之前不停的前进,当你按完后,它会停止。
if(digitalRead(2) == HIGH) // this registers when the button is pressed on pin 2 of the Arduino
{
    while(1)
    {
      leftMotor.write(90); // "90" is neutral position for the servos, which tells them to stop turning
      rightMotor.write(90);
    }
}


qiansi506 发表于 2016-3-1 17:52:12

这个方面的话题的 都讨论一下
页: [1]
查看完整版本: 技术宅们自制最浪漫礼物:DIY 机器人(附教程)