简单的避障机器人
本项目是关于使用 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 的简单避障机器人。