Taula de continguts:
- Pas 1: requisits
- Pas 2: la construcció del maquinari
- Pas 3: el programari que mou el robot
- Pas 4: el programari que reconeix el moviment dels humans
- Pas 5: càmera, llums, teclat, taula, pantalla
- Pas 6: Obtenció del programari
Vídeo: Robot d'escacs Raspberry Pi Lynxmotion AL5D Braç: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Construeix aquest robot d'escacs i mira com vèncer a tothom!
És bastant fàcil de construir si podeu seguir les instruccions sobre com construir el braç i si teniu almenys un coneixement elemental de programació i Linux.
L’humà, que juga de blanc, fa una jugada. El sistema de reconeixement visual ho detecta. Aleshores, el robot reflexiona i després fa el seu moviment. Etcètera …
Potser el més nou d’aquest robot és el codi per al reconeixement de moviments. Aquest codi de visió també es pot utilitzar per a robots d'escacs construïts de moltes altres maneres (com ara el meu robot d'escacs amb LEGO build).
Com que el moviment de l’ésser humà és reconegut per un sistema de visió, no es necessita cap maquinari especial per a taulers d’escacs (com ara interruptors reed o qualsevol cosa).
El meu codi està disponible per a ús personal.
Pas 1: requisits
Tot el codi està escrit en Python, que funcionarà, entre altres coses, amb un Raspberry Pi.
El Raspberry Pi és un ordinador de placa única petit i econòmic (al voltant de 40 dòlars) desenvolupat per la Fundació Raspberry Pi. El model original es va fer molt més popular del que s’esperava, ja que es va vendre per a usos com la robòtica
El meu robot utilitza un Raspberry Pi i el braç del robot està construït a partir d’un kit: Lynxmotion AL5D. El kit inclou una placa de servocontrolador. (L'enllaç que acabo de donar és al lloc dels EUA de RobotShop; feu clic a una de les banderes que hi ha a la part superior dreta de les pàgines del lloc del vostre país, per exemple, al Regne Unit).
També necessitareu una taula, una càmera, una il·luminació, un teclat, una pantalla i un dispositiu de senyalització (per exemple, el ratolí). I, per descomptat, peces d’escacs i un tauler. Descric totes aquestes coses amb més detall en els passos següents.
Pas 2: la construcció del maquinari
Com he indicat anteriorment, el nucli del codi de visió funcionarà amb diverses versions.
Aquesta versió utilitza un kit de braços robòtics de Lynxmotion, l'AL5D. Amb el kit s’inclou una placa de control de servo SSC-32U, que s’utilitza per controlar els motors del braç.
Vaig escollir l'AL5D perquè el braç ha de poder fer moviments precisos repetits i no desviar-se. L'agafador ha de poder moure's entre les peces i el braç ha de poder arribar fins a l'extrem del tauler. Encara calia fer algunes modificacions tal com es detalla a continuació.
El Raspberry Pi que faig servir és un Raspberry Pi 3 Model B +. Això parla amb la placa SSC-32U mitjançant una connexió USB.
EDITAR: el Raspberry Pi 4 ja està disponible. Necessitareu:
- Una font d'alimentació USB-C de 15 W: us recomanem la font d'alimentació USB-C oficial de Raspberry Pi
- Una targeta microSD carregada amb NOOBS, el programari que instal·la el sistema operatiu (compreu una targeta SD precarregada juntament amb el vostre Raspberry Pi o descarregueu NOOBS per carregar una targeta vosaltres mateixos)
- Un teclat i un ratolí (veure més endavant)
- Un cable per connectar-se a una pantalla mitjançant el port micro HDMI d’un Raspberry Pi 4
Necessitava un major abast del braç del robot, de manera que hi vaig fer algunes modificacions menors, utilitzant peces addicionals de Lynxmotion que es poden comprar a RobotShop:
1. S'ha substituït el tub de 4,5 polzades per un de 6 polzades: part AT-04 de Lynxmotion, codi de producte RB-Lyn-115.
2. Va provar amb un conjunt addicional de molles, però vaig tornar a un parell quan vaig implementar el tema 3 següent
3. Amplieu l'alçada amb un espaiador d'1 polzada: part Lynxmotion HUB-16, codi de producte RB-Lyn-336.
4. Amplieu l'abast de la pinça utilitzant coixinets de pinça de recanvi units per algunes peces LEGO de recanvi que tenia i bandes elàstiques (!) Funciona molt bé, ja que introdueix flexibilitat a l'hora d'aixecar peces.
Aquestes modificacions es poden veure a la imatge superior de la dreta.
Hi ha una càmera muntada sobre el tauler d’escacs. S’utilitza per determinar el moviment de l’ésser humà.
Pas 3: el programari que mou el robot
Tot el codi està escrit a Python 2. Es necessita un codi de cinemàtica inversa per moure correctament els diversos motors de manera que es puguin moure peces d'escacs. Utilitzo el codi de la biblioteca de Lynxmotion, que admet el moviment dels motors en dues dimensions i m’hi he afegit amb el meu propi codi per a 3 dimensions, l’angle de la pinça i el moviment de la mandíbula de la pinça.
Així doncs, tenim un codi que mourà peces, prendrà peces, castell, suport en passant, etc.
El motor dels escacs és Stockfish, que pot vèncer a qualsevol ésser humà. "Stockfish és un dels motors d'escacs més forts del món. També és molt més fort que els millors grans mestres d'escacs humans".
El codi per conduir el motor d'escacs, validar que un moviment és vàlid, i així successivament és ChessBoard.py
Faig servir un codi de https://chess.fortherapy.co.uk per relacionar-me amb això. Aleshores, el meu codi (a sobre) fa interfícies amb això.
Pas 4: el programari que reconeix el moviment dels humans
Ho he descrit amb detall a la versió instructiva per a la meva versió de Lego de Robot d'escacs, de manera que no cal repetir-la aquí.
Les meves peces "negres" originalment eren marrons, però les vaig pintar de negre mat (amb "pintura de pissarra"), cosa que fa que l'algoritme funcioni millor en condicions d'il·luminació més variables.
Pas 5: càmera, llums, teclat, taula, pantalla
Aquests són els mateixos que a la meva versió de Lego de Chess Robot, així que no cal repetir-los aquí.
Llevat que aquesta vegada he utilitzat un altaveu diferent i significativament millor, un altaveu Bluetooth Lenrui, que connecto al RPi per USB.
Disponible a amazon.com, amazon.co.uk i altres punts de venda.
Ara també estic fent servir una càmera diferent: una HP Webcam HD 2300, ja que no podia aconseguir que la càmera anterior es comportés de manera fiable.
Els algoritmes funcionen millor si el tauler d’escacs té un color que s’allunya del color de les peces. Al meu robot, les peces són de color blanc trencat i marró, i el tauler d’escacs està fet a mà en cartolina i és de color verd clar, amb poca diferència entre els quadrats "negre" i "blanc".
Els algoritmes necessiten una orientació particular de la càmera per embarcar-se. Si teniu algun problema, comenteu a continuació. El braç té un abast limitat i, per tant, la mida del quadrat hauria de ser de 3,5 cm.
Pas 6: Obtenció del programari
1. Stockfish
Si feu servir Raspbian al vostre RPi, podeu utilitzar el motor Stockfish 7: és gratuït. Només cal executar:
sudo apt-get install stockfish
2. ChessBoard.py Obteniu això des d'aquí.
3. Codi basat en https://chess.fortherapy.co.uk/home/a-wooden-chess… Ve amb el meu codi.
4. Biblioteca de cinemàtica inversa Python 2D -
5. El meu codi que invoca tot el codi anterior i que fa que el robot faci els moviments i el meu codi de visió. Per obtenir-ho, subscriviu-me primer al meu canal de YouTube, després feu clic al botó "Preferit" a la part superior d'aquest instructable i, tot seguit, publiqueu un comentari a aquest instructable i us respondré.
Recomanat:
Robot d'escacs fabricat amb LEGO i Raspberry Pi: 6 passos
Robot d'escacs fabricat amb LEGO i Raspberry Pi: sorprengui els seus amics amb aquest robot d'escacs. No és massa difícil de construir si ja heu creat robots LEGO i si teniu almenys un coneixement elemental de programació d’ordinadors i Linux. El robot fa els seus propis moviments i utilitza reconeixements visuals
Escacs de butxaca: 4 passos
Escacs de butxaca: són escacs! A la butxaca. Aquest projecte té com a objectiu crear un petit dispositiu que pugui executar jocs petits com serps, pac-man, tetris i fins i tot escacs
Escacs digitals: feu un seguiment del vostre joc d'escacs en línia: 5 passos
Escacs digitals: feu un seguiment del vostre joc d'escacs en línia: des de jove he jugat a molts escacs i, ja que la web té una gran quantitat de llocs web per jugar a escacs contra ordinadors o oponents en directe, mai no he trobat un lloc web que fa un seguiment del vostre joc d'escacs al qual realment jugueu
BRAÇ ROBOTTIC Xbox 360 [ARDUINO]: BRAÇ AXIOM: 4 passos
BRAÇ ROBOTTIC Xbox 360 [ARDUINO]: BRAÇ AXIOM:
COM MUNTAR UN IMPRESSIONANT BRAÇ DE ROBOT DE FUSTA (PART3: BRAÇ DE ROBOT) - BASAT AL MICRO: BITN: 8 passos
COM MUNTAR UN BRAÇ IMPRESSIONANT DE ROBOT DE FUSTA (PART3: BRAÇ DE ROBOT) - BASAT AL MICRO: BITN: El següent procés d'instal·lació es basa en la finalització del mode d'obstacles per evitar. El procés d'instal·lació de la secció anterior és el mateix que el procés d'instal·lació en mode de seguiment de línia. A continuació, donem un cop d'ull a la forma final d'A