Étudiant en L3 EEA, mineure mathématiques à Sorbonne Université. Je conçois des circuits et des prototypes robotiques, du capteur au logiciel embarqué. Je partage aussi mes photographies et mes créations 3D.
Électronique, robotique et logiciels : mes projets, leurs choix de conception et leur état d’avancement.
Photographie
Modélisation 3D
À propos
Je suis Benjamin Piras, étudiant en L3 à Sorbonne Université, en majeure électronique, électrotechnique et automatique (EEA), avec une mineure en mathématiques. Je m’intéresse à la chaîne complète d’un système : capteurs, circuits, acquisition, programmation et commande.
Lors de mon stage à l’Institut des Systèmes Intelligents et de Robotique (ISIR), j’ai travaillé sur un prototype de main robotique instrumentée. Du choix des composants à la conception du PCB et au traitement des capteurs, cette expérience m’a permis de relier l’électronique et la robotique dans un même projet.
Robotech : référent électronique pour le projet Eurobot.
Top Aéro : réalisation de capteurs de pression pour la fusée Ætherion dès ma première année de licence.
Reboot&Give : cofondateur et président d’une association qui collecte, répare et donne du matériel électronique aux étudiants en situation de précarité.
Développer une perception tactile sur une main robotique demande d’abord une chaîne capable de lire des capteurs distribués, de transmettre leurs mesures et de rendre ces données exploitables. J’ai conçu cette chaîne à l’ISIR, à Sorbonne Université, lors de mon stage de recherche encadré par Nizar Ouarti.
Le système associe une carte mère à 15 sous-cartes de phalange, prévues pour accueillir 45 capteurs à effet Hall trois axes. Mon travail a couvert le choix des composants, les schémas et le routage des PCB, la programmation embarquée, les communications sans fil et les interfaces de mesure. Le prototype a été validé sur 9 capteurs répartis sur 3 phalanges.
Le principe tactile visé repose sur de petits aimants intégrés à une surface déformable. Un contact déplace ces aimants par rapport aux capteurs et modifie le champ mesuré. La chaîne développée acquiert ces variations ; leur conversion en force demande ensuite une calibration mécanique.
Architecture
Communications
Validation
1 carte mère · 15 sous-cartes prévues 3 TMAG5273 par phalange
I²C à 1 MHz UART à 2 Mbit/s · ESP-NOW V2
9 capteurs sur 3 phalanges Réception de l’ordre de 100 trames/s
01 — Une carte mère pour quinze sous-PCB
Chaque sous-carte regroupe trois capteurs TMAG5273, repérés A1, B1 et C1. Leurs adresses I²C distinctes permettent de les interroger sur un même sous-bus. La carte mère centralise ces mesures avec une Teensy 4.1 et deux multiplexeurs PCA9848 à huit canaux.
Chaque multiplexeur est relié à un contrôleur I²C matériel de la Teensy. Ses canaux sélectionnent les sous-cartes : le programme choisit une phalange, lit ses trois capteurs, puis passe à la suivante. Cette organisation permet de réutiliser les mêmes adresses sur des branches différentes et limite le nombre de liaisons à distribuer dans la main.
Architecture logique prévue pour une main complète : 15 sous-PCB et 45 capteurs. La répartition 8 + 7 illustre l’utilisation des deux multiplexeurs ; un canal reste disponible. Les essais matériels ont porté sur trois phalanges.
Le choix du TMAG5273 répondait à plusieurs contraintes : mesure de Bx, By et Bz, plage réglable, moyennage interne et communication I²C jusqu’à 1 MHz. Une solution SPI avait été étudiée, mais les lignes de sélection de la topologie envisagée auraient complexifié le routage. L’I²C multiplexé offrait un compromis adapté à la distribution des cartes.
02 — Du schéma électronique au prototype
J’ai séparé l’électronique en deux fonctions : une carte principale pour l’acquisition, la transmission et l’alimentation ; des PCB de phalange pour placer les points de mesure au plus près de la surface à instrumenter. Cette modularité permet de tester les sous-ensembles avant leur intégration mécanique.
Prototype réalisé : la carte mère à droite, avec la Teensy 4.1 et l’ESP32-C6, et une carte de phalange à trois capteurs à gauche.
Sous-PCB de phalange : implantation des trois capteurs et routage des liaisons vers les connecteurs FPC.PCB mère : connexion des phalanges, emplacements des microcontrôleurs, multiplexage I²C et alimentation.
Le routage a évolué pour améliorer l’orientation des connecteurs, simplifier les pistes et adapter les liaisons d’alimentation aux courants attendus. La carte mère mesure environ 71 × 38 mm. Les microcontrôleurs sont montés sur supports pour faciliter leur remplacement pendant la mise au point.
Voir le repérage des fonctions sur la carte mèreOrganisation du PCB mère : multiplexeurs et connecteurs FPC à gauche ; alimentation, charge, conversion des tensions et connexion batterie dans la partie inférieure et à droite.
L’alimentation accepte l’USB-C ou une batterie LiPo nominale de 3,7 V / 1 200 mAh. Un convertisseur fournit le rail de 5 V et un régulateur le rail de 3,3 V. Un MCP73831 assure la recharge, tandis qu’un circuit de partage des sources donne la priorité à l’USB lorsqu’il est branché. Une jauge MAX17048 transmet la tension et l’état de charge estimé.
La mise en service a commencé par les tensions des rails, leur comportement en charge, l’échauffement et le téléversement des programmes. Les communications ont d’abord été testées avec des données simulées, puis avec les capteurs réels. Les essais sur batterie ont révélé des creux de tension à approfondir, notamment lors de l’émission radio.
03 — Faire circuler les mesures jusqu’à l’ordinateur
La Teensy lit les capteurs en I²C, puis transmet une trame à l’ESP32-C6 par UART à 2 Mbit/s. L’ESP32-C6 ajoute les informations de batterie et envoie le paquet par ESP-NOW V2 à un ESP32-S3 relié à l’ordinateur en USB.
Chaîne d’acquisition et de transmission. Les tailles de trame correspondent au format dimensionné pour les 45 positions de mesure.
Chaque capteur occupe 9 octets : un identifiant et quatre mesures codées sur deux octets chacune — Bx, By, Bz et température. Les 45 positions représentent 405 octets utiles. Avec les délimiteurs, la trame UART atteint 409 octets, puis 417 octets après ajout des données de batterie.
Les octets n’arrivent pas nécessairement en une seule lecture sur l’ordinateur. J’ai donc développé une reconstruction par tampon : recherche des marqueurs de début, attente de la longueur complète, puis vérification de la fin. Le format ne dépend ainsi pas du découpage du flux USB. Un CRC applicatif couvrant toute la trame reste une amélioration possible.
TUART=2×106409×10≃2,05ms
Ce temps théorique inclut les dix bits transmis par octet en UART 8N1. Il décrit une étape du transfert ; la latence totale comprend aussi l’acquisition, la radio, le traitement et l’affichage.
04 — Traiter les données sans bloquer l’affichage
Les capteurs étaient configurés en conversion continue, avec une plage de ±40 mT et un moyennage matériel ×8. Les mots bruts sont convertis en unités physiques avant leur exploitation. Leur transport sur 16 bits ne doit pas être confondu avec une résolution effective de 16 bits.
Un filtre exponentiel stabilise les composantes magnétiques :
Sn=αYn+(1−α)Sn−1
Le coefficient règle le compromis entre lissage et réactivité. Pour α = 0,1 et une période nominale de 10 ms, la constante de temps équivalente est d’environ 95 ms. Ce retard de filtrage est distinct du temps de transmission.
J’ai développé des interfaces Python avec Dash et Plotly pour observer les signaux et exporter les acquisitions en CSV. Une première vue 3D a servi à préparer l’affichage pendant la fabrication des cartes. Une interface Unity/C# a ensuite séparé la réception série, exécutée en arrière-plan, du rendu graphique. Un verrou protège la copie des tableaux partagés pour éviter de mélanger deux trames.
Première visualisation Dash/Plotly développée avec des données simulées. Les températures et la décharge affichées sur cette capture ne sont pas des résultats expérimentaux.
Démonstrations vidéo
Prototype Dash/Plotly : visualisation de la main et actualisation des graphiques avec des données simulées. · 35 s
Essai d’intégration du flux de trames et de l’affichage 3D, avec les diagnostics du décodeur. Cette capture de mise au point utilise des données de test. · 10 s
Interface dédiée aux mesures d’une phalange : composantes et normes instantanées, historique de Bz et évolution de la norme pour les trois capteurs.
La réception observée est de l’ordre de 100 trames par seconde. Cette cadence ne représente ni la fréquence de redessin de l’écran, ni une mesure de latence de bout en bout.
05 — Mesurer le bruit et la réponse à la distance
La caractérisation magnétique a été menée principalement sur une phalange, avec un aimant cylindrique en néodyme de 19 mm de diamètre et 1,5 mm d’épaisseur. Une règle permettait de régler la distance, avec une incertitude de positionnement estimée à environ 1 mm.
Une acquisition sans aimant volontaire a fourni 5 966 échantillons par capteur pour déterminer le champ de fond et ses fluctuations. Pour B1, les écarts-types étaient d’environ 0,111 mT selon X et 0,054 mT selon Z. Le seuil instantané choisi, à trois écarts-types, valait donc respectivement 0,333 mT et 0,163 mT.
Après soustraction du fond, les mesures selon Z ont été comparées au modèle d’un aimant cylindrique. Le point au contact atteignait environ 39,98 mT, proche de la saturation de la plage configurée ; il a été exclu de l’ajustement.
Décroissance de Bz et comparaison au modèle cylindrique, avec R² ≈ 0,964. Le zoom situe le franchissement du seuil instantané entre 60 et 65 mm dans cette configuration.
Selon X, le bord du PCB ajoutait environ 3,1 mm à la distance nominale, en plus du décalage du point sensible dans le boîtier. Cette géométrie explique une partie des différences entre les courbes. La limite instantanée se situait entre 40 et 50 mm pour cette configuration, contre 60 à 65 mm selon Z.
06 — Comprendre le couplage entre les capteurs
Une source placée devant un capteur influence aussi ses voisins. À 15 mm devant B1, les réponses d’A1 et C1 atteignaient environ 97 % et 92 % de celle de B1. Le graphique compare les trois positions de l’aimant :
Couplage spatial mesuré à 15 mm. La réponse de plusieurs capteurs à une même source impose d’exploiter la distribution du champ pour une future localisation de contact.
Ce résultat montre qu’un seuil appliqué indépendamment à chaque capteur ne suffit pas à identifier une zone de contact. L’espacement des composants, la géométrie des aimants et le traitement des trois composantes doivent être étudiés ensemble.
07 — Étudier l’interaction de deux sources magnétiques
Deux aimants ont ensuite été placés devant A1 et C1, à 15 mm. Les champs individuels, corrigés du fond, ont servi à construire une prédiction par addition vectorielle :
ΔBpreˊdit=ΔBM1+ΔBM2
L’addition porte sur Bx, By et Bz, et non directement sur les normes. En retournant l’un des aimants, certaines composantes se compensent : la norme résultante a diminué d’environ 30 % par rapport à la configuration de même orientation.
Effet de l’orientation relative des aimants. Le retournement de M2 réduit la norme de 29,6 %, 31,2 % et 30,8 % sur A1, B1 et C1.
La tendance attendue est observée, avec des écarts quantitatifs encore sensibles au positionnement. Ces essais montrent surtout qu’un champ faible ne signifie pas nécessairement l’absence de source : plusieurs contributions peuvent se compenser.
08 — Résultat du projet et prochaines étapes
Le projet aboutit à une chaîne fonctionnelle allant du capteur à l’interface : cartes conçues et mises au point, lecture de neuf capteurs, transmission sans fil et outils de visualisation et d’enregistrement. Il relie la conception électronique, le logiciel embarqué et l’analyse expérimentale dans un même prototype.
La suite consiste à valider l’architecture complète à 45 capteurs, améliorer la reproductibilité du banc et intégrer la surface déformable portant les aimants. Une calibration mécanique sera alors nécessaire pour convertir les variations de champ en déplacement, puis en force de contact. L’alimentation sur batterie et la latence de bout en bout demandent également des mesures complémentaires.
Vers une architecture centralisée sur ESP32-P4
Une évolution serait de regrouper l’acquisition et le transfert des données sur un ESP32-P4. Ses deux contrôleurs I²C principaux permettraient d’envisager une organisation similaire en deux branches multiplexées. Ils sont toutefois documentés jusqu’à 400 kHz, contre 1 MHz dans le prototype. La migration demanderait donc de revoir le budget d’acquisition, puis de revalider l’affectation des GPIO, les pilotes et l’ordonnancement des échanges.
Une variante Ethernet 10/100 Mbit/s, avec un PHY externe, pourrait transmettre directement les mesures à un ordinateur ou à un Raspberry Pi et simplifier la chaîne de communication. L’administration de cette passerelle pourrait se faire en SSH ; un accès SSH direct au microcontrôleur demanderait un serveur spécifique dans le firmware.
Le P4 ne disposant pas de radio Wi-Fi intégrée, conserver ESP-NOW nécessiterait un composant radio compagnon. La centralisation sur un seul microcontrôleur serait donc particulièrement pertinente pour une version filaire Ethernet ou USB, à évaluer en termes d’encombrement, de consommation et de latence.