1P by GN⁺ 3일전 | ★ favorite | 댓글 1개
  • 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 포럼 스레드에서 제공

데모 영상

주요 하드웨어 및 기능

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

코드 수정 안내

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

주의 사항

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