Spisu treści:

Robot szachowy Raspberry Pi Lynxmotion AL5D Ramię: 6 kroków
Robot szachowy Raspberry Pi Lynxmotion AL5D Ramię: 6 kroków

Wideo: Robot szachowy Raspberry Pi Lynxmotion AL5D Ramię: 6 kroków

Wideo: Robot szachowy Raspberry Pi Lynxmotion AL5D Ramię: 6 kroków
Wideo: robotic arm playing chess 2024, Listopad
Anonim
Image
Image

Zbuduj tego robota szachowego i zobacz, jak pokona wszystkich!

Łatwo jest zbudować, jeśli potrafisz postępować zgodnie z instrukcjami, jak zbudować ramię i jeśli masz przynajmniej elementarną wiedzę z zakresu programowania komputerowego i Linuksa.

Człowiek grając białymi wykonuje ruch. Jest to wykrywane przez system rozpoznawania wizualnego. Robot zastanawia się, a następnie wykonuje swój ruch. I tak dalej …

Być może najbardziej nowatorską rzeczą w tym robocie jest kod rozpoznawania ruchu. Ten kod wizyjny jest również użyteczny dla robotów szachowych zbudowanych na wiele innych sposobów (takich jak mój robot szachowy z konstrukcją LEGO).

Ponieważ ruch człowieka jest rozpoznawany przez system wizyjny, nie jest potrzebny żaden specjalny sprzęt do szachownicy (taki jak kontaktrony lub cokolwiek innego).

Mój kod jest dostępny do użytku osobistego.

Krok 1: Wymagania

Budowa sprzętu
Budowa sprzętu

Cały kod jest napisany w Pythonie, który będzie działał między innymi na Raspberry Pi.

Raspberry Pi to mały, niedrogi (około 40 USD) komputer jednopłytkowy opracowany przez Fundację Raspberry Pi. Oryginalny model stał się znacznie bardziej popularny niż oczekiwano, sprzedając go do zastosowań takich jak robotyka

Mój robot korzysta z Raspberry Pi, a ramię robota zbudowane jest z zestawu: Lynxmotion AL5D. Do zestawu dołączona jest płytka kontrolera serwomechanizmu. (Link, który właśnie podałem, prowadzi do amerykańskiej witryny RobotShop; kliknij jedną z flag w prawym górnym rogu stron witryny dla Twojego kraju, np. Wielka Brytania).

Potrzebny będzie również stół, kamera, oświetlenie, klawiatura, ekran i urządzenie wskazujące (np. mysz). No i oczywiście figury szachowe i plansza. Wszystkie te rzeczy opisuję bardziej szczegółowo w kolejnych krokach.

Krok 2: Budowa sprzętu

Budowa sprzętu
Budowa sprzętu

Jak już wcześniej wspomniałem, serce kodu wizji będzie działać z różnymi kompilacjami.

Ta konstrukcja wykorzystuje zestaw ramienia robota firmy Lynxmotion, AL5D. Do zestawu dołączona jest płytka kontrolera serwo SSC-32U, która służy do sterowania silnikami w ramieniu.

Wybrałem AL5D, ponieważ ramię musi być w stanie wykonywać powtarzalne, dokładne ruchy i nie dryfować. Chwytak musi być w stanie dostać się między pionkami, a ramię musi być w stanie dosięgnąć drugiej strony planszy. Nadal musiałem wprowadzić pewne modyfikacje, jak opisano poniżej.

Raspberry Pi, którego używam, to Raspberry Pi 3 Model B+. To komunikuje się z płytą SSC-32U przez połączenie USB.

EDYCJA: Raspberry Pi 4 jest już dostępny. Będziesz potrzebować:

  • Zasilacz USB-C 15W – polecamy oficjalny zasilacz Raspberry Pi USB-C
  • Karta microSD z oprogramowaniem NOOBS, które instaluje system operacyjny (kup wstępnie załadowaną kartę SD wraz z Raspberry Pi lub pobierz NOOBS, aby samodzielnie załadować kartę)
  • Klawiatura i mysz (patrz dalej)
  • Kabel do podłączenia do wyświetlacza przez port micro HDMI Raspberry Pi 4

Potrzebowałem większego zasięgu ramienia robota, więc dokonałem kilku drobnych modyfikacji, wykorzystując dodatkowe części Lynxmotion, które można kupić w RobotShop:

1. Wymieniono rurkę 4,5 cala na rurkę 6 cali - Lynxmotion część AT-04, kod produktu RB-Lyn-115.

2. Próbowałem użyć dodatkowego zestawu sprężyn, ale wróciłem do jednej pary, gdy zaimplementowałem punkt 3 poniżej

3. Zwiększono wysokość za pomocą 1 calowej przekładki - Lynxmotion część HUB-16, kod produktu RB-Lyn-336.

4. Wydłużono zasięg chwytaka za pomocą zapasowych podkładek chwytaka dołączonych do niektórych posiadanych przeze mnie zapasowych klocków LEGO oraz gumek(!) Działa to bardzo dobrze, ponieważ wprowadza elastyczność podczas podnoszenia elementów.

Te modyfikacje można zobaczyć na powyższym obrazku po prawej stronie.

Nad szachownicą zamontowana jest kamera. Służy do określania ruchu człowieka.

Krok 3: Oprogramowanie, które porusza robotem

Cały kod jest napisany w Pythonie 2. Kod kinematyki odwrotnej jest potrzebny do prawidłowego poruszania różnymi silnikami, tak aby można było przesuwać figury szachowe. Używam kodu biblioteki Lynxmotion, która obsługuje przesuwanie silników w dwóch wymiarach i dodałem do tego własny kod dla 3 wymiarów, kąta chwytaka i ruchu szczęki chwytaka.

Mamy więc kod, który będzie przesuwał pionki, brał pionki, zamknął, wspierał en passant i tak dalej.

Silnikiem szachowym jest Sztokfisz, który może pokonać każdego człowieka! „Stockfish to jeden z najsilniejszych szachowych silników na świecie. Jest też znacznie silniejszy niż najlepsi ludzcy arcymistrzowie szachowi”.

Kod do sterowania silnikiem szachowym, sprawdzania, czy ruch jest prawidłowy i tak dalej, to ChessBoard.py

Używam kodu z https://chess.fortherapy.co.uk, aby się z tym połączyć. Mój kod (powyżej) następnie się z tym łączy!

Krok 4: Oprogramowanie, które rozpoznaje ruch człowieka

Opisałem to szczegółowo w instrukcji dla mojego robota szachowego Lego - więc nie muszę tego tutaj powtarzać!

Moje "czarne" elementy były oryginalnie brązowe, ale pomalowałem je na matową czerń ("farbą tablicową"), co sprawia, że algorytm działa lepiej w bardziej zmiennych warunkach oświetleniowych.

Krok 5: Kamera, światła, klawiatura, stół, wyświetlacz

Kamera, światła, klawiatura, stół, wyświetlacz
Kamera, światła, klawiatura, stół, wyświetlacz
Kamera, światła, klawiatura, stół, wyświetlacz
Kamera, światła, klawiatura, stół, wyświetlacz

Są takie same jak w moim kompilacji Chess Robot Lego, więc nie muszę ich tutaj powtarzać.

Tyle że tym razem użyłem innego i znacznie lepszego głośnika, głośnika Lenrui Bluetooth, który podłączam do RPi przez USB.

Dostępne na amazon.com, amazon.co.uk i innych punktach sprzedaży.

Ponadto używam teraz innego aparatu - kamery internetowej HP HD 2300, ponieważ poprzednia kamera nie działała niezawodnie.

Algorytmy działają najlepiej, gdy szachownica ma kolor bardzo odległy od koloru pionków! W moim robocie pionki są w kolorze złamanej bieli i brązu, a szachownica jest ręcznie robiona w karty i jest jasnozielona z niewielką różnicą między "czarnymi" i "białymi" kwadratami.

Algorytmy wymagają szczególnej orientacji kamery na płytkę. Proszę o komentarz poniżej, jeśli masz problem. Ramię ma ograniczony zasięg, więc rozmiar kwadratu powinien wynosić 3,5 cm.

Krok 6: Uzyskanie oprogramowania

1. Sztokfisz

Jeśli korzystasz z Raspbian na swoim RPi, możesz użyć silnika Stockfish 7 - jest bezpłatny. Po prostu biegnij:

sudo apt-get zainstaluj sztokfisz

2. ChessBoard.py Pobierz to stąd.

3. Kod oparty na https://chess.fortherapy.co.uk/home/a-wooden-chess… Dołączony do mojego kodu.

4. Biblioteka Python 2D Inverse Kinematics -

5. Mój kod, który wywołuje powyższy kod i który sprawia, że robot wykonuje ruchy, oraz mój kod wizji. Zdobądź to ode mnie, najpierw subskrybując mój kanał YouTube, a następnie klikając przycisk „Ulubione” u góry tej instrukcji, a następnie publikując komentarz do tej instrukcji, a ja odpowiem.

Zalecana: