Mục lục:
Video: Bộ giải khối Rubik thời gian thực bằng cách sử dụng Raspberry Pi và OpenCV: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Đây là phiên bản thứ 2 của công cụ khối lập phương Rubik được tạo ra để giải trong phương pháp bịt mắt. Phiên bản đầu tiên được phát triển bởi javascript, bạn có thể xem dự án RubiksCubeBlindfolded1
Không giống như phiên bản trước, phiên bản này sử dụng thư viện OpenCV để phát hiện màu sắc và nhập các đầu vào, đồng thời cung cấp kỹ thuật trực quan hóa tốt hơn.
Vấn đề lớn nhất trong phiên bản mới nhất này là trực quan hóa kết quả đầu ra, các mục trình tự được hiển thị trên hình khối được vẽ 1 tại một thời điểm. Vì khối lập phương là một hình dạng 3D nên rất khó để hiển thị tất cả các mặt cùng một lúc. Xem kết quả trên video YouTube trên kênh YouTube của tôi
Tôi đang sử dụng một khối không có nhãn dán, khối này cần được nhận dạng tùy chỉnh và hầu hết các mã nguồn mở không được hỗ trợ. Tôi đã sử dụng mã nguồn mở này do Kim Koomen phát triển để chỉ định các khu vực cố định trên khung máy ảnh để phát hiện màu sắc chính xác của các mặt khối lập phương qbr project
Bước 1: Các thành phần cần thiết
- Raspberry Pi
- webcam
hoặc bạn có thể sử dụng máy tính xách tay của mình
Bước 2: Sự phụ thuộc
- Python 3
- thư viện numpy
- Thư viện OpenCV
$ sudo apt-get install python3-opencv
Gói rubiksBlindfolded
$ pip3 cài đặt RubiksBlindfolded
Bước 3: Chuẩn bị
Bạn cần phải hiệu chỉnh phát hiện màu như một bước trước. Các mã màu HSV thay đổi tùy theo ánh sáng, chất lượng và độ phân giải của máy ảnh, cũng như màu sắc của hình khối. Trong trường hợp của tôi, tôi kết hợp đèn trắng và đèn vàng để có kết quả chính xác.
Cập nhật hàm get_color_name (hsv) trên colordetection.py
Mã nguồn ban đầu sử dụng gói kociemba để giải khối lập phương, nó giải quyết bằng cách tìm các bước ngược lại của bất kỳ sự tranh giành nào. Trong phiên bản này, tôi đã sử dụng gói giải của riêng mình có tên là RubiksBlindfolded được xuất bản trên PyPI. Xem mô tả để biết cách sử dụng nó RubiksBlindfolded
Bước 4: Cách sử dụng
Sau khi cài đặt tất cả các phụ thuộc và thiết lập máy ảnh của bạn, đây là lúc để chạy tập lệnh Blindfolded.py
Đầu tiên, bạn cần quét khối lập phương của mình theo các hướng chính xác. Đây là cấu trúc hình khối, thứ tự quét các mặt không quan trọng. Lưu ý rằng đây là các màu mặc định của các mặt khối lập phương, bạn có thể thay đổi chúng bằng cách cập nhật từ điển ký hiệu trên tập lệnh Blindfolded.py
Để thực hiện quét, nhấn phím khoảng trắng để lưu chế độ xem và phím ESC sau khi kết thúc
Thứ hai, bạn có thể xem trình tự giải pháp trên bảng điều khiển và kiểm tra tính chẵn lẻ để cho bạn biết liệu bạn có cần áp dụng thuật toán chẵn lẻ hay không
Thứ ba, một khung mới sẽ được tạo ra hiển thị 2 hình khối được vẽ cho trình tự cạnh và trình tự góc. Bạn có thể sử dụng các phím mũi tên trái và phải để chuyển đổi giữa các mục trình tự và các phím mũi tên lên và xuống để chuyển đổi giữa cạnh và góc. màu xám nhạt thể hiện trình tự hiện tại.
Bạn có thể thấy các màu của bộ đệm hiện tại đang thay đổi động bằng các phím mũi tên. Màu xám đại diện cho cubie mục tiêu và màu hồng đại diện cho mặt hoán đổi
Mã nguồn
github.com/mn-banjar/blindfolded2
Đề xuất:
Cách sử dụng mô-đun đồng hồ thời gian thực (DS3231): 5 bước
Cách sử dụng mô-đun đồng hồ thời gian thực (DS3231): DS3231 là đồng hồ thời gian thực I2C (RTC) chi phí thấp, cực kỳ chính xác với bộ dao động tinh thể bù nhiệt độ (TCXO) và tinh thể tích hợp. Thiết bị kết hợp một đầu vào pin và duy trì thời gian hiện hành chính xác khi nguồn điện chính để th
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã thực hiện đúng cách: 8 bước (có hình ảnh)
Trạm thời tiết NaTaLia: Trạm thời tiết sử dụng năng lượng mặt trời Arduino Đã hoàn thành đúng cách: Sau 1 năm hoạt động thành công trên 2 địa điểm khác nhau, tôi đang chia sẻ kế hoạch dự án trạm thời tiết sử dụng năng lượng mặt trời của mình và giải thích cách nó phát triển thành một hệ thống thực sự có thể tồn tại trong thời gian dài thời kỳ từ năng lượng mặt trời. Nếu bạn theo dõi
Nhận dạng thiết bị thời gian thực bằng cách sử dụng dấu chân EM: 6 bước
Nhận dạng thiết bị thời gian thực bằng cách sử dụng dấu chân EM: Thiết bị này nhằm phân loại các thiết bị điện tử khác nhau theo tín hiệu EM của chúng. Đối với các thiết bị khác nhau, chúng có các tín hiệu EM khác nhau do nó phát ra. Chúng tôi đã phát triển một giải pháp IoT để xác định các thiết bị điện tử sử dụng Hạt
Hướng dẫn: Cách xây dựng mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: 3 bước
Hướng dẫn: Cách xây dựng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: Mô tả: Hướng dẫn này sẽ hiển thị chi tiết cho tất cả các bạn về cách xây dựng máy dò khoảng cách bằng cách sử dụng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X và Arduino UNO và nó sẽ chạy giống như bạn muốn. Làm theo hướng dẫn và bạn sẽ hiểu gia sư này
Nâng cấp Khởi chạy không gian của bạn bằng nút Giai đoạn Vật lý cho Chương trình Không gian Kerbal: 6 bước
Nâng cấp Khởi chạy Không gian của Bạn bằng Nút Giai đoạn Vật lý cho Chương trình Không gian Kerbal: Gần đây, tôi đã chọn phiên bản demo của Chương trình Không gian Kerbal. Kerbal Space Program là một trò chơi giả lập cho phép bạn thiết kế và phóng tên lửa và điều hướng chúng đến các mặt trăng và hành tinh xa xôi. Tôi vẫn đang cố gắng hạ cánh thành công lên mặt trăng (o