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

Pathfinder:Arduino UNO 避障机器人项目套件 —— 组件清单与详解

所需组件与物料

所需工具

所需软件与服务

项目概要

本项目设计一款自主避障机器人,基于 Arduino UNO 与 Adafruit Motor Shield,具备:

潜在应用:军事侦察、人道主义救援、辅助视障/听障人士感知环境。

Pathfinder:Arduino UNO 避障机器人项目套件 —— 组件清单与详解

核心代码逻辑

引脚定义

BuzzPIN  A0  // 蜂鸣器
TrigPIN  A1  // 超声波 Trig
EchoPIN  A2  // 超声波 Echo
LEDBPIN  A3  // RGB 蓝
LEDGPIN  A4  // RGB 绿
LEDRPIN  A5  // RGB 红
DCMROFF  25  // 双电机校准偏移

关键函数

主循环逻辑

距离 < 30cm   → 红灯+蜂鸣,减速(100),ChangePath()
30cm ≤ 距离 < 60cm → 蓝灯,中速(150),前进
60cm ≤ 距离 < 90cm → 绿灯,高速(200),前进
距离 ≥ 90cm   → 白灯(RGB全亮),全速(250),前进

完整 Arduino 代码

#include <AFMotor.h>
#include <Servo.h>

#define BuzzPIN A0
#define TrigPIN A1
#define EchoPIN A2
#define LEDBPIN A3
#define LEDGPIN A4
#define LEDRPIN A5
#define DCMROFF 25

AF_DCMotor M1(1, MOTOR12_64KHZ);
AF_DCMotor M2(2, MOTOR12_64KHZ);
Servo SER1;

int Search() {
  float duration = 0, cm = 0;
  digitalWrite(TrigPIN, LOW); delayMicroseconds(2);
  digitalWrite(TrigPIN, HIGH); delayMicroseconds(10);
  digitalWrite(TrigPIN, LOW);
  duration = pulseIn(EchoPIN, HIGH);
  cm = duration / 58.8;
  return (int)cm;
}

int RightDistance, LeftDistance;
float Distance = 0;

void setup() {
  pinMode(BuzzPIN, OUTPUT);
  pinMode(TrigPIN, OUTPUT);
  pinMode(EchoPIN, INPUT);
  pinMode(LEDBPIN, OUTPUT);
  pinMode(LEDGPIN, OUTPUT);
  pinMode(LEDRPIN, OUTPUT);
  SER1.attach(10);  // 舵机接 Motor Shield 的 Servo1 接口
}

void loop() {
  SER1.write(80);  // 舵机中位(前向)
  delay(100);
  Distance = Search();

  if (Distance < 30) {
    digitalWrite(BuzzPIN, HIGH);
    digitalWrite(LEDBPIN, LOW); digitalWrite(LEDGPIN, LOW); digitalWrite(LEDRPIN, HIGH);
    M1.setSpeed(100); M2.setSpeed(100);
    ChangePath();
  } else if (Distance < 60) {
    digitalWrite(BuzzPIN, LOW);
    digitalWrite(LEDBPIN, HIGH); digitalWrite(LEDGPIN, LOW); digitalWrite(LEDRPIN, LOW);
    M1.setSpeed(150); M2.setSpeed(150);
    Forward();
  } else if (Distance < 90) {
    digitalWrite(BuzzPIN, LOW);
    digitalWrite(LEDBPIN, LOW); digitalWrite(LEDGPIN, HIGH); digitalWrite(LEDRPIN, LOW);
    M1.setSpeed(200); M2.setSpeed(200);
    Forward();
  } else {
    digitalWrite(BuzzPIN, LOW);
    digitalWrite(LEDBPIN, HIGH); digitalWrite(LEDGPIN, HIGH); digitalWrite(LEDRPIN, HIGH);
    M1.setSpeed(250); M2.setSpeed(250);
    Forward();
  }
}

void ChangePath() {
  Stop(); Backward(); Stop();
  SER1.write(12); delay(500); RightDistance = Search(); delay(500);
  SER1.write(160); delay(1000); LeftDistance = Search(); delay(500);
  SER1.write(80); delay(500);
  CompareDistance();
}

void CompareDistance() {
  if (RightDistance > LeftDistance) TurnRight();
  else if (LeftDistance > RightDistance) TurnLeft();
  else TurnAround();
}

void Forward() { M1.run(FORWARD); M2.run(FORWARD); }
void Backward() { M1.run(BACKWARD); M2.run(BACKWARD); delay(500); }
void TurnRight() { M1.run(BACKWARD); M2.run(FORWARD); M1.setSpeed(100+DCMROFF); delay(300); }
void TurnLeft() { M1.run(FORWARD); M2.run(BACKWARD); M2.setSpeed(100+DCMROFF); delay(300); }
void TurnAround() { M1.run(FORWARD); M2.run(BACKWARD); M2.setSpeed(100+DCMROFF); delay(700); }
void Stop() { M1.run(RELEASE); M2.run(RELEASE); delay(100); }

3D 打印底盘

机器人底盘 STL 文件见 Custom parts 栏,可在 Fusion 360 中修改适配不同电机/电池尺寸。

原理图

电路连接图见 Schematics 栏,包含 Motor Shield、超声波、舵机、RGB LED、蜂鸣器、电池供电完整接线。


项目展示: Youth Zest Project Showcase

制造工艺

  1. 集成电路 (IC):微观世界里的算力引擎与制造极限
  2. 两块 Arduino 通过 Firebase 传递温湿度数据
  3. Arduino 数字骰子:LCD 显示随机点数的电子骰子
  4. 多位置温度传感器系统,助力智能家居集成
  5. DIY Arduino USB 游戏手柄 — 自制高性能游戏手柄
  6. MotionSense:基于 Arduino 与 ESP8266 的智能入侵检测系统
  7. 3D 打印机防火卫士:智能传感器安全系统
  8. MOSMusic 套件:MOSFET + Arduino 打造音乐同步灯光控制系统
  9. 钻床核心部件解析:从底座到主轴的完整拆解
  10. 内燃机核心零部件详解
  11. 掌握 SPICE 网表语法:元件命名、无源/有源元件与源定义
  12. 微电子学详解:微型电子器件的科学与制造

组件数量备注
Arduino UNO1核心控制器
HC-SR04 超声波测距模块1前向避障感测
1000mAh 锂电池2供电(建议带保护板)
RGB 共阴 LED1状态指示(红/绿/蓝)
有源蜂鸣器1声光报警
330Ω 电阻3LED 限流
USB-A 转 B 线1编程/供电
杜邦线20 根公对公/公对母