00:00:00삶의 의미가 무엇인지 말해주고 화면에 띄워줄 수 있나요? 시작해 보죠.
00:00:0342네요. 세상에. ZClaw가 삶의 의미는 42라고 합니다. 그럴 줄 알았어요, 여러분.
00:00:15OpenClaw가 폭발적으로 성장한 이후로, 인터넷에는 온갖 종류의
00:00:21랍스터 테마의 AI 에이전트들이 넘쳐나고 있습니다. PicoClaw, NanoClaw, IronClaw, ZeroClaw, TrustClaw, 그리고 Nanobot까지요.
00:00:29좋아요, 마지막 건 사실 랍스터는 아니지만 무슨 뜻인지 아시겠죠. 그리고 이 모든 'Claw'들 중에서
00:00:34그중 가장 작은 녀석을 우연히 발견한 것 같습니다. 이름은 ZClaw입니다. OpenClaw의
00:00:39대등한 모델로, 특히 ESP32 같은 마이크로컨트롤러용으로 제작되었습니다. 정말 믿기지 않을 정도로 작죠.
00:00:46전체 펌웨어 용량이 고작 888킬로바이트에 불과합니다. 하지만 그럼에도 불구하고,
00:00:53더 큰 형제 모델들과 동일한 에이전트 AI 기능을 제공하면서 800달러짜리 맥 미니가 아닌 5달러짜리 칩에서 실행됩니다.
00:01:01이번 영상에서는 ZClaw가 무엇을 할 수 있는지, 여러분의 하드웨어에 어떻게 설치하는지 살펴보고
00:01:06재미있는 데모로 테스트해 보겠습니다. 아주 즐거운 시간이 될 테니 바로 시작해 보시죠.
00:01:11ZClaw는 ESP32 마이크로컨트롤러를 위한 가장 작은 AI 비서라고 자칭하며,
00:01:23전체 펌웨어 용량은 단 888킬로바이트입니다. ESP-IDF 개발 프레임워크를 기반으로 구축되었으며
00:01:31Wi-Fi를 지원하는 네트워킹 스택과 TLS,
00:01:36암호화 스택, 앱 메타데이터가 포함된 인증서 번들이 함께 제공됩니다. 덕분에 이 작은 ESP32가
00:01:43HTTPS 엔드포인트와 직접 안전하게 통신할 수 있습니다. 예를 들어, 텔레그램 채팅을 통해 AI 모델과 대화할 때
00:01:49암호화되지 않은 중간자에게 키를 노출하지 않고도 가능하죠. 또한 ESP-IDF 프레임워크를 기반으로 하므로
00:01:55IoT 센서용 드라이버나 커스텀 펌웨어 플러그인을 추가해 비서의 기능을 확장할 수도 있습니다.
00:02:02저는 이 영상 뒷부분에 나올 데모를 위해 원형 TFT 디스플레이와 연결하는 데에도 성공했습니다.
00:02:08그렇다면 이 도구의 실제 사용 사례는 무엇일까요? 우선 ZClaw는 마이크로컨트롤러에 대한 전체 권한을 가집니다.
00:02:13그래서 GPIO 및 센서 핀을 읽거나 헬스 체크를 모니터링하는 데 사용할 수 있고,
00:02:19예약된 작업을 요청할 수도 있습니다. 예를 들어 식물에 물을 줄 시간이 되면
00:02:25LED 상태 표시등을 깜빡이게 하거나, 시스템에 대한 정기적인 장비 점검을 예약하는 것처럼 말이죠.
00:02:32이 모든 과정은 텔레그램 같은 메시징 앱을 통해 AI 에이전트와 채팅함으로써 이루어집니다.
00:02:37ESP32는 클라이언트 역할을 하고, LLM은 여러분이 선택한 AI 제공업체를 통해 클라우드에서 프롬프트를 처리하며,
00:02:43로직 실행은 로컬 칩에서 직접 이루어집니다.
00:02:50또한 ESP32에는 제한적인 NVS, 즉 비휘발성 저장 장치가 있기 때문에 다음과 같이 입력할 수 있습니다.
00:02:56“GPIO4가 내 도어 센서라는 걸 기억해 줘”라고 하면, 그 시점부터 ZClaw는 이 매핑 정보를
00:03:02로컬 저장소에 저장하고, 도어 센서에 대해 이야기할 때 특정 GPIO 핀을 트리거해야 한다는 것을 알게 됩니다.
00:03:09이론적으로는 아주 멋진데, 이제 제가 직접 가지고 있는 작은 ESP32-C3 마이크로컨트롤러에서
00:03:14어떻게 작동하는지 테스트해보고 싶네요. 먼저 ZClaw를 컨트롤러에 직접 플래싱해 보겠습니다.
00:03:22USB-C 케이블로 컨트롤러를 노트북에 연결한 다음, ZClaw 저장소를 복제합니다.
00:03:28여기서 설치 스크립트를 실행하기만 하면 되는데, 설정 과정은 꽤 간단합니다.
00:03:34먼저 펌웨어를 빌드하라는 메시지가 뜨는데, 처음 실행하는 경우라면
00:03:39완료될 때까지 1~2분 정도 걸릴 수 있습니다. 다음으로 플래시 스크립트를 실행하여
00:03:44ESP32에 펌웨어를 입힙니다. 마지막으로 프로비저닝 스크립트를 실행하여 설정을 마무리합니다.
00:03:50프로비저닝 단계에서는 연결하려는 Wi-Fi SSID를 묻고,
00:03:55그다음 사용할 AI 제공업체를 선택하게 됩니다. OpenAI, Anthropic, OpenRouter,
00:04:01또는 Ollama 중에서 선택할 수 있습니다. 저는 OpenRouter를 선택하겠습니다. 이어서 API 키와
00:04:07Wi-Fi 비밀번호를 입력해야 합니다. 이 시점에 네트워크 연결 문제가 있다는 메시지가 뜰 수도 있지만
00:04:12걱정하지 마세요. 나중에 실행할 때 정상적으로 연결될 수 있으니 그냥 Y를 눌러 진행하면 됩니다.
00:04:18이제 텔레그램 액세스 토큰을 요구할 겁니다. 이걸 얻으려면 텔레그램에서
00:04:24BotFather에게 메시지를 보내 새 봇을 만들어야 합니다. 그 과정을 거치고 나면
00:04:30BotFather가 해당 봇을 위한 액세스 토큰을 제공해 줍니다. 그걸 여기에 붙여넣으세요.
00:04:35그러면 이 봇과 대화할 수 있는 사용자 ID를 묻습니다.
00:04:41여기에 자신의 ID를 지정해야 하는데, 이걸 확인하려면 UserInfoBot에게
00:04:47메시지를 보내면 텔레그램 앱의 사용자 ID를 알려줍니다. 이 모든 정보를 입력하면
00:04:53ZClaw 설치가 완료되고 실행 준비가 끝납니다. 모니터 스크립트를 실행해 활성화하고
00:04:59ZClaw에서 들어오는 로그를 실시간으로 확인할 수 있습니다. 이제 재미있는 부분입니다. 실제 하드웨어를
00:05:05테스트해 보죠. 원래는 일반적인 브레드보드 설정으로 이 데모를 하려고 했습니다. 이를 위해
00:05:11칩에 헤더 핀도 납땜해 두었죠. 하지만 칩을 보드에 장착하고 실행했을 때
00:05:17어떤 이유에서인지 Wi-Fi 연결이 안정적으로 유지되지 않았습니다. 아마도
00:05:23브레드보드의 금속 레일이 Wi-Fi 신호를 방해하기 때문일 수도 있습니다. 이 문제를 깨닫는 데 얼마나 걸렸는지 모릅니다.
00:05:28어쨌든 그래서 대신 특수 핀 클램프를 사용해 칩을 연결하고
00:05:34브레드보드에 외부로 배선했습니다. 그런데 이상하게도
00:05:40이 설정은 완벽하게 작동했습니다. 연결 문제도 없었고 칩이 안정적으로 Wi-Fi를
00:05:45유지했습니다. 다음으로 간단한 회로를 구성했습니다. 3.3V 레일에 전원을 공급하고
00:05:51상태 표시등 역할을 할 단일 LED를 연결했습니다. 양극은 GPIO3에 연결되어 ZClaw 에이전트가
00:05:58디지털 출력으로 제어하게 됩니다. 반대쪽에는 전류를 조절하여
00:06:05다이오드가 타버리지 않도록 220옴 저항을 접지 레일에 연결했습니다. 임베디드 하드웨어 테스트의
00:06:11가장 기본적인 'Hello World' 설정이죠. 이제 흥미진진한 부분입니다. 텔레그램 채팅으로
00:06:18ZClaw에게 이 다이오드를 켜달라고 요청할 수 있습니다. 이 구성을 통해 ZClaw에게
00:06:24GPIO2 핀에 연결된 이 다이오드가 전등이라고 알려줄 수 있습니다. “GPIO를 메인 조명으로 취급해 줘”라고 말해보죠.
00:06:34그러면 보시는 것처럼 GPIO2가 메인 조명으로 저장됩니다. 그리고 향후 명령을 위해
00:06:42이를 기억할 겁니다. 이제 “메인 조명 켜줘”라고 요청할 수 있습니다. 그렇게 하면
00:06:51메인 조명이 켜지고 깜빡입니다. ZClaw와 몇 분간 대화하다 보면 기능이
00:06:58상당히 제한적이라는 것을 금방 알게 될 겁니다. 코드를 살펴보면 사용할 수 있는 도구가
00:07:03제한적이기 때문입니다. GPIO의 읽기 및 쓰기를 수행할 수 있고, 기본적인 메모리 저장
00:07:11작업을 처리하며, 특정 페르소나로 대화하는 것 정도가 전부입니다. 하지만 우리만의 도구를 추가할 수 없는 건 아니죠?
00:07:17그래서 다음 데모를 위해 더 흥미로운 것을 해보기로 했습니다. 여기
00:07:23GC9A01 240x240 TFT 디스플레이가 있습니다. 이걸 ZClaw에 연결해서 프롬프트로 입력하는
00:07:32어떤 텍스트든 화면에 표시할 수 있게 만들고 싶습니다. 이를 위해 코드를 약간 수정했습니다. tool C 파일에
00:07:38특정 텍스트를 표시할 수 있게 해주는 새로운 도구 호출(tool call)을 추가했습니다. 또한 텍스트의
00:07:44색상도 지정할 수 있게 했죠. 그다음 Claude 코드를 활용해 별도의 C 파일에
00:07:50디스플레이 기능을 작성했습니다. 마지막으로 도구 핸들러 헤더 파일에 추가했습니다. 또한
00:07:56GC9A01 디스플레이를 위한 전용 드라이버를 ESP-IDF 프로젝트의 종속성으로 추가해야 했습니다.
00:08:05이런 변경 사항들을 적용해 프로젝트를 다시 컴파일하고 플래싱한 뒤 프로비저닝을 마쳤습니다. 이제
00:08:12기존 ZClaw 프로젝트에 저만의 커스텀 도구를 증강시킨 셈입니다. 그럼 디스플레이에
00:08:18텍스트를 띄울 수 있는지 확인해 보죠. 두 번째 데모의 배선은 조금 더 복잡합니다. 하지만 기본적으로
00:08:24외부 장치를 마이크로컨트롤러에 연결하는 표준적인 방식입니다. 배선 설정 전체를 상세히
00:08:29설명하지는 않겠습니다. 하지만 관심이 있다면 이 영상을 일시 정지하고 직접 따라 해볼 수 있도록
00:08:34배선도를 메모해 두세요. 여기 ESP32가 있습니다.
00:08:41이게 디스플레이에 연결되어 있고요. 이제 ZClaw 봇과의
00:08:48텔레그램 채팅창을 열었습니다. 예를 들어 봇에게 “Hello World”라는 텍스트를 표시해달라고
00:08:58요청할 수 있습니다. 어떻게 되는지 보죠. 보세요. 디스플레이에 즉시 Hello World가 나타납니다.
00:09:09오늘 기분이 어떤지 화면에 표시해 줄 수 있나요? 인간처럼 감정을 느낄 수는 없지만,
00:09:17여러분이 필요한 건 무엇이든 도와드릴 준비가 되어 있습니다. 보세요, 봇이 “구독(subscribe)”이라고 하네요. 이번만큼은
00:09:24ZClaw의 말을 들어야 할 것 같습니다. 이제 어려운 걸 해보죠. 삶의 의미가 무엇인지 말해주고
00:09:29화면에 띄워줄 수 있나요? 갑니다. 42네요. 세상에. ZClaw가 삶의 의미는 42라고 합니다. 그럴 줄 알았어요.
00:09:42여러분, 이게 바로 ZClaw의 핵심입니다. 가지고 놀기에 정말 재미있는
00:09:47AI 프로젝트라고 생각합니다. 하지만 실제 상용 제품 빌드에서는 이런 에이전트 통신을
00:09:53메시징 앱을 통해 할 필요가 있을지 모르겠네요. 사실 커스텀 웹 API 인터페이스를 통해
00:09:59처리하는 게 훨씬 효율적일 테니까요. 그래도 참신하고 멋진 개념임에는
00:10:04틀림없습니다. 만약 메시징 앱을 통해 ZClaw에게 커스텀 코드를 작성하라고 요청하고,
00:10:11그 즉시 컨트롤러에서 새로 작성된 코드를 컴파일하고 실행할 수 있다면 정말 인상적일 겁니다.
00:10:17그건 정말 특별한 일이 될 거예요. 혹시 어떻게 하는지 아시는 분이 있다면
00:10:22댓글로 알려주세요. 여러분, 저희 채널에서 하드웨어 튜토리얼을 자주 하지는 않지만,
00:10:27이번 영상이 마음에 드셨고 앞으로 더 많은 하드웨어 주제를 다루는 걸
00:10:33보고 싶으시다면 영상 아래 좋아요 버튼을 눌러 알려주세요. 지금까지
00:10:38Betterstack의 Andris였고, 다음 영상에서 뵙겠습니다.