Table des matières:

Bras d'échecs Robot Raspberry Pi Lynxmotion AL5D : 6 étapes
Bras d'échecs Robot Raspberry Pi Lynxmotion AL5D : 6 étapes

Vidéo: Bras d'échecs Robot Raspberry Pi Lynxmotion AL5D : 6 étapes

Vidéo: Bras d'échecs Robot Raspberry Pi Lynxmotion AL5D : 6 étapes
Vidéo: ChessBot Lynxmotion AL5A -Bras robot echec 2024, Juillet
Anonim
Image
Image

Construisez ce robot d'échecs et voyez-le battre tout le monde !

C'est assez facile à construire si vous pouvez suivre les instructions sur la façon de construire le bras, et si vous avez au moins une connaissance élémentaire de la programmation informatique et de Linux.

L'humain, jouant le blanc, fait un mouvement. Ceci est détecté par le système de reconnaissance visuelle. Le robot réfléchit puis fait son mouvement. Etc …

La chose la plus innovante dans ce robot est peut-être le code de reconnaissance des mouvements. Ce code de vision est également utilisable pour les robots d'échecs construits de nombreuses autres manières (comme mon robot d'échecs avec construction LEGO).

Parce que le mouvement de l'homme est reconnu par un système de vision, aucun matériel d'échiquier spécial (tel que des commutateurs à lames ou autre) n'est nécessaire.

Mon code est disponible pour un usage personnel.

Étape 1: Exigences

La construction matérielle
La construction matérielle

Tout le code est écrit en Python, qui fonctionnera entre autres sur un Raspberry Pi.

Le Raspberry Pi est un petit ordinateur monocarte peu coûteux (environ 40 $) développé par la Fondation Raspberry Pi. Le modèle original est devenu beaucoup plus populaire que prévu, se vendant pour des utilisations telles que la robotique

Mon robot utilise un Raspberry Pi, et le bras du robot est construit à partir d'un kit: Lynxmotion AL5D. Le kit est livré avec une carte servo-contrôleur. (Le lien que je viens de donner renvoie au site américain de RobotShop; cliquez sur l'un des drapeaux en haut à droite des pages de leur site pour votre pays, par exemple le Royaume-Uni).

Vous aurez également besoin d'une table, d'un appareil photo, d'un éclairage, d'un clavier, d'un écran et d'un dispositif de pointage (par exemple une souris). Et bien sûr, des pièces d'échecs et un échiquier. Je décris toutes ces choses plus en détail dans les étapes suivantes.

Étape 2: la construction matérielle

La construction matérielle
La construction matérielle

Comme je l'ai indiqué précédemment, le cœur du code de vision fonctionnera avec une variété de versions.

Cette version utilise un kit de bras robotique de Lynxmotion, l'AL5D. Le kit comprend une carte de servocontrôleur SSC-32U, qui est utilisée pour contrôler les moteurs du bras.

J'ai choisi l'AL5D car le bras doit pouvoir faire des mouvements précis et répétés et ne pas dériver. Le grappin doit pouvoir se placer entre les pièces et le bras doit pouvoir atteindre l'autre côté du plateau. J'avais encore besoin de faire quelques modifications comme détaillé ci-dessous.

Le Raspberry Pi que j'utilise est un Raspberry Pi 3 modèle B+. Cela communique avec la carte SSC-32U via une connexion USB.

EDIT: Le Raspberry Pi 4 est maintenant disponible. Vous aurez besoin de:

  • Une alimentation USB-C 15W - nous recommandons l'alimentation officielle Raspberry Pi USB-C
  • Une carte microSD chargée de NOOBS, le logiciel qui installe le système d'exploitation (achetez une carte SD préchargée avec votre Raspberry Pi, ou téléchargez NOOBS pour charger une carte vous-même)
  • Un clavier et une souris (voir plus loin)
  • Un câble pour se connecter à un écran via le port micro HDMI d'un Raspberry Pi 4

J'avais besoin de plus de portée sur le bras du robot, j'y ai donc apporté quelques modifications mineures, en utilisant des pièces Lynxmotion supplémentaires qui peuvent être achetées auprès de RobotShop:

1. Remplacement du tube de 4,5 pouces par un tube de 6 pouces - pièce Lynxmotion AT-04, code produit RB-Lyn-115.

2. J'ai essayé d'utiliser un jeu de ressorts supplémentaire, mais je suis revenu à une paire lorsque j'ai mis en œuvre l'article 3 ci-dessous

3. Augmentez la hauteur à l'aide d'une entretoise de 1 pouce - pièce Lynxmotion HUB-16, code de produit RB-Lyn-336.

4. Extension de la portée de la pince à l'aide de coussinets de préhension de rechange attachés par des pièces LEGO de rechange que j'avais et des bandes élastiques (!) Cela fonctionne très bien, car cela introduit de la flexibilité lors du levage des pièces.

Ces modifications peuvent être vues dans l'image ci-dessus à droite.

Il y a une caméra montée au-dessus de l'échiquier. Ceci est utilisé pour déterminer le mouvement de l'humain.

Étape 3: Le logiciel qui déplace le robot

Tout le code est écrit en Python 2. Un code de cinématique inverse est nécessaire pour déplacer correctement les différents moteurs de sorte que les pièces d'échecs puissent être déplacées. J'utilise le code de la bibliothèque de Lynxmotion qui prend en charge le déplacement des moteurs en deux dimensions et j'y ai ajouté mon propre code pour 3 dimensions, l'angle de la pince et le mouvement de la mâchoire de la pince.

Donc, on a alors du code qui va déplacer des pièces, prendre des pièces, roquer, soutenir en passant, et ainsi de suite.

Le moteur d'échecs est Stockfish - qui peut battre n'importe quel humain ! "Stockfish est l'un des moteurs d'échecs les plus puissants au monde. Il est également beaucoup plus puissant que les meilleurs grands maîtres d'échecs humains."

Le code pour piloter le moteur d'échecs, valider qu'un coup est valide, et ainsi de suite est ChessBoard.py

J'utilise un code de https://chess.fortherapy.co.uk pour interfacer avec cela. Mon code (ci-dessus) s'interface alors avec ça !

Étape 4: Le logiciel qui reconnaît le mouvement de l'humain

J'ai décrit cela en détail dans le Instructable for my Chess Robot Lego build - donc je n'ai pas besoin de le répéter ici !

Mes pièces "noires" étaient à l'origine brunes, mais je les ai peintes en noir mat (avec de la "peinture pour tableau noir"), ce qui permet à l'algorithme de mieux fonctionner dans des conditions d'éclairage plus variables.

Étape 5: Appareil photo, lumières, clavier, table, affichage

Appareil photo, lumières, clavier, table, affichage
Appareil photo, lumières, clavier, table, affichage
Appareil photo, lumières, clavier, table, affichage
Appareil photo, lumières, clavier, table, affichage

Ce sont les mêmes que dans ma construction Chess Robot Lego, je n'ai donc pas besoin de les répéter ici.

Sauf que cette fois j'ai utilisé une enceinte différente et nettement meilleure, une enceinte Bluetooth Lenrui, que je connecte au RPi par USB.

Disponible sur amazon.com, amazon.co.uk et d'autres points de vente.

De plus, j'utilise maintenant une autre caméra - une HP Webcam HD 2300, car je n'arrivais pas à faire en sorte que la caméra précédente se comporte de manière fiable.

Les algorithmes fonctionnent mieux si l'échiquier a une couleur très éloignée de la couleur des pièces ! Dans mon robot, les pièces sont blanc cassé et marron, et l'échiquier est fait à la main en carton, et est d'un vert clair avec peu de différence entre les carrés "noir" et "blanc".

Les algorithmes nécessitent une orientation particulière de la caméra à bord. Veuillez commenter ci-dessous si vous rencontrez un problème. Le bras a une portée limitée et la taille du carré doit donc être de 3,5 cm.

Étape 6: Obtention du logiciel

1. Stockfish

Si vous exécutez Raspbian sur votre RPi, vous pouvez utiliser le moteur Stockfish 7 - c'est gratuit. Exécutez simplement:

sudo apt-get installer stockfish

2. ChessBoard.py Obtenez ceci à partir d'ici.

3. Code basé sur https://chess.fortherapy.co.uk/home/a-wooden-chess… Livré avec mon code.

4. Bibliothèque de cinématique inverse Python 2D -

5. Mon code qui invoque tout le code ci-dessus et qui amène le robot à faire les mouvements, et mon code de vision. Obtenez ceci de moi en vous abonnant d'abord à ma chaîne YouTube, puis en cliquant sur le bouton "Favori" près du haut de cet Instructable, puis en publiant un commentaire sur cet Instructable, et je vous répondrai.

Conseillé: