Taula de continguts:

Robot d'escacs Raspberry Pi Lynxmotion AL5D Braç: 6 passos
Robot d'escacs Raspberry Pi Lynxmotion AL5D Braç: 6 passos

Vídeo: Robot d'escacs Raspberry Pi Lynxmotion AL5D Braç: 6 passos

Vídeo: Robot d'escacs Raspberry Pi Lynxmotion AL5D Braç: 6 passos
Vídeo: AL5D Lynx Build 2024, Desembre
Anonim
Image
Image

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

La construcció de maquinari
La construcció de maquinari

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

La construcció de maquinari
La construcció de 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

Càmera, llums, teclat, taula, pantalla
Càmera, llums, teclat, taula, pantalla
Càmera, llums, teclat, taula, pantalla
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: