Adoptons une approche modulaire pour tester les capteurs. La carte d'évaluation des capteurs a été créée pour conçue le problème du remplacement répété des capteurs durant le développement. Basée sur l'ESP32-S3, elle intègre deux convertisseurs analogique-numérique (ADC) ADS1015 ADS1015 de haute précision, des connecteurs Grove et des emplacements pour cartes modulaires. Ces caractéristiques facilitent grandement les tests et l'échange de capteurs, en remédiant aux limites des ADC de l'ESP32 et assurant l'obtention de données fiables et précises, essentielles pour un processus de prototypage plus efficace.

Test de capteur simplifié

Avant d'entamer un projet, tout commence par une idée, une méthode pour résoudre un problème ou améliorer une solution déjà existante. Vient ensuite la phase de planification, durant laquelle nous identifions ce qui est nécessaire pour concrétiser cette idée : les outils, l'équipement et les composants essentiels à la réalisation du projet. Les projets basés sur des capteurs implique souvent de tester plusieurs fois différents capteurs, de remplacer du matériel et de résoudre des problèmes techniques pour assurer un fonctionnement optimal. C'est dans ce contexte qu'intervient la carte d'évaluation de capteurs (figure 1).

Figure 1. La carte d'évaluation du capteur assemblée.

Conçue pour simplifier et rendre plus efficaces les tests de capteurs, cette carte permet aux développeurs de changer rapidement de capteurs, d'optimiser le code et de dépanner sans les contraintes habituelles. Dans la plupart des projets de systèmes embarqués, nous trouverons un ensemble de capteurs tels que les capteurs de température, d'humidité, de lumière, ou de de mouvement. Ces capteurs essentiels constituent les éléments de base d'une multitude d'applications, allant de simples moniteurs environnementaux aux appareils IdO sophistiqués. Mais au fur et à mesure que les projets et les applications se développent, la nécessité de tester différentes configurations se fait sentir, chacune nécessitant des tests minutieux de compatibilité matérielle et logicielle. Le processus de recâblage, de réorganisation des circuits et de gestion d'un espace de travail encombré peut rapidement s’avérer fastidieux.

L'idée d'utiliser des cartes modulaires pour chaque type de capteur couramment utilisés est une solution efficace pour ce problème. En connectant simplement une carte périphérique spécialement conçue pour un capteur spécifique, il est possible de changer de capteur aisément, sans l'encombrement des câbles ou la nécessité de reconfiguration. Cette approche modulaire optimise les tests et l'espace de travail, permettant d'experimenter avec diverses configurations de capteurs sur une même carte. Dotée d'ADC externes de haute précision, la carte d'évaluation des capteurs transforme le processus, en faisant gagner du temps et en assurant que chaque configuration soit testée avec précision et facilité. Que ce soit pour la surveillance environnementale, les applications IdO ou simplement l'expérimentation avec des données de capteurs, cette carte propose une méthode efficace et structurée pour transformer les concepts en prototypes entièrement fonctionnels.

Je m'abonne
Abonnez-vous à la balise thématique test&mesure pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Conception et architecture

Le schéma de la figure 2 décrit une conception visant à simplifier les tests de capteurs avec le module ESP32-S3 comme contrôleur central. L'ESP32-S3 a été choisi pour ses capacités double cœur et sa forte prise en charge du Wi-Fi et du Bluetooth, ce qui le rend adapté aux applications IoT.

Figure 2. Schéma du projet.

Par rapport à des options comme STM32, l'ESP32 offre un soutien communautaire plus large et une intégration plus simple pour les projets axés sur le Wi-Fi. En outre, l'intégration d'un module ESP32 WROOM est beaucoup plus facile dans vos projets par rapport à d'autres microcontrôleurs, car les modules WROOM ont déjà l'extrémité frontale de l'antenne conçue avec d'autres composants de base à utiliser avec le microcontroleur, ce qui diminue encore le nombre de composants pour faire fonctionner votre prototype. Vous pouvez consulter la figure 3 qui montre la disposition du circuit imprimé de la carte.

Figure 3. Disposition du circuit imprimé montrant les numéros de référence des connecteurs et l'emplacement des composants.

La carte est équipée de deux ADC ADS1015 (IC1 et IC2) pour pallier les limitations des ADC internes de l'ESP32-S3. Chaque ADC dispose de quatre entrées analogiques (canaux). Les entrées analogiques du premier ADC sont connectées à des broches de connecteurs au pas de 2,54 mm et les entrées analogiques du second ADC sont liées à deux connecteurs Grove (deux canaux chacun, ainsi que des connexions VCC et GND). L'ADS1015 offre une résolution fiable de 12 bits, adéquate pour la majorité des applications de capteurs tout en restant économique. Bien qu'un ADC à plus haute résolution comme l'ADS1115 ait été envisagé, l'équilibre des performances de l'ADS1015 (3300 éch/s contre 860 éch/s) correspondait mieux à l'objectif de la carte. En outre, l'ADS1115 peut remplacer l'ADS1015 sur le même circuit imprimé car ils partagent les mêmes brochages et empreintes. La broche ADDR d'un ADC est connectée à GND, l'autre à VCC, assignant ainsi à chaque puce une adresse I2C différentes comme détaillé dans la fiche technique.

Pour indiquer l'état, la carte intègre deux LED (LED1 et LED2), connectées respectivement aux GPIO14 et GPIO21 de l'ESP32-S3. Ces LED sont polyvalentes et peuvent être configurées pour diverses applications, telles que signaler l'état de l'alimentation, indiquer l'activité de communication, ou encore afficher des signaux de débogage personnalisés lors des tests de capteurs.

Une interface I2C de l'ESP32 (GPIO8 = SDA) et GPIO9 = SCL) est routée  vers les connecteurs de carte périphérique K1 à K4, ainsi que vers trois connecteurs Grove K6 à K8 et un connecteur Qwiic K5. De même, l'interface de communication SPI est configurée de la manière suivante : SDI est connecté  au GPIO11, SCK au GPIO12, et SDO au GPIO13. Ces lignes sont également connectées aux prises de la carte périphérique, ainsi que quatre lignes CS (Chip Select). Cela permet l'utilisation simultanée de capteurs SPI via les connecteurs de la carte périphérique sans risque de conflit, ce qui permet une flexibilité accrue dans les configurations de test des capteurs.

Je m'abonne
Abonnez-vous à la balise thématique ESP32 pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Comme mentionné précédemment, les quatre connecteurs de la carte périphérique (K1 à K4) facilitent le changement direct des capteurs sans nécessiter de recâblage. Ces connecteurs sont des connecteurs SMT pour cartes edge EC.8 d'ept, qui sont en effet assez robustes pour cette application ; ils supportent une transmission de données allant jusqu'à 28 Gbps et une capacité de courant de 3,2 A (des spécifications largement supérieures à celles requises pour nos besoins). Leur principal avantage réside cependant dans leur facilité d'utilisation, qui permet des changements fréquents et transparents de modules de capteurs dans un environnement de test. Comparés aux connecteurs à broches traditionnels, ces connecteurs edge simplifient grandement l'optimisation des configurations de test et offrent un cycle d'insertion pouvant atteindre 500 cycles, garantissant ainsi une durabilité à long terme.

Le connecteur J1 est dédié à la programmation de l'ESP32-S3 via UART, offrant une interface directe pour charger le micrologiciel et réaliser les configurations initiales. Cependant, il est également possible de flasher le micrologiciel via la connexion USB de type C (K11). De son côté, J2, est un connecteur au pas de 2,54 mm qui permet l'accès aux autres broches GPIO de l'ESP32-S3 et au premier ADC (IC1). Cet accès supplémentaire est utiles pour connecter des modules externes ou des périphériques personnalisés directement à l'ESP32-S3, ce qui permet d'étendre les fonctionnalités de la carte en fonction des besoins au cours du développement et des tests.

