如何在家建造机器人(build a robot at home)

你想学习如何建造自己的机器人吗?有很多不同类型的机器人,你可以自己制作。大多数人都想看到机器人完成从A点到B点的简单任务。你可以完全用模拟部件制作机器人,也可以从头开始买一个启动套件建造自己的机器人是教自己电子学以及计算机编程的好方法。...

第1部分 6的第1部分:组装机器人

  1. 1收集你的部件。要建造一个基本的机器人,你需要几个简单的部件。你可以在当地的电子爱好者商店或一些在线零售商那里找到大多数(如果不是全部)这些部件。一些基本套件可能还包括所有这些组件。这个机器人不需要任何焊接。Arduino Uno(或其他微控制器)2个连续旋转的舵机2个适合舵机的轮子1个脚轮1个小型无焊面包板(寻找每侧有两条正负线的面包板)1个距离传感器(带四针连接器电缆)1个迷你按钮开关1个10kΩ电阻1个USB A至B电缆1套分离头1个带9V直流电源插孔的6×AA电池座1包跳线或22号连接线结实的双面胶或热胶
  2. Image titled 1123333 1
  3. 2将电池组翻过来,使平坦的背面朝上。你将用电池组作为基础来建造机器人的身体。
  4. Image titled 1123333 2
  5. 3对准电池组一端的两个舵机。舵机的底部应该相接,每个舵机的旋转机构应该朝向电池组的两侧。舵机必须正确对齐,使轮子走直。舵机的电线应该从电池组的后面出来。
  6. Image titled 1123333 3
  7. 4用你的胶带或胶水固定舵机。确保它们牢固地连接到电池组上。舵机的背面应该与电池组的背面齐平。舵机现在应该占到电池组的后半部分。
  8. Image titled 1123333 4
  9. 5. 将面包板垂直地固定在电池组的开放空间上。它应该悬挂在电池组的前面一点,并将延伸到每一边。确保在继续进行之前牢牢地固定住。A "行应该是最接近舵机的地方。
  10. Image titled 1123333 5
  11. 6将Arduino微控制器连接到舵机的顶部。如果你正确地连接了舵机,它们之间应该有一个平面空间。将Arduino板贴在这个平面上,使Arduino的USB和电源接口朝向后面(远离面包板)。Arduino的正面应该刚好与面包板重叠。
  12. Image titled 1123333 6
  13. 7将轮子放在舵机上。将轮子牢牢地压在舵机的旋转机构上。这可能需要很大的力气,因为轮子的设计是为了尽可能紧密地配合以获得最佳的牵引力。
  14. Image titled 1123333 7
  15. 8将脚轮连接到面包板的底部。如果你把机箱翻过来,你应该看到有一点面包板延伸到电池组之后。将脚轮连接到这块延伸的地方,如果有必要的话,可以使用立管。脚轮起到了前轮的作用,使机器人可以轻松地转向任何方向。如果你买的是套件,脚轮可能带有一些立管,你可以用它来确保脚轮到达地面。
  16. Image titled 1123333 8

第二部分 6的第二部分:为机器人布线

  1. 1.拆下两个3针头。你将用它们来连接舵机和面包板。将针脚向下推,使针脚在两边的距离相等。
  2. Image titled 1123333 9
  3. 2将两个针座插入面包板E行的1-3和6-8针脚。确保它们被牢固地插入。
  4. Image titled 1123333 10
  5. 3将舵机电缆连接到针座上,黑色电缆在左侧(针脚1和6)。这将把舵机连接到面包板上。确保左边的舵机连接到左边的接头,右边的舵机连接到右边的接头。
  6. Image titled 1123333 11
  7. 4将红色跳线从C2和C7引脚连接到红色(正)轨道引脚。确保你使用面包板背面的红色轨道(更接近于机箱的其他部分)。
  8. Image titled 1123333 12
  9. 5将黑色跳线从B1和B6针脚连接到蓝色(地)轨道针脚。确保你使用面包板背面的蓝色轨道。不要把它们插入红色轨道的引脚。
  10. Image titled 1123333 13
  11. 6将白色跳线从Arduino的12和13号针脚连接到A3和A8。这将使Arduino能够控制舵机并转动车轮。
  12. Image titled 1123333 14
  13. 7将传感器连接到面包板的前面。它不会被插入面包板上的外部电源轨,而是插入第一排带字母的引脚(J)。确保你把它放在准确的中心位置,每边有相同数量的引脚可用。
  14. Image titled 1123333 15
  15. 8将一根黑色跳线从I14针脚连接到传感器左侧第一个可用的蓝色轨道针脚。这将使传感器接地。
  16. Image titled 1123333 16
  17. 9将一根红色跳线从I17针脚连接到传感器右侧第一个可用的红色轨道针脚。这将为传感器供电。
  18. Image titled 1123333 17
  19. 10连接白色跳线,从I15针到Arduino的9针,从I16针到8针。这将把信息从传感器输送到微控制器。
  20. Image titled 1123333 18

