말하는 로봇 앱은 골판지 로봇에 대화 기능을 더해 주는 웹 앱입니다. 음성 인식으로 말을 걸면 Google Gemini가 대답을 만들고, 브라우저의 음성 합성이 그 답을 읽어 줍니다. 로봇이 말하는 동안에는 USB 시리얼로 micro:bit에 신호를 보내 입이나 LED를 움직이게 할 수 있습니다.
즉, 직접 만든 골판지 로봇에 AI 두뇌와 목소리를 붙이는 것입니다. 설치가 필요 없는 웹 앱이며, USB 케이블로 micro:bit와 연결합니다.

지원 환경
- 데스크톱 웹 브라우저 – Chrome, Edge, Opera
- ChromeOS (크롬북)
이 앱은 데스크톱 전용입니다. USB 시리얼 통신(Web Serial API)을 사용하기 때문에 모바일 기기에서는 동작하지 않습니다. Safari와 Firefox도 Web Serial API를 지원하지 않으므로 반드시 Chrome 계열 브라우저를 사용하세요.
또한 마이크 권한을 허용해야 음성 인식이 작동하며, 음성 출력은 컴퓨터에 설치된 한국어 음성(TTS)을 사용합니다. Windows의 경우 [설정 → 시간 및 언어 → 음성]에서 한국어 음성이 설치되어 있는지 확인하세요.
준비물
- micro:bit (v1 / v2 모두 가능)
- 데이터 전송이 가능한 USB 케이블 (충전 전용 케이블은 동작하지 않습니다)
- Google Gemini API 키 – Google AI Studio에서 무료로 발급받을 수 있습니다
- 마이크와 스피커가 있는 컴퓨터
어떻게 작동하나요?
전체 흐름은 다음과 같습니다.
음성 인식 → Gemini 답변 생성 → 음성 출력 → micro:bit에 START / STOP 전송
- 브라우저의 음성 인식이 사용자의 말을 글자로 바꿉니다.
- 그 내용이 설정된 로봇 성격 프롬프트와 함께 Gemini에 전달됩니다.
- Gemini는 JSON 형식으로 답을 돌려줍니다. 앱은 이 중
answer부분만 읽어 음성으로 출력합니다. - 말을 시작할 때
START, 끝날 때STOP문자열이 USB 시리얼로 micro:bit에 전송됩니다. - micro:bit는 이 신호를 받아 입을 벌리거나 LED를 켜는 등 원하는 동작을 수행합니다.
Gemini가 반환하는 JSON 형식은 다음과 같습니다.
{"answer":"대답 내용","emotion":"neutral|happy|thinking|surprised"}
현재 앱은 answer만 사용하지만, emotion 값을 활용하도록 확장하면 감정에 따라 로봇 표정을 바꾸는 심화 프로젝트로 이어갈 수 있습니다.
micro:bit 코드 구조
MakeCode에서는 serial on data received (new line) 블록과 serial read until (new line) 블록을 사용합니다. 처리해야 할 명령은 단 세 가지뿐입니다.
connected– 앱과 연결되었음을 알리는 신호START– 로봇이 말하기 시작 (입을 벌리거나 LED 켜기)STOP– 로봇이 말하기 종료 (입을 닫거나 LED 끄기)
반대로 micro:bit에서 listen 문자열을 보내면 앱이 자동으로 음성 인식을 시작합니다. A 버튼에 이 기능을 연결해 두면 로봇의 버튼을 눌러 말을 거는 자연스러운 상호작용을 만들 수 있습니다.
시리얼 통신 속도는 기본 115200 baud를 권장합니다. MakeCode 코드와 앱 설정의 baud rate가 반드시 일치해야 합니다.
사용 순서
- Google AI Studio에서 Gemini API 키를 발급받아 앱에 입력하고 [키 저장]을 누릅니다.
- 모델을 선택합니다. 응답 속도가 빠른 gemini-2.5-flash-lite를 권장합니다.
- 사용할 한국어 목소리를 목록에서 고르고 [목소리 테스트]로 확인합니다.
- micro:bit를 USB로 연결한 뒤 [micro:bit 시리얼 연결]을 누르고 포트를 선택합니다.
- [START/STOP 테스트]로 로봇이 신호에 반응하는지 확인합니다.
- [로봇 성격 / 프롬프트 설정]에서 로봇의 캐릭터를 정합니다.
- [말하기]를 누르거나 micro:bit A 버튼을 눌러 대화를 시작합니다.
수업 아이디어
1. 역할극 로봇 만들기
프롬프트만 바꾸면 로봇의 성격이 완전히 달라집니다. 학생들이 직접 프롬프트를 설계하고 서로의 로봇과 대화해 보는 활동이 가능합니다. 대답을 그대로 반복하지 않고 사용자의 말에 반응하거나 되묻도록 지시할 때 대화가 훨씬 재미있어집니다.
예시 프롬프트:
- 너는 명탐정이다. 사탕 가게에서 사탕이 사라진 사건을 조사 중이며, 나를 유력한 용의자로 의심하고 있다. 매우 의심 많고 집요하게 질문하라. 답변은 2문장 이내로 한다. 반드시 JSON 형식 {“answer”:”대답 내용”,”emotion”:”neutral|happy|thinking|surprised”} 으로만 답한다.
- 너는 조금 엉뚱한 골판지 로봇이다. 사람이 한 말을 그대로 따라 하지 말고, 살짝 과장해서 장난스럽게 되받아쳐라. 답변은 1~2문장으로 짧게 한다. 반드시 JSON 형식 {“answer”:”대답 내용”,”emotion”:”neutral|happy|thinking|surprised”} 으로만 답한다.
2. 퀴즈 게임 친구
로봇을 학습 도우미로 만들 수 있습니다. 프롬프트를 바꾸는 것만으로 과목별 활용이 가능합니다.
- 우리는 게임을 한다. 네가 나라 이름을 말하면 나는 수도를 맞힌다. 내 대답 후에는 항상 다음 문제를 낸다. 반드시 JSON 형식 {“answer”:”대답 내용”,”emotion”:”neutral|happy|thinking|surprised”} 으로만 답한다.
- 우리는 구구단 게임을 한다. 한 자리 수 두 개를 말해 주고 내가 곱셈 결과를 맞히게 한다. 정답이면 칭찬하고 다음 문제를 낸다. 반드시 JSON 형식 {“answer”:”대답 내용”,”emotion”:”neutral|happy|thinking|surprised”} 으로만 답한다.
3. 영어 회화 파트너
영어로 대답하도록 프롬프트를 설정하고 음성도 영어 목소리로 바꾸면, 부담 없이 말해 볼 수 있는 회화 연습 상대가 됩니다. 사람이 아닌 로봇이라 학생들이 훨씬 편하게 시도합니다.
4. 말할 때 움직이는 입 만들기
START 신호를 받으면 서보모터가 반복해서 열리고 닫히며, STOP을 받으면 멈추도록 만듭니다. 골판지 로봇이 실제로 말하는 것처럼 보이는 순간이 학생들에게 가장 인상적인 장면입니다. 여기에 LED로 감정 표현을 더하면 완성도가 크게 올라갑니다.
자주 발생하는 문제
시리얼 포트가 목록에 보이지 않아요
데이터 전송이 되는 USB 케이블인지 확인하세요. 충전 전용 케이블은 인식되지 않습니다. 또한 MakeCode 편집기나 다른 시리얼 프로그램이 열려 있으면 포트를 선점하므로, 모두 닫은 뒤 다시 연결하세요.
한국어 목소리가 목록에 없어요
컴퓨터 시스템에 한국어 TTS 음성이 설치되어 있어야 합니다. Windows는 [설정 → 시간 및 언어 → 음성]에서 한국어 음성 팩을 추가하세요. 설치 후 브라우저를 다시 시작해야 목록에 나타납니다.
음성 인식이 안 돼요
마이크 권한이 허용되어 있는지 확인하세요. 주소창 왼쪽 자물쇠 아이콘에서 권한을 확인할 수 있습니다. 교실처럼 주변이 시끄러운 환경에서는 인식률이 떨어지므로 마이크에 가까이서 또렷하게 말하는 것이 좋습니다.
로봇이 이상한 형식으로 대답해요
프롬프트를 수정할 때 JSON 형식으로만 답하라는 지시를 반드시 유지해야 합니다. 이 부분이 빠지면 앱이 답변을 읽어내지 못합니다. 프롬프트를 바꿀 때는 성격 설명만 바꾸고 형식 지정 문장은 그대로 두세요.
개인정보 및 안전 안내
- 이 앱은 교육용으로 제작되었습니다. 개인정보(이름, 주소, 연락처 등)를 입력하지 마세요.
- 입력한 내용은 Google Gemini API로 직접 전송되어 Google의 서비스 약관에 따라 처리됩니다. 별도의 서버에 저장되지 않습니다.
- API 키는 사용자의 브라우저에만 저장되며 외부로 전송되지 않습니다. 공용 컴퓨터에서는 사용 후 반드시 삭제하세요.
- 생성형 AI의 답변은 사실과 다를 수 있습니다. 학생들에게 이 점을 함께 지도해 주세요. 오히려 AI가 틀리는 순간이 좋은 수업 소재가 됩니다.