La gestion des lignes de sélection de puce (CS) représente un défi spécifique, car chaque capteur fonctionnant en SPI nécessite une broche CS dédiée. Pour ce faire, quatre lignes CS distinctes sont disponibles sur les connecteurs de la carte périphérique, chacune associée à un GPIO unique du microcontrôleur. Bien que cette solution réponde aux besoins du circuit actuel, une approche de multiplexage ou un extenseur GPIO pourrait être envisagé pour les versions futures afin de permettre une affectation dynamique des broches CS. Cette approche actuelle supporte efficacement le fonctionnement simultané de plusieurs capteurs, facilitant ainsi l'échange rapide et direct des modules de capteurs.

Je m'abonne
Abonnez-vous à la balise thématique capteurs pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Options de capteurs modulaires

Pour cette version, nous avons créés deux modules de capteurs sur la carte edge : un capteur environnemental BME280 et un capteur IMU ICM42688. Les circuits de ces modules sont basés sur leurs fiches techniques respectives ; toutefois, pour référence, vous pouvez consulter les figure 4 et 5. Les deux cartes edge partagent des dimensions identiques 23,55 × 13,55 mm (figure 6), avec des brochages standardisés pour les lignes I2C et SPI assurant ainsi leur compatibilité.

Figure 4. Schéma et brochage du module BME280 Edge Card.

Pour tester ces capteurs, j'ai utilisé des bibliothèques qui ont simplifié le processus d'intégration. Pour le ICM42688, j'ai utilisé la bibliothèque ICM42688 de finani, qui s'est avérée être conviviale et qui comprend des exemples couvrant diverses fonctionnalités telles que les modes I2C et SPI, la gestion des interruptions, et plus encore. Pour le BME280, je me suis appuyé sur la bibliothèque Adafruit_BME280_Library , réputée pour sa simplicité et sa facilité d'utilisation.

Figure 5. Schéma de principe du module ICM42688 Edge Card.

Lors de la conception des modules de carte edge, j'ai sélectionné le symbole 02x10 Connector odd/even dans le schéma et j'ai utilisé l'empreinte Samtec_HSEC8:Samtec_HSEC8-110-X-DV-BL_2x10_P0.8mm_Edge de la bibliothèque par défaut de KiCAD pour réaliser le routage du circuit imprimé. Pour les connecteurs de carte edge de la carte d'évaluation du capteur, j'ai téléchargé le fichier d'empreinte directement depuis le site Web du fabricant et je l'ai ajouté à ma bibliothèque KiCAD en utilisant programme Library Loader.

En termes de spécifications physiques, les connecteurs EC.8 utilisés sur la carte sont conçus pour supporter des circuits imprimés (PCB) de 1,6 mm d'épaisseur. Pour assurer la compatibilité, j'ai spécifié une épaisseur de PCB de 1,6 mm lors de la commande des modules de carte de bord auprès du fabricant de circuits imprimés.

Figure 6. Comparaison de la taille des modules Edge Card avec une pièce de 1 euro.

Tests et limites des ADC de l'ESP32

Durant les tests, j'ai évalué les deux ADC ADS1015 integrés. Malheureusement, je disposais d'un seul circuit intégré ADS1015 à ce moment-là, et je l'ai donc testé séparément dans les deux emplacements. Les résultats obtenus ont montré que les deux configurations fonctionnaient de manière similaire dans des conditions standard. Cependant, l'ADC de IC1 a montré une performance légèrement meilleure en termes de bruit, probablement en raison de sa proximité avec les broches du connecteur et de son éloignement par rapport à la section d'alimentation de la carte. Cependant, il est important de noter que cette différence de bruit est minime et n'affecte pas significativement l'usage pratique.

Figure 7. La carte d'évaluation des capteurs avec les modules de capteurs insérés, illustrant l'approche modulaire.