第3部分 6的第3部分:为权力布线

  1. 1将机器人侧翻,以便您能看到电池组中的电池。调整方向,使电池组的电缆从底部向左伸出。
  2. Image titled 1123333 19
  3. 2将一根红线连接到底部从左起第二个弹簧上。确保电池组的方向正确。
  4. Image titled 1123333 20
  5. 3将一条黑线连接到右下角的最后一个弹簧上。这两条线将有助于向Arduino提供正确的电压。
  6. Image titled 1123333 21
  7. 4将红色和黑色的线连接到面包板背面最右边的红色和蓝色引脚。黑线应插入蓝轨的30号针脚。红线应插入红色轨道的第30针。
  8. Image titled 1123333 22
  9. 5从Arduino上的GND引脚连接一条黑线到后面的蓝色轨道。在蓝色轨道的第28针上连接。
  10. Image titled 1123333 23
  11. 6从后面的蓝轨到前面的蓝轨在第29针处各连接一根黑线。不要连接红色轨道,因为你可能会损坏Arduino。
  12. Image titled 1123333 24
  13. 7从前面红色轨道的第30针连接一条红线到Arduino的5V针。这将为Arduino提供电源。
  14. Image titled 1123333 25
  15. 8将按钮开关插入24-26号引脚的行间空隙中。这个开关将允许你在不拔掉电源的情况下关闭机器人。
  16. Image titled 1123333 26
  17. 9从H24连接一根红线到传感器右侧下一个可用的针脚中的红色轨道。这将为按钮供电。
  18. Image titled 1123333 27
  19. 10使用电阻将H26连接到蓝色轨道上。把它连接到你在几步之前连接的黑线旁边的直接引脚。
  20. Image titled 1123333 28
  21. 11从G26连接一条白线到Arduino的第2针。这将使Arduino能够注册该按钮。
  22. Image titled 1123333 29

第4部分 第4部分6:安装Arduino软件

  1. 1下载并提取Arduino IDE。这是Arduino开发环境,允许你对指令进行编程,然后上传到你的Arduino微控制器。你可以从arduino.cc/en/main/software免费下载它。通过双击下载的文件进行解压,并将里面的文件夹移到一个容易访问的位置。你将不会真正安装这个程序。相反,你只是通过双击arduino.exe从解压的文件夹中运行它。
  2. Image titled 1123333 30
  3. 2将电池组连接到Arduino上。将电池背上的插孔插入Arduino上的连接器,给它供电。
  4. Image titled 1123333 31
  5. 3通过USB将Arduino插入你的电脑。Windows可能无法识别该设备。
  6. Image titled 1123333 32
  7. 4按.⊞ Win+R并输入devmgmt.msc。这将启动 "设备管理器"。
  8. Image titled 1123333 33
  9. 5在 "其他设备 "部分的 "未知设备 "上点击右键,选择 "更新驱动软件"。如果你没有看到这个选项,请点击 "属性",选择 "驱动程序 "标签,然后点击 "更新驱动程序"。
  10. Image titled 1123333 34
  11. 6选择 "浏览我的电脑,寻找驱动软件"。这将允许你选择Arduino IDE附带的驱动程序。
  12. Image titled 1123333 35
  13. 7点击 "浏览",然后导航到你之前提取的文件夹。你会发现里面有一个 "驱动 "文件夹。
  14. Image titled 1123333 36
  15. 8选择 "驱动程序 "文件夹并点击 "确定"。如果你被警告说有未知软件,请确认你要继续。
  16. Image titled 1123333 37

