Étude détaillée des composants, de la logique et du routage du PCB.
Une architecture mécatronique typique séparant strictement la puissance de la logique.
Ce circuit a pour objectif de piloter un système motorisé complet (gestion de la puissance, contrôle des actionneurs, interface utilisateur).
Au cœur de notre conception, nous avons choisi d'utiliser un ESP32-S3 au format UNO. Ce choix est stratégique : il nous offre une grande puissance de calcul, de nombreuses broches (GPIO), et ouvre la porte à une connectivité sans fil très utile pour l'évolution du projet. Sa carte possède son propre petit régulateur interne qui a besoin de 5V en entrée pour générer le 3.3V.
Pour la partie opérative, le schéma met en évidence le contrôle des deux moteurs pas-à-pas de la machine via deux modules drivers A4988.
Ces drivers nous permettent un contrôle ultra-précis de la position. Des cavaliers (jumpers) sont prévus sur le circuit pour configurer la résolution des pas (le microstepping). Un connecteur (J8) est également prévu pour piloter le servomoteur de l'axe Z qui fonctionne en 5V.
Distribution de l'énergie brute et protection matérielle.
Notre système est alimenté en 12 volts via un connecteur de type "Barrel Jack". Cette tension brute est exclusivement réservée à la puissance pure et envoyée directement aux broches VMOT (Voltage Motor) des drivers A4988.
Pourquoi 12V ? Les moteurs pas-à-pas ont besoin d'une tension (et d'un courant) élevée pour générer un couple important (la force mécanique) et tourner rapidement. Si on les alimentait avec une tension plus basse, ils manqueraient cruellement de puissance.
Situé juste après l'entrée 12V (suivi d'un connecteur d'arrêt d'urgence), ce fusible est un composant de sécurité "sacrificiel" : son but est de "mourir" pour sauver la carte. Il a 3 utilités principales :
Le 12V étant destructeur pour l'électronique standard, il faut l'abaisser intelligemment.
Le modèle utilisé est un convertisseur abaisseur (Buck converter) R-78E5.0-1.0. Son but est de transformer le 12V en un 5V stable pour alimenter le Servomoteur et l'ESP32.
Le principe du hachage : Contrairement aux anciens régulateurs linéaires (comme le LM7805) qui dissipent l'excès de tension en chaleur, le U2 intègre un transistor qui s'ouvre et se ferme des centaines de milliers de fois par seconde pour "hacher" le 12V. Une bobine et un condensateur internes lissent ensuite cette tension. L'avantage : il convertit l'énergie avec plus de 90% d'efficacité. Puisqu'il ne dissipe presque pas d'énergie, il ne chauffe pas et n'a pas besoin de gros dissipateur thermique !
Le régulateur est encadré par deux condensateurs externes de 10µF cruciaux pour la stabilité :
C5 (Condensateur d'entrée) : Il agit comme un petit réservoir tampon sur la ligne 12V. Lorsque le régulateur "hache" le courant, il crée des micro-appels d'énergie. Ce condensateur fournit cette énergie instantanément, évitant de perturber le reste de la ligne 12V.
C6 (Condensateur de sortie) : Il parfait le travail du régulateur. Il filtre les toutes dernières micro-variations (le "bruit" résiduel du hachage) pour garantir que l'ESP32 reçoive un 5V d'une propreté absolue, condition indispensable pour que le microcontrôleur ne plante pas.
Distribution de la tension du "cerveau" et adaptation d'impédance via les résistances de Pull-Up.
L'ESP32-S3 fonctionne avec des signaux logiques de 3.3V (0V = état bas, 3.3V = état haut). Cette tension est générée par la carte ESP32 elle-même (broche 3V3) et distribuée à toute l'électronique de contrôle.
Elle alimente le lecteur de carte SD (VDD), l'affichage I2C, la tension de référence des drivers A4988 (broches VDD) et les résistances de pull-up pour les capteurs de fin de course. Attention : Envoyer du 5V ou du 12V sur les broches de données de l'ESP32 ou de la carte SD les grillerait instantanément.
Les résistances R4 et R5 sont placées sur les lignes SDA et SCL de l'écran. L'I2C utilise un fonctionnement en "Drain ouvert" : les components ne forcent jamais la ligne à 3.3V, ils la tirent à 0V pour "parler". Ce sont R4 et R5 qui ramènent la tension à 3.3V.
Pourquoi 4.7 kΩ ? Les pistes agissent comme de minuscules condensateurs (capacité parasite). Une résistance trop forte (ex: 100kΩ) mettrait trop de temps à remonter la tension, arrondissant le signal et rendant la vitesse floue. Trop faible (ex: 1kΩ), les puces surconsommeraient pour la tirer à 0V. 4.7 kΩ est le compromis idéal pour des signaux bien carrés à 100/400 kHz.
La carte embarque un lecteur SD communiquant en SPI pour faire du datalogging. Le SPI "pousse" activement le courant. Les résistances R6 et R7 ne servent qu'à fixer un état par défaut (tirage faible / weak pull-up) pour que la ligne ne flotte pas et ne capte pas de parasites, tout en économisant l'énergie.
Le passage du schéma au monde physique avec KiCad.
La carte a été conçue sur deux couches : pistes rouges pour la couche supérieure (Top) et bleues pour la couche inférieure (Bottom). Lors du routage, plusieurs règles de l'art ont été respectées :
Inventaire exhaustif des 29 références physiques présentes sur le circuit imprimé.
| Réf. | Composant | Modèle / Valeur | Qté | Rôle / Explication |
|---|---|---|---|---|
| U1 | Microcontrôleur | ESP32-S3-UNO | 1 | Cerveau de la carte. Lit le G-Code, contrôle les périphériques et calcule les déplacements. |
| A1, A2 | Driver Moteur | Module-A4988 | 2 | Contrôleurs de puissance. Permettent de piloter précisément les moteurs Nema 17. |
| U2 | Convertisseur DC/DC | R-78E5.0-1.0 | 1 | Régulateur. Abaisse la tension 12V en 5V propre pour alimenter la logique. |
| J1 | Lecteur Micro-SD | SD_Card_Device | 1 | Emplacement pour insérer la carte SD. Communique via le bus SPI. |
| J2 | Prise Alim Jack | Barrel_Jack_Switch | 1 | Port principal d'entrée de l'alimentation électrique (12V). |
| J3, J4 | Connecteur "Switch" | Conn_01x03 | 2 | Connecteurs (3 broches) pour les interrupteurs de fin de course (Endstops). |
| J5, J6 | Connecteur Moteur | Conn_01x04 | 2 | Connecteurs (4 broches) pour brancher directement les moteurs X et Y. |
| J7 | Bornier à vis | Arrêt d'urgence | 1 | Bornier de sécurité. Permet d'insérer un bouton pour couper l'alimentation. |
| J8 | Connecteur Servo | Conn_01x03 | 1 | Prise dédiée au servomoteur (Axe Z) gérant la levée/descente du stylo. |
| J9, J10 | Cavaliers (Jumpers) | Conn_02x03 | 2 | Blocs de 6 picots pour configurer la résolution (Micro-stepping) des drivers A4988. |
| Display1 | Connecteur Écran | Conn_01x04 | 1 | Connecteur pour brancher l'écran OLED via le bus I2C. |
| F1 | Fusible | Fuse | 1 | Protection matérielle. Coupe le circuit en cas de court-circuit (surintensité). |
| D1 | Voyant LED | LED | 1 | Indicateur pour confirmer que la carte est bien sous tension (5V). |
| R3 | Résistance | 1K Ω | 1 | Limite le courant de la LED D1 pour éviter qu'elle ne grille. |
| R4, R5 | Résistances | 4.7K Ω | 2 | Résistances de tirage (Pull-up) pour stabiliser les signaux SDA/SCL de l'OLED. |
| R6, R7 | Résistances | 10K Ω | 2 | Résistances de tirage (Pull-up) pour stabiliser les signaux du lecteur SD. |
| C3, C4 | Condensateurs Polarisés | 100 µF | 2 | Absorbent les pics de courant générés par les moteurs pour protéger les drivers. |
| C5, C6 | Condensateurs | 10 µF | 2 | Filtrage en entrée/sortie du convertisseur U2 pour lisser la tension 5V. |
| C7, C8 | Condensateurs | 10 µF | 2 | Découplage pour stabiliser le courant général du système. |
| C2 | Condensateur | 100 nF | 1 | Découplage placé près de l'écran pour éliminer les parasites haute fréquence. |
Schematic réalisé sur KiCad.