Mục lục:

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
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

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

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
Video: PythonML 07: Convolutional Neural Network 2 2024, Tháng mười một
Anonim

Đâ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

Sử dụng
Sử dụng
Sử dụng
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: