Mục lục:

Dự án BricKuber - Robot giải khối lập phương Raspberry Pi Rubiks: 5 bước (có hình ảnh)
Dự án BricKuber - Robot giải khối lập phương Raspberry Pi Rubiks: 5 bước (có hình ảnh)

Video: Dự án BricKuber - Robot giải khối lập phương Raspberry Pi Rubiks: 5 bước (có hình ảnh)

Video: Dự án BricKuber - Robot giải khối lập phương Raspberry Pi Rubiks: 5 bước (có hình ảnh)
Video: Bản tin: Hé lộ hàng loạt dự án lớn ở Lâm Đồng vi phạm xây dựng | CafeLand 2024, Tháng sáu
Anonim
Image
Image

BricKuber có thể giải một khối Rubik trong khoảng chưa đầy 2 phút.

BricKuber là một robot giải khối Rubik mã nguồn mở mà bạn có thể tự chế tạo

Chúng tôi muốn chế tạo một robot giải khối Rubiks với Raspberry Pi. Thay vì chạy theo tốc độ, chúng tôi đã đi một cách đơn giản: nếu bạn có Raspberry Pi, bộ BrickPi và LEGO Mindstorms EV3 hoặc NXT Kit tiêu chuẩn, bạn sẽ có thể dễ dàng theo dõi bước chân của chúng tôi. Phần mềm được viết bằng ngôn ngữ lập trình Python. Bạn có thể xem tất cả mã nguồn trên Github tại đây.

Bối cảnh Khối lập phương Rubik gần đây đã bắt đầu quay trở lại. Được phát minh vào năm 1974, đây là đồ chơi bán chạy nhất thế giới. Nhưng việc giải quyết chúng cần có sự suy nghĩ, nỗ lực và kỹ năng… vậy tại sao không để một robot làm điều đó? Trong dự án này, chúng tôi sử dụng Raspberry Pi, BrickPi và một bộ LEGO Mindstorms và chế tạo một robot giải khối Rubik. Chỉ cần đặt một khối Rubik chưa được giải vào trình giải, chạy chương trình python và khối Rubik của bạn đã được giải! Dự án sử dụng số Pi để giải trực tiếp khối Rubik. BrickPi3 lấy khối Rubik chưa giải quyết và Raspberry Pi chụp ảnh từng mặt của khối Rubik bằng Máy ảnh Raspberry Pi. Pi tạo ra một bản đồ văn bản của các ô vuông màu hiển thị vị trí của chúng trên khối lập phương. Khi đã ánh xạ đầy đủ khối lập phương, Pi sử dụng thư viện python “kociemba” để vạch ra các bước di chuyển cần thiết để giải khối Rubik. Thông tin này được lấy bởi Pi và BrickPi3 để giải khối Rubik bằng cách sử dụng các động cơ LEGO. Kết quả: một khối Rubik đã được giải.

Bước 1: Công cụ và vật liệu

Xây dựng nó
Xây dựng nó
  • BrickPi3 - Chúng tôi sẽ sử dụng BrickPi để điều khiển các động cơ LEGO giải được công cụ giải khối Rubik.
  • Raspberry Pi - Pi sẽ xử lý, chụp ảnh và chỉ huy BrickPi.
  • Máy ảnh Raspberry Pi - Máy ảnh Pi sẽ chụp ảnh khối Rubiks chưa phân giải.
  • Cáp Ethernet - Bạn sẽ cần máy của mình được kết nối với internet. Nếu bạn muốn thực hiện việc này qua Wi-Fi, điều đó cũng tốt!
  • Raspbian cho Robots SD Card - Phần mềm chạy Raspberry Pi. Điều này đi kèm với hầu hết các phần mềm cần thiết cho hướng dẫn này. Bạn cũng có thể tải xuống phần mềm miễn phí.
  • Bộ LEGO Mindstorms EV3 (31313) - Bạn sẽ cần một đống LEGO và hai động cơ lớn, một động cơ servo và Cảm biến siêu âm.
  • Một khối Rubik - Chúng tôi đã tìm thấy một khối quay khá tự do ở đây. Tuy nhiên, bạn có thể chỉ sử dụng bất kỳ khối Rubik 9x9x9 nào.

Bước 2: Xây dựng nó

Xây dựng nó
Xây dựng nó
Xây dựng nó
Xây dựng nó

Xây dựng trình giải quyết

Thiết kế này được lấy cảm hứng từ thiết kế MindCub3r cho LEGO EV3. Để xây dựng BricKuber, hãy bắt đầu bằng cách xây dựng MindCub3r. Hướng dẫn xây dựng LEGO đầy đủ có thể được tìm thấy ở đây.

Thiết kế bộ giải khối Rubiks có ba bộ phận chuyển động chính. Đầu tiên là một cái nôi để đựng khối Rubik. Thứ hai là bộ xáo trộn, một cánh tay được sử dụng để lật khối Rubik.

