Skip to main content
Glama

**Chotu Robo 서버 - Arduino용 MCP 서버**

데모

👉 초투 로보 데모 1

👉 초투 로보 데모 2

👉 초투 로보 데모 3

👉 초투 로보 데모 4

👉 초투 로보 기사

👉 초투 로보 2편

Related MCP server: Vibe Coder MCP

개요

이 프로젝트는 Anthropic의 Claude AI에서 제공하는 MCP(Model Context Protocol) 프레임워크를 사용하여 Arduino 기반 로봇( NodeMCU ESP32 또는 Arduino Nano 368 보드 사용)을 AI 와 통합하는 방법을 보여줍니다. 사용자가 휴대폰이나 컴퓨터를 통해 제어할 수 있는 간단한 인터페이스를 통해 하드웨어 구성 요소와 AI를 원활하게 연결합니다.

이 시스템은 LED, 모터, 서보, 팬, 센서 등 다양한 물리적 구성 요소와 상호 작용할 수 있는 로봇 서버 ( Chotu Robo ) 역할을 합니다. 이러한 구성 요소는 서버에 명령을 전송하여 원격으로 제어할 수 있으며, 서버는 ESP32 또는 Arduino Nano 368 마이크로컨트롤러를 통해 하드웨어를 제어합니다.

이러한 설정은 모바일이나 웹 애플리케이션에서 AI 보조원(예: 클로드)을 통해 로봇을 제어하는 등 향후 AI 기반 애플리케이션의 가능성을 열어줍니다.

Chotu 로봇은 유선 모드와 무선 모드의 두 가지 모드로 작동하며, 각각 다른 사용 사례와 하드웨어 구성에 맞게 설계되었습니다.

유선 모드 - Arduino Nano 368

유선 모드에서는 로봇이 Arduino Nano 368 보드를 사용하며, 코드는 USB를 통해 직접 업로드됩니다. 이 모드에서는 작동을 위해 물리적인 USB 연결이 필요하므로 네트워크를 통한 실시간 명령을 지원하지 않습니다. 로봇은 미리 업로드된 코드를 실행하므로 Wi-Fi 또는 네트워크 연결이 필요하지 않은 프로젝트에 적합합니다.

무선 모드 - ESP32 Wi-Fi 지원 웹 서버

무선 모드에서 로봇은 ESP32 보드로 구동됩니다. ESP32는 로컬 Wi-Fi 네트워크에 연결하여 REST API 또는 웹소켓을 통해 실시간 명령을 수신하는 Wi-Fi 지원 웹 서버를 시작합니다. 이 모드에서 로봇은 외부 장치와 상호 작용하고 LED, 모터, 서보, 팬과 같은 다양한 하드웨어 구성 요소를 제어할 수 있습니다.

ESP32가 Wi-Fi에 연결되면 하드웨어 기능을 실시간으로 제어하는 수신 명령을 수신합니다. 이러한 명령은 TypeScript MCP 서버 또는 Java Spring 기반 MCP 서버에서 전송할 수 있으며, 이를 통해 자동화, 로봇 공학 또는 IoT 애플리케이션을 위한 마이크로컨트롤러 하드웨어와 AI 기반 시스템 간의 원활한 통합이 가능합니다.

특징

  1. LED 제어 : 지정된 시간 동안 LED를 깜박입니다.

  2. 부저 제어 : 지정된 시간 동안 부저를 울립니다.

  3. 모터 제어 : 모터를 특정 속도로 일정 시간 동안 작동시킵니다.

  4. 서보 제어 : 서보 모터를 특정 각도로 움직입니다.

  5. 팬 제어 : 팬을 켜거나 끕니다.

  6. 릴레이 제어 : 릴레이를 켜거나 끕니다.

  7. 센서 판독값 :

    • 센서에서 온도를 읽습니다.

    • 초음파 센서를 사용하여 거리를 측정합니다.

  8. AI 기반 명령 : 이동, 시작, 정지, 회전, 속도 조절 등의 동작에 대한 AI 기반 프롬프트를 사용하여 로봇을 제어합니다.

사용된 구성 요소

  • NodeMCU ESP32 또는 Arduino Nano 368 : 하드웨어를 제어하고 서버와 통신하는 역할을 하는 마이크로컨트롤러입니다.

  • Johnny-Five : 하드웨어 구성 요소와 상호 작용하는 JavaScript 로봇 및 IoT 라이브러리입니다.

  • MCP 프레임워크 : 외부 시스템과의 요청 및 상호작용을 처리하고 AI 기반 커뮤니케이션을 구현하는 모델 컨텍스트 프로토콜 프레임워크입니다.

  • 센서 및 액추에이터 :

    • LED (상태 표시용)

    • 부저

    • 서보 모터

    • 모터

    • 릴레이 모듈

    • 초음파 거리 센서

    • 온도 센서

작동 원리

