Mục lục:
- Bước 1: Yêu cầu
- Bước 2: Xây dựng phần cứng
- Bước 3: Phần mềm di chuyển rô bốt
- Bước 4: Phần mềm nhận biết chuyển động của con người
- Bước 5: Máy ảnh, Đèn, Bàn phím, Bảng, Màn hình
- Bước 6: Lấy phần mềm
Video: Cờ vua Robot Raspberry Pi Lynxmotion AL5D Arm: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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
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
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
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:
Vua kim loại: 5 bước
The Metal King: Đã tạo ra một tác phẩm điêu khắc sư tử 2d với những con ngựa bằng đồng và một số đèn led. Sunfat có kích thước 15 × 15 cm
Chơi cờ vua Arduino: 6 bước
Arduino Chessclock: Tôi không thể tìm thấy hướng dẫn về một chiếc đồng hồ chơi cờ Arduino tốt, vì vậy thay vào đó, tôi đã xây dựng một chiếc đồng hồ cờ vua Arduino của riêng mình mà tôi sẽ mô tả ở đây
Robot cờ vua được làm bằng LEGO và Raspberry Pi: 6 bước
Robot cờ vua được làm bằng LEGO và Raspberry Pi: Làm kinh ngạc bạn bè của bạn với robot cờ vua này! Việc chế tạo không quá khó nếu bạn đã từng chế tạo robot LEGO và nếu bạn có ít nhất kiến thức sơ cấp về lập trình máy tính và Linux
Đồng hồ cờ vua Arduino đơn giản: 5 bước
Đồng hồ cờ Arduino đơn giản: Khi tôi nghĩ đến việc làm Đồng hồ cờ vua với Arduino, mục tiêu là xây dựng bằng cách sử dụng lập trình đơn giản mà không cần lớp sử dụng và làm việc với thanh ghi AVR. Cơ sở được sử dụng là Arduino Reference. Điều khó khăn nhất là thao tác hẹn giờ chỉ bằng
Cờ vua kỹ thuật số - Theo dõi trò chơi cờ vua của bạn trực tuyến: 5 bước
Cờ vua kỹ thuật số - Theo dõi trò chơi cờ vua của bạn trực tuyến: Tôi đã chơi rất nhiều cờ kể từ khi tôi còn nhỏ, và vì trên web có rất nhiều trang web để chơi cờ với máy tính hoặc đối thủ trực tiếp, tôi chưa bao giờ tìm thấy một trang web theo dõi ván cờ của bạn mà bạn đang thực sự chơi