Cuối cùng, chúng tôi thêm một cánh tay máy ảnh. Trong thiết kế ban đầu của MindCubr, điều này giữ cảm biến màu EV3 trên khối Rubik. Trong thiết kế đã sửa đổi của chúng tôi, nó chứa Máy ảnh Raspberry Pi trên khối Rubik. Chúng tôi sử dụng hai động cơ LEGO Mindstorms để điều khiển khối lập phương: động cơ thứ nhất nằm bên dưới giá đỡ để xoay khối và động cơ thứ hai di chuyển cánh tay xáo trộn để quay khối lập phương trên một trục ngược lại.

Lắp ráp BrickPi3

Bạn có thể tìm thấy hướng dẫn lắp ráp cho BrickPi3 tại đây. Chúng tôi sẽ cần phải lắp ráp vỏ, gắn BrickPi3, Raspberry Pi, Raspberry Pi Camera, thêm thẻ SD và thêm pin. Để giúp cài đặt phần mềm dễ dàng hơn, Raspbian for Robots đi kèm với hầu hết các phần mềm mà bạn cần cài đặt. Bạn sẽ cần ít nhất một Thẻ SD 8 GB và bạn sẽ muốn mở rộng đĩa để vừa với kích thước đầy đủ của Thẻ SD.

Đính kèm BrickPi3

Chúng tôi thêm BrickPi3 vào bộ lắp ráp LEGO. Chúng tôi đã sử dụng “đôi cánh” LEGO EV3 để hỗ trợ BrickPi3 và làm cho nó ngang bằng với phần thân BricKuber. Đây là một bước tốt để thêm pin 8XAA vào bộ nguồn và gắn bộ nguồn BrickPi3 vào bộ lắp ráp LEGO. Để lập trình, bạn có thể cấp nguồn cho BrickPi3 qua nguồn USB tới Raspberry Pi, tuy nhiên để di chuyển động cơ, bạn sẽ cần cung cấp điện bằng Power Pack.

Kết nối Động cơ với BrickPi3

Gắn động cơ Shuffler vào cổng động cơ “MD”. Gắn mô tơ đế vào cổng “MA” trên BrickPi3. Gắn động cơ cảm biến Máy ảnh vào cổng “MC” (đây là động cơ giống như servo nhỏ hơn). Mặc dù chúng tôi sẽ không di chuyển máy ảnh, nhưng bạn có thể muốn điều chỉnh vị trí của máy ảnh bằng động cơ.

Đính kèm Máy ảnh Raspberry Pi

Sử dụng hỗ trợ LEGO Camera, gắn máy ảnh. Thấu kính nhỏ màu đen của máy ảnh phải nằm gọn giữa hai thanh đỡ chùm LEGO. Cố định máy ảnh vào giá đỡ LEGO bằng một số băng dính điện. Đây là thời điểm tốt để đảm bảo rằng máy ảnh ở vị trí để có thể chụp toàn bộ khối Rubik. Bạn có thể chụp ảnh thử nghiệm bằng lệnh raspistill

raspistill -o cam.jpg

Kiểm tra xem khối lập phương có được căn giữa chính giữa bức tranh hay không.

Bước 3: Chuẩn bị phần mềm

Bạn có thể sử dụng bất kỳ phiên bản nào của Raspbian hoặc Raspbian dành cho Robot, hình ảnh tùy chỉnh của chúng tôi đi kèm với BrickPi3 đã được cài đặt. Nếu bạn sử dụng phiên bản tiêu chuẩn của Raspbian, bạn có thể cài đặt thư viện BrickPi3 bằng lệnh

sudo curl -kL dexterindustries.com/update_brickpi3 | bấu víu

Bước này sẽ cài đặt tất cả các thư viện cần thiết để chạy BrickPi3 trên Raspbian Image của bạn. Bỏ qua bước này nếu bạn đang sử dụng Raspbian dành cho Robot: BrickPi3 đã được cài đặt.

Cuối cùng, cài đặt tất cả các phụ thuộc dự án bằng lệnh:

sudo curl https://raw.githubusercontent.com/DexterInd/Brick… | bấu víu

Đối với bước này, BrickPi3 của bạn sẽ cần được kết nối với internet. Có một số thư viện mà dự án phụ thuộc vào, bao gồm một số thư viện quan trọng của Daniel Walton (@ dwalton76) trên Github, được sử dụng để giải khối Rubik.

Bước 4: Giải khối Rubik

Giải khối Rubik
Giải khối Rubik
Giải khối Rubik
Giải khối Rubik
Giải khối Rubik
Giải khối Rubik

Đặt một khối Rubik chưa giải vào trong giá đỡ. Chạy lệnh

sudo python ~ / Dexter / BrickPi3 / Projects / BricKuber / BricKuber.py

Robot sẽ xoay khối lập phương theo từng mặt và máy ảnh sẽ chụp 6 bức ảnh, mỗi mặt của khối lập phương. Raspberry Pi sẽ xác định cấu hình khối từ sáu hình ảnh. Cấu hình Cube sẽ được chuyển đến thư viện Python kociemba để tìm ra giải pháp hiệu quả. Cuối cùng, robot sẽ thực hiện các động tác để giải khối Rubik’s Cube!

Bước 5: Mã nguồn

Tất cả mã nguồn của BricKuber có thể được tìm thấy trong kho github mã nguồn mở của chúng tôi tại đây.

Dự án này sử dụng các gói phần mềm sau được cài đặt bằng lệnh

Đề xuất: