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(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 기반 시스템 간의 원활한 통합이 가능합니다.
특징
- LED 제어 : 지정된 시간 동안 LED를 깜박입니다.
- 부저 제어 : 지정된 시간 동안 부저를 울립니다.
- 모터 제어 : 모터를 특정 속도로 일정 시간 동안 작동시킵니다.
- 서보 제어 : 서보 모터를 특정 각도로 움직입니다.
- 팬 제어 : 팬을 켜거나 끕니다.
- 릴레이 제어 : 릴레이를 켜거나 끕니다.
- 센서 판독값 :
- 센서에서 온도를 읽습니다.
- 초음파 센서를 사용하여 거리를 측정합니다.
- AI 기반 명령 : 이동, 시작, 정지, 회전, 속도 조절 등의 동작에 대한 AI 기반 프롬프트를 사용하여 로봇을 제어합니다.
사용된 구성 요소
- NodeMCU ESP32 또는 Arduino Nano 368 : 하드웨어를 제어하고 서버와 통신하는 역할을 하는 마이크로컨트롤러입니다.
- Johnny-Five : 하드웨어 구성 요소와 상호 작용하는 JavaScript 로봇 및 IoT 라이브러리입니다.
- MCP 프레임워크 : 외부 시스템과의 요청 및 상호작용을 처리하여 AI 기반 커뮤니케이션을 구현하는 모델 컨텍스트 프로토콜 프레임워크입니다.
- 센서 및 액추에이터 :
- LED (상태 표시용)
- 부저
- 서보 모터
- 모터
- 릴레이 모듈
- 초음파 거리 센서
- 온도 센서
작동 원리
Chotu Robo Server는 AI 시스템의 명령을 처리하는 주요 허브 역할을 합니다. 다음은 시스템 작동 방식을 간략하게 설명합니다.
- 설정 :
- NodeMCU ESP32 또는 Arduino Nano 368 보드는 다양한 센서와 액추에이터(LED, 모터 등)에 연결됩니다.
- Johnny-Five 라이브러리를 사용하면 서버가 마이크로컨트롤러를 통해 하드웨어 구성 요소를 제어할 수 있습니다.
- MCP 통합 :
- McpServer는 하드웨어와 AI 간의 통신을 관리합니다.
- 서버는
blinkLED
,buzz
,runMotor
,moveServo
등 다양한 도구 (명령)를 제공합니다. - 각 도구는 특정 기능과 연결되어 있으며, 서버는 AI 시스템의 명령을 기다려 해당 작업을 실행합니다.
- AI 제어 :
- AI 프롬프트는 로봇 이동(
move-chotu
), 속도 제어(set-chotu-speed
), 로봇 회전(turn-chotu
)과 같은 동작을 트리거하는 데 사용됩니다. - AI는 클로드 나 다른 AI 비서를 사용하여 서버에 명령을 전송합니다. 서버는 이러한 명령을 처리하고 그에 따라 하드웨어와 상호 작용합니다.
- AI 프롬프트는 로봇 이동(
- 실시간 커뮤니케이션 :
- StdioServerTransport는 서버가 외부 AI 시스템에 연결하고 실시간으로 명령을 실행할 수 있도록 보장합니다.
- 사용자 명령 :
- 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의 속도를 설정합니다.
사용 방법
요구 사항
- 하드웨어 :
- NodeMCU ESP32 또는 Arduino Nano 368 (또는 지원되는 Arduino/ESP32 보드).
- 다양한 센서 및 액추에이터(LED, 서보, 모터, 초음파 센서, 온도 센서, 릴레이).
- 소프트웨어 :
- Node.js 를 설치합니다.
- 하드웨어 제어를 위해 Johnny-Five를 설치합니다.
- MCP SDK를 사용하여 AI와 통합하세요.
- Arduino IDE를 사용하여 마이크로컨트롤러를 프로그래밍합니다.
설정 단계
- Node.js 와 Johnny-Five를 설치하세요:지엑스피1서버를 실행합니다:Copy
AI 명령의 예 Move Chotu:
명령: "초투를 5걸음 전진시키세요." 동작: 로봇은 지정된 걸음 수에 따라 이동합니다. 속도 설정:
명령: "속도를 10으로 설정." 동작: 로봇의 속도가 그에 따라 조정됩니다. 좌회전:
명령: "초투를 왼쪽으로 돌린다." 동작: 로봇이 왼쪽으로 회전합니다.
MCP Inspector를 사용하여 디버깅:
npx @modelcontextprotocol/inspector node build/choturobo.js
향후 개선 사항
이 프로젝트는 더욱 발전된 AI 기반 로봇 시스템 개발을 위한 기반 프레임워크 역할을 할 수 있습니다. 다음과 같은 방법으로 기능을 확장할 수 있습니다.
- 카메라나 마이크 등 센서를 더 추가합니다 .
- 더 나은 의사결정을 위해 고급 AI 모델을 통합합니다 .
- 그래픽 인터페이스를 통해 로봇을 제어하는 모바일 앱이나 웹 인터페이스를 개발합니다 .
- 라즈베리파이 사용하기 :
- 설정 : Raspberry Pi를 사용하여 MCP 서버를 실행하고 하드웨어 구성 요소를 제어합니다.
- 설치 :Copy
- Java 기반 서버에 연결 :
- Java 서버 설정 : Raspberry Pi와 요청을 처리하고 통신하기 위한 Java 기반 MCP 서버를 만듭니다.
- 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
Arduino 기반 로봇(ESP32 또는 Arduino Nano)을 AI와 통합하는 MCP 서버로, AI 어시스턴트를 통해 LED, 모터, 서보, 센서와 같은 하드웨어 구성 요소를 제어할 수 있습니다.