Un robot en bois qui peut jouer aux échecs


Vous avez probablement vu beaucoup de projets basés sur Arduino qui ont été gérés via une sorte de smartphone. De tels projets, en règle générale, étaient comme ceci: une machine avec un module Bluetooth inséré, à laquelle des commandes sont envoyées depuis l'émulateur de joystick sur le téléphone (ou quelque chose comme ça). Un grand nombre de ces gadgets ont été créés, et une telle idée m'est venue à l'esprit. Mais que se passe-t-il si Arduino vous aide à vous séparer de votre smartphone pendant un certain temps, tout en continuant à y jouer? C'est ainsi qu'est né le projet d'un robot d'échecs, dont les «cerveaux» et les «yeux» sont concentrés dans le smartphone Android. Plus de détails - sous la coupe.


Vue générale


[Hirez]

Toute cette composition est une boîte en bois sur laquelle il y a un échiquier, un manipulateur et un support rétro-éclairé sur lequel repose le téléphone. Après le jeu, tout ce qui précède est retiré dans cette même boîte et peut être transporté n'importe où sans problème, par exemple, dans un sac à dos.

Le principe de fonctionnement est le suivant. Au sommet de la carte, sur un support spécial, un téléphone est installé avec une application spéciale qui, à l'aide d'un système de vision par ordinateur, fixe la position actuelle des pièces sur la carte. Étant donné que le système surveille tous les mouvements, il n'est pas nécessaire de déterminer visuellement quelle figure se trouve dans la cellule, il suffit de connaître le fait de sa présence et de sa couleur.
Après qu'un mouvement effectué par une personne a été corrigé, ces informations sont transmisesun moteur d'échecs qui décide à quel mouvement il doit répondre.
Ensuite, les angles sont calculés pour les positions que le robot doit prendre pour effectuer un mouvement. Ensuite, ces informations sont envoyées via Bluetooth au manipulateur. Le manipulateur ne peut accepter que ces
informations et faire un pas.

J'espère que le lecteur de cet article trouvera ici quelque chose d'intéressant. Peut-être que quelqu'un veut répéter ce projet ou faire quelque chose de similaire. Je veux dire tout de suite qu'il n'y aura pas de tutoriel, car copier ce travail simplement selon les instructions ne fonctionnera pas pas à pas, car il y a beaucoup de subtilités qui ne peuvent être comprises qu'en essayant de l'implémenter. Si vous souhaitez regarder les dessins du manipulateur, ou si vous avez d'autres questions, écrivez dans un message personnel sur GT ou VK , je vous répondrai gratuitement et sur demande.

Partie logiciel

Toute cette composition est contrôlée par une petite application Android. Il a de nombreuses tâches: déterminer les chiffres sur le tableau, calculer les angles pour le manipulateur, travailler avec le moteur d'échecs, quelques messages vocaux du robot comme "Je vous mets le chèque!" et "Merci pour le jeu!" Mais avec tout cela, l'interface de l'application tient dans un seul écran.


Le système de vision est assez simple. Du point de vue du téléphone, il n'y a pas beaucoup de différence entre, disons, un roi et un cheval - visuellement, ces deux figures ressembleront à des cercles noirs et blancs. Par conséquent, le système ne prend pas connaissance de la position qu'il voit à chaque fois, mais se souvient de la séquence de tous les mouvements effectués. Et le mouvement effectué est très simple à déterminer: si à un moment donné le programme voit qu'une pièce a disparu dans une cellule et apparaît dans une autre, alors cela sera considéré comme un mouvement. Voilà comment ça fonctionne.
Ce type de vision technique est mis en œuvre exclusivement via l'API Android, sans utiliser OpenCV ou quelque chose de similaire. Ce n'est pas vrai, la raison ici est un intérêt personnel à tout réaliser à partir de zéro.


Manipulateur

Il a fallu beaucoup de recherche créative pour arriver à une telle conception de manipulateur qui puisse effectuer correctement son travail avec les servocommandes chinois TowerPro sg-90 bon marché que j'avais en grand nombre, qui ne sont pas de haute qualité. Par conséquent, les deux bras du manipulateur sont réalisés sous forme de parallélogrammes, ce qui permet au système de capture de forme de toujours rester en position verticale. Ceci, à son tour, rend inutile l'ajout d'un autre servo, par conséquent, le système aura moins d'erreurs, lui permet d'être léger et plus ou moinsfiable. Étant donné que les engrenages sont également en bois, il est difficile d'obtenir la meilleure qualité de leur travail.Par conséquent, pour compenser le jeu, le manipulateur effectue un mouvement latéral avant chaque mouvement afin d'approcher chaque point d'un côté.

Quant à l'alimentation, son robot la reçoit de deux cartes mères à partir de charges ordinaires pour le téléphone, qui sont situées en toute sécurité dans le boîtier. Une charge alimente le contrôleur lui-même avec le module Bluetooth, l'autre directement aux mécaniciens. Afin de faire l'éclairage, l'ampoule LED a été démontée. En fin de compte, il y a deux cartes à l'intérieur: les LED sont situées sur l'une et le convertisseur de puissance sur l'autre. L'un est attaché au support, l'autre est placé dans le corps de la boîte. Toute l'alimentation est affichée sur une petite prise sur le côté du boîtier:


Une autre image montrant la zone de travail du manipulateur pour le point rouge marqué dessus. Pour l'axe zéro, la plage d'angle est de 180 °.


Je n’ai pas réussi à fabriquer un tel robot tout de suite, certains prototypes fonctionnaient très mal et certains travaillaient pour d’autres travaux. Par exemple, le robot dans la vidéo ci-dessous met du sucre dans une tasse et remue la mouette.


Système de capture de formes

À mon avis, la conception du système de capture de figures est particulièrement intéressante. La solution la plus évidente ici était de faire bouger deux joues l'une vers l'autre sous le contrôle d'un servo variateur. Quelque chose comme ça:

Comme vous pouvez le voir sur la figure, pour un ensemble de pièces complètement petites avec un diamètre de base de 18 mm, vous devez rendre la cage en damier presque deux fois plus grande, et la taille de la planche s'avère également déraisonnablement énorme. Après plusieurs implémentations infructueuses de cette option, je suis tombé sur une chose si inhabituelle, qui est appelée «poignée de serrage flexible»), et cela ressemble à ceci:

Autrement dit, il s'agit d'un noyau creux flexible à l'intérieur avec une petite griffe à ressort en métal à l'extrémité, qui se ferme s'il est pressé sur les côtés. Et en l'absence de pression, la griffe s'ouvre instantanément. Ayant cassé une telle capture, sur sa base j'ai fait mon système pour capturer des chiffres. Une griffe métallique comprime la bague, qui est fixée à la crémaillère, entraînée par un servo.


Résultats

Le travail sur le projet se poursuit et les résultats s'améliorent également progressivement. Pour le moment, le robot peut jouer à un jeu qui n'est pas limité par le nombre de coups, à la fois pour le noir et le blanc. Dans ce cas, il n'y aura pas d'erreurs ni dans le travail de la mécanique, ni dans la partie logicielle du système. Soit dit en passant, il ne joue pas très fort, au niveau de la troisième catégorie, cela se corrige facilement en remplaçant le moteur d'échecs. J'ai fait la démonstration de ce robot lors de l'exposition "Archimède-2016", où il a joué avec différentes personnes presque sans interruption pendant 6 heures d'affilée et a réussi un tel essai routier.

C'est tout, j'espère que ce projet vous a intéressé. Bien sûr, il a ses inconvénients de fonctionnalités de mise en œuvre, il y a donc encore place à amélioration, à amélioration et au développement. Je serai heureux de tout conseil, questions et suggestions dans les commentaires.

Source: https://habr.com/ru/post/fr392065/


All Articles