亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

带伺服电机的机器人避障

组件和用品

Arduino UNO
× 1
SG90 微伺服电机
× 1
SparkFun 超声波传感器 - HC-SR04
× 1
机器人底盘套件 - 带直流电机的 2WD
× 1
跳线(通用)
× 1
Arduino MotorShield Rev3
× 1

必要的工具和机器

烙铁(通用)

应用和在线服务

Arduino IDE

关于这个项目

关于项目的一切

我是一名媒体艺术设计专业的学生,​​就读于马来西亚赛城多媒体大学。这是我学习媒体艺术的 Gamma 年,交互设计是教学生如何使用 Arduino 组件及其工作原理的主题。因此,在我的最终作业中,我选择了“避障机器人”作为我自己的项目,并了解每个组件的工作原理。

第 1 步:

准备并建造您的机器人底盘。包装内有几个组件,底盘,两个电机,两个轮子,一个前轮,一个电池座,一些螺丝,开关和跳线。下图:

第 2 步:

在将跨接导线焊接到两个电机上之前,我建议测试每个组件以确保它们都正常工作,例如:两个直流电机、Arduino 板、电机屏蔽、伺服电机和超声波传感器。然后我们将开始焊接两个电机上的红线和黑线,示例图如下:

第 3 步:

来到我们的电池底盘和开关部分。我们只需要从电池底盘上剪下一半的黑线,在一个孔焊接一根线,另一根黑线将焊接在另一个孔。我们的开关准备好了!

第 4 步:

我们需要堆叠Arduino板和Motor Shield板,Motor Shield将堆叠在Arduino板上。下面的例子:

第 5 步:

我们将继续讨论电机屏蔽板。这个屏蔽为电机和伺服电机提供电源,电机需要很大的电流,这个屏蔽可以为每个电机提供高达600mA的电流。我们需要在电机屏蔽板上焊接/固定直流电机线。如果你的直流电机线足够长到电机屏蔽会很好,如果不是你可能需要使用外部跳线(无论是公/母跳线),切断跳线头并确保在里面铜线出现。 (您需要剪去跳线橡胶,使铜线出现)。并且您需要将外部电线焊接到直流电机电线上。示例:

然后将左侧电机线连接到电机屏蔽的 M1 连接器。右侧电机线将从电机屏蔽板连接到 M3 连接器。示例:

第 6 步:

然后我们需要将电池开关的红线和黑线连接到电机屏蔽板上。

之后,我们需要准备公母跳线,将它们焊接到 5V、GND、模拟引脚 4 和模拟引脚 5。在此之前,我们需要找到相同颜色的母跳线和公跳线并将它们切成两半.为什么一定要同色?首先很容易让我们识别出哪根电线是哪个零件。其次,白色公跳线将与连接到 5V 的白色母跳线焊接。黑色公跳线将与母跳线焊接,公跳线将焊接到 GND。橙色公跳线将与橙色母跳线焊接,橙色公跳线将焊接在模拟引脚 5。最后但并非最不重要的是,棕色公跳线将与棕色母跳线焊接,然后棕色公跳线将焊接到模拟引脚 4. 示例:

第 7 步:

您可以使用双面胶带或热胶枪将两个防护罩连接到机器人底盘上。

第 8 步:来到超声波传感器部分

从我们刚刚焊接的母和公跳线中,白色跳线(5V)(女性站点跳线)将连接到超声波传感器 VCC 引脚。黑色跳线(GND)(女性站点跳线)将连接到 GND 引脚。棕色跳线(模拟针 4)(女性现场跳线)将连接到 Echo 针。橙色跳线(模拟针 5)(女性站点跳线)将连接到 TRIG 针。

第 9 步:

最后,对于伺服电机将连接到伺服_2 插槽。注意*(那里的伺服电机类型很少。您可能需要在网上找到它们以了解它们如何插入伺服_2 插槽)。下面是我自己版本的舵机插槽。