Chotu Robo Server는 AI 시스템의 명령을 처리하는 주요 허브 역할을 합니다. 다음은 시스템 작동 방식을 간략하게 설명합니다.

  1. 설정 :

    • NodeMCU ESP32 또는 Arduino Nano 368 보드는 다양한 센서와 액추에이터(LED, 모터 등)에 연결됩니다.

    • Johnny-Five 라이브러리를 사용하면 서버가 마이크로컨트롤러를 통해 하드웨어 구성 요소를 제어할 수 있습니다.

  2. MCP 통합 :

    • McpServer는 하드웨어와 AI 간의 통신을 관리합니다.

    • 서버는 blinkLED , buzz , runMotor , moveServo 등 다양한 도구 (명령)를 제공합니다.

    • 각 도구는 특정 기능과 연결되어 있으며, 서버는 AI 시스템의 명령을 기다려 해당 작업을 실행합니다.

  3. AI 제어 :

    • AI 프롬프트는 로봇 이동( move-chotu ), 속도 제어( set-chotu-speed ), 로봇 회전( turn-chotu )과 같은 동작을 트리거하는 데 사용됩니다.

    • AI는 클로드 나 다른 AI 비서를 사용하여 서버에 명령을 전송합니다. 서버는 이러한 명령을 처리하고 그에 따라 하드웨어와 상호 작용합니다.

  4. 실시간 커뮤니케이션 :

    • StdioServerTransport는 서버가 외부 AI 시스템에 연결하고 실시간으로 명령을 실행할 수 있도록 보장합니다.

  5. 사용자 명령 :

    • AI는 "초투를 좌회전해" 또는 "속도를 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의 속도를 설정합니다.

사용 방법

요구 사항

  1. 하드웨어 :

    • NodeMCU ESP32 또는 Arduino Nano 368 (또는 지원되는 Arduino/ESP32 보드).

    • 다양한 센서 및 액추에이터(LED, 서보, 모터, 초음파 센서, 온도 센서, 릴레이).

  2. 소프트웨어 :

    • Node.js 를 설치합니다.

    • 하드웨어 제어를 위해 Johnny-Five를 설치합니다.

    • MCP SDK를 사용하여 AI와 통합하세요.

    • Arduino IDE를 사용하여 마이크로컨트롤러를 프로그래밍합니다.

설정 단계

  1. Node.jsJohnny-Five를 설치하세요:

    지엑스피1

    서버를 실행합니다:

    Start the MCP server by running the script. This will set up the server and establish communication with the hardware. Connect to the AI: Send commands from the AI system (like Claude) to control the robot.

AI 명령의 예 Move Chotu:

명령: "초투를 5걸음 전진시키세요." 동작: 로봇은 지정된 걸음 수에 따라 이동합니다. 속도 설정:

명령: "속도를 10으로 설정." 동작: 로봇의 속도가 그에 따라 조정됩니다. 좌회전:

명령: "초투를 왼쪽으로 돌린다." 동작: 로봇이 왼쪽으로 회전합니다.

MCP Inspector를 사용하여 디버깅:

npx @modelcontextprotocol/inspector node build/choturobo.js

향후 개선 사항

이 프로젝트는 더욱 발전된 AI 기반 로봇 시스템 개발을 위한 기반 프레임워크 역할을 할 수 있습니다. 다음과 같은 방법으로 기능을 확장할 수 있습니다.

  1. 카메라나 마이크 등 센서를 더 추가합니다 .

  2. 더 나은 의사결정을 위해 고급 AI 모델을 통합합니다 .

  3. 그래픽 인터페이스를 통해 로봇을 제어하는 모바일 앱이나 웹 인터페이스를 개발합니다 .

  4. 라즈베리파이 사용하기 :

    • 설정 : Raspberry Pi를 사용하여 MCP 서버를 실행하고 하드웨어 구성 요소를 제어합니다.

    • 설치 :

      sudo apt-get update sudo apt-get install nodejs npm npm install johnny-five npm install @modelcontextprotocol/sdk
    • Java 기반 서버에 연결 :

      • Java 서버 설정 : Raspberry Pi와 요청을 처리하고 통신하기 위한 Java 기반 MCP 서버를 만듭니다.

      • Java 코드 예제 :

        import org.modelcontextprotocol.server.McpServer; import org.modelcontextprotocol.server.transport.WebSocketTransport; public class ChotuRoboServer { public static void main(String[] args) { McpServer server = new McpServer(); WebSocketTransport transport = new WebSocketTransport("ws://raspberrypi.local:8080"); server.connect(transport); // Define tools and prompts here server.tool("blinkLED", params -> { // Implement LED blinking logic }); server.start(); } }
      • 서버 실행 :

        javac -cp modelcontextprotocol-sdk.jar ChotuRoboServer.java java -cp .:modelcontextprotocol-sdk.jar ChotuRoboServer
    • Raspberry Pi를 Java 서버에 연결하기 :

      • Raspberry Pi와 Java 서버가 동일한 네트워크에 있는지 확인하세요.

      • WebSocket이나 REST API를 사용하여 Java 서버에서 Raspberry Pi로 명령을 보냅니다.

      • Java 서버에서 Raspberry Pi로 보내는 명령 예:

        WebSocketClient client = new WebSocketClient(new URI("ws://raspberrypi.local:8080")); client.connect(); client.send("{\"command\": \"blinkLED\", \"params\": {\"time\": 5}}");

이러한 단계를 따르면 Chotu Robo 프로젝트에 더욱 고급 기능을 추가하고 AI 및 Java 기반 시스템과 더 잘 통합할 수 있습니다.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vishalmysore/choturobo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server