Table des matières:

Démo 4x4 d'un échiquier électronique/Avec Arduino Mega + Lecteur RFID + Capteurs à effet Hall : 7 étapes
Démo 4x4 d'un échiquier électronique/Avec Arduino Mega + Lecteur RFID + Capteurs à effet Hall : 7 étapes

Vidéo: Démo 4x4 d'un échiquier électronique/Avec Arduino Mega + Lecteur RFID + Capteurs à effet Hall : 7 étapes

Vidéo: Démo 4x4 d'un échiquier électronique/Avec Arduino Mega + Lecteur RFID + Capteurs à effet Hall : 7 étapes
Vidéo: Test de mon échiquier ARDuino (Fritz) 2024, Juillet
Anonim
Démo 4x4 d'un échiquier électronique/Avec Arduino Mega + Lecteur RFID + Capteurs à effet Hall
Démo 4x4 d'un échiquier électronique/Avec Arduino Mega + Lecteur RFID + Capteurs à effet Hall

Salut les créateurs, Je suis Tahir Miriyev, diplômé de 2018 de l'Université technique du Moyen-Orient, Ankara/Turquie. Je me suis spécialisé en mathématiques appliquées, mais j'ai toujours aimé faire des trucs, surtout quand cela impliquait du travail manuel avec l'électronique, la conception et la programmation. Grâce à un cours unique sur le prototypage, offert à notre département de design industriel, j'ai eu la chance de faire quelque chose de vraiment intéressant. Le projet peut être traité comme un projet à terme, d'une durée d'un semestre entier (4 mois). Les étudiants ont eu pour tâche de trouver une approche créative pour concevoir des produits/démonstrations déjà existants et de réaliser leurs idées à l'aide de microcontrôleurs et de capteurs Arduino. Je pensais aux échecs, et après avoir fait quelques recherches sur des projets réussis, j'ai remarqué que dans les projets précédents, les fabricants utilisaient essentiellement des moteurs d'échecs prêts à l'emploi (où tous les mouvements de chaque figure étaient programmés dans le noyau), avec Raspberry Pi, quelques MUX 'es, LED et interrupteurs à lames. Dans mon projet, cependant, j'ai décidé de me débarrasser de tout logiciel externe en termes de moteur d'échecs et de trouver une solution créative au problème de reconnaissance de figures, en utilisant un lecteur RFID, des capteurs à effet Hall et Arduino Mega.

Étape 1: Qu'est-ce qu'un problème de reconnaissance de figures et comment je l'ai résolu

Qu'est-ce qu'un problème de reconnaissance de figures et comment je l'ai résolu
Qu'est-ce qu'un problème de reconnaissance de figures et comment je l'ai résolu

Pour faire simple, supposons que vous ayez un échiquier avec un "cerveau" = microcontrôleur, et que vous deviez faire comprendre à votre échiquier quelle figure vous teniez dans votre main et où vous l'avez placée. C'est le problème de la reconnaissance des figures. La solution à ce problème est triviale lorsque vous avez un moteur d'échecs avec toutes les pièces debout sur leurs positions initiales sur l'échiquier. Avant d'expliquer pourquoi il en est ainsi, permettez-moi de faire quelques remarques.

Pour ceux qui sont enthousiasmés par la façon dont les choses fonctionnent ici, je dois clarifier pourquoi nous avons besoin d'interrupteurs à lames (ou dans mon cas, j'ai utilisé des capteurs à effet Hall): si vous placez un aimant sous chaque pièce et le ramassez de un carré sur le tableau (en supposant qu'il y ait un interrupteur à lames sous chaque carré) en raison de l'existence/non existence du champ magnétique au-dessus du capteur, vous pouvez faire comprendre à votre contrôleur s'il y a/n'y a pas une pièce debout sur le carré. Cependant, cela ne dit toujours rien au microcontrôleur sur la pièce exacte qui se trouve sur la place. Il indique seulement qu'il y a/pas un morceau sur un carré. À ce stade, nous sommes confrontés à un problème de reconnaissance de figures, qui peut être résolu à l'aide d'un moteur d'échecs, avec toutes les pièces placées sur leurs positions initiales lorsque le jeu d'échecs commence. De cette façon, le microcontrôleur « sait » où se trouve chaque pièce dès le début, avec toutes les adresses fixées dans la mémoire. Néanmoins, cela nous apporte une énorme limitation: vous ne pouvez pas sélectionner, disons, n'importe quel nombre de pièces et les placer au hasard n'importe où sur le plateau et commencer à analyser le jeu. Vous devez toujours recommencer depuis le début, toutes les pièces doivent être sur le plateau à l'origine, car c'est le seul moyen pour le microcontrôleur de suivre leur emplacement une fois que vous avez soulevé une pièce et placée sur un autre carré. Essentiellement, c'est le problème que j'ai remarqué et j'ai décidé de travailler.

Ma solution était assez simple, bien que créative. J'ai placé un lecteur RFID sur la face avant d'un tableau. Pendant ce temps, j'ai attaché non seulement un aimant sous les pièces, mais aussi une étiquette RFID, chaque pièce ayant un identifiant unique. Par conséquent, avant de placer une figure sur n'importe quel carré de votre choix, vous pouvez d'abord tenir la pièce près du lecteur RFID et le laisser lire l'ID, identifier la pièce, l'enregistrer dans la mémoire, puis vous pouvez la placer où vous voulez. De plus, au lieu d'utiliser des commutateurs à lames, afin de simplifier la conception du circuit, j'ai utilisé des capteurs à effet Hall, qui fonctionnent de manière similaire, avec la seule différence d'envoyer 0 ou 1 à un microcontrôleur en tant que données numériques, ce qui signifie "il y a" ou "il n'y a pas" de pièce sur le carré, respectivement. J'ai également ajouté des LED (malheureusement pas de la même couleur, je n'en avais pas), de sorte que lorsque vous soulevez la pièce, tous les emplacements carrés, où une pièce soulevée pourrait être placée, s'allument. Considérez-le comme une pratique éducative pour les apprenants d'échecs:)

