65.9K
CodeProject 正在变化。 阅读更多。
Home

简单的避障机器人

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2016年8月19日

CPOL

3分钟阅读

viewsIcon

22603

本项目是关于使用 Intel® Edison 模块的简单避障机器人。近年来,机器人技术已成为一项令人兴奋且有趣的爱好,并且变得非常实惠。

获取全新的 Intel® IoT Developer Kit,这是一个完整的硬件和软件解决方案,让开发人员可以使用 Intel® Galileo 和 Intel® Edison 开发板创建令人兴奋的新解决方案。访问 Intel® IoT 开发者专区

摘要

本项目是关于使用 Intel® Edison 模块的简单避障机器人。近年来,机器人技术已成为一项令人兴奋且有趣的爱好,并且变得非常实惠。让我们开始吧。

零件清单

  • 纸板。
  • 电池。
  • 用于前滚轮的滚珠轴承。
  • 2 个舵机。
  • 2 个配套轮子。
  • 带有 Arduino 分线板的 Intel Edison。
  • 面包板。
  • 超声波测距传感器 – HC-SR04。
  • 电容器 (220uF)。
  • 跳线、橡皮筋、胶水等…

要遵循的步骤

步骤 1:底盘

我们选择了一个简单的基于纸板的底盘,伺服电机通过橡皮筋固定在上面。 使其方便您使用。 只要您的漫游车在光滑的表面上漫游,以上选择就可以正常工作。 将前滚珠轴承固定在纸板前面。

设置前轮滚珠轴承:

安装单个舵机

安装两个舵机

我们的底盘已准备就绪。

步骤 2:带有 Intel Edison 的 Arduino 板

使用 intel edison 配置您的 arduino 板。 查看此链接进行配置 (https://software.intel.com/en-us/iot/library/edison-getting-started)。 确保您的串行通信和端口已修复。 通过将一个简单的程序加载到您的板上,检查您的带有英特尔 Edison 的 Arduino 板。

让我们用简单的闪烁 LED 来检查一下我们的板子。

步骤 3:电池和主板

使用电池座安装此电池和主板,然后稍后使用橡皮筋将其固定到底盘上 - 令人惊讶的是,效果非常好(请记住,计划仅在光滑表面上使用此方法 - 根据您的计划调整附件)。 我们必须使用 6 节 AA 电池座来容纳六节电池(根据电机,您可以使用您的电池)。

步骤 4:Arduino 引脚

这些是 Arduino 引脚,用于连接本项目。 您可以自行设置引脚。

超声波测距传感器 (HC-SR04) ECHO 9
超声波测距传感器 (HC-SR04) TRIG 10
舵机信号(左) 5
舵机信号(右) 6

步骤 5:超声波测距传感器 (HC-SR04)

首先,使用简单的 Arduino 代码检查超声波测距传感器 (HC-SR04)。 使用一些跳线连接超声波传感器。

在这里,我们使用简单的程序检查了我们的超声波传感器。

通过在 Arduino Uno 的串口中检查,我们可以清楚地知道它是否正常工作。 超声波传感器显示其前方物体的距离。 在我们的代码中,距离以厘米计算。

下图显示了超声波传感器在串口中计算的距离(厘米)。

步骤 6:舵机连接

连接舵机电缆所需的接线 — 从舵机出来的 3 针连接 — 红色 (vcc)、黑色(接地)和在我的例子中为黄色(信号)。 图片(舵机接线 1)显示了连接在 vcc/ground 之间的 220uF 电容器 - 这是每个舵机所必需的,以避免电压骤降问题。 由于我们使用相同的电池电源为伺服电机和主板供电,因此在突然改变漫游车方向时,可能会出现电流突增,如果不提供足够大的电容器(在我们的例子中,220uF 工作正常),可能会导致主板重启。 这些图片显示了 1 个舵机的接线,未连接舵机电缆(舵机接线 1),连接了舵机电缆(舵机接线 2),然后连接了两个舵机电缆。

步骤 7:编码和测试

应用代码并进行测试。

#include<Servo.h>
#define trigpin 10 // Trigger pin
#define echopin 9 // echo pin

Servo servoLeft;
Servo servoRight;

int forward = 180;
int backward = 0;

void setup() {
Serial.begin(9600);
servoLeft.attach(5);
servoRight.attach(6);

pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);

}

void loop ()
{
int duration, distance;
servoRight.write(forward);
servoLeft.write(forward);

digitalWrite(trigpin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigpin, LOW);
duration = pulseIn(echopin, HIGH);

distance = ( duration / 2) / 29.1;

delay(1000);
if (distance >= 10)
{
Serial.print(distance);
Serial.println(” cm”);
}
else
{
Serial.println(“danger”);
servoLeft.write(90);
servoRight.write(90);
delay(1000);

servoLeft.write(backward);
servoRight.write(forward);
delay(5000);
servoLeft.write(forward);
servoRight.write(forward);

}

}

现在我们已经完成了。 这是我们使用 intel edison 的简单避障机器人。

© . All rights reserved.