最后一步:代码

对于这个避障机器人,我们将需要 3 个库,即 Motor Shield 驱动程序的 Motor Shield 库,用于超声波传感器的 New Ping 库。第三个是Arduino IDE。以下是库的可下载链接:

  • 电机屏蔽库
  • 新建 Ping 库

我很感激你们观看我的项目。我希望这些说明足够清楚,让你们能够按照并为自己构建避障机器人。谢谢!

测试视频:

代码

  • Arduino IDE
Arduino IDE C#
复制并粘贴 Arduino IDE 中的代码,然后上传到您的 Arduino 板
#include  #include  #include #define TRIG_PIN A4 #define ECHO_PIN A5#define MAX_DISTANCE_POSSIBLE 1000 #define MAX_SPEED 150 // #define MOTORS_CALIBRATION_OFFSET 3#define COLL_DIST 20 #define TURN_DIST COLL_DIST+10 NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE_POSSIBLE);AF_DCMotor leftMotor(3, MOTORZ12)_8; AF_DCMotor rightMotor(1, MOTOR12_8KHZ);伺服颈部控制器ServoMotor;int pos =0; int maxDist =0;int maxAngle =0;int maxRight =0;int maxLeft =0;int maxFront =0;int course =0;int curDist =0;String motorSet ="";int speedSet =0;void setup() { 颈控制器伺服电机.attach(10);颈控制器伺服电机.write(90);延迟(2000);检查路径(); motorSet ="前进";颈控制器伺服电机.write(90); moveForward();}void loop() { checkForward(); checkPath();}void checkPath() { int curLeft =0;内部当前 =0; int curRight =0; int curDist =0;颈控制器伺服电机.write(144);延迟(120); for(pos =144; pos>=36; pos-=18) { 颈控制器伺服电机.write(pos);延迟(90); checkForward(); curDist =readPing(); if (curDist  curDist) {maxAngle =pos;} if (pos> 90 &&curDist> curLeft) { curLeft =curDist;} if (pos ==90 &&curDist> curFront) {curFront =curDist;} if (pos <90 &&curDist> curRight) {curRight =curDist;} } maxLeft =curLeft; maxRight =curRight; maxFront =curFront;}void setCourse() { if (maxAngle <90) {turnRight();} if (maxAngle> 90) {turnLeft();} maxLeft =0;最大右 =0; maxFront =0;}void checkCourse() { moveBackward();延迟(500);移动停止(); setCourse();}void changePath() { if (pos <90) {lookLeft();} if (pos> 90) {lookRight();}}int readPing() { delay(70); }无符号 int uS =sonar.ping(); int cm =uS/US_ROUNDTRIP_CM; return cm;}void checkForward() { if (motorSet=="FORWARD") {leftMotor.run(FORWARD); rightMotor.run(FORWARD); } }void checkBackward() { if (motorSet=="BACKWARD") {leftMotor.run(BACKWARD); rightMotor.run(向后); } }void moveStop() {leftMotor.run(RELEASE); rightMotor.run(RELEASE);}void moveForward() { motorSet ="FORWARD"; leftMotor.run(FORWARD); rightMotor.run(FORWARD); for (speedSet =0; speedSet  

示意图


制造工艺

  1. 简单的 Pi 机器人
  2. 线跟随机器人
  3. 使用 Arduino 和 Android 设备控制 Roomba 机器人
  4. 使用 Arduino 和 MPU6050 控制伺服电机
  5. 自主家庭助理机器人
  6. DIY Arduino 机械臂——由手势控制
  7. 使用 Android 应用程序控制 Arduino 机械臂
  8. 用 Arduino Nano 制作吃饭机器人 |金螺丝
  9. 使用 Dabble 控制的 Arduino 制成的 4 轮机器人
  10. 超酷室内导航机器人
  11. 什么是伺服电机?
  12. 将减速机与伺服电机配对