Lors de la comparaison entre ces ADC externes et l'ADC intégré de l'ESP32-S3, l'amélioration est indéniable. L'ADS1015 présente une précision nettement supérieure et un niveau de bruit considérablement réduit, même lorsque l'ESP32-S3 est cadencé à 20 MHz. La différence de performance est presque incomparable, ce qui rend ces ADC externes extrêmement bénéfiques.

Au-delà du test de l'ADC, la conception modulaire de cette carte a vraiment brillé lors de l'échange et des essais des modules de capteurs de la carte edge. Alors que je n'ai actuellement que deux modules - le BME280 et ICM42688 - la flexibilité, qu'ils offrent m'a incité à envisager d'élargir cette collection. Comme illustré dans la figure 7, la taille compacte de la carte, mesurant seulement 64,7 × 66,6 mm, constitue un autre avantage. Elle est même plus petite que la souris qui lui est comparée dans la figure 8, faisant d'elle un outil idéal pour le bureau. Cette approche modulaire s'est révélée incroyablement utile pour tester les capteurs et a gagné une place permanente sur mon établi.

Figure 8. Comparaison de la taille de la carte d'évaluation des capteurs à côté d'un
clavier et d'une souris, démontrant ses dimensions adaptées à l'établi.

Réflexions finales et améliorations futures

Comme pour tout projet, il y a toujours place à l'amélioration, et la réflexion sur cette conception m'a inspiré plusieurs idées pour la prochaine version. Un aspect à améliorer concerne l'agencement des connecteurs des cartes edge. Bien que la disposition actuelle soit fonctionnelle, j'ai rencontré quelques difficultés à les souder avec une station de reprise en raison de l'espacement restreint (figure 9). Cela m'a poussé à à recourir à une plaque chauffante, uniquement pour ces connecteurs. Pour les futures versions, je prévois d'augmenter l'espacement entre les connecteurs afin de faciliter la soudure et d'améliorer l'accessibilité des deux côtés.

Figure 9. Vue latérale montrant l'espacement réduit des connecteurs
de la carte egde , soulignant le potentiel d'améliorations futures.

Une autre amélioration consisterait à déplacer l'ADC inférieur (IC2) légèrement plus loin de la section d'alimentation de la carte. Bien que la différence de bruit observée pendant les tests ait été très minime, optimiser l'emplacement de cet ADC pourrait encore améliorer l'intégrité du signal. Lors de la conception initiale, j'ai supposé que cela pourrait avoir un impact très limité, et les tests ont confirmé que même de petits ajustements dans l'agencement peuvent faire une différence notable.

En outre, je considérerai l'intégration d'un multiplexeur pour les lignes de sélection de puce (CS) sur les connecteurs des cartes de bord. Cette approche permettrait une affectation dynamique des broches CS, rendant la conception plus flexible et moins dépendante des GPIO prédéfinis pour chaque carte périphérique. Cela faciliterait également l'intégration de plusieurs cartes de bord, offrant une plus grande adaptabilité dans les versions futures.

Enfin, j'envisagerais d'ajouter un écran OLED embarqué pour permettre un retour d'information en temps réel pendant les tests. Des fonctionnalités telles que l'affichage de l'état du capteur ou des lectures ADC directement sur la carte pourraient améliorer sa convivialité et accélérer le débogage.
Globalement, ce projet a été une expérience enrichissante en matière de conception modulaire et a démontré son utilité lors des tests de capteurs. Bien qu'il reste toujours de la place pour des améliorations, la version actuelle sert bien son but et fournit une base solide pour les améliorations futures. Avec quelques modifications, je suis persuadé que cette carte peut évoluer pour devenir un outil encore plus performant et flexible pour le développement de systèmes embarqués.


Questions ou commentaires ?

Envoyez un courriel à l'auteur (saad.imtiaz@elektor.com), ou contactez Elektor (redaction@elektor.fr).


Note de l'éditeur : l'article original, « A Modular Approach to Sensor Testing » (240472-04), est paru dans Elektor mars/avril 2025.


Je m'abonne
Abonnez-vous à la balise thématique IoT & Sensors pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !