littlebot
Published on 2025-04-10 / 2 Visits
0

【源码】基于ROS和NodeMCU的传感器与伺服控制系统

项目简介

本项目利用ROS(机器人操作系统)控制NodeMCU开发板上的传感器读取和伺服电机控制。借助ROS Serial协议实现ROS与NodeMCU间的通信,主要用于检测和控制环境中的气体浓度以及伺服电机的角度。

项目的主要特性和功能

  • 传感器读取:运用MQ系列传感器(如MQ - 2、MQ - 3等)检测多种气体,并通过ROS发布传感器数据。
  • 伺服电机控制:通过ROS订阅消息控制伺服电机的角度。
  • ROS Serial通信:实现ROS与NodeMCU之间的串行通信,保障传感器数据和控制命令实时传输。
  • 低成本物联网平台:利用NodeMCU的低成本和开源特性,达成高效的物联网解决方案。

安装使用步骤

1. 环境准备

  • 操作系统:Ubuntu 18.04 LTS
  • ROS版本:Melodic Morenia
  • 开发环境:Arduino IDE

2. 安装ROS和ROS Serial

bash sudo apt install ros-melodic-desktop sudo apt-get install ros-melodic-rosserial sudo apt-get install ros-melodic-rosserial-arduino

3. 安装ROS库到Arduino IDE

  1. 打开Arduino IDE,导航到 Sketch > Include Library > Manage Libraries
  2. 搜索并安装 rosserial 库。

4. 配置NodeMCU

  1. 在Arduino IDE中安装ESP8266库。
  2. 将NodeMCU连接到计算机,并确保串口权限设置正确。

5. 运行ROS核心

在终端中运行以下命令启动ROS核心: bash roscore

6. 运行ROS Serial节点

在另一个终端中运行以下命令,连接NodeMCU并监听数据: bash rosrun rosserial_python serial_node.py /dev/ttyUSB0 注意:根据实际连接的串口名称调整 /dev/ttyUSB0

7. 发布和订阅ROS话题

  • 发布传感器数据:确保NodeMCU代码中的发布者正常工作,数据将通过ROS话题发布。
  • 控制伺服电机:使用以下命令发布控制消息: bash rostopic pub toggle_led std_msgs/UInt16 "data: 0" 根据需要调整 data 的值(0 - 180)。

8. 测试与调试

通过ROS的rostopic命令查看和发布话题,确保传感器数据和伺服控制正常工作。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】