<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Prototypage | Antoine Weill--Duflos</title>
    <link>https://antoine.weill-duflos.fr/fr/tag/prototypage/</link>
      <atom:link href="https://antoine.weill-duflos.fr/fr/tag/prototypage/index.xml" rel="self" type="application/rss+xml" />
    <description>Prototypage</description>
    <generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>fr-fr</language><lastBuildDate>Tue, 13 Oct 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>https://antoine.weill-duflos.fr/media/icon_hu_d686267daab28486.png</url>
      <title>Prototypage</title>
      <link>https://antoine.weill-duflos.fr/fr/tag/prototypage/</link>
    </image>
    
    <item>
      <title>Pierre qui roule de poche, partie 3 : les PCB arrivent, et la bille revient</title>
      <link>https://antoine.weill-duflos.fr/fr/post/esp32-rolling-stone-pcb/</link>
      <pubDate>Tue, 13 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://antoine.weill-duflos.fr/fr/post/esp32-rolling-stone-pcb/</guid>
      <description>&lt;p&gt;Les cartes sont arrivées. Je les ai branchées, flashées, testées : &lt;strong&gt;ça marche&lt;/strong&gt;. Après les modules séparés, les fils et le petit boîtier refermé autour du premier prototype, la pierre qui roule a maintenant son circuit imprimé dédié.&lt;/p&gt;
&lt;p&gt;Dans la &lt;a href=&#34;../esp32-rolling-stone/&#34;&gt;partie 1&lt;/a&gt;, je racontais la physique et le montage audio I2S. Dans la &lt;a href=&#34;../esp32-rolling-stone-hbridge/&#34;&gt;partie 2&lt;/a&gt;, je passais au pont en H et à une version réellement tenue en main. Cette fois, l&amp;rsquo;aventure se situe entre le schéma électronique, la commande JLCPCB et le retour sur l&amp;rsquo;établi. La bille reste virtuelle ; le matériel qui lui donne du poids dans la main devient beaucoup plus concret.&lt;/p&gt;
&lt;h2 id=&#34;du-montage-de-modules-à-une-carte-dédiée&#34;&gt;Du montage de modules à une carte dédiée&lt;/h2&gt;
&lt;p&gt;Les premiers montages répondaient à une question : peut-on recréer cette illusion avec une électronique moderne et assez simple ? Une fois la réponse obtenue, une autre question arrive vite : comment en faire un objet que l&amp;rsquo;on peut reconstruire sans refaire tout l&amp;rsquo;assemblage à la main ?&lt;/p&gt;
&lt;p&gt;Le passage au PCB ne s&amp;rsquo;est pas fait en un seul dessin. Les révisions se sont succédé, d&amp;rsquo;A1 jusqu&amp;rsquo;à A7. Dès A1, il a fallu corriger la polarité du connecteur JST. C&amp;rsquo;est le genre de détail tout petit sur un schéma et absolument essentiel sur la carte réelle. Ensuite, le travail a porté autant sur l&amp;rsquo;encombrement que sur l&amp;rsquo;électronique : placer les connecteurs et les boutons pour qu&amp;rsquo;ils restent accessibles dans la coque, et organiser les composants dans l&amp;rsquo;espace disponible.&lt;/p&gt;
&lt;p&gt;Le changement le plus visible arrive avec &lt;strong&gt;A7, préparée le 13 septembre : une implantation double face&lt;/strong&gt;. La carte passe de 32 × 120 mm pour A5 à &lt;strong&gt;32 × 85 mm&lt;/strong&gt;, soit environ 29 % de surface en moins. Elle garde quatre couches, pour une épaisseur de 1 mm. Pour un objet destiné à être incliné et tenu dans la main, ce sont des millimètres qui comptent directement dans le boîtier.&lt;/p&gt;
&lt;p&gt;















&lt;figure  id=&#34;figure-une-des-cartes-reçues-côté-module-radio-les-dimensions-données-dans-le-texte-sont-celles-du-pcb-a7-documenté-pas-celles-mesurées-sur-cette-photo&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img alt=&#34;Carte verte assemblée posée sur une table en bois, avec un module radio, son antenne et un connecteur blanc&#34; srcset=&#34;
               /fr/post/esp32-rolling-stone-pcb/featured_hu_f48e6955f4999a5a.webp 400w,
               /fr/post/esp32-rolling-stone-pcb/featured_hu_49b1f33a863db3f6.webp 760w,
               /fr/post/esp32-rolling-stone-pcb/featured_hu_8f0bdf2ef7efc8cb.webp 1200w&#34;
               src=&#34;https://antoine.weill-duflos.fr/fr/post/esp32-rolling-stone-pcb/featured_hu_f48e6955f4999a5a.webp&#34;
               width=&#34;572&#34;
               height=&#34;760&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Une des cartes reçues, côté module radio. Les dimensions données dans le texte sont celles du PCB A7 documenté, pas celles mesurées sur cette photo.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&#34;commander-un-assemblage-pas-seulement-du-cuivre&#34;&gt;Commander un assemblage, pas seulement du cuivre&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai commandé les cartes chez &lt;strong&gt;JLCPCB&lt;/strong&gt;. Cette étape demande un peu plus qu&amp;rsquo;un fichier de circuit : il faut que les Gerber, la nomenclature et les fichiers de placement racontent tous exactement la même chose.&lt;/p&gt;