Enfin, je voudrais noter que malgré le fait que j'ai utilisé plusieurs techniques, le projet reste simple et compréhensible, pas trop élaboré ou trop compliqué. Je n'ai pas eu assez de temps pour procéder à l'échiquier 8x8 (aussi parce que 64 capteurs à effet hall sont coûteux en Turquie, j'ai couvert toutes les dépenses liées au projet), c'est pourquoi j'ai fait la version démo 4x4 avec seulement deux pièces testées: Pion et Reine. Au lieu d'utiliser un moteur d'échecs, j'ai écrit un code source pour Arduino, qui génère tout ce que vous verrez dans la vidéo ci-dessous.

Étape 2: Comment les choses fonctionnent

Image
Image

Avant de passer à l'explication étape par étape de la façon dont le projet a été réalisé, je pense qu'il serait préférable de regarder une vidéo illustrative et d'avoir une idée intuitive de ce dont je parle.

Note n°1: une des LED rouges (première de la rangée/de gauche à droite) est grillée, peu importe.

Note n°2: bien que largement utilisée, d'après mon expérience, je peux dire que la technologie RFID n'est pas la meilleure idée à utiliser dans les applications de bricolage (bien sûr si vous avez des alternatives). Avant que tout ne fonctionne, j'ai fait de nombreux essais en plaçant des pièces d'échecs près du lecteur et en attendant qu'il lise correctement l'ID. Le port série doit être configuré pour cela, car la façon dont le lecteur RFID lit l'ID n'est qu'un casse-tête. Il faut essayer par soi-même pour comprendre le problème. Si vous avez besoin de plus d'aide, veuillez m'envoyer un e-mail ([email protected]) ou ajouter sur skype (tahir.miriyev9r1), afin que nous puissions planifier une conversation et discuter des choses en détail, je vais tout expliquer en détail.

Étape 3: Outils et composants

Outils et composants
Outils et composants
Outils et composants
Outils et composants
Outils et composants
Outils et composants

Voici la liste de tous les outils que j'ai utilisés pour le projet:Composants électroniques:

  • Planche à pain (x1)
  • Capteurs à effet Hall Omnidirectionnel A1126LUA-T (IC-1126 SW OMNI 3-SIP ALLEGRO) (x16)
  • LED basiques 5 mm (x16)
  • Fils de cavalier
  • Lecteur RFID 125 kHz et antenne (x1)
  • Arduino Méga (x1)
  • Étiquettes RFID 3M (x2)

Autres matériaux:

  • Plexiglas
  • Papier glacé
  • planches courtes (en bois)
  • Peinture acrylique (vert foncé et crème) x2
  • Carton fin
  • Aimants ronds 10 mm (x2)
  • Pièces de pion et de reine
  • Fer à souder et matériaux de soudure

Étape 4: Schémas (Fritzing)

Schémas (Fritzing)
Schémas (Fritzing)

Les schémas sont un peu compliqués, je sais, mais l'idée doit être claire. C'était la première fois que j'utilisais Fritzing (fortement recommandé d'ailleurs), les connexions pourraient probablement être tracées avec plus de précision. Quoi qu'il en soit, j'ai tout noté à l'intérieur des schémas. Remarque: je n'ai pas pu trouver le modèle exact de RDIF Reader parmi les composants de la base de données de Fritzing. Le modèle que j'ai utilisé est un module RFID 125Khz - UART. Vous pouvez trouver des tutoriels sur Youtube sur la façon de configurer ce module avec Arduino.

