机器人制作开源方案 | 扫地机器人

1. 功能描述

扫地机器人是现代家庭清洁的得力助手,能够自主规划清扫路径,避开障碍物,有效覆盖整个清洁区域。扫地机器人的出现极大地减轻了家庭清洁的负担,节省了时间和精力,它可以定期清理地面,确保家居环境的整洁和卫生,让家里变得更加舒适、无尘和宜居。

本文示例将实现R058a样机扫地机器人在行进过程中避障并清扫垃圾的功能。

2. 电子硬件

在这个示例中,我们采用了以下硬件,请大家参考:

|-----|-----------------------------------------------------------------------------------------------|
| 主控板 | Basra主控板(兼容Arduino Uno)‍ |
| 扩展板 | Bigfish2.1扩展板‍ |
| 传感器 | 触须传感器 |
| 传感器 | 近红外传感器 |
| 电池 | 7.4V锂电池 |

3. 功能实现

**编程环境:**Arduino 1.8.19

下面提供一个实现扫地机器人在行进过程中避障并清扫垃圾的参考程序(sketch_sep14a.ino):

java 复制代码
/*------------------------------------------------------------------------------------

  版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

           Distributed under MIT license.See file LICENSE for detail or copy at

           https://opensource.org/licenses/MIT

           by 机器谱 2023-09-14 https://www.robotway.com/

  ------------------------------*/

#include <Servo.h>

Servo left_wheel;     // 左轮

Servo right_wheel;    // 右轮

#define forward_speed_left   60   // 小车前进时,左轮速度

#define forward_speed_right   120   // 小车前进时,右轮速度

#define back_speed_left      120   // 小车后退时,左轮速度

#define back_speed_right     60   // 小车后退时,右轮速度

#define turnleft_speed_left   120   // 小车左转时,左轮速度

#define turnleft_speed_right 120   // 小车左传时,右轮速度

#define turnright_speed_left 60   // 小车右转时,左轮速度

#define turnright_speed_right 60   // 小车右转时,右轮速度

#define stop_left            90   // 小车停止时,左轮速度

#define stop_right           90   // 小车停止时,右轮速度

#define obstacle_threshold   500   // 触须传感器阈值

#define ir_threshold         800   // 近红外传感器阈值

int left_obstacle_sensor;   // 左侧触须传感器

int right_obstacle_sensor;   // 右侧触须传感器

int ir_sensor;              // 近红外传感器

void setup() {

  delay(50);

  Serial.begin(9600);

  left_wheel.attach(3);   // 定义左右轮引脚

  right_wheel.attach(4);

  pinMode(A0, INPUT);   // 左边触须传感器接口

  pinMode(A2, INPUT);   // 右边触须传感器接口

  pinMode(A3, INPUT);   // 前面近红外传感器接口

}

void loop() {

  left_obstacle_sensor = analogRead(A0);   // 读取左边触须传感器值

  right_obstacle_sensor = analogRead(A2);   // 读取右边触须传感器值

  ir_sensor = analogRead(A3);              // 读取近红外传感器值

  // 如果左边传感器检测到障碍物,执行后退并向右转操作

  if (left_obstacle_sensor > obstacle_threshold) {

    backRight();

  }

  // 如果右边传感器检测到障碍物,执行后退并向左转操作

  else if (right_obstacle_sensor > obstacle_threshold) {

    backLeft();

  }

  // 如果前面近红外传感器检测到障碍物,执行后退操作

  else if (ir_sensor > ir_threshold) {

    back();

  }

  // 如果都没有检测到障碍物,执行前进操作

  else {

    forward();

  }

}

// 小车前进

void forward() {

  left_wheel.write(forward_speed_left);

  right_wheel.write(forward_speed_right);

}

// 小车后退

void back() {

  left_wheel.write(back_speed_left);

  right_wheel.write(back_speed_right);

}

// 小车后退左转

void backLeft() {

  left_wheel.write(back_speed_left);

  right_wheel.write(turnleft_speed_right);

}

// 小车后退右转

void backRight() {

  left_wheel.write(turnright_speed_left);

  right_wheel.write(back_speed_right);

}

// 小车停止

void stop() {

  left_wheel.write(stop_left);   // 停止

  right_wheel.write(stop_right); // 停止

}

4. 扩展样机

本样机有一些简单的扩展案例,如下图所示将舵机更换为直流电机:

程序源代码及样机3D文件等资料详见 扫地机器人

相关推荐
倍利福猎头公司官方账号11 小时前
大企业HR如何向猎头公司清晰传达AI岗位的技术需求?
人工智能·算法·机器人·求职招聘·业界资讯
由你创机器人14 小时前
工业具身智能机器人:感知到执行全链路软硬件搭配与长效运营思路
机器人·全栈开发·具身机器人·机器人定制
由你创机器人15 小时前
具身智能机器人定制交付、安全设计与验收落地要点
安全·机器人
具身AGI19 小时前
机器人基础模型开始按小时对外开放
机器人
罗迪尼亚的熔岩20 小时前
联合kuka机器人, 海康visonmaster 的手眼9点标定方法
机器人·c#·工业相机·标定
海盗123420 小时前
微软技术日报 2026-11-01:语言模型 API 免申请、8 个威胁组织被分四档
人工智能·microsoft·语言模型·机器人·人工智能aigc
weixin_468466851 天前
从“看懂”到“做到”:视觉-语言-动作模型如何让机器人真正执行指令
人工智能·ai·机器人·大语言模型·前沿科技
云智慧AIOps社区1 天前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
GlobalInfo1 天前
重磅发布 | 2026年船体清洁机器人行业研究报告:市场规模、发展前景与十五五战略地图
大数据·人工智能·机器人
疯子的梦想@1 天前
Prometheus 接入 Alertmanager 与钉钉机器人,附中文模板和完整踩坑记录
机器人·钉钉·prometheus