第5部分 第6部分:机器人编程

  1. 1通过双击IDE文件夹中的arduino.exe文件启动Arduino IDE。你将会看到一个空白的项目。
  2. Image titled 1123333 38
  3. 2粘贴以下代码,使你的机器人直线前进。下面的代码将使你的Arduino连续向前移动。#include <Servo.h> //这将 "Servo "库添加到程序中//下面创建两个伺服对象Servo leftMotor;Servo rightMotor;void setup(){ leftMotor.attach(12); //如果你不小心调换了伺服的引脚号码,你可以在这里调换号码rightMotor.attach(13);}void loop(){ leftMotor.write(180); //在连续旋转的情况下,180告诉伺服全速前进。attach(13);}void loop(){ leftMotor.write(180); // 在连续旋转的情况下,180告诉舵机以全速 "向前 "移动。 rightMotor.write(0); // 如果这两个数字都是180,机器人会走一个圈,因为舵机是翻转的。"0,"告诉它全速 "向后 "移动。" }
  4. Image titled 1123333 39
  5. 3建立和上传程序。点击左上角的右箭头按钮,建立并上传程序到连接的Arduino.你可能想把机器人从表面抬起来,因为一旦程序被上传,它就会继续向前移动。
  6. Image titled 1123333 40
  7. 4.添加杀毒开关功能。在你的代码的 "void loop() "部分添加以下代码,以启用杀伤开关,在 "write() "函数上方。if(digitalRead(2) == HIGH)//当按钮在Arduino的2号针脚上被按下时,这将被记录下来{ while(1) { leftMotor.write(90); // "90 "是舵机的中性位置,它告诉它们停止转动 rightMotor.write(90); }}.
  8. Image titled 1123333 41
  9. 5上传并测试你的代码。添加了杀死开关的代码后,你可以上传并测试机器人。它应该继续向前行驶,直到你按下开关,这时它将停止移动。完整的代码应该是这样的:#include <Servo.h>//下面创建两个伺服对象Servo leftMotor;Servo rightMotor;void setup(){ leftMotor.attach(12); rightMotor.attach(13); }void loop(){ if(digitalRead(2) == HIGH){ while(1) { leftMotor.write(90); rightMotor.write(90); }} leftMotor.write(180); rightMotor.write(0); }
  10. Image titled 1123333 42

第6部分 第6部分:实例

  1. 1跟随一个例子。下面的代码将使用连接在机器人上的传感器,使其在遇到障碍物时向左转。关于每个部分的作用,请看代码中的注释。下面的代码是整个程序的内容。#include <Servo.h>Servo leftMotor;Servo rightMotor;const int serialPeriod = 250; //这限制了对控制台的输出,每1/4秒一次unsigned long timeSerialDelay = 0;const int loopPeriod = 20; //这将传感器的读数频率设置为20ms,即50Hzunsigned long timeLoopDelay = 0;//这将TRIG和ECHO功能分配给Arduino的引脚。如果你的连接方式不同,请对这里的数字进行调整const int ultrasonic2TrigPin = 8;const int ultrasonic2EchoPin = 9;int ultrasonic2Distance;int ultrasonic2Duration;//这定义了机器人的两种可能状态:向前行驶或向左转#define DRIVE_FORWARD 0#define TURN_LEFT 1int state = DRIVE_FORWARD; // 0 =向前行驶(默认),1 =向左转void setup() { Serial.begin(9600); //这些传感器的引脚配置 pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); //这将马达分配给Arduino引脚 leftMotor.attach(12); rightMotor.attach(13); }void loop(){ if(digitalRead(2) == HIGH)//这就检测到了杀人开关 { while(1) { leftMotor.write(90); rightMotor.write(90); }} debugOutput(); // 这将调试信息打印到串行控制台 if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // 这指示传感器读取并存储测量距离 stateMachine();timeLoopDelay = millis(); }}void stateMachine(){ if(state == DRIVE_FORWARD) // 如果没有检测到障碍物 { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // 如果机器人前面没有东西。ultrasonicDistance对于某些超声波来说将是负数,如果没有障碍物 { //向前驱动 rightMotor.write(180); leftMotor.write(0); } else //如果前面有一个物体 { state = TURN_LEFT; }} else if(state == TURN_LEFT) //如果检测到有障碍物,就向左转 { unsigned long timeToTurnLeft = 500; //转90度大约需要0.5秒。如果你的轮子与例子中的大小不同,你可能需要调整这个时间 无符号长turnStartTime = millis(); //保存我们开始转动的时间 while((millis()-turnStartTime) < timeToTurnLeft) //停留在这个循环中直到timeToTurnLeft过后 { //向左转,记住,当两者都被设置为 "180 "时,它将转动。rightMotor.write(180); leftMotor.write(180); } state = DRIVE_FORWARD; }}void readUltrasonicSensors(){ //这是针对超声波2的。 如果你使用不同的传感器,你可能需要改变这些命令。digitalWrite(ultrasonic2TrigPin, HIGH); delayMicroseconds(10); //保持trig pin高电平至少10微秒 digitalWrite(ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; }//下面是在控制台调试错误。void debugOutput(){ if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: " ); Serial.print(ultrasonic2Distance); Serial.print("cm"); Serial.println(); timeSerialDelay = millis(); }}
  • 发表于 2022-03-10 17:29
  • 阅读 ( 101 )
  • 分类:IT

