S.A.R.C.A.S.M, la máquina automática para resolver cubos Rubik ligeramente irritante
(github.com/vindar)- S.A.R.C.A.S.M es un robot basado en impresión 3D que escanea y resuelve un cubo Rubik, y además añade comentarios de voz sarcásticos
- Usa un microcontrolador Teensy 4.1 y un ESP32-CAM para realizar el reconocimiento visual y el control
- Implementa gráficos 2D y 3D, animaciones y sincronización labial mediante una pantalla ILI9341, y sincroniza la iluminación RGBW con el audio
- Genera voz directamente en el dispositivo con TTS basado en espeak-ng, e incluye una colección de frases sarcásticas
- Para ajustar todo el código a la RAM, es necesario modificar archivos del núcleo de Teensy, y por ahora se publica en estado incompleto
Resumen del proyecto
-
S.A.R.C.A.S.M (Slightly Annoying Rubik’s Cube Automatic Solving Machine) es un robot que resuelve automáticamente un cubo Rubik
- Está compuesto por una estructura de hardware fabricada con impresora 3D y un sistema de control basado en Teensy
- Escanea el cubo, calcula la solución y, durante el proceso, emite respuestas de voz sarcásticas
-
El repositorio incluye código y esquemas de circuito, y se ofrece información adicional en el hilo del foro de Teensy
- Enlace al foro: https://forum.pjrc.com/index.php/…
Video de demostración
- Clip corto: https://youtube.com/shorts/Xer4mPZZH8E
- Demo completa: https://youtu.be/WV52RtuWXk0
Hardware principal y funciones
- Usa Teensy 4.1 como controlador principal y un ESP32-CAM para la captura de imágenes
- Implementa gráficos 2D y 3D personalizados, animaciones y sincronización labial mediante una pantalla ILI9341
- Manipula el cubo con motores paso a paso y servomotores, y detecta errores con sensores de posición
- La iluminación RGBW se sincroniza con el audio para ofrecer efectos visuales
- Genera voz en el dispositivo con TTS basado en espeak-ng, e incluye una colección de frases sarcásticas
Guía para modificar el código
- Para ajustar todo el código a la RAM, es necesario modificar archivos del núcleo de Teensy
- En los archivos
cores/teensy4/usb_serial.cycores/teensy4/usb_serial2.c
se debe eliminar el atributoDMAMEMque aparece antes de las definiciones de los arreglostxbuffer[]yrx_buffer[]
- En los archivos
Avisos
- Actualmente el proyecto es un trabajo en progreso, y el estado del repositorio está desordenado e incompleto
- Es posible que siga así hasta que el desarrollador tenga tiempo
1 comentarios
Opiniones de Hacker News
Usé una Raspberry Pi 2 W, y funcionaba bien para mezclar y resolver un cubo 3x3x3 con solo dos servomotores
Le dediqué mucho tiempo a construirlo, pero de verdad fue un proyecto muy divertido. Me da gusto ver que otras personas lo disfrutan
Dejé los detalles del hardware y el software en este post del foro de Teensy
Como no sabía cómo resolverlo, pedí un folleto, pero lo que me llegó fue un libro de teoría de grupos (group theory). Era demasiado para mi cerebro adolescente de ese entonces
Se puede ver en este video de YouTube y en este artículo de Purdue
También hay un video de demostración más largo
Como vivo en el mundo del software, me pregunto qué tan difícil sería construir algo así con mis propias manos
Como aficionado a los cubos, esto también sería perfecto como rompehielos en la oficina. Si un compañero pasa, mezcla el cubo y lo avienta a la máquina, siento que todos la pasarían bien
Los cuberos pasan mucho más tiempo mezclando que resolviendo. Eso de mezclar es lo que se debería automatizar
Estaría buenísimo tener un dispositivo que ponga automáticamente el cubo en cierto estado para poder practicar repetidamente un algoritmo específico
Da la impresión de que toma mucho tiempo, pero en realidad la diferencia no es tan grande
Yo hice un experimento parecido hace tiempo, y cuando lo giraba rápido nunca volvía a resolverse. Lo más probable es que hayas metido por error un doble giro (U2) o que hayas contado mal las repeticiones
Para la explicación matemática, se puede consultar la página 41 de este material
Si lo giraste en la dirección opuesta, entonces bastan 63 repeticiones. Mira este enlace
Los movimientos de este robot se parecen muchísimo a los de mi trabajo de entonces. En especial me gusta la salida en pantalla
Los humanos hacen ambas cosas en paralelo, pero como un robot ejecuta movimientos ya calculados, el tiempo depende únicamente de la velocidad
Ojalá hubiera más robots al estilo Adams