S.A.R.C.A.S.M, cỗ máy tự động giải Rubik hơi gây khó chịu
(github.com/vindar)- S.A.R.C.A.S.M là robot in 3D có thể quét và giải khối Rubik, đồng thời thêm vào bình luận giọng nói mang tính châm biếm
- Sử dụng vi điều khiển Teensy 4.1 và ESP32-CAM để thực hiện nhận diện hình ảnh và điều khiển
- Thông qua màn hình ILI9341, thiết bị hiển thị đồ họa 2D·3D, hoạt ảnh và đồng bộ khẩu hình, đồng thời đèn RGBW được đồng bộ với âm thanh
- Tạo giọng nói trực tiếp trên thiết bị bằng TTS dựa trên espeak-ng, kèm bộ lời thoại châm biếm
- Cần sửa các tệp lõi Teensy để toàn bộ mã vừa trong RAM, và hiện được công khai ở trạng thái chưa hoàn thiện
Tổng quan dự án
-
S.A.R.C.A.S.M (Slightly Annoying Rubik’s Cube Automatic Solving Machine) là robot tự động giải khối Rubik
- Gồm cấu trúc phần cứng được chế tạo bằng máy in 3D và hệ thống điều khiển dựa trên Teensy
- Quét khối Rubik, tính toán lời giải, rồi phát ra các phản ứng bằng giọng nói châm biếm trong quá trình giải
-
Kho lưu trữ bao gồm mã nguồn và sơ đồ mạch, thông tin bổ sung được cung cấp trong chuỗi thảo luận trên diễn đàn Teensy
- Liên kết diễn đàn: https://forum.pjrc.com/index.php/…
Video demo
- Đoạn clip ngắn: https://youtube.com/shorts/Xer4mPZZH8E
- Demo đầy đủ: https://youtu.be/WV52RtuWXk0
Phần cứng và tính năng chính
- Dùng Teensy 4.1 làm bộ điều khiển chính, và ESP32-CAM để chụp ảnh
- Thông qua màn hình ILI9341, thiết bị hiển thị đồ họa 2D và 3D tùy biến, hoạt ảnh và đồng bộ khẩu hình
- Điều khiển khối Rubik bằng động cơ bước và động cơ servo, đồng thời dùng cảm biến vị trí để phát hiện lỗi
- Đèn RGBW được đồng bộ với âm thanh để tạo hiệu ứng hình ảnh
- Tạo giọng nói trên thiết bị bằng TTS dựa trên espeak-ng, kèm bộ lời thoại châm biếm
Hướng dẫn chỉnh sửa mã
- Cần sửa các tệp lõi Teensy để toàn bộ mã vừa trong RAM
- Trong các tệp
cores/teensy4/usb_serial.cvàcores/teensy4/usb_serial2.c,
cần xóa thuộc tínhDMAMEMđứng trước phần định nghĩa các mảngtxbuffer[]vàrx_buffer[]
- Trong các tệp
Lưu ý
- Hiện tại dự án là công việc đang được thực hiện dở dang, nên trạng thái của kho lưu trữ chưa được sắp xếp gọn gàng và còn thiếu sót
- Có khả năng tình trạng này sẽ được giữ nguyên cho đến khi tác giả có thời gian
1 bình luận
Ý kiến trên Hacker News
Tôi dùng Raspberry Pi 2 W, và nó hoạt động tốt trong việc xáo trộn rồi giải khối 3x3x3 chỉ với hai servo
Tôi đã dành rất nhiều thời gian để làm nó, nhưng đó thực sự là một công việc rất vui. Tôi rất mừng khi thấy người khác cũng thích nó
Tôi đã tổng hợp chi tiết về phần cứng và phần mềm trong bài viết trên diễn đàn Teensy
Tôi không biết cách giải nên đã đặt mua một cuốn sách hướng dẫn, nhưng thứ nhận được lại là một cuốn về lý thuyết nhóm (group theory). Với đầu óc tuổi teen của tôi khi đó thì quá khó
Có thể xem video YouTube và bài viết của Purdue
Còn có cả video demo dài hơn
Sống trong thế giới phần mềm nên tôi tự hỏi việc tự tay làm ra thứ như thế này sẽ khó đến mức nào
Với tư cách một người chơi cube như thú vui, thứ này cũng hoàn hảo để làm thiết bị phá băng trong văn phòng. Đồng nghiệp đi ngang qua có thể xáo khối cube rồi ném vào máy, chắc ai cũng sẽ thấy vui
Người chơi cube dành nhiều thời gian để xáo hơn là để giải. Việc xáo cần được tự động hóa
Nếu có một thiết bị tự động đưa khối cube về một trạng thái cụ thể để có thể luyện lặp lại một thuật toán nhất định thì sẽ rất tuyệt
Cảm giác thì có vẻ mất lâu, nhưng thực ra chênh lệch không nhiều
Tôi cũng từng làm thử thí nghiệm tương tự, nhưng khi xoay nhanh thì chưa bao giờ nó tự giải lại. Có lẽ tôi đã vô tình thêm một lần xoay đôi (U2) hoặc đếm sai số lần
Có thể xem giải thích toán học ở trang 41 của tài liệu này
Nếu xoay theo hướng ngược lại thì chỉ cần lặp 63 lần. Xem liên kết này
Chuyển động của robot lần này rất giống tác phẩm cũ của tôi. Tôi đặc biệt thích phần hiển thị trên màn hình
Con người làm song song hai việc này, nhưng robot thì chỉ thực hiện chuỗi nước đi đã tính sẵn, nên thời gian hoàn toàn phụ thuộc vào tốc độ
Mong sẽ có thêm nhiều robot mang phong cách Adams