当前位置: 首页 > news >正文

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

1. 功能描述

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

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

2. 电子硬件

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

主控板

Basra主控板(兼容Arduino Uno)‍

扩展板

Bigfish2.1扩展板‍

传感器

触须传感器

近红外传感器

电池7.4V锂电池

 3. 功能实现

编程环境:Arduino 1.8.19

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

/*------------------------------------------------------------------------------------版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.Distributed under MIT license.See file LICENSE for detail or copy athttps://opensource.org/licenses/MITby 机器谱 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文件等资料详见 扫地机器人

http://www.lryc.cn/news/194226.html

相关文章:

  • 10.2手动推导linux中file, cdev, inode之间的关系
  • JavaScript基础知识13——运算符:一元运算符,二元运算符
  • 异步使用langchain
  • 抖音开放平台第三方代小程序开发,授权事件、消息与事件通知总结
  • 华为9.20笔试 复现
  • 二十五、【色调调整基础】
  • Android Studio SDK manager加载packages不全
  • [esp32-wroom]基础开发
  • 利用Docker 实现 MiniOB环境搭建
  • 【DB2】—— 数据库表查询一直查不出来数据
  • 【教程】使用vuepress构建静态文档网站,并部署到github上
  • python 机器视觉 车牌识别 - opencv 深度学习 机器学习 计算机竞赛
  • Hadoop3教程(十二):MapReduce中Shuffle机制的概述
  • MySQL为什么用b+树
  • 浅谈机器学习中的概率模型
  • MySQL 函数 索引 事务 管理
  • Flink如何基于事件时间消费分区数比算子并行度大的kafka主题
  • 总结:JavaEE的Servlet中HttpServletRequest请求对象调用各种API方法结果示例
  • ChatGPT AIGC 完成Excel跨多表查找操作vlookup+indirect
  • Linux系统conda虚拟环境离线迁移移植
  • Vue16 绑定css样式 style样式
  • [Spring] SpringMVC 简介(三)
  • kettle应用-从数据库抽取数据到excel
  • Git Commit Message规范
  • Linux网络编程系列之UDP广播
  • spring中事务相关面试题(自用)
  • 09 | JpaSpecificationExecutor 解决了哪些问题
  • Linux命令(93)之su
  • 1.HTML-HTML解决中文乱码问题
  • Vue3 + Nodejs 实战 ,文件上传项目--实现拖拽上传