← Projets

Échiquier connecté

Concevoir un plateau d’échecs qui détecte la position des pièces et guide les joueurs avec de la lumière, tout en gardant l’allure d’un échiquier classique.

L'échiquier connecté terminé : les cases illuminées, les pièces en place et le boîtier pilote avec son écran
Le résultat final : le plateau et son boîtier pilote (écran et boutons de la pendule).

Le contexte

CadreSAE (situation d’apprentissage et d’évaluation) de 3e année de BUT GEII

LieuIUT d’Angers

Année2025-2026

ÉquipeLéni Landais et Adrien Michel-Jeannin

EncadrantM. Lucidarme

Matériel fourniMagnétomètres Allegro A31301, LED RGB WS2812B, microcontrôleur FireBeetle ESP32-E, imprimante 3D

Les échecs se jouent aujourd’hui autant sur un plateau que sur des plateformes en ligne comme Chess.com ou Lichess. Les plateaux connectés font le lien entre les deux : on garde de vraies pièces, et on gagne les avantages du numérique (analyse, aide au débutant, jeu à distance). Les solutions existantes vont de la simple pendule connectée au bras robotisé qui déplace les pièces.

Notre projet est la 4e édition de l’échiquier connecté de l’IUT : chaque promotion reprend le travail de la précédente. Le cahier des charges impose quatre fonctions :

  • Détecter la position de chaque pièce sur les 64 cases, sans intervention du joueur.
  • Guider grâce à un éclairage sous chaque case : coups possibles, erreurs, aide à l’apprentissage.
  • Communiquer l’état de la partie à une interface, sans fil.
  • Disparaître : l’électronique doit être cachée sous la surface de jeu, dans un boîtier compatible avec le volume de l’imprimante 3D.

64capteurs magnétiques

192LED RGB

162composants CMS soudés à la main

4cartes identiques assemblées

Étape 1

Repartir du travail des promotions précédentes

Nous avons commencé par lire les rapports des trois groupes précédents, pour comprendre ce qui avait marché, ce qui avait bloqué et pourquoi.

  • 1er groupe : une interface web pour jouer à deux, avec la bibliothèque JavaScript chess.js pour valider les coups.
  • 2e groupe : l’étude du capteur A31301 sur un petit circuit de test, et un programme pour piloter les LED. Point bloquant relevé : le capteur est si petit qu’il est très difficile à souder à la main.
  • 3e groupe : 64 cases imprimées en 3D, emboîtables, chacune avec son électronique, pilotées par un ESP32. Ils suggéraient de programmer l’adresse des capteurs dans leur EEPROM.

Nos choix : garder le capteur A31301, les LED WS2812B et l’ESP32 déjà éprouvés. En revanche, abandonner les cases individuelles, qui ne respectaient pas le critère d’esthétique attendu et n’apportaient pas d’avantage technique.

Étape 2

Définir l’architecture

Avant de dessiner le moindre circuit, nous avons fixé la structure avec notre encadrant : deux cartes électroniques. La carte pilote, avec l’ESP32, lit les capteurs en I²C et commande les LED. La carte plateau, de la taille de l’échiquier, porte un capteur et trois LED sous chaque case.

Schéma fonctionnel : la carte pilote reliée aux quatre sous-cartes du plateau
Le schéma fonctionnel, premier livrable du projet.

Étape 3

Prototyper le capteur

Premier test : le vecteur du champ magnétique suit l’aimant en temps réel.

Chaque pièce cache un aimant. Le magnétomètre A31301 mesure le champ magnétique sur trois axes : il détecte la présence d’une pièce, et même sa couleur.

Le capteur existe en trois sensibilités (600, 1 400 et 2 000 gauss). Nous avons testé les trois avec l’aimant final, à la hauteur réelle du plateau. Le plus sensible, 600 gauss, a donné la détection la plus fiable.

Le vrai défi : 64 capteurs sur un seul bus

Tous les capteurs partagent le même bus I²C, quatre fils pour les 64 cases. Encore faut-il que chacun ait une adresse unique, or les broches d’adressage n’en offrent que 15. La solution : écrire l’adresse directement dans l’EEPROM de chaque capteur.

Cette mémoire est protégée. Il faut la déverrouiller avec un code d’accès (0x43 0x55 0x53 0x54, soit « CUST » pour customer en ASCII), puis passer par des registres d’écriture indirecte. Après plusieurs échanges avec le fabricant Allegro et l’aide de notre encadrant, la procédure fonctionne.

Étape 4

Concevoir les cartes sur KiCad

La carte plateau : une carte, quatre fois

Le fabricant JLCPCB impose une commande minimum de 5 cartes. Plutôt que d’en jeter 4, nous avons découpé le plateau de 24 cm en 4 cartes identiques de 12 × 12 cm, avec chacune 16 capteurs et 48 LED. Tournées de 90° l’une par rapport à l’autre, leurs connecteurs se retrouvent face à face, et des résistances de 0 Ω choisissent le chemin des données.

Routage du PCB de la carte plateau
Le routage : 16 cases de 3 cm, chaque composant placé au millimètre.
Vue 3D KiCad d'une sous-carte du plateau
Vue 3D d’une sous-carte.
Vue 3D de la carte pilote avec l'ESP32

La carte pilote

Elle accueille l’ESP32, les deux boutons de la pendule, le connecteur de l’écran et toute l’alimentation. Les 192 LED peuvent consommer jusqu’à 11,5 A. Comme on n’en allume au plus que la moitié, une alimentation 5 V de 9 A suffit, avec un régulateur LDO 3,3 V pour les capteurs.

Au routage, le plan de masse évite l’antenne de l’ESP32, pour ne pas la transformer en cage de Faraday.

Étape 5

Fabriquer et souder

En industrie, ces composants sont posés par des machines puis passés au four. L’IUT n’a pas ces machines, et la sous-traitance est tombée à l’eau : un mois après le début du projet, les capteurs étaient en rupture de stock chez le prestataire. Nous avons donc tout assemblé à la main, en trois étapes :

  1. Pâte à braser : étalée à la spatule à travers un pochoir métallique.
  2. Placement : les 162 composants posés un à un, à la pince, sous un microscope numérique.
  3. Refusion : sur une plaque chauffante, l’étain fond et chaque composant s’aligne tout seul sur ses pastilles.
Application de la pâte à braser à travers le pochoir
La pâte à braser, appliquée à travers le pochoir.
Des composants de quelques millimètres, posés un à un à la main.
Un quart de la carte plateau, avec ses capteurs et ses LED soudés
Une sous-carte terminée : 16 capteurs et 48 LED.

Étape 6

Modéliser et imprimer le boîtier

Le plateau est modélisé sur mesure, à la taille de l’imprimante (25 cm de côté, d’où une carte de 24 cm). Il se compose d’un boîtier avec inserts et encoches pour la carte, d’un quadrillage qui limite la lumière à une seule case, et d’un couvercle tenu par des aimants dans les coins. Avant l’impression, un assemblage virtuel vérifie que tout s’emboîte.

Modélisation 3D du quadrillage qui sépare la lumière des cases
Le quadrillage, pour que chaque case s’éclaire seule.
Vue éclatée : les cartes du plateau prennent place dans le boîtier.

Étape 7

Programmer et tester

Architecture logicielle : ESP32, serveur, écran et API Lichess

L’ESP32 est programmé en Arduino (C++). Un serveur web en Python, relié par WebSocket, sert de banc de test : il permet de modifier la configuration, de voir les adresses I²C détectées et de suivre en direct les valeurs des 64 capteurs, avec la détection des pièces blanches et noires.

À terme, ce serveur doit relier le plateau à l’API Lichess pour jouer en ligne sur un vrai échiquier.

Résultat

Le plateau en action

Le plateau assemblé détecte les pièces posées et soulevées, et éclaire les cases en couleur pour guider le joueur.

En jeu : on soulève une pièce, les cases réagissent.
La lumière passe sous chaque case.
L'échiquier avec deux cases éclairées en bleu pour indiquer un coup
Les cases s’allument en couleur pour indiquer un coup.

Bilan et suites possibles

Le projet a consolidé les choix des promotions précédentes et levé leurs deux principaux blocages : l’adressage des 64 capteurs, grâce à l’EEPROM, et la soudure des composants CMS, grâce au pochoir et à la refusion. Il reste du travail pour la suite :

  • Finaliser l’interface web en Wi-Fi : gestion des parties, historique des coups, modes d’apprentissage.
  • Réduire le nombre de capteurs en estimant la position d’une pièce à partir du champ mesuré sur plusieurs cases.
  • Aller vers un plateau multi-jeux, capable de s’adapter à d’autres jeux de société.

Outils utilisés : KiCad (schémas et PCB), Arduino / C++ sur ESP32, Python et WebSocket, modélisation et impression 3D. Fabrication des PCB et du pochoir : JLCPCB.