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 Server - Servidor MCP para Arduino**
MANIFESTACIÓN
👉 Demostración 1 de Chotu Robo
👉 Demostración 2 de Chotu Robo
👉 Demostración 3 de Chotu Robo
Descripción general
Este proyecto muestra cómo integrar la robótica basada en Arduino (mediante la placa NodeMCU ESP32 o Arduino Nano 368 ) con la IA mediante el framework MCP (Protocolo de Contexto de Modelo) de Claude AI de Anthropic. Proporciona una conexión fluida entre los componentes de hardware y la IA mediante una interfaz sencilla que el usuario puede controlar desde un teléfono móvil o un ordenador.
Este sistema actúa como un servidor robótico (llamado Chotu Robo ) que puede interactuar con diversos componentes físicos como LED, motores, servos, ventiladores, sensores y más. Estos componentes se pueden controlar remotamente enviando comandos al servidor, que a su vez controla el hardware mediante el microcontrolador ESP32 o Arduino Nano 368.
Esta configuración abre la posibilidad de futuras aplicaciones basadas en IA, como controlar el robot a través de asistentes de IA (como Claude) desde aplicaciones móviles o web.
El robot Chotu funciona en dos modos: modo cableado y modo inalámbrico, cada uno diseñado para diferentes casos de uso y configuraciones de hardware.
Modo cableado - Arduino Nano 368
En modo cableado, el robot utiliza una placa Arduino Nano 368, donde el código se carga directamente por USB. Este modo no admite comandos en tiempo real a través de la red, ya que requiere una conexión USB física para funcionar. El robot ejecuta el código precargado, lo que lo hace ideal para proyectos que no requieren conexión a internet ni wifi.
Modo inalámbrico: servidor web ESP32 con Wi-Fi habilitado
En modo inalámbrico, el robot se alimenta mediante una placa ESP32. El ESP32 se conecta a su red Wi-Fi local e inicia un servidor web habilitado para Wi-Fi que recibe comandos en tiempo real mediante la API REST o WebSocket. Este modo permite al robot interactuar con dispositivos externos y controlar diversos componentes de hardware, como LED, motores, servos y ventiladores.
Una vez conectado al Wi-Fi, el ESP32 acepta comandos entrantes que controlan la funcionalidad del hardware en tiempo real. Estos comandos pueden enviarse desde un servidor MCP TypeScript o un servidor MCP basado en Java Spring, lo que permite una integración fluida entre el hardware del microcontrolador y los sistemas basados en IA para aplicaciones de automatización, robótica o IoT.
Características
- Control de LED : hace parpadear un LED durante una duración determinada.
- Control de timbre : hace sonar un timbre durante un tiempo específico.
- Control del motor : hacer funcionar un motor a una velocidad determinada durante un tiempo determinado.
- Control servo : mueve un servomotor a un ángulo específico.
- Control del ventilador : enciende o apaga un ventilador.
- Control de relé : enciende o apaga un relé.
- Lecturas del sensor :
- Leer la temperatura de un sensor.
- Mida la distancia utilizando un sensor ultrasónico.
- Comandos impulsados por IA : controla el robot usando indicaciones basadas en IA para acciones como moverse, iniciar, detener, girar y ajustar la velocidad.
Componentes utilizados
- NodeMCU ESP32 o Arduino Nano 368 : Microcontroladores encargados de controlar el hardware y comunicarse con el servidor.
- Johnny-Five : la biblioteca de IoT y robótica de JavaScript para interactuar con los componentes de hardware.
- Marco MCP : el marco del Protocolo de Contexto Modelo para gestionar solicitudes e interacciones con sistemas externos, lo que permite la comunicación basada en IA.
- Sensores y actuadores :
- LED (para indicar el estado)
- Zumbador
- Servomotor
- Motor
- Módulo de relé
- Sensor de distancia ultrasónico
- Sensor de temperatura
Cómo funciona
El servidor Chotu Robo actúa como el centro principal para gestionar los comandos de un sistema de IA. El siguiente flujo describe el funcionamiento del sistema:
- Configuración :
- La placa NodeMCU ESP32 o Arduino Nano 368 está conectada a varios sensores y actuadores (LED, motores, etc.).
- La biblioteca Johnny-Five permite al servidor controlar componentes de hardware a través del microcontrolador.
- Integración MCP :
- El McpServer gestiona la comunicación entre el hardware y la IA.
- El servidor proporciona varias herramientas (comandos) como
blinkLED
,buzz
,runMotor
,moveServo
y más. - Cada herramienta está asociada a una función específica y el servidor espera comandos del sistema de IA para ejecutar esas acciones.
- Control de IA :
- Las indicaciones de IA se utilizan para activar acciones como mover el robot (
move-chotu
), controlar la velocidad (set-chotu-speed
) y girar el robot (turn-chotu
). - La IA utiliza a Claude u otros asistentes de IA para enviar comandos al servidor. Este procesa estos comandos e interactúa con el hardware según corresponda.
- Las indicaciones de IA se utilizan para activar acciones como mover el robot (
- Comunicación en tiempo real :
- StdioServerTransport garantiza que el servidor pueda conectarse a sistemas de IA externos y ejecutar comandos en tiempo real.
- Comandos de usuario :
- La IA puede enviar comandos fáciles de usar como "girar a Chotu a la izquierda" o "establecer la velocidad a 5" para controlar el comportamiento del robot.
Comandos y herramientas
A continuación se muestran algunos de los comandos disponibles y sus funcionalidades:
blinkLED
: hace parpadear el LED durante un tiempo específico.buzz
: activa el timbre durante una duración determinada.runMotor
: inicia el motor a una velocidad determinada durante un período establecido.moveServo
: Mueve el servomotor a un ángulo especificado.controlFan
: Enciende o apaga el ventilador.toggleRelay
: enciende o apaga un módulo de relé.readTemperature
: obtiene la lectura de temperatura actual.readDistance
: mide la distancia utilizando el sensor ultrasónico.move-chotu
: Mueve a Chotu en pasos específicos (a través de indicaciones de IA).start-chotu
: Inicia Chotu y prepárate para operar.stop-chotu
: Detener Chotu y cerrar operaciones.turn-chotu
: gira Chotu en una dirección específica (izquierda o derecha).set-chotu-speed
: establece la velocidad para Chotu.
Cómo utilizar
Requisitos
- Hardware :
- NodeMCU ESP32 o Arduino Nano 368 (o cualquier placa Arduino/ESP32 compatible).
- Varios sensores y actuadores (LED, servo, motor, sensor ultrasónico, sensor de temperatura, relé).
- Software :
- Instalar Node.js .
- Instalar Johnny-Five para el control del hardware.
- Utilice el SDK de MCP para integrarlo con IA.
- Utilice el IDE de Arduino para programar el microcontrolador.
Pasos para la configuración
- Instalar Node.js y Johnny-Five :Ejecutar el servidor:CopyCopy
Ejemplos de comandos de IA mueven a Chotu:
Comando: "Avanza Chotu 5 pasos". Acción: El robot se moverá según el número de pasos especificado. Velocidad:
Comando: "Ajustar velocidad a 10". Acción: La velocidad del robot se ajustará según corresponda. Girar a la izquierda:
Comando: "Gira a Chotu a la izquierda". Acción: El robot girará a la izquierda.
Depurar usando el inspector MCP:
npx @modelcontextprotocol/inspector node build/choturobo.js
Mejoras futuras
Este proyecto puede servir como marco fundamental para el desarrollo de sistemas robóticos más avanzados basados en IA. Puede ampliar su funcionalidad mediante:
- Agregar más sensores como cámaras o micrófonos.
- Integración de modelos de IA avanzados para una mejor toma de decisiones.
- Desarrollar una aplicación móvil o una interfaz web para controlar el robot a través de una interfaz gráfica.
- Usando una Raspberry Pi :
- Configuración : utilice una Raspberry Pi para ejecutar el servidor MCP y controlar los componentes de hardware.
- Instalación :Copy
- Conexión al servidor basado en Java :
- Configuración del servidor Java : cree un servidor MCP basado en Java para manejar solicitudes y comunicarse con Raspberry Pi.
- Ejemplo de código Java :Copy
- Ejecutando el servidor :Copy
- Conexión de Raspberry Pi al servidor Java :
- Asegúrese de que Raspberry Pi y el servidor Java estén en la misma red.
- Utilice WebSocket o API REST para enviar comandos desde el servidor Java a Raspberry Pi.
- Ejemplo de comando del servidor Java a Raspberry Pi:Copy
Siguiendo estos pasos, puede mejorar el proyecto Chotu Robo con funciones más avanzadas y una mejor integración con sistemas basados en IA y Java.
This server cannot be installed
Un servidor MCP que integra robótica basada en Arduino (ESP32 o Arduino Nano) con IA, lo que permite el control de componentes de hardware como LED, motores, servos y sensores a través de asistentes de IA.