&lt;p&gt;Le dossier d&amp;rsquo;export A7 comptait &lt;strong&gt;89 composants à assembler&lt;/strong&gt;, répartis entre &lt;strong&gt;52 sur le dessus et 37 sur le dessous&lt;/strong&gt;, pour 37 lignes de nomenclature. La carte entière comptait 103 empreintes ; ce nombre ne doit donc pas être confondu avec celui des composants effectivement inclus dans l&amp;rsquo;assemblage.&lt;/p&gt;
&lt;p&gt;Avant cet export, les vérifications de règles électriques et de routage étaient à zéro erreur, avec aucune connexion non routée. Mais les contrôles automatiques ne racontent pas toute l&amp;rsquo;histoire. La revue de l&amp;rsquo;aperçu d&amp;rsquo;assemblage JLCPCB du 17 septembre a fait ressortir un problème de rotation : &lt;strong&gt;les pattes de U9 apparaissaient à 90° des pastilles&lt;/strong&gt;. U5 et les quatre circuits MAX demandaient aussi une vérification des numéros de broches. Il fallait regarder comment le fabricant interprétait le fichier de placement, pas seulement si le PCB était correctement routé.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est une bonne leçon de cette commande : conserver un ensemble cohérent entre le schéma, la carte et les fichiers réellement envoyés, puis inspecter l&amp;rsquo;aperçu d&amp;rsquo;assemblage. Le fichier de placement fait partie du matériel autant que le cuivre.&lt;/p&gt;
&lt;p&gt;















&lt;figure  id=&#34;figure-une-autre-vue-des-cartes-reçues--lusb-c-et-les-boutons-sont-accessibles-après-les-fichiers-de-fabrication-voici-enfin-le-matériel-à-essayer&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img alt=&#34;Carte assemblée photographiée en diagonale, montrant le port USB-C, deux boutons et les composants au centre&#34; srcset=&#34;
               /fr/post/esp32-rolling-stone-pcb/pcb-usb_hu_a57e7d79b543f8b2.webp 400w,
               /fr/post/esp32-rolling-stone-pcb/pcb-usb_hu_9842b14f5a2bb380.webp 760w,
               /fr/post/esp32-rolling-stone-pcb/pcb-usb_hu_ed6cb61702c7b9ba.webp 1200w&#34;
               src=&#34;https://antoine.weill-duflos.fr/fr/post/esp32-rolling-stone-pcb/pcb-usb_hu_a57e7d79b543f8b2.webp&#34;
               width=&#34;572&#34;
               height=&#34;760&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Une autre vue des cartes reçues : l&amp;rsquo;USB-C et les boutons sont accessibles. Après les fichiers de fabrication, voici enfin le matériel à essayer.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&#34;le-retour-sur-létabli--des-résultats-enfin&#34;&gt;Le retour sur l&amp;rsquo;établi : des résultats, enfin&lt;/h2&gt;
&lt;p&gt;Les essais du &lt;strong&gt;9 octobre&lt;/strong&gt; ont permis de flasher A7 et de faire tourner la nouvelle électronique. La télémétrie donnait une boucle physique entre &lt;strong&gt;1 999 et 2 000 Hz&lt;/strong&gt;, et une fréquence de lecture de l&amp;rsquo;IMU d&amp;rsquo;environ &lt;strong&gt;1 733 Hz&lt;/strong&gt;. La simulation évolue donc ici à environ 2 kHz, contre 1 kHz dans les premiers montages décrits sur le blog.&lt;/p&gt;
&lt;p&gt;Mais la mise en route du firmware a aussi révélé une faiblesse matérielle : &lt;strong&gt;j&amp;rsquo;avais été trop optimiste dans la conception de l&amp;rsquo;alimentation&lt;/strong&gt;. La carte subissait des brownouts : la tension descendait suffisamment bas pour provoquer un reset de l&amp;rsquo;ESP32. Un appareil qui redémarre peut vite sembler fonctionner normalement ; voir la simulation tourner ne suffisait donc pas. Il me fallait un moyen de savoir si un essai avait provoqué un nouveau reset lié à l&amp;rsquo;alimentation, même sans l&amp;rsquo;avoir vu se produire.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai donc ajouté un petit diagnostic persistant dans le firmware A7. Au démarrage, il lit la cause du reset de l&amp;rsquo;ESP32 avec &lt;code&gt;esp_reset_reason()&lt;/code&gt;. Chaque démarrage incrémente un compteur ; seul &lt;code&gt;ESP_RST_BROWNOUT&lt;/code&gt; incrémente celui des brownouts. Les deux sont sauvegardés en mémoire non volatile avec &lt;code&gt;Preferences&lt;/code&gt;, pour que le redémarrage n&amp;rsquo;efface pas la preuve.&lt;/p&gt;
&lt;p&gt;Le firmware affiche les totaux sur le port série, expose le compteur de brownouts dans son état et fait clignoter la LED trois fois en rouge après un reset de ce type. J&amp;rsquo;ai ainsi un signal immédiat sur l&amp;rsquo;appareil et un historique à comparer avant et après une expérience. Ce dispositif compte les resets attribués à une sous-tension par la puce, sans mesurer chaque creux de tension.&lt;/p&gt;
&lt;p&gt;Avec ce diagnostic, les vérifications suivantes devenaient plus faciles à interpréter : le compteur de brownouts est resté à &lt;strong&gt;9&lt;/strong&gt;, sans nouveau reset de ce type enregistré pendant cet essai, tandis que celui des pertes audio restait à &lt;strong&gt;zéro&lt;/strong&gt;. C&amp;rsquo;était encourageant dans les conditions testées. Cela ne démontrait pas que la limite de l&amp;rsquo;alimentation était résolue ; nous avions désormais un moyen de suivre le problème tout en cherchant où ajouter de la marge à la conception.&lt;/p&gt;
&lt;h2 id=&#34;utiliser-limu-pour-mesurer-les-actionneurs&#34;&gt;Utiliser l&amp;rsquo;IMU pour mesurer les actionneurs&lt;/h2&gt;
&lt;p&gt;Le PCB a été conçu dès le départ avec &lt;strong&gt;quatre voies pilotées indépendamment&lt;/strong&gt;, pour accueillir toute la gamme Drake : &lt;strong&gt;LFi, LF, MF et HF&lt;/strong&gt;. L&amp;rsquo;objectif était de combiner leurs points forts pour couvrir une plage de fréquences utile plus large, obtenir davantage de puissance vibratoire là où elle est nécessaire et disposer de plus de souplesse dans les effets à restituer. Mesurer leur réponse permettrait de répartir le signal pour exploiter ce potentiel, dans les limites de l&amp;rsquo;alimentation disponible.&lt;/p&gt;
&lt;p&gt;Cette architecture permet aussi de décliner les montages. Le &lt;strong&gt;même PCB peut servir à des versions avec un, deux, trois ou quatre actionneurs&lt;/strong&gt;, en ne montant que les puces d&amp;rsquo;amplification et les composants associés aux voies retenues. Une version plus simple n&amp;rsquo;aurait besoin ni d&amp;rsquo;un nouveau routage ni des quatre circuits d&amp;rsquo;amplification assemblés. Le prototype à deux actionneurs est une configuration de cette plateforme.&lt;/p&gt;
&lt;p&gt;Pour ces premières mesures, les &lt;strong&gt;LFi et HF&lt;/strong&gt; étaient montés. La fiche technique TITAN Drake donnait un point de départ : un LFi orienté impact et un HF destiné aux fréquences plus élevées, avec des pics d&amp;rsquo;accélération nominaux à 65 et 160 Hz dans les conditions du fabricant, sur une masse de 100 g. Cela suggérait des rôles complémentaires, sans décrire leur réponse dans notre montage. Il fallait d&amp;rsquo;abord caractériser cette paire ; la même démarche pourrait ensuite guider d&amp;rsquo;autres combinaisons sur la carte à quatre voies.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;astuce était déjà sur le PCB : &lt;strong&gt;l&amp;rsquo;IMU qui mesure l&amp;rsquo;inclinaison pouvait aussi mesurer les vibrations que nous produisions&lt;/strong&gt;. Dans un mode de mise en route dédié, le firmware excite chaque actionneur séparément à 40 fréquences entre 20 et 500 Hz, relève une référence silencieuse et mesure l&amp;rsquo;accélération sur les trois axes. Il extrait la réponse à la fréquence d&amp;rsquo;excitation en utilisant l&amp;rsquo;horodatage réel des échantillons, par détection synchrone, plutôt que de considérer tous les mouvements de la carte comme un signal utile. Il examine aussi les harmoniques lorsque la fréquence d&amp;rsquo;échantillonnage le permet, puis excite les deux actionneurs avec des polarités identiques et opposées pour observer comment leurs vibrations se combinent.&lt;/p&gt;
&lt;p&gt;Il s&amp;rsquo;agissait encore d&amp;rsquo;une &lt;strong&gt;preuve de concept, avec les actionneurs maintenus par des colliers de serrage&lt;/strong&gt;, et non d&amp;rsquo;un assemblage mécanique abouti. Cette fixation improvisée aide à comprendre pourquoi les courbes ne sont pas très propres : l&amp;rsquo;IMU observe les actionneurs à travers les fixations et le chemin mécanique jusqu&amp;rsquo;au capteur. À ce stade, le résultat utile était de montrer que l&amp;rsquo;électronique déjà présente sur la carte permettait de mesurer et de comparer leurs réponses.&lt;/p&gt;
&lt;p&gt;Dans ce montage, le balayage du 8 octobre, à 0,25 de la pleine échelle, situe le pic mesuré du LFi vers &lt;strong&gt;69 Hz&lt;/strong&gt;, et celui du HF vers &lt;strong&gt;238 Hz&lt;/strong&gt;. Ce sont des observations sur cet assemblage provisoire, pas de nouvelles spécifications des actionneurs seuls ni une comparaison contrôlée avec la fiche technique. Elles donnent une première idée du comportement de la paire. Il faudra réaliser un meilleur assemblage mécanique, puis refaire le balayage, avant de s&amp;rsquo;appuyer sur ces courbes pour affiner les réglages.&lt;/p&gt;
&lt;p&gt;















&lt;figure  id=&#34;figure-balayage-de-preuve-de-concept-du-8-octobre-de-20-à-500-hz-à-025-de-la-pleine-échelle-par-voie-active-les-actionneurs-étaient-maintenus-par-des-colliers-de-serrage--les-irrégularités-des-courbes-incluent-cette-fixation-provisoire-ces-mesures-valident-la-démarche-et-devront-être-répétées-avec-un-meilleur-assemblage&#34;&gt;
  &lt;div class=&#34;d-flex justify-content-center&#34;&gt;
    &lt;div class=&#34;w-100&#34; &gt;&lt;img alt=&#34;Sensibilité, distorsion, réponse combinée et phase relative des actionneurs mesurées par l&amp;rsquo;IMU embarquée&#34; srcset=&#34;
               /fr/post/esp32-rolling-stone-pcb/actuator-response_hu_f5791eee1c3f06ba.webp 400w,
               /fr/post/esp32-rolling-stone-pcb/actuator-response_hu_1b1683a00ae9b2e8.webp 760w,
               /fr/post/esp32-rolling-stone-pcb/actuator-response_hu_d578539217a67d4e.webp 1200w&#34;
               src=&#34;https://antoine.weill-duflos.fr/fr/post/esp32-rolling-stone-pcb/actuator-response_hu_f5791eee1c3f06ba.webp&#34;
               width=&#34;760&#34;
               height=&#34;497&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;figcaption&gt;
      Balayage de preuve de concept du 8 octobre, de 20 à 500 Hz, à 0,25 de la pleine échelle par voie active. Les actionneurs étaient maintenus par des colliers de serrage ; les irrégularités des courbes incluent cette fixation provisoire. Ces mesures valident la démarche et devront être répétées avec un meilleur assemblage.
    &lt;/figcaption&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;analyse a aussi exploré un filtrage de répartition : partager le signal entre les actionneurs en tenant compte de leur sensibilité, de leur combinaison et de la marge de commande disponible. Elle recommandait une coupure à 330 Hz pour cet essai. Avec cette fixation provisoire, cela reste un réglage exploratoire à réexaminer après un nouvel assemblage et de nouvelles mesures. Seuls LFi et HF étaient montés ; les deux autres voies d&amp;rsquo;amplification restaient inutilisées.&lt;/p&gt;
&lt;h2 id=&#34;pourquoi-ajouter-un-mode-de-texture-au-roulement-&#34;&gt;Pourquoi ajouter un mode de texture au roulement ?&lt;/h2&gt;
&lt;p&gt;Une fois la carte fonctionnelle, la question n&amp;rsquo;était plus « est-ce que ça vibre ? », mais « est-ce que je sens une bille ? ». La forme d&amp;rsquo;onde classique donnait une impression de mouvement, mais son motif répété manquait des détails plus fins et plus aigus que j&amp;rsquo;attendais d&amp;rsquo;une bille métallique roulant dans un tube en plastique. Augmenter le gain aurait renforcé ce même signal limité. Cela n&amp;rsquo;aurait pas ajouté la texture manquante, et les difficultés d&amp;rsquo;alimentation donnaient une raison supplémentaire de ne pas commencer par monter l&amp;rsquo;amplitude.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TEXTURED conserve la physique du roulement et change sa traduction en vibrations.&lt;/strong&gt; Au lieu de répéter uniquement la forme d&amp;rsquo;onde initiale, le modèle fait parcourir à la bille un profil de rugosité spatiale, dont l&amp;rsquo;excitation alimente des résonances amorties. Lier la rugosité à la distance parcourue fait suivre le motif au mouvement : quand la vitesse change, la bille rencontre ces détails plus ou moins rapidement. Le LFi porte le corps basse fréquence et les impacts ; le HF ajoute la couche plus fine. Le roulement classique reste disponible pour comparer directement les deux.&lt;/p&gt;
&lt;p&gt;Sur A7, les résonances à 90, 280 et 430 Hz sont complétées par des détails générés à 700, 1 800 et 3 600 Hz dans la chaîne audio à 48 kHz. Ces dernières valeurs décrivent le &lt;strong&gt;signal produit&lt;/strong&gt; : le balayage des actionneurs s&amp;rsquo;arrêtait à 500 Hz et n&amp;rsquo;établit donc pas quelle part de ces fréquences atteint la main. Le résultat TEXTURED m&amp;rsquo;a plu, mais distinguer une sensation prometteuse d&amp;rsquo;une réponse mécanique mesurée donne un objectif concret aux prochains essais.&lt;/p&gt;
&lt;h2 id=&#34;pourquoi-poursuivre-les-mesures-et-pourquoi-en-faire-un-jeu-&#34;&gt;Pourquoi poursuivre les mesures, et pourquoi en faire un jeu ?&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;application compagnon &lt;strong&gt;Tauri, reliée en USB&lt;/strong&gt;, aide à comprendre les itérations. Voir la bille simulée tout en la ressentant permet de distinguer un modèle de mouvement incorrect d&amp;rsquo;un rendu vibratoire peu convaincant. Les commandes de mode et de gain facilitent les comparaisons ; les diagnostics permettent de vérifier si un changement de sensation coïncide avec un problème de cadence ou de redémarrage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MARBLES&lt;/strong&gt; pose une autre question : les vibrations peuvent-elles renseigner sur un contenu invisible ? Le jeu visé consiste à secouer l&amp;rsquo;objet comme une boîte d&amp;rsquo;allumettes et à deviner le nombre de billes qu&amp;rsquo;elle contient. Les manches cachées utilisent de zéro à cinq billes métalliques virtuelles identiques de 10 mm ; leur nombre et leur position restent masqués jusqu&amp;rsquo;à la révélation. Les impacts sur les parois et les collisions entre billes deviennent des indices. La simulation sert alors à autre chose qu&amp;rsquo;à regarder une animation : savoir si les contacts sont assez distincts pour être interprétés avec la main.&lt;/p&gt;
&lt;p&gt;C&amp;rsquo;est aussi ce qui justifie la suite. Mesurer davantage la réponse permettra de savoir quels détails synthétisés traversent réellement les actionneurs et leurs fixations, pour façonner le signal plutôt que dépenser de l&amp;rsquo;énergie dans une sortie peu efficace. Il faut davantage de marge d&amp;rsquo;alimentation pour préserver des impacts convaincants sans provoquer de resets. La coque et la prise en main comptent parce qu&amp;rsquo;elles font partie du chemin des vibrations. Enfin, des comparaisons reproductibles, notamment à faible vitesse où le roulement semblait d&amp;rsquo;abord trop discret, aideront à distinguer « davantage de vibrations » d&amp;rsquo;une bille plus crédible. Le PCB fonctionne ; il devient maintenant une plateforme pour répondre à ces questions.&lt;/p&gt;
&lt;p&gt;La &lt;a href=&#34;../../project/esp32-rolling-stone/&#34;&gt;page du projet&lt;/a&gt; rassemble les épisodes. Le &lt;a href=&#34;https://github.com/Leicas/esp32-ball&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;dépôt public ESP32 Ball&lt;/a&gt; contient le firmware et l&amp;rsquo;application compagnon des premiers montages.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
