hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Controls Arduino-based hardware components like LEDs, motors, servos, fans, sensors, and relays through an Arduino Nano 368 board when running in Wired Mode
Provides Johnny-Five JavaScript robotics library integration for hardware control and communication with the microcontroller
Uses the Johnny-Five JavaScript robotics library to interact with hardware components and manage the MCP server functionality
Chotu Robo 服务器 - Arduino 的 MCP 服务器
演示
概述
该项目展示了如何利用 Anthropic 公司 Claude AI 的MCP(模型上下文协议)框架,将基于 Arduino 的机器人技术(使用NodeMCU ESP32或Arduino Nano 368开发板)与人工智能 (AI) 集成。它通过一个简单的界面,实现了硬件组件与人工智能 (AI) 之间的无缝连接,用户可以通过手机或电脑进行控制。
该系统充当机器人服务器(名为Chotu Robo ),可以与各种物理组件(例如 LED、电机、伺服器、风扇、传感器等)交互。这些组件可以通过向服务器发送命令进行远程控制,服务器又通过 ESP32 或 Arduino Nano 368 微控制器控制硬件。
这种设置为未来基于人工智能的应用开辟了可能性,例如通过移动或网络应用程序通过人工智能助手(如 Claude)控制机器人。
Chotu 机器人有两种运行模式:有线模式和无线模式,每种模式都针对不同的用例和硬件配置而设计。
有线模式 - Arduino Nano 368
在有线模式下,机器人使用 Arduino Nano 368 开发板,代码通过 USB 直接上传。此模式不支持通过网络执行实时命令,因为它需要物理 USB 连接才能运行。机器人会运行预先上传的代码,因此非常适合不需要 Wi-Fi 或网络连接的项目。
无线模式 - ESP32 Wi-Fi 启用 Web 服务器
在无线模式下,机器人由 ESP32 开发板供电。ESP32 连接到您的本地 Wi-Fi 网络,并启动一个支持 Wi-Fi 的 Web 服务器,该服务器通过 REST API 或 WebSocket 监听实时命令。此模式允许机器人与外部设备交互,并控制各种硬件组件,例如 LED、电机、伺服器和风扇。
一旦 ESP32 连接到 Wi-Fi,它就会接受实时控制硬件功能的传入命令。这些命令可以从 TypeScript MCP 服务器或基于 Java Spring 的 MCP 服务器发送,从而实现微控制器硬件与基于 AI 的系统之间的无缝集成,适用于自动化、机器人或物联网应用。
特征
- LED 控制:使 LED 在给定时间内闪烁。
- 蜂鸣器控制:在指定时间内发出蜂鸣器声音。
- 电机控制:以一定的速度运行电机一段时间。
- 伺服控制:将伺服电机移动到特定角度。
- 风扇控制:打开/关闭风扇。
- 继电器控制:打开或关闭继电器。
- 传感器读数:
- 从传感器读取温度。
- 使用超声波传感器测量距离。
- 人工智能命令:使用基于人工智能的提示控制机器人执行移动、启动、停止、转动和调整速度等操作。
使用的组件
- NodeMCU ESP32或Arduino Nano 368 :负责控制硬件和与服务器通信的微控制器。
- Johnny-Five :用于与硬件组件交互的 JavaScript 机器人和物联网库。
- MCP框架:模型上下文协议框架,用于处理与外部系统的请求和交互,实现基于AI的通信。
- 传感器和执行器:
- LED (用于指示状态)
- 蜂鸣器
- 伺服电机
- 发动机
- 继电器模块
- 超声波距离传感器
- 温度传感器
工作原理
Chotu Robo 服务器是处理 AI 系统命令的主要枢纽。以下流程概述了该系统的工作原理:
- 设置:
- NodeMCU ESP32或Arduino Nano 368板连接到各种传感器和执行器(LED、电机等)。
- Johnny-Five库允许服务器通过微控制器控制硬件组件。
- MCP集成:
- McpServer管理硬件和 AI 之间的通信。
- 该服务器提供了多种工具(命令),例如
blinkLED
、buzz
、runMotor
、moveServo
等。 - 每个工具都与特定功能相关联,服务器等待来自 AI 系统的命令来执行这些操作。
- 人工智能控制:
- AI 提示用于触发移动机器人(
move-chotu
)、控制速度(set-chotu-speed
)和转动机器人(turn-chotu
)等动作。 - AI使用Claude或其他AI助手向服务器发送命令,服务器处理这些命令并相应地与硬件进行交互。
- AI 提示用于触发移动机器人(
- 实时通信:
- StdioServerTransport确保服务器可以连接到外部 AI 系统并实时执行命令。
- 用户命令:
- 人工智能可以发送用户友好的命令,例如**“将 Chotu 左转”或“将速度设置为 5”**来控制机器人的行为。
命令和工具
以下是一些可用的命令及其功能:
blinkLED
:使 LED 闪烁指定时间。buzz
:激活蜂鸣器一段时间。runMotor
:以给定的速度启动电机并运行一段时间。moveServo
:将伺服电机移动到指定角度。controlFan
:打开或关闭风扇。toggleRelay
:打开或关闭继电器模块。readTemperature
:获取当前温度读数。readDistance
:使用超声波传感器测量距离。move-chotu
:按照特定步骤移动 Chotu(通过 AI 提示)。start-chotu
:启动 Chotu 并准备操作。stop-chotu
:停止 Chotu 并关闭操作。turn-chotu
:将 Chotu 转向指定方向(左或右)。set-chotu-speed
:设置 Chotu 的速度。
如何使用
要求
- 硬件:
- NodeMCU ESP32或Arduino Nano 368 (或任何受支持的 Arduino/ESP32 板)。
- 各种传感器和执行器(LED、伺服、电机、超声波传感器、温度传感器、继电器)。
- 软件:
- 安装Node.js 。
- 安装Johnny-Five进行硬件控制。
- 使用MCP SDK与AI集成。
- 使用Arduino IDE对微控制器进行编程。
设置步骤
- 安装Node.js和Johnny-Five :运行服务器:CopyCopy
AI 命令移动 Chotu 示例:
指令:“让 Chotu 向前移动 5 步。” 动作:机器人将根据指定的步数移动。设置速度:
指令:“将速度设置为10。” 动作:机器人的速度将相应调整。左转:
命令:“将 Chotu 向左转。” 动作:机器人将向左旋转。
使用 MCP 检查器进行调试:
npx @modelcontextprotocol/inspector node build/choturobo.js
未来的改进
该项目可以作为开发更先进的基于AI的机器人系统的基础框架。您可以通过以下方式扩展其功能:
- **添加更多传感器,**如摄像头或麦克风。
- 整合先进的人工智能模型,以便做出更好的决策。
- 开发移动应用程序或网络界面以通过图形界面控制机器人。
- 使用 Raspberry Pi :
- 设置:使用 Raspberry Pi 运行 MCP 服务器并控制硬件组件。
- 安装:Copy
- 连接到基于 Java 的服务器:
- Java 服务器设置:创建基于 Java 的 MCP 服务器来处理请求并与 Raspberry Pi 通信。
- Java代码示例:Copy
- 运行服务器:Copy
- 将 Raspberry Pi 连接到 Java 服务器:
- 确保 Raspberry Pi 和 Java 服务器位于同一网络上。
- 使用 WebSocket 或 REST API 将命令从 Java 服务器发送到 Raspberry Pi。
- 从 Java 服务器到 Raspberry Pi 的示例命令:Copy
通过遵循这些步骤,您可以增强 Chotu Robo 项目,使其具有更高级的功能,并更好地与 AI 和基于 Java 的系统集成。
This server cannot be installed
MCP 服务器将基于 Arduino 的机器人(ESP32 或 Arduino Nano)与 AI 相集成,允许通过 AI 助手控制 LED、电机、伺服器和传感器等硬件组件。