Obsah:

Šachový robot Raspberry Pi Lynxmotion AL5D Rameno: 6 krokov
Šachový robot Raspberry Pi Lynxmotion AL5D Rameno: 6 krokov

Video: Šachový robot Raspberry Pi Lynxmotion AL5D Rameno: 6 krokov

Video: Šachový robot Raspberry Pi Lynxmotion AL5D Rameno: 6 krokov
Video: Chinese chess robot - Rearrange 5 chess experiment . 2024, November
Anonim
Image
Image

Postavte tohto šachového robota a uvidíte, že porazí každého!

Postavenie je veľmi jednoduché, ak sa budete riadiť pokynmi na stavbu ramena a ak máte aspoň základné znalosti o počítačovom programovaní a Linuxe.

Človek, ktorý hrá biely, urobí pohyb. Toto je detekované systémom vizuálneho rozpoznávania. Potom robot uvažuje a potom sa pohne. A tak ďalej …

Snáď najaktuálnejšou vecou v tomto robote je kód na rozpoznávanie pohybov. Tento kód videnia je použiteľný aj pre šachové roboty postavené mnohými inými spôsobmi (napríklad môj šachový robot so stavbou LEGO).

Pretože pohyb človeka je rozpoznaný systémom videnia, nie je potrebný žiadny špeciálny hardvér na šachovnici (napríklad jazýčkové spínače alebo čokoľvek).

Môj kód je k dispozícii na osobné použitie.

Krok 1: Požiadavky

Hardvérová zostava
Hardvérová zostava

Celý kód je napísaný v Pythone, ktorý pobeží okrem iného na Raspberry Pi.

Raspberry Pi je malý, lacný (asi 40 dolárov) jednodoskový počítač vyvinutý Raspberry Pi Foundation. Pôvodný model sa stal oveľa obľúbenejším, ako sa očakávalo, a predával sa na použitie ako robotika

Môj robot používa Raspberry Pi a rameno robota je vyrobené zo súpravy: Lynxmotion AL5D. Súprava sa dodáva s doskou na ovládanie serva. (Odkaz, ktorý som práve uviedol, je na webovú stránku RobotShop v USA; kliknite na jeden z vlajok v pravom hornom rohu stránok týchto stránok pre vašu krajinu, napr. Spojené kráľovstvo).

Budete tiež potrebovať stôl, fotoaparát, osvetlenie, klávesnicu, obrazovku a ukazovacie zariadenie (napr. Myš). A samozrejme, šachové figúrky a doska. Všetky tieto veci podrobnejšie popíšem v nasledujúcich krokoch.

Krok 2: Zostava hardvéru

Hardvérová zostava
Hardvérová zostava

Ako som už naznačil, jadro kódu videnia bude fungovať s rôznymi zostavami.

Táto zostava používa súpravu robotického ramena od spoločnosti Lynxmotion, AL5D. Súčasťou súpravy je doska servoovládača SSC-32U, ktorá slúži na ovládanie motorov v ramene.

Vybral som si AL5D, pretože rameno musí byť schopné vykonávať opakované presné pohyby a neodpadávať. Drapák sa musí dostať medzi figúrky a rameno musí dosiahnuť na vzdialenejšiu stranu dosky. Stále som potreboval vykonať určité úpravy, ako je uvedené nižšie.

Raspberry Pi, ktorý používam, je Raspberry Pi 3 Model B+. Rozhovor s doskou SSC-32U prebieha prostredníctvom pripojenia USB.

EDIT: Raspberry Pi 4 je teraz k dispozícii. Budete potrebovať:

  • 15W napájací zdroj USB-C-odporúčame oficiálny napájací zdroj Raspberry Pi USB-C
  • Karta microSD nabitá systémom NOOBS, softvérom, ktorý inštaluje operačný systém (kúpte si vopred načítanú kartu SD spolu s Raspberry Pi alebo si stiahnite NOOBS a načítajte kartu sami)
  • Klávesnica a myš (pozri neskôr)
  • Kábel na pripojenie k displeju prostredníctvom portu micro HDMI Raspberry Pi 4

Potreboval som ďalší dosah na rameno robota, a tak som na ňom vykonal niekoľko drobných úprav pomocou ďalších dielov Lynxmotion, ktoré je možné kúpiť v obchode RobotShop:

1. Vymenená 4,5-palcová trubica za 6 palcovú-časť Lynxmotion AT-04, kód produktu RB-Lyn-115.

2. Skúšal som pomocou ďalšej sady pružín, ale vrátil som sa k jednému páru, keď som implementoval položku 3 nižšie

3. Predĺžte výšku pomocou 1-palcového rozpery-časť Lynxmotion HUB-16, kód produktu RB-Lyn-336.

4. Predĺžte dosah chápadla pomocou náhradných uchopovacích podložiek pripevnených o niektoré náhradné diely LEGO, ktoré som mal, a gumičiek (!) Toto funguje veľmi dobre, pretože prináša flexibilitu pri zdvíhaní dielov.

Tieto úpravy môžete vidieť na obrázku vyššie vpravo.

Nad šachovnicou je namontovaná kamera. Toto sa používa na určenie pohybu človeka.

Krok 3: Softvér, ktorý presúva robota

Celý kód je napísaný v jazyku Python 2. Na správne presunutie rôznych motorov je potrebný inverzný kinematický kód, aby bolo možné pohybovať šachovými figúrkami. Používam kód knižnice od Lynxmotion, ktorý podporuje pohyb motorov v dvoch dimenziách a pridal som k tomu svoj vlastný kód pre 3 rozmery, uhol uchopenia a pohyb čeľuste chápadla.

Takže potom máme kód, ktorý bude presúvať figúrky, brať figúrky, hrad, podporovať ich a podobne.

Šachovým motorom je Stockfish - ktorý dokáže poraziť každého človeka! "Stockfish je jedným z najsilnejších šachových motorov na svete. Je tiež oveľa silnejší ako najlepší ľudskí šachoví veľmajstri."

Kód na ovládanie šachového motora, overenie platnosti ťahu a podobne je ChessBoard.py

Na prepojenie s tým používam nejaký kód z https://chess.fortherapy.co.uk. Môj kód (vyššie) s tým potom spolupracuje!

Krok 4: Softvér, ktorý rozpoznáva ľudský pohyb

Podrobne som to popísal v zostave Instructable for my Chess Robot Lego - takže to tu nemusím opakovať!

Moje „čierne“kúsky boli pôvodne hnedé, ale namaľoval som ich matnou čiernou („tabuľovou farbou“), vďaka čomu algoritmus funguje lepšie za premenlivejších svetelných podmienok.

Krok 5: Fotoaparát, svetlá, klávesnica, stôl, displej

Fotoaparát, svetlá, klávesnica, stôl, displej
Fotoaparát, svetlá, klávesnica, stôl, displej
Fotoaparát, svetlá, klávesnica, stôl, displej
Fotoaparát, svetlá, klávesnica, stôl, displej

Sú rovnaké ako v mojej stavbe Chess Robot Lego, takže ich tu nemusím opakovať.

Až na to, že tentokrát som použil iný a výrazne lepší reproduktor, Bluetooth reproduktor Lenrui, ktorý k RPi pripájam pomocou USB.

K dispozícii na amazon.com, amazon.co.uk a ďalších predajniach.

Teraz tiež používam iný fotoaparát - webovú kameru HP Webcam HD 2300, pretože som nemohol dosiahnuť, aby sa predchádzajúci fotoaparát správal spoľahlivo.

Algoritmy fungujú najlepšie, ak má šachovnica farbu, ktorá má ďaleko od farby figúrok! V mojom robote sú figúrky sivobiele a hnedé a šachová doska je ručne vyrobená z karty a je svetlozelená s malým rozdielom medzi „čiernym“a „bielym“štvorcom.

Algoritmy vyžadujú konkrétnu orientáciu kamery na dosku. Ak máte problém, komentujte nižšie. Rameno má obmedzený dosah, a preto by mala mať veľkosť štvorca 3,5 cm.

Krok 6: Získanie softvéru

1. Stockfish

Ak na svojom RPi spustíte Raspbian, môžete použiť engine Stockfish 7 - je to zadarmo. Proste bež:

sudo apt-get install stockfish

2. ChessBoard.py Získajte to odtiaľto.

3. Kód založený na https://chess.fortherapy.co.uk/home/a-wooden-chess… Dodáva sa s mojím kódom.

4. Knižnica inverznej kinematiky Python 2D -

5. Môj kód, ktorý vyvolá všetok kód uvedený vyššie a ktorý prinúti robota vykonať pohyby, a môj kód videnia. Získajte to odo mňa tak, že sa najskôr prihlásite na odber môjho kanála YouTube, potom kliknete na tlačidlo „Obľúbené“v hornej časti tohto Pokynu a potom uverejníte komentár k tomuto Pokynu a ja odpoviem.

Odporúča: