Obsah:
- Krok 1: Požadavky
- Krok 2: Sestavení hardwaru
- Krok 3: Software, který přesouvá robota
- Krok 4: Software, který rozpoznává lidský tah
- Krok 5: Fotoaparát, světla, klávesnice, stůl, displej
- Krok 6: Získání softwaru
Video: Šachový robot Raspberry Pi Lynxmotion AL5D Rameno: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Postavte tohoto šachového robota a uvidíte, že porazí každého!
Je to docela snadné stavět, pokud můžete postupovat podle pokynů, jak vytvořit paži, a pokud máte alespoň základní znalosti počítačového programování a Linuxu.
Člověk, který hraje bíle, dělá krok. Toto je detekováno systémem vizuálního rozpoznávání. Robot poté přemýšlí a poté se pohybuje. A tak dále …
Snad nejmodernější věcí v tomto robotu je kód pro rozpoznávání pohybu. Tento kód vidění je také použitelný pro šachové roboty postavené mnoha jinými způsoby (například můj šachový robot se stavěním LEGO).
Protože pohyb člověka je rozpoznán systémem vidění, není potřeba žádný speciální šachovnicový hardware (například jazýčkové spínače nebo cokoli jiného).
Můj kód je k dispozici pro osobní použití.
Krok 1: Požadavky
Veškerý kód je napsán v Pythonu, který poběží mimo jiné na Raspberry Pi.
Raspberry Pi je malý, levný (asi 40 dolarů) jednodeskový počítač vyvinutý Raspberry Pi Foundation. Původní model se stal mnohem populárnějším, než se očekávalo, a prodával se pro použití jako je robotika
Můj robot používá Raspberry Pi a rameno robota je vyrobeno ze stavebnice: Lynxmotion AL5D. Sada je dodávána s deskou řadiče serva. (Odkaz, který jsem právě uvedl, je na americký web RobotShop; klikněte na jeden z vlajek v pravém horním rohu stránek tohoto webu pro vaši zemi, např. Spojené království).
Budete také potřebovat stůl, kameru, osvětlení, klávesnici, obrazovku a polohovací zařízení (např. Myš). A samozřejmě šachové figurky a prkno. Všechny tyto věci popisuji podrobněji v následujících krocích.
Krok 2: Sestavení hardwaru
Jak jsem již dříve naznačil, jádro kódu vidění bude fungovat s různými sestaveními.
Tato sestava používá sadu robotických ramen od Lynxmotion, AL5D. Součástí sady je deska servopohonu SSC-32U, která slouží k ovládání motorů v paži.
Vybral jsem si AL5D, protože paže musí být schopna provádět opakované přesné pohyby a nesmí se unášet. Drapák se musí dostat mezi figurky a paže musí dosáhnout na vzdálenější stranu desky. Stále jsem potřeboval provést nějaké úpravy, jak je popsáno níže.
Raspberry Pi, který používám, je Raspberry Pi 3 Model B+. Toto hovoří s deskou SSC-32U prostřednictvím připojení USB.
EDIT: Nyní je k dispozici Raspberry Pi 4. Budete potřebovat:
- 15W napájecí zdroj USB-C-doporučujeme oficiální napájecí zdroj Raspberry Pi USB-C
- Karta microSD nabitá softwarem NOOBS, který nainstaluje operační systém (kupte si předem načtenou kartu SD spolu s Raspberry Pi nebo si stáhněte NOOBS a načtěte kartu sami)
- Klávesnice a myš (viz později)
- Kabel pro připojení k displeji přes port micro HDMI Raspberry Pi 4
Potřeboval jsem další dosah na rameno robota, a tak jsem na něm provedl několik drobných úprav pomocí dalších dílů Lynxmotion, které lze zakoupit v RobotShopu:
1. Nahrazena 4,5palcová trubka 6palcovou-část Lynxmotion AT-04, kód produktu RB-Lyn-115.
2. Zkoušel jsem použít další sadu pružin, ale vrátil jsem se k jednomu páru, když jsem implementoval položku 3 níže
3. Prodlužte výšku pomocí 1palcového spaceru-část Lynxmotion HUB-16, kód produktu RB-Lyn-336.
4. Prodlužte dosah chapadla pomocí náhradních chapadel připevněných některými náhradními kusy LEGO, které jsem měl, a gumičkami (!) To funguje velmi dobře, protože přináší flexibilitu při zvedání kusů.
Tyto úpravy můžete vidět na obrázku výše vpravo.
Nad šachovnicí je namontovaná kamera. Toto se používá k určení pohybu člověka.
Krok 3: Software, který přesouvá robota
Veškerý kód je napsán v Pythonu 2. K správnému pohybu různých motorů je zapotřebí inverzní kinematický kód, aby bylo možné přesouvat šachové figurky. Používám kód knihovny od Lynxmotion, který podporuje pohyb motorů ve dvou rozměrech, a přidal jsem k tomu svůj vlastní kód pro 3 rozměry, úhel chapadla a pohyb čelistí chapadla.
Takže pak máme kód, který bude přesouvat figurky, brát figurky, hradit, podporovat en passant a tak dále.
Šachovým motorem je Stockfish - který dokáže porazit každého člověka! „Stockfish je jedním z nejsilnějších šachových motorů na světě. Je také mnohem silnější než nejlepší lidští šachoví velmistři.“
Kód pro ovládání šachového enginu, ověření platnosti tahu atd. Je ChessBoard.py
K propojení s tím používám nějaký kód z https://chess.fortherapy.co.uk. Můj kód (výše) s tím pak spolupracuje!
Krok 4: Software, který rozpoznává lidský tah
Podrobně jsem to popsal v sestavě Instructable for my Chess Robot Lego - takže to tady nemusím opakovat!
Moje „černé“kousky byly původně hnědé, ale namaloval jsem je matně černě („barvou na tabuli“), díky čemuž algoritmus funguje lépe za proměnlivějších světelných podmínek.
Krok 5: Fotoaparát, světla, klávesnice, stůl, displej
Jsou stejné jako v mém Chess Robot Lego buildu, takže je zde nemusím opakovat.
Až na to, že jsem tentokrát použil jiný a podstatně lepší reproduktor, reproduktor Lenrui Bluetooth, který připojuji k RPi přes USB.
K dispozici na amazon.com, amazon.co.uk a dalších prodejnách.
Také nyní používám jiný fotoaparát - webovou kameru HP Webcam HD 2300, protože se mi předchozí fotoaparát nepodařilo spolehlivě chovat.
Algoritmy fungují nejlépe, pokud má šachovnice barvu, která je hodně vzdálená barvě figurek! V mém robotu jsou figurky špinavě bílé a hnědé a šachovnice je ručně vyrobená z karty a je světle zelená s malým rozdílem mezi „černým“a „bílým“čtvercem.
Algoritmy vyžadují zvláštní orientaci kamery na palubu. Pokud máte problém, napište komentář níže. Rameno má omezený dosah, takže velikost čtverce by měla být 3,5 cm.
Krok 6: Získání softwaru
1. Stockfish
Pokud na svém RPi používáte Raspbian, můžete použít engine Stockfish 7 - je to zdarma. Prostě běž:
sudo apt-get install stockfish
2. ChessBoard.py Získejte to odsud.
3. Kód založený na https://chess.fortherapy.co.uk/home/a-wooden-chess… Dodává se s mým kódem.
4. Knihovna inverzní kinematiky Pythonu 2D -
5. Můj kód, který vyvolá veškerý výše uvedený kód a který přiměje robota provést tah, a můj kód vidění. Získejte to ode mne tak, že se nejprve přihlásíte k odběru mého kanálu YouTube, poté kliknete na tlačítko „Oblíbené“v horní části tohoto Instructable a poté zveřejníte komentář k tomuto Instructable, a já odpovím.
Doporučuje:
Robotické rameno s chapadlem: 9 kroků (s obrázky)
Robotické rameno s drapákem: Sklizeň citroníků je považována za těžkou práci, kvůli velké velikosti stromů a také kvůli horkému podnebí v oblastech, kde jsou vysazeny citroníky. Proto potřebujeme něco jiného, abychom zemědělským pracovníkům pomohli dokončit jejich práci více
3D robotické rameno s krokovými motory ovládanými Bluetooth: 12 kroků
3D robotické rameno s krokovými motory ovládanými Bluetooth: V tomto tutoriálu uvidíme, jak vyrobit 3D robotické rameno s krokovými motory 28byj-48, servomotorem a 3D tištěnými díly. Deska s plošnými spoji, zdrojový kód, elektrické schéma, zdrojový kód a spousta informací jsou obsaženy na mých webových stránkách
Rameno robota: 15 kroků
Robot Arm: Have Auto System
Rameno robota ovládané rotačním kodérem: 6 kroků
Rameno robota ovládané rotačním kodérem: Navštívil jsem howtomechatronics.com a viděl tam robotické rameno ovládané bluetooth. Nerad používám bluetooth a navíc jsem viděl, že můžeme servo ovládat pomocí rotačního kodéru, takže jsem přepracoval, abych mohl ovládat robota rameno použijte rotační kodér a zaznamenejte jej
Šachový robot vyrobený z LEGO a Raspberry Pi: 6 kroků
Šachový robot vyrobený z LEGO a Raspberry Pi: Ohromte své přátele tímto šachovým robotem! Není těžké stavět, pokud jste dříve vyráběli roboty LEGO a pokud máte alespoň základní znalosti o počítačovém programování a Linuxu. Robot dělá vlastní pohyby a používá vizuální rozpoznávání