你可能感兴趣的文章

irobot宣布推出名为terra的免提自动割草机

...bot是一家以生产Roomba而闻名的公司,Roomba是世界上最好的机器人吸尘器之一,随着Terra的发布,iRobot正打算投身于草坪护理行业。很像该公司选择的室内清洁剂,这种设备将自动切断它的方式在你的院子里,使一个小杂务,你需...

  • 发布于 2021-03-22 02:25
  • 阅读 ( 197 )

roomba的机器人吸尘器在不久的将来可以长出手臂

iRobot是广受欢迎的机器人吸尘器Roomba的**商,他说,他们正在研制一种圆盘状的有手臂的家用帮手。该公司设想推出一款软木版的Roomba,它可以帮助完成更复杂的任务,比如洗衣、洗碗和上菜。 这家位于马萨诸塞州的...

  • 发布于 2021-04-20 13:25
  • 阅读 ( 192 )

周末:摇摇欲坠的科学,可靠的机器人,令人难忘的穆扎克


 
 欢迎来到边缘:周末版。每周六,我们都会为您带来过去七天中最精彩、最重要的读物,从原创报道,到深度特写,再到评论和访谈。把它看作是我们最喜欢的一些你可能错过的作品的集合,或者你可能只是想再读一...

  • 发布于 2021-04-26 08:19
  • 阅读 ( 211 )

周末:印刷大脑和制造机器人

欢迎来到边缘:周末版。每周六,我们都会为您带来过去七天中最精彩、最重要的读物,从原创报道,到深度特写,再到评论和访谈。把它看作是我们最喜欢的一些你可能错过的作品的集合,或者你可能只是想再读一遍。
 ...

  • 发布于 2021-04-27 06:24
  • 阅读 ( 236 )

庆祝之城的住宅风格

...这一小部分房屋时,问问自己——你还会要求什么,它将如何改变社区? 来源 注:房屋地址已在谷歌地图上验证。每栋房屋的详细信息摘自设计指南:地块、建筑商、房屋平面图和;架构参考,截至2009年12月23日,由克罗地...

  • 发布于 2021-09-02 18:47
  • 阅读 ( 259 )

什么是服务机器人?(a service robot?)

... 服务机器人是能够为主人提供服务的机器人。这些机器人通常是自主的,但可以通过内置系统远程或手动控制。它们也可能与WiFi家庭网络或智能环境同步。 ...

  • 发布于 2021-12-12 11:37
  • 阅读 ( 99 )

什么是决定房屋建筑价格的因素是什么?(the factors that determine home building prices?)

...需进行最低限度的现场准备,现场已经有公用设施,人们在家工作时很容易接触到。另一些可能需要修建进场道路、铺设公用设施线路,并进行大量工作,以使场地做好建设准备,从而导致房屋建筑价格上涨。 ...

  • 发布于 2021-12-17 10:48
  • 阅读 ( 94 )

如何我做机器人?(i make a robot?)

... 有许多不同类型的机器人,但每一种都使用相同的基本元素。每个机器人的四个基本部分是机械、电子和编程。建筑商应确定机器人项目的目的,并将这四个类别的组件组合起来,以完成装...

  • 发布于 2021-12-31 16:45
  • 阅读 ( 152 )

什么是建造家庭酒吧的最佳建议是什么?(the best tips for building a home bar?)

... 在翻新地下室或娱乐室时,建造家庭酒吧可能是最重要的成就之一。根据酒吧里想要的功能,这个项目可能相当简单,也可能相对复杂。不管是哪种方式,在开始之前有几件事需要注意,这有助于使...

  • 发布于 2022-01-31 12:53
  • 阅读 ( 124 )

如何我建造一个移动式家庭门廊?(i build a mobile home porch?)

与非移动房屋门廊前面的门廊不同,移动房屋门廊是一个独立的结构,不与移动房屋...

  • 发布于 2022-02-03 04:57
  • 阅读 ( 109 )
cu971784
cu971784

0 篇文章

相关推荐