Mục lục:

Cờ vua Robot Raspberry Pi Lynxmotion AL5D Arm: 6 bước
Cờ vua Robot Raspberry Pi Lynxmotion AL5D Arm: 6 bước

Video: Cờ vua Robot Raspberry Pi Lynxmotion AL5D Arm: 6 bước

Video: Cờ vua Robot Raspberry Pi Lynxmotion AL5D Arm: 6 bước
Video: robotic arm playing chess 2024, Tháng bảy
Anonim
Image
Image

Xây dựng robot cờ vua này và xem nó đánh bại mọi người!

Việc xây dựng khá dễ dàng nếu bạn có thể làm theo hướng dẫn về cách chế tạo cánh tay và nếu bạn có ít nhất kiến thức cơ bản về lập trình máy tính và Linux.

Con người, chơi màu trắng, di chuyển. Điều này được phát hiện bởi hệ thống nhận dạng trực quan. Sau đó, robot suy nghĩ và sau đó thực hiện hành động của mình. Và như thế …

Có lẽ điều mới lạ nhất ở robot này là mã nhận dạng chuyển động. Mã tầm nhìn này cũng có thể sử dụng được cho rô bốt cờ vua được xây dựng theo nhiều cách khác (chẳng hạn như rô bốt cờ vua của tôi với chế tạo LEGO).

Bởi vì bước đi của con người được hệ thống thị giác nhận biết, không cần phần cứng đặc biệt của bàn cờ (chẳng hạn như công tắc sậy hoặc bất cứ thứ gì).

Mã của tôi có sẵn để sử dụng cá nhân.

Bước 1: Yêu cầu

Bản dựng phần cứng
Bản dựng phần cứng

Tất cả mã được viết bằng Python, sẽ chạy trên Raspberry Pi, trong số những thứ khác, một Raspberry Pi.

Raspberry Pi là một máy tính bảng đơn nhỏ, rẻ (khoảng $ 40) được phát triển bởi Raspberry Pi Foundation. Mô hình ban đầu trở nên phổ biến hơn nhiều so với dự đoán, bán cho các mục đích sử dụng như chế tạo người máy

Robot của tôi sử dụng Raspberry Pi và cánh tay robot được chế tạo từ một bộ: Lynxmotion AL5D. Bộ phụ kiện đi kèm với một bảng điều khiển servo. (Liên kết tôi vừa cung cấp là đến trang web của RobotShop tại Hoa Kỳ; nhấp vào một trong các cờ ở trên cùng bên phải của các trang web của họ cho quốc gia của bạn, ví dụ: Vương quốc Anh).

Bạn cũng sẽ cần bàn, máy ảnh, ánh sáng, bàn phím, màn hình và thiết bị trỏ (ví dụ: chuột). Và tất nhiên, các quân cờ và một bàn cờ. Tôi mô tả tất cả những điều này chi tiết hơn trong các bước tiếp theo.

Bước 2: Xây dựng phần cứng

Bản dựng phần cứng
Bản dựng phần cứng

Như tôi đã chỉ ra trước đây, trung tâm của mã tầm nhìn sẽ hoạt động với nhiều bản dựng khác nhau.

Bản dựng này sử dụng một bộ cánh tay robot từ Lynxmotion, AL5D. Đi kèm với bộ này là bảng điều khiển servo SSC-32U, được sử dụng để điều khiển động cơ trong cánh tay.

Tôi chọn AL5D vì cánh tay phải có khả năng thực hiện các chuyển động chính xác lặp lại và không bị trôi. Người gắp phải có khả năng đi được giữa các mảnh và cánh tay phải có thể vươn ra phía xa của bàn cờ. Tôi vẫn cần thực hiện một số sửa đổi như chi tiết bên dưới.

Raspberry Pi tôi sử dụng là Raspberry Pi 3 Model B +. Điều này nói chuyện với bo mạch SSC-32U thông qua kết nối USB.

CHỈNH SỬA: Raspberry Pi 4 hiện đã có sẵn. Bạn sẽ cần:

  • Bộ nguồn USB-C 15W - chúng tôi khuyên bạn nên sử dụng Bộ cấp nguồn USB-C Raspberry Pi chính thức
  • Thẻ microSD được tải NOOBS, phần mềm cài đặt hệ điều hành (mua thẻ SD được tải sẵn cùng với Raspberry Pi của bạn hoặc tải NOOBS để tự nạp thẻ)
  • Bàn phím và chuột (xem sau)
  • Cáp kết nối với màn hình thông qua cổng micro HDMI của Raspberry Pi 4

Tôi cần tiếp cận thêm trên cánh tay robot, vì vậy tôi đã thực hiện một số sửa đổi nhỏ đối với nó, sử dụng các bộ phận Lynxmotion bổ sung có thể mua từ RobotShop:

1. Đã thay ống 4,5 inch bằng ống 6 inch - Lynxmotion part AT-04, mã sản phẩm RB-Lyn-115.

2. Đã thử sử dụng một bộ lò xo bổ sung, nhưng đã quay trở lại một cặp khi tôi thực hiện mục 3 bên dưới

3. Mở rộng chiều cao bằng cách sử dụng miếng đệm 1 inch - Lynxmotion part HUB-16, mã sản phẩm RB-Lyn-336.

4. Mở rộng phạm vi tiếp cận của bộ kẹp bằng cách sử dụng các miếng kẹp dự phòng được gắn bởi một số mảnh LEGO dự phòng mà tôi đã có và dây thun (!) Điều này hoạt động rất tốt, vì nó mang lại sự linh hoạt khi nâng các miếng.

Những sửa đổi này có thể được nhìn thấy trong hình trên bên phải.

Có một camera gắn phía trên bàn cờ. Điều này được sử dụng để xác định bước di chuyển của con người.

Bước 3: Phần mềm di chuyển rô bốt

Tất cả mã được viết bằng Python 2. Mã động học nghịch đảo là cần thiết để di chuyển các động cơ khác nhau một cách chính xác để có thể di chuyển các quân cờ. Tôi sử dụng mã thư viện từ Lynxmotion hỗ trợ di chuyển động cơ theo hai chiều và đã thêm vào đó bằng mã của riêng tôi cho kích thước 3 chiều, góc gắp và chuyển động của hàm kẹp.

Vì vậy, sau đó chúng ta có mã sẽ di chuyển quân, lấy quân, thành, hỗ trợ người qua đường, v.v.

Công cụ cờ vua là Stockfish - có thể đánh bại bất kỳ con người nào! "Stockfish là một trong những công cụ cờ vua mạnh nhất trên thế giới. Nó cũng mạnh hơn nhiều so với những kiện tướng cờ vua giỏi nhất của con người."

Mã để điều khiển động cơ cờ vua, xác nhận rằng một nước đi là hợp lệ, v.v. là ChessBoard.py

Tôi sử dụng một số mã từ https://chess.fortherapy.co.uk để giao tiếp với điều đó. Mã của tôi (ở trên) sau đó giao diện với điều đó!

Bước 4: Phần mềm nhận biết chuyển động của con người

Tôi đã mô tả chi tiết điều này trong bản dựng Lego Robot Cờ vua của mình - vì vậy tôi không cần phải nhắc lại ở đây!

Các miếng "đen" của tôi ban đầu có màu nâu, nhưng tôi đã sơn chúng màu đen mờ (với "sơn bảng đen"), điều này làm cho thuật toán hoạt động tốt hơn trong các điều kiện ánh sáng thay đổi hơn.

Bước 5: Máy ảnh, Đèn, Bàn phím, Bảng, Màn hình

Máy ảnh, Đèn, Bàn phím, Bảng, Màn hình
Máy ảnh, Đèn, Bàn phím, Bảng, Màn hình
Máy ảnh, Đèn, Bàn phím, Bảng, Màn hình
Máy ảnh, Đèn, Bàn phím, Bảng, Màn hình

Chúng giống như trong bản dựng Lego Robot Cờ vua của tôi, vì vậy tôi không cần phải lặp lại chúng ở đây.

Ngoại trừ việc lần này tôi sử dụng một loa khác và tốt hơn đáng kể, loa Bluetooth Lenrui, mà tôi kết nối với RPi bằng USB.

Có sẵn từ amazon.com, amazon.co.uk và các cửa hàng khác.

Ngoài ra, tôi hiện đang sử dụng một máy ảnh khác - HP Webcam HD 2300, vì tôi không thể làm cho máy ảnh trước hoạt động đáng tin cậy.

Các thuật toán hoạt động tốt nhất nếu bàn cờ có màu sắc khác xa màu của các quân cờ! Trong rô bốt của tôi, các quân cờ có màu trắng và nâu, và bàn cờ được làm bằng tay bằng quân bài và có màu xanh lá cây nhạt với sự khác biệt nhỏ giữa các ô vuông "đen" và "trắng".

Các thuật toán cần một định hướng cụ thể của máy ảnh đối với hội đồng quản trị. Vui lòng bình luận bên dưới nếu bạn gặp vấn đề. Cánh tay có phạm vi tiếp cận hạn chế, vì vậy kích thước hình vuông nên là 3,5 cm.

Bước 6: Lấy phần mềm

1. Cá kho

Nếu bạn chạy Raspbian trên RPi của mình, bạn có thể sử dụng công cụ Stockfish 7 - hoàn toàn miễn phí. Chỉ cần chạy:

sudo apt-get install stockfish

2. ChessBoard.py Lấy cái này từ đây.

3. Mã dựa trên https://chess.fortherapy.co.uk/home/a-wooden-chess… Đi kèm với mã của tôi.

4. Thư viện chuyển động ngược chiều trong Python 2D -

5. Mã của tôi gọi tất cả mã ở trên và mã này giúp rô bốt thực hiện các bước di chuyển và mã tầm nhìn của tôi. Nhận điều này từ tôi bằng cách đăng ký kênh YouTube của tôi trước tiên, sau đó nhấp vào nút "Yêu thích" ở gần đầu Tài liệu hướng dẫn này và sau đó đăng nhận xét lên Tài liệu hướng dẫn này và tôi sẽ trả lời.

Đề xuất: