Aller au contenu

Câblage

Cette page sert à câbler le chargeur chez soi, puis à l’allumer une première fois sans rien griller. Les erreurs les plus courantes (un convertisseur mal réglé, un encodeur branché en 5 V, un servo qui ne supporte pas la tension de la batterie) abîment des pièces dès la première seconde : prenez le temps de suivre la liste de vérification dans l’ordre.

La carte est un ESP32-C3 SuperMini. Le tableau reprend firmware/src/config.h : si les deux ne disent pas la même chose, c’est config.h qui fait foi.

GPIO Fonction À savoir
0 Tension batterie (entrée analogique) À travers un pont diviseur 100 kΩ / 20 kΩ, avec un condensateur de 100 nF vers la masse.
1 Phototransistor IR Résistance de tirage 10 kΩ vers 3,3 V. Le signal monte quand une bille coupe le faisceau.
3 Signal du servo (PWM) Seulement le fil de commande : le servo est alimenté directement par la batterie.
4 Bouton GO Contact sec entre GPIO 4 et GND, rien d’autre. Débranché entièrement de l’ancien circuit 12 V.
5 Encodeur KY-040, CLK Le + du module va sur 3,3 V, jamais 5 V.
6 Encodeur KY-040, DT
7 Encodeur KY-040, SW (clic) Passe à l’état bas quand on appuie.
10 OLED, SDA (I2C) Écran SSD1306 128×64, adresse 0x3C (parfois 0x3D).
20 OLED, SCL (I2C) Utilisable car le port série passe par l’USB natif de la puce.

À laisser libres :

  • GPIO 2, 8 et 9 sont des broches de démarrage (strapping pins) : leur niveau au moment de l’allumage décide du mode de démarrage de la puce. La 8 porte aussi la LED de la carte.
  • GPIO 4 à 7 servent aussi au débogage JTAG. Ça ne gêne pas tant qu’on passe par l’USB (le débogage USB intégré ne les utilise pas), mais une sonde JTAG externe entrerait en conflit avec le bouton et l’encodeur.

Schéma de principe : la position des broches sur le dessin ne correspond pas à leur place réelle sur la carte. Les fils rouges portent la tension batterie (7,4 V, jusqu’à 8,4 V pleine), le fil orange le 5 V du convertisseur, les drapeaux verts le 3,3 V fourni par la broche 3V3 de l’ESP32. Tous les symboles de masse sont reliés entre eux.

Schéma de câblage du BULLOADER+ La batterie LiPo passe par l'interrupteur, puis alimente directement le servo (avec un condensateur de 470 µF à côté), le convertisseur 5 V qui alimente la broche 5V de l'ESP32, et le pont diviseur 100 kΩ / 20 kΩ vers GPIO 0 avec 100 nF vers la masse. Le servo reçoit son signal sur GPIO 3. En 3,3 V : la LED IR avec 220 Ω, le phototransistor avec une résistance de tirage de 10 kΩ vers GPIO 1, l'encodeur KY-040 (CLK 5, DT 6, SW 7) et l'OLED (SDA 10, SCL 20). Le bouton GO relie GPIO 4 à la masse. Masse commune. LiPo 2S 7,4 V 8,4 V pleine + − Interrupteur VBAT Servo 360° 35 kg, alimenté par la batterie signal PWM + 470 µF près du servo Buck sortie 5,0 V 5 V 100 kΩ 20 kΩ 100 nF ≈ 1,4 V max ESP32-C3 SuperMini GPIO 3 5V GND GPIO 0 3V3 GPIO 1 GPIO 4 GPIO 5 GPIO 6 GPIO 7 GPIO 10 GPIO 20 3,3 V 3,3 V 220 Ω LED IR faisceau coupé par les billes 3,3 V 10 kΩ Phototransistor signal IR Bouton GO isolé de l'ancien 12 V CLK DT SW + GND KY-040 encodeur 3,3 V jamais 5 V SDA SCL VCC GND OLED SSD1306 I2C 3,3 V
Composant Branchement
Batterie LiPo 2S + vers l’interrupteur général, − vers la masse commune.
Servo + sur la batterie après l’interrupteur (pas sur le 5 V), − à la masse, signal sur GPIO 3. Condensateur 470 µF 16 V entre + et masse, au plus près du servo, patte + côté batterie.
Convertisseur 5 V (MP1584) Entrée sur la batterie après l’interrupteur, sortie à 5,0 V (vérifiée au multimètre) vers la broche 5V de l’ESP32, masse commune.
Pont diviseur batterie Batterie → 100 kΩ → GPIO 0 → 20 kΩ → masse. Condensateur 100 nF entre GPIO 0 et la masse. À 8,4 V, la broche voit 8,4 × 20 / 120 = 1,40 V. Pas de 47 kΩ à la place : la broche verrait environ 2,7 V, trop haut pour que l’ADC du C3 mesure bien.
LED IR 940 nm 3,3 V → 220 Ω → anode de la LED, cathode à la masse. Elle reste allumée en permanence (environ 10 mA).
Phototransistor 940 nm Collecteur sur GPIO 1, avec une résistance de 10 kΩ de GPIO 1 vers 3,3 V. Émetteur à la masse. Face à la LED, de l’autre côté du tube.
Encodeur KY-040 CLK → GPIO 5, DT → GPIO 6, SW → GPIO 7, + → 3,3 V, GND → masse.
Écran OLED SSD1306 SDA → GPIO 10, SCL → GPIO 20, VCC → 3,3 V, GND → masse.
Bouton GO Un fil sur GPIO 4, l’autre à la masse. Aucun autre fil : débranché de l’ancien circuit 12 V.

À faire dans cet ordre, avant de brancher quoi que ce soit d’autre. Notez chaque valeur mesurée dans le tableau des mesures plus bas.

  1. Mesurer (et si réglable, régler) la sortie du convertisseur à 5,0 V au multimètre, ESP32 débranché. Une version à 5 V fixe n’a rien à régler, mais on mesure quand même. Une version réglable sort souvent d’usine à une tension quelconque, parfois proche de celle de la batterie, ce qui détruirait l’ESP32.
  2. Vérifier la tension maximale du servo face aux 8,4 V de la batterie pleine. Il est branché en direct sur la batterie : beaucoup de servos « 35 kg » s’arrêtent à 6,8 V et meurent au-delà. S’il est donné pour moins de 8,4 V, il lui faut son propre régulateur (un BEC ou un second convertisseur) capable de fournir son courant de blocage, c’est-à-dire ce qu’il tire quand il force à l’arrêt.
  3. Vérifier s’il y a une diode entre le 5 V de l’USB et la broche 5V du SuperMini. Sans diode, brancher l’USB pendant que la batterie alimente la carte met le convertisseur et le port USB de l’ordinateur face à face. Tant que ce n’est pas vérifié : jamais l’USB avec la batterie allumée (interrupteur ouvert ou batterie débranchée pour flasher).
  4. Brancher le + du KY-040 sur 3,3 V, jamais sur 5 V. Le module a ses propres résistances de tirage vers son + : en 5 V, il enverrait 5 V dans des broches de l’ESP32 qui n’en supportent que 3,3.
  5. Isoler complètement le bouton GO de l’ancien circuit 12 V. Il ne doit plus toucher que GPIO 4 et la masse : le moindre reste de 12 V sur ce fil grille la broche.
  6. Mettre le condensateur de 470 µF au plus près du servo. Au démarrage, le servo tire d’un coup beaucoup de courant : le condensateur évite que la tension chute au point de faire redémarrer l’ESP32.
  7. Mettre le condensateur de 100 nF entre GPIO 0 et la masse. Il lisse la mesure de la batterie, que les résistances de 100 kΩ rendent sensible aux parasites du servo.
  8. Relier toutes les masses ensemble. Sans masse commune, le signal du servo, du bouton et des capteurs n’a pas de référence et la carte lit n’importe quoi.
  9. Flasher d’abord le firmware sim et lire le journal série, servo débranché. Ce firmware simule les billes : on vérifie que la carte démarre, que l’écran, l’encodeur, le bouton et la lecture batterie répondent, avant de risquer la mécanique.

Pour flasher et lire le journal série, voir le README du firmware (pio run -e sim -t upload, puis pio device monitor).

Mesure Valeur Décision ou remarque
Sortie du convertisseur, à vide à mesurer
Servo : modèle à relever
Servo : tension maximale (fiche technique) à relever Alimentation directe sur la batterie, ou BEC / second convertisseur ?
Diode entre USB 5 V et la broche 5V du SuperMini oui / non Mettre à jour l’avertissement USB du README en conséquence.
Batterie : tension au multimètre à mesurer
Batterie : tension lue par la carte (? en série) à mesurer BATT_CALIBRATION = multimètre ÷ lecture de la carte.