Étape 5: Traiter

Traiter
Traiter

Il est temps d'expliquer comment les choses ont été faites. Veuillez suivre la description étape par étape:

1. Prenez un carton de 21x21 cm, ainsi que du carton supplémentaire pour découper et coller les parois de la partie supérieure du plateau, afin de faire 16 carrés avec A B C D 1 2 3 4 énumérés. Comme le carton est fin, vous pouvez coller 16 capteurs à effet Hall dans chaque carré, avec 3 pieds chacun et 16 LED avec 2 pieds chacun.

2. Après avoir défini les composants, vous devrez effectuer des soudures, pour souder les pattes des capteurs à effet Hall et les LED aux câbles de connexion. À ce stade, je recommanderais de sélectionner les fils colorés de manière intelligente, afin de ne pas vous tromper avec les pattes + et - des LED, ainsi que les pattes VCC, GND et PIN des capteurs à effet Hall. Bien sûr, on peut imprimer un PCB avec des capteurs et même des LED de type WS2812 déjà soudées, mais j'ai décidé de garder le projet simple et de faire un peu plus de "travail manuel". À ce stade, tout ce que vous avez à faire est de préparer les cordons et les capteurs, sur les étapes ultérieures suivant le schéma de Fritzing, vous pouvez voir où vous devez attacher l'extrémité de chaque fil. En bref, certains d'entre eux iront directement aux broches de l'Arduino Mega (il y en a assez sur l'Arduino), d'autres à la maquette et tous les GND peuvent être soudés à un seul morceau de cordon (ce qui fait un terrain d'entente) qui plus tard doit être connecté au GND de la carte Arduino. Une remarque importante ici: les capteurs à effet Hall sont OMNIDIRECTIONNELS, ce qui signifie que peu importe quel pôle d'un aimant sera maintenu près du capteur, il enverra 0 données lorsqu'il y a un champ magnétique à proximité et 1 lorsqu'il n'y en a pas, à savoir, l'aimant est éloigné (plus que disons 5 sm) du capteur.

3. Préparez un carton similaire de 21x21 cm et fixez-y l'Arduino Mega et une longue planche à pain. Vous pouvez également découper à nouveau 4 murs de n'importe quelle hauteur dans du carton et les coller verticalement avec ces deux couches de planches carrées de 21x21 cm. Suivez ensuite Fritzing Schematics pour mettre les choses en place. Vous pouvez également régler le lecteur RFID une fois que vous avez terminé avec les LED et les capteurs à effet Hall.

4. Testez si toutes les LED et tous les capteurs fonctionnent en envoyant des signaux à l'aide de codes de base. N'évitez pas cette étape car elle vous permettra de tester si tout fonctionne correctement et de passer à la construction ultérieure de la planche.

5. Préparez le pion et la reine, avec deux aimants d'un rayon de 10 cm attachés ci-dessous, ainsi que des étiquettes RFID rondes. Plus tard, vous devrez lire les identifiants de ces balises à partir de l'écran série sur l'IDE Arduino.

6. Si tout fonctionne bien, vous pouvez démarrer le code principal et essayer des choses !

7 (facultatif). Vous pouvez faire un travail artistique avec du bois qui donnera à votre démo une vue plus naturelle. Cela dépend de votre volonté et de votre imagination.

Étape 6: Quelques photos et vidéos de différentes étapes

Image
Image
Quelques photos et vidéos de différentes étapes
Quelques photos et vidéos de différentes étapes
Quelques photos et vidéos de différentes étapes
Quelques photos et vidéos de différentes étapes

Étape 7: Code source

Code source
Code source

Maintenant, lorsque nous avons terminé avec un prototype, nous sommes prêts à lui donner vie avec le code Arduino ci-dessous. J'ai essayé de laisser autant de commentaires que possible, afin de rendre le processus d'analyse de code compréhensible. Pour être honnête, la logique peut sembler un peu complexe à première vue, mais si vous approfondissez la logique du code, elle semblera plus complète.

Remarque: Comme pour le vrai échiquier, j'ai numéroté les carrés de manière abstraite comme A1, A2, A3, A4, B1, …, C1, …, D1,.., D4. Cependant, dans le code, il n'est pas pratique d'utiliser cette notation. Par conséquent, j'ai utilisé des tableaux et représenté des carrés comme 00, 01, 02, 03, 10, 11, 12, 13, …, 32, 33 respectivement.

Merci pour votre attention! Testez tout et soyez libre d'écrire dans les commentaires sur tout type d'erreurs que j'ai manqué, des améliorations, des suggestions, etc..com) ou ajouter sur skype (tahir.miriyev9r1), afin que nous puissions planifier une conversation et discuter des choses en détail. Bonne chance!