메뉴 전체보기

회원메뉴

웹 페이지에서 플래시하는 말하는 AI 데스크 로봇 만들기 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3535
제목 : 웹 페이지에서 플래시하는 말하는 AI 데스크 로봇 만들기
2026-10-07 10:38

소개: 웹 페이지에서 플래시하는 말하는 AI 데스크 로봇 만들기


대부분의 "AI 비서 만들기" 프로젝트는 같은 지점에서 중단됩니다. 툴체인을 설치하고,

보드 정의를 선택하고 라이브러리 버전 문제를 해결한 뒤, 다음 단계로 넘어가야 합니다.

단 한마디를 듣기도 전에 눈앞에 펼쳐지는 붉은 글자 벽.


이것은 그 반대입니다. 시판되는 2.8인치 ESP32-S3 보드, 630 mAh 배터리,

3D 프린트 케이스, 그리고 브라우저 탭에서 바로 플래시할 수 있는 펌웨어입니다. 화면을

누르고, 질문을 한 다음 손을 떼세요. 애니메이션 얼굴과 함께 소리 내어 대답하고, 알람을 설정하며,

“잘 자”라고 말하면 조명을 꺼 줍니다.


**직접 작업하는 데 약 10분.** 플래싱은 70초, 조립은

몇 분이면 됩니다. 오래 걸리는 유일한 작업은 프린터로, 케이스 부품 4개 전체를 출력하는 데 대략 1시간 20분이 걸리며,

출력하는 동안 로봇을 플래시하고 설정할 수 있습니다.


커스텀 PCB도, 배선도 전혀 필요 없습니다. 납땜 인두를 꺼내는 유일한 경우는

열 삽입 너트 4개를 눌러 끼울 때입니다.


처음부터 끝까지 전체 제작 과정을 확인하세요(5분): https://youtu.be/vgklh-3mNh4


모든 것—펌웨어, 출력 파일, 부품 목록, 원클릭 플래셔—이

무료입니다: https://varozhan3212.github.io/robolynk-light/





STEP 1. 준비물


준비물


준비물


**전자 부품**

- ES3C28P(또는 ES3N28P) ESP32-S3 보드 × 1 — 2.8인치 240×320 ILI9341 디스플레이,

정전식 터치, ES8311 오디오 코덱, 스피커 앰프, microSD 슬롯, USB-C

- LiPo 배터리, 3.7 V 630 mAh, JST-PH, **보호 회로 포함** × 1

- 8 Ω 소형 스피커 × 1

- microSD 카드 × 1(선택 사항 — 더 큰 얼굴 애니메이션에만 필요)

- GPS 모듈, UART 3.3 V × 1(선택 사항 — 배선이 필요한 유일한 부품)


**하드웨어**

- M2 열 삽입 너트 × 4

- M2 나사, 6–8 mm × 4


**공구**

- 3D 프린터(PETG 또는 PLA)

- 납땜 인두 — 삽입 너트를 눌러 끼울 때만 사용

- 글루건

- USB-C 케이블 및 Chrome 또는 Edge가 실행되는 컴퓨터

⚠️ **보드 모델 번호를 반드시 일치시키세요.** 다른 ESP32-S3 보드도 외관은 동일하지만

다른 디스플레이 컨트롤러를 사용하거나 오디오 코덱이 없으면 펌웨어가

그 장치에서 실행되지 않습니다. 이것이 빌드를 작동 불능으로 만드는 가장 흔한 원인입니다.




STEP 2. 먼저 출력 시작


먼저 출력 시작


먼저 출력 시작


사진: B/02-printed-shells.jpg

사진: A/05-red-and-black-shells.jpg


기다려야 하는 단계는 출력뿐이므로 다른 일을 하기 전에 먼저 시작하세요. 출력하는 동안

보드에 펌웨어를 플래시하고 설정할 수 있습니다.


한 플레이트에 네 파일 모두 배치, **서포트 없음**:


| 파일 | 수량 | 비고 |

|---|---|---|

| front_shell_v22.stl | 1 | 디스플레이를 고정하며, 베젤이 평평하게 맞물림 |

| back_cover_v22.stl | 1 | USB-C와 microSD에 계속 접근 가능 |

| clips_v22.stl | 1 플레이트 | 내부 클립 |

| buttons_v22.stl | 1 플레이트 | 리셋 버튼과 부트 버튼용 캡 |


**설정:** PETG 또는 PLA · 레이어 높이 0.2 mm · 인필 20% · **서포트 없음** ·

파일을 불러올 때의 방향 그대로 — 방향을 다시 지정할 필요가 없습니다.


네 부품 모두 출력하는 데 약 **1시간 20분**이 걸립니다. 기본 프로파일을 사용해

Bambu Lab에서 출력했습니다. 클립과 버튼은 작아서 어느 셸 옆에도 함께 배치할 수 있습니다.


파일: https://github.com/varozhan3212/robolynk-light/tree/main/case





STEP 3. 브라우저에서 펌웨어 플래시하기 (70초)


브라우저에서 펌웨어 플래시하기 (70초)


툴체인도, IDE도, 라이브러리도 필요 없습니다.


1. USB-C로 보드를 컴퓨터에 연결합니다.

2. **Chrome 또는 Edge**에서 플래셔를 엽니다(Safari와 Firefox에서는 사용할 수 없습니다 —

WebSerial을 지원하지 않기 때문입니다): https://varozhan3212.github.io/robolynk-light/

3. **Connect**를 누르고 직렬 포트를 선택한 다음 **Install**을 누릅니다.

4. 약 70초간 기다립니다.


이것으로 전체 과정이 끝납니다. 펌웨어는 런타임과

애플리케이션 및 모든 파일이 포함된 단일 이미지이므로, 두 번째 단계나 이후에 복사할

파일이 없습니다.


완료되면 보드가 다시 시작되고 스플래시 화면이 표시됩니다.





STEP 4. 열압입 인서트 삽입


인두를 **낮은 온도**로 설정하고 M2 인서트 네 개를 앞면 셸에 눌러 넣습니다. 인서트가 직각으로 들어가도록 인두를 곧게 아래로

누르세요.


천천히 작업하고 다음 인서트로 넘어가기 전에 각각 식히세요. 서두르면 인서트가 기울어지고,

기울어진 인서트는 나사를 축에서 벗어나게 하므로 백 커버가 절대 평평하게 맞지 않습니다.





STEP 5. 보드 장착


보드 장착


보드를 **디스플레이가 먼저 들어가도록** 넣고, 베젤이 평평하게 맞도록 안착시킵니다.

그런 다음 **보드 모서리를 핫글루로 고정하세요.** 보드가 움직이는 것을 막을 다른 방법은 없으며,

보드가 느슨하면 USB-C를 꽂을 때마다 포트에 힘이 가해집니다 — 이것이

보드를 망가뜨리는 원인입니다. 커넥터에 풀이 묻지 않게 하고 배터리가

놓일 위치도 깨끗하게 비워 두세요.




STEP 6. 배터리 (먼저 극성 확인)


배터리 (먼저 극성 확인)



🚨 **연결하기 전에 배터리 극성을 확인하세요.** JST-PH 커넥터는 공급업체마다

표준이 같지 않으며, 셀을 반대로 연결하면 보드가 손상됩니다. 만약

배터리 하우징의 배선이 반대로 되어 있다면 억지로 연결하지 말고 하우징 안의 핀 위치를

바꾸세요.


확인했으면 배터리를 연결하고, 셸을 닫을 때 배터리가 눌리지 않도록 셀을 안쪽에

잘 넣습니다.




STEP 7. 닫기


닫기


닫기


1. 바깥쪽에서 버튼 캡을 눌러 끼웁니다.

2. 백 커버를 장착합니다.

3. M2 나사 네 개를 조입니다.


케이스를 닫은 상태에서도 USB-C와 microSD 슬롯을 사용할 수 있으므로, 다시 열 필요가 없습니다.

펌웨어 업데이트도 마찬가지이며, 업데이트는 Wi-Fi를 통해 진행됩니다.




STEP 8. 휴대폰으로 Wi-Fi 설정


키보드도 없고 펌웨어에 하드코딩된 인증 정보도 없습니다.


1. 전원을 켭니다. 로봇에 **TAP TO BEGIN**이 표시됩니다.

2. 로봇이 **RoboLynk-XXXX**라는 자체 핫스팟을 만듭니다.

3. 휴대폰에서 해당 핫스팟에 연결한 뒤 **192.168.4.1**을 엽니다.

4. 목록에서 네트워크를 선택하고 비밀번호를 입력합니다.


⚠️ **2.4 GHz만 지원합니다.** 이 보드에는 5 GHz 무선 기능이 없으므로 5 GHz 전용 네트워크는

목록에 표시되지 않습니다.





STEP 9. 페어링하고 말해 보세요



1. https://robolynk.cloud에서 계정을 만드세요.

2. 로봇에서 **Settings → Info**로 이동하여 **6자리 설정

코드**를 확인하세요.

3. 해당 코드로 로봇을 추가하세요.


이제 화면을 누른 채로 질문한 다음 손을 떼세요.


최근 메시지 6개를 기억하므로 후속 질문도 가능합니다. "what's Dune about?"이라고 물은 직후 "who wrote

it?"이라고 물어도 무슨 뜻인지 알아듣습니다.




STEP 10. 그 밖에 할 수 있는 일



- 말하는 동안 **애니메이션 얼굴**이 표시됩니다.

- 음성으로 **알람과 타이머**를 설정할 수 있습니다.

- **Philips Hue 제어** — "turn on the lights", "dim the bedroom",

"lights to 50%".

- **네트워크가 전혀 없어도 작동하는 내장 조명과 SOS 신호가 있습니다.** 화면 왼쪽 위를 탭하면

흰색 LED가 켜지고, 3초간 누르면 SOS 패턴이 실행됩니다.

둘 다 Wi-Fi나 서버가 필요하지 않습니다.

- Wi-Fi를 통해 **스스로 업데이트됩니다**.


여기의 알림과 알람은 편의 기능입니다. 의학적으로 중요한 일에는

절대 의존하지 마세요.




STEP 11. 하드웨어 한계처럼 보였던 세 가지 버그


마이크로컨트롤러에서 오디오를 캡처하는 무언가를 만들고 있다면 읽어 볼 가치가 있습니다.

세 가지 모두 "칩이 충분히 빠르지 않다"는 문제처럼 보였습니다. 하지만 어느 것도 그렇지 않았습니다.


**1. 모든 질문의 첫 단어가 사라졌습니다.** 사람들이 "why is the 4th

of July important"라고 물으면 트랜스크립트에는 "July is important"라고 나왔습니다. 원인은

실행 순서였습니다. 코드가 마이크를 켜기 *전에* 화면을 업데이트하고 가비지 컬렉션을 실행했습니다.

화면에 LISTEN이 표시되는 순간 사람들은 말하기 시작하므로,

첫 단어는 녹음되지 않았습니다. 이제는 마이크가 먼저 켜지고

그 뒤에서 정리 작업이 실행됩니다.


**2. 캡처 루프가 버퍼에서 조금씩만 읽고 있었습니다.** 네트워크로 한 번 전송할 때마다 오디오를 30 ms씩만 읽었는데,

전송 한 번에 약 110 ms가 걸렸습니다. 따라서 실제 시간의 겨우 1/4 정도만 캡처되었고, 나머지는 버퍼가 넘칠 때까지 쌓였습니다. 버퍼가

실제로 빌 때까지 읽고

더 큰 배치로 전송하자, 캡처 성능이 실제 시간의 27%에서 85%로 향상되었습니다. 가장 큰 비용을 초래한 세부 사항은

**블로킹 읽기는 데이터가 다 떨어졌다고 알려 주지 않는다는 점입니다. 그저 기다릴 뿐입니다.** 루프는 오디오를 잃는 동안 내내

정상적으로 작동하는 것처럼 보였습니다.

정상적으로 작동하는 것처럼 보였습니다.


**3. 스트리밍 음성이 대기할 곳이 없었습니다.** 네트워크에서 바로

170 ms 하드웨어 버퍼로 재생하면 늦게 도착한 패킷마다 들리는 끊김이 발생합니다. 재생을 시작하기 전에

약 600 ms를 미리 받아 더 큰 버퍼에 저장하자 문제가 완전히 사라졌습니다.


임베디드 오디오가 이상하게 작동할 때는 실리콘을 탓하기 전에 먼저 자체 실행 순서와 버퍼링을

의심하세요.




STEP 12. 알아 두면 좋은 점


- **서버가 필요합니다.** 음성 및 언어 처리는 보드에서 이루어지지 않습니다.

이 프로젝트는 디바이스 측을 담당합니다.

- **얼굴 애니메이션이 메모리 예산을 좌우합니다.** 프레임은 RAM에 저장되며, 로더는

들어갈 수 있는 프레임 수를 결정하기 전에 TLS 핸드셰이크와 오디오 버퍼를 위한 여유 공간을

확보합니다. 이 여유 공간을 없애면 흰색 화면으로 부팅됩니다.

- 비트뱅잉 SPI 버스에 연결한 **microSD 카드는 느립니다** — 여기서는 약 93 KB/s이므로,

수 메가바이트 크기의 애니메이션을 부팅 시 로드하는 데 1분 넘게 걸립니다.

- 무선 스트리밍, 카메라 비전 및 웨이크 워드 감지 기능은 이전 코드에 존재하지만

이 빌드에서는 꺼져 있습니다. 아직 완성되지 않았으며

이 프로젝트의 일부가 아닙니다.


실제로 매일 사용 중인 작동 프로토타입입니다.


**라이선스:** CC BY-SA 4.0 — 자유롭게 제작하고, 변경하고, 만든 것을 판매할 수 있습니다. 단,

RoboLynk를 명시하고 동일한 조건으로 변경 사항을 공유해야 합니다.


Los Angeles의 RoboLynk LLC가 제작했습니다.



원문: https://www.instructables.com/Build-a-Talking-AI-Desk-Robot-You-Flash-From-a-Web/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.