# 살짝 짜증나는 루빅스 큐브 자동 해결 머신 S.A.R.C.A.S.M

> Clean Markdown view of GeekNews topic #24077. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24077](https://news.hada.io/topic?id=24077)
- GeekNews Markdown: [https://news.hada.io/topic/24077.md](https://news.hada.io/topic/24077.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-02T03:37:06+09:00
- Updated: 2025-11-02T03:37:06+09:00
- Original source: [github.com/vindar](https://github.com/vindar/SARCASM)
- Points: 1
- Comments: 1

## Topic Body

- **S.A.R.C.A.S.M**은 루빅스 큐브를 스캔하고 해결하며, **풍자적인 음성 코멘트**를 덧붙이는 3D 프린트 기반 로봇  
- **Teensy 4.1** 마이크로컨트롤러와 **ESP32-CAM**을 사용해 영상 인식과 제어를 수행  
- **ILI9341 디스플레이**를 통해 2D·3D 그래픽, 애니메이션, 립싱크를 구현하고, **RGBW 조명**을 오디오와 동기화  
- **espeak-ng 기반 TTS**로 장치 내에서 직접 음성을 생성하며, 풍자적인 대사 모음 포함  
- 전체 코드를 RAM에 맞추기 위해 Teensy 코어 파일 수정이 필요하며, 현재 **미완성 상태**로 공개  

---
### 프로젝트 개요
- **S.A.R.C.A.S.M (Slightly Annoying Rubik’s Cube Automatic Solving Machine)** 은 루빅스 큐브를 자동으로 해결하는 로봇  
  - 3D 프린터로 제작된 하드웨어 구조와 Teensy 기반 제어 시스템으로 구성  
  - 큐브를 스캔하고 해답을 계산한 뒤, 해결 과정 중 풍자적인 음성 반응을 출력  

- 저장소에는 **코드와 회로도**가 포함되어 있으며, 추가 정보는 **Teensy 포럼 스레드**에서 제공  
  - 포럼 링크: https://forum.pjrc.com/index.php?threads/sarcasm-an-over-engineered-rubiks-cube-solving-robot.77338/  

### 데모 영상
- 짧은 클립: https://youtube.com/shorts/Xer4mPZZH8E  
- 전체 데모: https://youtu.be/WV52RtuWXk0  

### 주요 하드웨어 및 기능
- **Teensy 4.1**을 메인 컨트롤러로 사용하고, **ESP32-CAM**으로 이미지 캡처 수행  
- **ILI9341 디스플레이**를 통해 커스텀 2D 및 3D 그래픽, 애니메이션, 립싱크 구현  
- **스테퍼 모터와 서보 모터**로 큐브를 조작하며, **위치 센서**로 오류 감지  
- **RGBW 조명**이 오디오와 동기화되어 시각적 효과 제공  
- **espeak-ng 기반 TTS**로 장치 내에서 음성을 생성하며, 풍자적인 대사 모음 포함  

### 코드 수정 안내
- 전체 코드를 RAM에 맞추기 위해 **Teensy 코어 파일 수정** 필요  
  - `cores/teensy4/usb_serial.c` 및 `cores/teensy4/usb_serial2.c` 파일에서  
    `txbuffer[]`와 `rx_buffer[]` 배열 정의 앞의 `DMAMEM` 속성을 제거해야 함  

### 주의 사항
- 현재 프로젝트는 **진행 중인 작업**으로, 저장소 상태가 **정리되지 않고 불완전함**  
- 개발자가 시간이 날 때까지 이 상태가 유지될 가능성 있음

## Comments



### Comment 45763

- Author: neo
- Created: 2025-11-02T03:37:06+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=45777682) 
- 몇 년 전 **Cubotino**를 직접 만들어봄. 구조는 비슷하고 [GitHub 저장소](https://github.com/AndreaFavero71/cubotino)에 올려둠  
  **Raspberry Pi 2 W**를 사용했고, 단 두 개의 서보모터로 3x3x3 큐브를 섞고 푸는 기능이 잘 작동함
- 모두 안녕함. 나는 **SARCASM**의 제작자임. 공유해준 OP에게 감사함  
  제작에 많은 시간을 들였지만 정말 즐거운 작업이었음. 다른 사람들이 즐기는 걸 보니 기쁨임  
  하드웨어와 소프트웨어에 대한 자세한 내용을 [Teensy 포럼 글](https://forum.pjrc.com/index.php?threads/sarcasm-an-over-engineered-rubiks-cube-solving-robot.77338/)에 정리해둠
  - 정말 멋짐. 70년대에 학교에서 처음으로 **Rubik’s Cube**를 가져간 아이였던 기억이 남음.  
    해결법을 몰라서 책자를 주문했는데, 돌아온 건 **군론(group theory)** 책자였음. 당시 내 10대의 머리로는 너무 어려웠음
  - 이걸 1920년대로 **타임머신** 타고 가져가서 유리 케이스에 넣고 5센트씩 받고 보여주면 부자가 될 것 같음
  - 외형과 팔의 **STL 파일**을 공유해줄 수 있는지 궁금함. 정말 훌륭한 프로젝트임
  - 나도 프로젝트 이름 때문에 시간 쏟는 걸 정당화한 적이 있어서 공감됨
- 관련 정보로, **가장 빠른 루빅스 큐브 로봇**의 기네스 기록은 103밀리초임  
  [YouTube 영상](https://www.youtube.com/shorts/ue2gZ2vxs48)과 [Purdue 기사](https://engineering.purdue.edu/ECE/News/2025/purdue-ece-students-shatter-guinness-world-record-for-fastest-puzzle-cube-solving-robot) 참고 가능함
  - 그 로봇을 만드는 동안 몇 개의 큐브가 **폭발**했을지 궁금함
  - 놀랍고 동시에 약간 **미친** 느낌임
  - 로봇 솔버는 정신적 문제라기보다 **물리적 문제**에 가까움. 큐브의 위쪽과 아래쪽 모서리 사진만 있으면 나노초 안에 해결 가능함
- 디자인이 정말 멋짐. [데모 영상](https://youtube.com/shorts/Xer4mPZZH8E)도 훌륭함
  - 최근 본 것 중 가장 **매력적인 프로젝트**임  
    더 긴 [데모 영상](https://www.youtube.com/watch?v=WV52RtuWXk0)도 있음  
    소프트웨어 세계에 살다 보니 이런 걸 직접 만들어보는 게 얼마나 어려울지 궁금함  
    큐브를 좋아하는 취미인으로서, 이건 사무실에서 **얼음 깨기용 장치**로도 완벽함. 동료가 지나가다 큐브를 섞고 기계에 던져 넣으면 모두 즐거워할 것 같음
- 나는 자동으로 **섞는 기계**가 필요함. 큐브 두 개를 두고, 하나를 푸는 동안 다른 하나를 섞는 식임  
  큐버들은 푸는 시간보다 섞는 데 훨씬 더 많은 시간을 씀. 섞는 게 자동화되어야 함
  - 나도 그 부분이 가장 어렵다고 생각함. 빠르게 풀려면 다양한 **패턴 학습**이 필요함  
    특정 알고리즘을 반복 연습할 수 있도록 큐브를 자동으로 특정 상태로 만들어주는 장치가 있다면 정말 좋을 것 같음
  - 나는 이 분야를 잘 모르지만, 혹시 **디지털 큐브 면**이 있는지 궁금함. 물리적 큐브인데 색상을 즉시 바꿀 수 있는 형태로
  - 일정 수준까지는 섞는 것도 좋은 연습임. 정해진 알고리즘대로 섞으면 30회 이하의 움직임으로 끝남  
    체감상 오래 걸리는 것 같지만 실제로는 그렇게 차이 나지 않음
  - 그냥 **해결 기계를 역방향**으로 돌리면 되지 않을까 생각함
- 프로젝트에 대한 더 자세한 설명은 [이 포럼 글](https://forum.pjrc.com/index.php?threads/sarcasm-an-over-engineered-rubiks-cube-solving-robot.77338/)에 있음
- HN에 묻고 싶음. 큐브를 푼 상태에서 인접한 두 면을 같은 방향으로 번갈아 돌리면 언젠가 다시 풀릴 줄 알았는데, 수백 번 해도 안 풀림. 이유가 뭘까 궁금함
  - 예를 들어 **RU 조합**은 순환군의 차수가 105임. 즉, 총 210번의 회전(각 면 105번씩)을 해야 원래 상태로 돌아감  
    나도 예전에 비슷한 실험을 했는데, 빠르게 돌릴 때는 절대 안 풀렸음. 아마 **이중 회전(U2)** 을 실수로 넣었거나 횟수를 잘못 셌을 가능성이 큼  
    수학적 설명은 [이 자료](https://faculty.etsu.edu/gardnerr/4127/algebra-club/rubik-talk2a.pdf) 41쪽 참고 가능함
  - 정확히 **105회 반복**해야 함. [시각화 링크](https://alpha.twizzle.net/explore/?alg=%28U+R%29105) 참고  
    만약 반대 방향으로 돌렸다면 63회 반복이면 됨. [이 링크](https://alpha.twizzle.net/explore/?alg=%28U+R%27%2963) 참고
- 16년 전에 내가 만든 [큐브 로봇 영상](https://www.youtube.com/watch?v=bkWLQZgi9uE)이 있음  
  이번 로봇의 움직임이 내 예전 작품과 매우 비슷함. 특히 **화면 출력**이 마음에 듦
- 큐브를 푸는 과정은 두 단계로 나뉨 — **움직임 계산**과 **움직임 실행**임  
  인간은 이 두 과정을 병행하지만, 로봇은 이미 계산된 움직임을 수행하므로 시간은 오직 **속도**에 달려 있음
- 제작자의 **개성**이 소프트웨어에 그대로 드러남. Douglas Adams가 봤다면 분명 좋아했을 것 같음  
  더 많은 **‘Adams풍’ 로봇**이 나오길 바람
  - **Unsirious Cybernetics**에서 더 많은 개성 있는 로봇이 나오길 기대함
