
¿Qué es?
Una réplica animatrónica de K-VRC, el robot del episodio Three Robots de Love, Death & Robots. Tiene carcasa impresa en 3D, se mueve con un servo, pone caras en una pantalla OLED, escucha y habla a través de un HAT de audio y lleva una cámara para tareas de visión. Todo lo gobierna una Raspberry Pi Zero 2W con Python.
Le hablas y te contesta como K-VRC: transcribe lo que dices con Whisper, responde con la API de chat de OpenAI usando un prompt de personalidad y acompaña la respuesta con animaciones en la OLED y movimiento del servo.
¿Por qué lo hice?
Soy fan de la serie y K-VRC es el robot perfecto para replicar: una forma sencilla de imprimir, una "cara" que cabe en una OLED y mucha personalidad. Además me permitía juntar en un único proyecto todo lo que me gusta hacer en mi tiempo libre: impresión 3D, electrónica, Python e IA conversacional.
Antes de integrarlo todo fui sacando cada componente en un mini-repositorio propio (control de la OLED SSD1306, HAT de audio WM8960, cámara OV5647, servo, efectos LED). Eso me dio piezas probadas y reutilizables, y K-VRC es donde se juntan.
Cómo funciona
Hardware
| Componente | Función |
|---|---|
| Raspberry Pi Zero 2W | Cerebro del robot, ejecuta todo el software |
| Servo SG90 | Movimiento de cabeza/cuerpo (PWM por GPIO) |
| OLED I2C (SSD1306) | Expresiones faciales y estado |
| WM8960 Audio HAT | Entrada de micrófono y salida de audio |
| Cámara OV5647 (CSI) | Captura de imagen para tareas de visión |
| Fuente USB 5V/2A | Alimentación |
La carcasa se imprime por partes (cabeza, cuerpo, patas) en PLA o ABS, con capa de 0,2 mm y en torno al 20 % de relleno, dejando hueco para el servo, la OLED y el cableado.
Software
El bucle principal (main.py) encadena estos pasos:
- Captura de audio en tiempo real y guardado en un WAV temporal.
- Detección de voz calculando el RMS de la grabación y comparándolo con un umbral de silencio configurable en
config.py. - Transcripción del audio con Whisper (API de OpenAI).
- Conversación con la API de chat de OpenAI, usando
personality_system.txtcomo prompt de sistema para que responda como K-VRC. - Salida: la respuesta se muestra y dispara animaciones en la OLED (
OledFaceController) y movimientos del servo (servo_controller).
El repo está organizado por módulos (chat/, face/, movement/, vision/, audio/, led/) con ejemplos independientes de cada uno, y los STL en 3D_Models/.
Stack
- Lenguaje: Python 3 sobre Raspberry Pi OS
- Hardware:
gpiozero/RPi.GPIO, Adafruit CircuitPython SSD1306,pyaudio - Visión: OpenCV, NumPy
- IA: OpenAI Whisper (STT) y Chat API (personalidad)
- Voz:
pyttsx3como TTS - Licencia: MIT
Estado
Activo. El robot funciona de principio a fin (hay demo en vídeo) y el repositorio sigue recibiendo cambios. Lo que tengo en la lista:
- Sacar más partido a la cámara (detección de caras para que "mire" a quien le habla).
- Más expresiones en la OLED y sincronizarlas mejor con el audio.
- Una voz más parecida a la del personaje.
Enlaces
- Repositorio: https://github.com/Guilleloma/K-VRC
- Vídeo demo: https://www.youtube.com/watch?v=sy0K2py56xU