Inhoudsopgave:
- Stap 1: Vereisten
- Stap 2: De hardware-build
- Stap 3: De software die de robot beweegt
- Stap 4: De software die de beweging van de mens herkent
- Stap 5: Camera, verlichting, toetsenbord, tafel, display
- Stap 6: De software verkrijgen
Video: Schaakrobot Raspberry Pi Lynxmotion AL5D Arm - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Bouw deze schaakrobot en zie hoe hij iedereen verslaat!
Het is vrij eenvoudig te bouwen als je de instructies voor het bouwen van de arm kunt volgen en als je op zijn minst een elementaire kennis hebt van computerprogrammering en Linux.
De wit spelende mens doet een zet. Dit wordt gedetecteerd door het visuele herkenningssysteem. De robot denkt dan na en maakt dan zijn beweging. Enzovoort …
Misschien wel het meest nieuwe aan deze robot is de code voor bewegingsherkenning. Deze vision-code is ook bruikbaar voor schaakrobots die op veel andere manieren zijn gebouwd (zoals mijn schaakrobot met LEGO build).
Omdat de beweging van de mens wordt herkend door een vision-systeem, is er geen speciale schaakbordhardware (zoals reed-schakelaars of wat dan ook) nodig.
Mijn code is beschikbaar voor persoonlijk gebruik.
Stap 1: Vereisten
Alle code is geschreven in Python, die onder andere op een Raspberry Pi zal draaien.
De Raspberry Pi is een kleine, goedkope (ongeveer $ 40) computer met één bord, ontwikkeld door de Raspberry Pi Foundation. Het originele model werd veel populairder dan verwacht en verkocht voor toepassingen zoals robotica
Mijn robot gebruikt een Raspberry Pi en de robotarm is opgebouwd uit een kit: Lynxmotion AL5D. De kit wordt geleverd met een servocontrollerkaart. (De link die ik zojuist heb gegeven is naar de Amerikaanse site van RobotShop; klik op een van de vlaggen in de rechterbovenhoek van hun sitepagina's voor uw land, bijvoorbeeld VK).
Je hebt ook een tafel, een camera, verlichting, een toetsenbord, scherm en aanwijsapparaat (bijvoorbeeld muis) nodig. En natuurlijk schaakstukken en een bord. Ik beschrijf al deze dingen in meer detail in de volgende stappen.
Stap 2: De hardware-build
Zoals ik eerder al aangaf, zal het hart van de vision-code werken met verschillende builds.
Deze build maakt gebruik van een robotarmkit van Lynxmotion, de AL5D. Inbegrepen bij de kit is een SSC-32U servocontrollerkaart, die wordt gebruikt om de motoren in de arm te besturen.
Ik heb voor de AL5D gekozen omdat de arm herhaaldelijk nauwkeurige bewegingen moet kunnen maken en niet afdrijft. De grijper moet tussen de stukken kunnen komen en de arm moet tot aan de andere kant van het bord kunnen reiken. Ik moest nog enkele wijzigingen aanbrengen, zoals hieronder beschreven.
De Raspberry Pi die ik gebruik is een Raspberry Pi 3 Model B+. Deze praat met het SSC-32U-bord via een USB-verbinding.
EDIT: De Raspberry Pi 4 is nu beschikbaar. Je hebt nodig:
- Een 15 W USB-C-voeding - we raden de officiële Raspberry Pi USB-C-voeding aan
- Een microSD-kaart geladen met NOOBS, de software die het besturingssysteem installeert (koop een vooraf geladen SD-kaart samen met je Raspberry Pi, of download NOOBS om zelf een kaart te laden)
- Een toetsenbord en muis (zie later)
- Een kabel om aan te sluiten op een beeldscherm via de micro HDMI-poort van een Raspberry Pi 4
Ik had meer reikwijdte op de robotarm nodig, dus heb ik er een paar kleine wijzigingen aan aangebracht, met behulp van extra Lynxmotion-onderdelen die kunnen worden gekocht bij RobotShop:
1. De 4,5 inch buis vervangen door een 6 inch buis - Lynxmotion onderdeel AT-04, productcode RB-Lyn-115.
2. Ik heb geprobeerd een extra set veren te gebruiken, maar ging terug naar één paar toen ik item 3 hieronder implementeerde
3. Vergroot de hoogte met een 1 inch spacer - Lynxmotion onderdeel HUB-16, productcode RB-Lyn-336.
4. Vergroot het bereik van de grijper met behulp van reserve grijperpads die zijn bevestigd door enkele reserve LEGO-stukken die ik had en elastische banden (!) Dit werkt heel goed, omdat het flexibiliteit introduceert bij het optillen van stukken.
Deze wijzigingen zijn te zien in de afbeelding hierboven aan de rechterkant.
Boven het schaakbord is een camera gemonteerd. Dit wordt gebruikt om de beweging van de mens te bepalen.
Stap 3: De software die de robot beweegt
Alle code is geschreven in Python 2. Inverse kinematica-code is nodig om de verschillende motoren correct te bewegen, zodat schaakstukken kunnen worden verplaatst. Ik gebruik bibliotheekcode van Lynxmotion die het verplaatsen van de motoren in twee dimensies ondersteunt en heb daaraan toegevoegd met mijn eigen code voor 3 dimensies, grijperhoek en grijperbekbeweging.
Dus we hebben dan code die stukken verplaatst, stukken neemt, kasteel, steun en passant, enzovoort.
De schaakengine is Stockfish - die elk mens kan verslaan! "Stockfish is een van de sterkste schaakmotoren ter wereld. Het is ook veel sterker dan de beste menselijke schaakgrootmeesters."
De code om de schaakengine aan te sturen, te valideren dat een zet geldig is, enzovoort, is ChessBoard.py
Ik gebruik een code van https://chess.fortherapy.co.uk om daarmee te communiceren. Mijn code (hierboven) koppelt daar dan aan!
Stap 4: De software die de beweging van de mens herkent
Ik heb dit in detail beschreven in de Instructable voor mijn schaakrobot Lego build - dus ik hoef het hier niet te herhalen!
Mijn "zwarte" stukken waren oorspronkelijk bruin, maar ik heb ze mat zwart geverfd (met "schoolbordverf"), waardoor het algoritme beter werkt onder meer variabele lichtomstandigheden.
Stap 5: Camera, verlichting, toetsenbord, tafel, display
Dit zijn dezelfde als in mijn Chess Robot Lego build, dus ik hoef ze hier niet te herhalen.
Alleen heb ik dit keer een andere en beduidend betere speaker gebruikt, een Lenrui Bluetooth speaker, die ik via USB op de RPi aansluit.
Verkrijgbaar bij amazon.com, amazon.co.uk en andere verkooppunten.
Ook gebruik ik nu een andere camera - een HP Webcam HD 2300, omdat ik de vorige camera niet betrouwbaar kon laten werken.
De algoritmen werken het beste als het schaakbord een kleur heeft die ver verwijderd is van de kleur van de stukken! In mijn robot zijn de stukken gebroken wit en bruin, en het schaakbord is met de hand gemaakt in kaart en is lichtgroen met weinig verschil tussen de "zwarte" en "witte" vierkanten.
De algoritmen hebben een bepaalde oriëntatie van de camera nodig om aan boord te gaan. Reageer hieronder als je een probleem hebt. De arm heeft een beperkte reikwijdte en daarom moet de vierkante maat 3,5 cm zijn.
Stap 6: De software verkrijgen
1. Stokvis
Als je Raspbian op je RPi draait, kun je de Stockfish 7-engine gebruiken - het is gratis. Ren gewoon:
sudo apt-get install stockfish
2. ChessBoard.py Haal dit hier vandaan.
3. Code gebaseerd op https://chess.fortherapy.co.uk/home/a-wooden-chess… Wordt geleverd met mijn code.
4. Python 2D Inverse Kinematics-bibliotheek -
5. Mijn code die alle bovenstaande code oproept en die de robot de bewegingen laat maken, en mijn visiecode. Krijg dit van mij door je eerst te abonneren op mijn YouTube-kanaal, vervolgens op de knop "Favorieten" bovenaan deze Instructable te klikken en vervolgens een reactie op deze Instructable te plaatsen, en ik zal reageren.
Aanbevolen:
De Lazarus-arm: 10 stappen
De Lazarus-arm: Ik wil beginnen met u te bedanken voor uw interesse in mijn project. Mijn naam is Chase Leach en ik ben een senior in de WBASD S.T.E.M. Academie. Dit project is een inzending voor de Butwin Elias Science and Technology Award 2019-2020. De Laz
Eenvoudige servo-arm: 12 stappen
Eenvoudige servoarm: Hallo, vandaag zal ik je instrueren hoe je een eenvoudige robotarm kunt maken die kan worden geprogrammeerd om verschillende functies uit te voeren of gewoon golf te spelen
Goedkope smartphone gestuurde arm (+ optie opslaan positie): 5 stappen
Goedkope smartphonegestuurde arm (+ optie opslaan van positie): het project Bestuur een robotarm die wordt bestuurd door een smartphone met behulp van een Bluetooth-apparaat. Modusbonus: we hebben een knop waarmee de Arduino een positie kan onthouden. Wanneer we willen, kunnen we met een andere knop naar deze opgeslagen positie gaan. FRLE PROJET Commando
Deel 3: GPIO: ARM-assemblage: lijnvolger: TI-RSLK: 6 stappen
Deel 3: GPIO: ARM Montage: Lijnvolger: TI-RSLK: Hallo. Dit is de volgende aflevering waarin we ARM-assemblage blijven gebruiken (in plaats van een taal op een hoger niveau). De inspiratie voor deze Instructable is Lab 6 van de Texas Instruments Robotics System Learning Kit, of TI-RSLK. We gebruiken de microfoon
ARM ROBOT MEXICANO: 4 stappen
ARM ROBOT MEXICANO: DESING ARM ROBOT WELD:p