Intégration d’un écran OLED i2c dans le système de contrôle du pont élévateur basé sur Arduino Nano R4

Cliquer pour masquer

Résumé

Cet article présente le test fonctionnel de l’affichage des fréquences de rotation des moteurs du pont élévateur du diorama de la Batcave, sur un écran OLED i2c, via la carte Arduino Nano R4 du système électronique de contrôle.… Lire la suite →

Première publication :

Dernière mise à jour :

Temps de lecture :

7–10 minutes

Article précédent :

Contexte de l’intégration d’un écran OLED i2c avec Arduino Nano R4

L’article précédent présente l’intégration d’une carte Arduino Nano R4 au sein de l’architecture électronique du système de contrôle dédié à la régulation de vitesse de rotation des moteurs du pont élévateur du diorama de la Batcave. Cet article expose, dans un premier temps, les motivations ayant conduit au remplacement des circuits imprimés (PCB) de conversion fréquence–tension par une carte Arduino UNO. Dans un second temps, il analyse les raisons techniques justifiant l’évolution vers une carte Arduino Nano R4.

Au-delà de la correction de dysfonctionnements identifiés dans les versions antérieures, l’intégration d’une carte Arduino Nano R4 dans l’armoire électrique de contrôle du pont élévateur ouvre la voie à l’intégration de nouvelles fonctionnalités. Parmi celles-ci figure notamment la possibilité d’un affichage local des données de traitement, directement au plus près du système. Cet article se concentre ainsi sur la validation fonctionnelle de cette capacité d’affichage.

Choix technologique et implantation fonctionnelle

Pourquoi choisir un écran OLED i2c avec Arduino Nano R4

Comme indiqué précédemment, les motivations ayant conduit à l’utilisation d’une carte Arduino Nano R4 dans cette architecture sont détaillées dans un article antérieur.

L’écran OLED i2c, piloté par la carte Arduino Nano R4 intégrée à l’armoire électrique de commande, a pour vocation d’assurer un affichage local des données au plus près du système de contrôle et de régulation de la vitesse des moteurs. Il permet notamment de visualiser les valeurs mesurées des fréquences de rotation des quatre moteurs.

Ce dispositif répond à un double objectif. D’une part, il facilite les phases de mise au point de la chaîne matérielle et logicielle dédiée à l’acquisition des données. D’autre part, il permet de vérifier la bonne transmission ainsi que le traitement cohérent de ces informations jusqu’à la console de commande centralisée.

Contraintes d’intégration dans l’armoire électrique de contrôle

Le choix d’un écran de 1,3″ résulte d’un compromis entre l’encombrement physique et la capacité d’affichage requise. En effet, ses dimensions doivent rester compatibles avec une intégration sur la porte de l’armoire électrique de commande, au sein de laquelle est implantée la carte Arduino Nano R4.

Parallèlement, cet écran doit offrir une surface d’affichage suffisante pour permettre une visualisation exploitable des quatre valeurs de fréquences de rotation correspondant aux moteurs du système. À ce titre, sa définition de 128 × 64 pixels permet d’envisager un affichage simultané et lisible de l’ensemble de ces informations.

Conception mécanique réalisée à l’aide de FreeCAD

La conception mécanique de l’intégration de l’écran i2c OLED 1,3″ a été réalisé avec le logiciel FreeCAD.

Dans la mesure où le présent article est spécifiquement consacré à l’intégration électrique de l’écran OLED au sein du système de contrôle du pont élévateur du diorama de la Batcave, les aspects relatifs à la conception mécanique des deux armoires constituant le système de commande seront traités dans une publication ultérieure.

FreeCAD est un modeleur 3D paramétrique open-source.

Schéma de montage

Conception du schéma électronique sous KiCad

Le schéma électronique a été réalisé à l’aide de la suite logicielle KiCad.

La présentation détaillée du schéma complet du système électronique de commande du pont élévateur du diorama de la Batcave, dont les différentes feuilles sont illustrées dans la capture d’écran figurant en en-tête de ce paragraphe, fera l’objet d’un article dédié à venir.

KiCad est une suite logicielle open source pour la conception électronique.

Périmètre de l’étude et perspectives de validation globale

Le schéma présenté se concentre exclusivement sur l’intégration de l’écran OLED en interface i2c avec la carte Arduino Nano R4.

Un article ultérieur sera consacré à la validation complète de la chaîne d’acquisition et de traitement des données, depuis les capteurs jusqu’à la console de commande centralisée.

Mise en place du banc de test et simulation du signal moteur

Dans le cadre de ce test fonctionnel de l’affichage des valeurs de fréquences, une carte Arduino UNO a été utilisée pour générer un signal carré de fréquence fixe 512 Hz, simulant ainsi les signaux issus des capteurs optiques des plateformes motorisées.

Ce même signal a été transmis aux 4 broches de la carte Arduino Nano R4 dédiées aux mesures de la fréquence de rotation des moteurs. Ce qui justifie que la même valeur soit affichée sur l’écran pour les 4 fréquences.

Rôle des résistances pull-up dans la communication I²C

Ce schéma met en évidence la présence de deux résistances de 4,7 kΩ. Il s’agit de résistances de tirage, couramment appelées résistances de pull-up. Leur rôle est d’assurer un niveau logique haut stable (ici 5 V) sur les lignes de communication, notamment lorsque celles-ci ne sont pas activement pilotées par un dispositif du bus.

En effet, sur un bus comme l’I2C, les composants ne génèrent pas directement un niveau haut. Ils peuvent seulement tirer la ligne vers le bas (niveau 0). Sans résistance de pull-up, la ligne resterait alors dans un état indéterminé lorsqu’elle n’est pas sollicitée. Ces résistances agissent donc comme un rappel vers le niveau haut, garantissant un signal propre et exploitable pour tous les éléments connectés au bus.

Spécificités du câblage i2c avec Arduino Nano R4

La difficulté rencontrée lors de la mise au point de ce montage, pourtant en apparence simple, tient au fait que la version précédente, basée sur une carte Arduino UNO, ne nécessitait pas l’ajout de résistances de pull-up. Le raccordement direct des lignes SDA et SCK de l’écran à celles de l’Arduino suffisait alors pour obtenir un fonctionnement correct de l’affichage.

En revanche, lors du remplacement de la carte Arduino UNO par une NANO R4, l’écran est resté totalement inactif. Ce comportement s’explique par une différence de conception interne des broches SDA et SCK entre les deux cartes. Contrairement à l’UNO, la NANO R4 ne permet pas un fonctionnement fiable du bus I2C sans l’ajout explicite de résistances de pull-up externes.

Source : https://docs.arduino.cc/tutorials/nano-r4/user-manual/

Le code

#include <pwm.h>
#include <Adafruit_SH110X.h>

const int MaxReadNumber = 10;
const int MaxPulseNumber = 1;
const int pinIn[] = {2, 4, 7, 8};

int Freq[] = {0,0,0,0};
int Period[] = {0,0,0,0};

float FreqInFloat = 0.0;
float PeriodInFloat = 0.0;

// PWM Duty Cycle
int DUTY_CYCLE_READ = 0;
int DUTY_CYCLE_INIT = 0;
float DUTY_CYCLE_SET = 0.0;

const int PIN_DUTY_CYCLE = A7;

const int PIN_FREQ0 = 2;
const int PIN_FREQ1 = 4;
const int PIN_FREQ2 = 7;
const int PIN_FREQ3 = 8;

const int PWM_D5_PIN = 5;
const int PWM_D6_PIN = 6;
const int PWM_D9_PIN = 9;
const int PWM_D10_PIN = 10;

PwmOut PWM_D5(PWM_D5_PIN);
PwmOut PWM_D6(PWM_D6_PIN);
PwmOut PWM_D9(PWM_D9_PIN);
PwmOut PWM_D10(PWM_D10_PIN);

Adafruit_SH1106G display = Adafruit_SH1106G(128, 64, &Wire, -1);

void setup()
{
pinMode(PIN_FREQ0, INPUT);
pinMode(PIN_FREQ1, INPUT);
pinMode(PIN_FREQ2, INPUT);
pinMode(PIN_FREQ3, INPUT);

pinMode(PWM_D5_PIN, OUTPUT);
pinMode(PWM_D6_PIN, OUTPUT);
pinMode(PWM_D9_PIN, OUTPUT);
pinMode(PWM_D10_PIN, OUTPUT);

PWM_D5.begin(25000.0f, 0.0f);
PWM_D6.begin(25000.0f, 0.0f);
PWM_D9.begin(25000.0f, 0.0f);
PWM_D10.begin(25000.0f, 0.0f);

MotorFrequencySetUp();

Serial1.begin(9600);

display.begin(0x3c, true);
display.clearDisplay();
//display.drawRect(0, 0, 128, 64, 1);
display.setTextSize(1);
display.setTextColor(SH110X_WHITE);
display.setCursor(0, 0);
display.println("BATLab112 Project");
display.println("Lifter Bridge Control");
display.setCursor(0, 24);
display.println("Freq.1 = Hz");
display.setCursor(0, 34);
display.println("Freq.2 = Hz");
display.setCursor(0, 44);
display.println("Freq.3 = Hz");
display.setCursor(0, 54);
display.println("Freq.4 = Hz");
display.display();
delay(500);
}

void loop()
{
for(int i=0; i<4; i++)
{
Period[i] = ReadPeriod(pinIn[i]);
PeriodInFloat = Period[i] * 1.0;
if(PeriodInFloat!=0)
{
FreqInFloat = (1000000/PeriodInFloat);
}
else
{
FreqInFloat = 0;
}
Freq[i] = floor(FreqInFloat);
}
DisplayFrequency();
}

float ReadPeriod(int signal)
{
float SignalPeriod = 0;
int PulseCounter = 0;
int HighTime = 0;
int LowTime = 0;
while(PulseCounter < MaxPulseNumber)
{
while (HighTime == 0)
{
HighTime = pulseIn(signal,HIGH);
}
while (LowTime == 0)
{
LowTime = pulseIn(signal,LOW);
}
SignalPeriod = HighTime + LowTime;
PulseCounter++;
}
SignalPeriod = SignalPeriod / PulseCounter;
return SignalPeriod;
}

void DisplayFrequency()
{
display.setTextColor(SH110X_WHITE, SH110X_BLACK);
for(int i=0; i<4; i++)
{
if (Freq[i]>999)
{
Freq[i] = 999;
}
}
display.setCursor(53, 24);
display.println(Freq[0]);
display.setCursor(53, 34);
display.println(Freq[1]);
display.setCursor(53, 44);
display.println(Freq[2]);
display.setCursor(53, 54);
display.println(Freq[3]);
display.display();
}

Cet extrait du sketch implémenté sur une carte Arduino Nano R4 se concentre spécifiquement sur la gestion de l’affichage des fréquences de rotation des moteurs via un écran OLED utilisant une interface I2C.

La fonction setup() assure l’initialisation de l’affichage en définissant une trame graphique structurée. Celle-ci comprend notamment des lignes de titre ainsi que des libellés associés aux différentes mesures, sous la forme « Freq.x = … Hz », permettant de préparer un cadre de visualisation clair et stable pour l’utilisateur.

La fonction DisplayFrequency() est, quant à elle, dédiée à la mise à jour des valeurs numériques affichées. Son fonctionnement repose sur une logique séquentielle simple consistant à écrire, à des positions prédéfinies de l’écran, les fréquences correspondant aux différents canaux mesurés. Cette fonction est appelée à l’issue de la phase d’acquisition des signaux, réalisée par la fonction ReadPeriod(), ainsi qu’après le traitement permettant de convertir les périodes mesurées en fréquences.

Validation fonctionnelle et perspectives d’évolution du système de contrôle Arduino Nano R4

Le test fonctionnel relatif à l’affichage des fréquences de rotation des quatre moteurs du pont élévateur du diorama de la Batcave s’avère concluant. Les résultats obtenus permettent d’ores et déjà de valider la capacité de la carte Arduino Nano R4 à acquérir et mesurer de manière stable et précise les signaux issus des capteurs optiques des plateformes motorisées.

Des travaux complémentaires demeurent toutefois nécessaires. Dans un premier temps, il conviendra d’évaluer la précision des mesures en conditions dynamiques, c’est-à-dire en présence de variations de fréquence induites par les comportements mécaniques du pont élévateur.

Dans un second temps, lors de l’intégration du système électronique de régulation avec la structure électromécanique du pont, il sera nécessaire de valider la mise en œuvre complète de la boucle logicielle de régulation des vitesses, afin d’assurer un pilotage cohérent et robuste de l’ensemble du dispositif.

Voir aussi

Articles – Pont élévateur

Story – Pont élévateur

Articles – Prototypes

Story – Pont élévateur – 018

Categorie :

Légende :

Le remplacement de 4 convertisseurs fréquence/tension par un microcontrôleur Arduino UNO, qui aurait du être l’ultime évolution du système électronique de contrôle du pont élévateur n’était en fait qu’une évolution de transition …

La nouvelle version de l’armoire électrique de contrôle de la vitesse de rotation des moteurs du pont élévateur intègre à présent un microcontrôleur Arduino Nano R4.

KiCad : Utiliser les feuilles hiérarchiques pour concevoir des schémas électroniques complexes

Contexte et objectifs de l’utilisation de KiCad

Comme indiqué dans un article précédent, mes premiers travaux de conception électronique ont été réalisés à l’aide de l’éditeur de schémas KiCAD. Dans le cadre pédagogique du projet BATLab112, j’ai constamment veillé à optimiser la qualité et la précision technique de la documentation produite. Au-delà des enjeux strictement liés à l’apprentissage, cette démarche répond également à un objectif opérationnel : assurer une traçabilité rigoureuse de l’avancement de la conception et de la fabrication. Cette exigence s’explique notamment par le rythme parfois irrégulier de l’avancement du projet, fortement conditionné par mes contraintes professionnelles. En effet, le projet BATLab112 est financé sur fonds propres et développé sur mon temps libre. Cette discontinuité dans la planification du travail génère donc des pertes d’efficacité et un risque accru d’erreurs lors de la reprise des activités après de longues périodes d’interruption. C’est précisément ce constat qui m’a conduit à explorer plus en profondeur les fonctionnalités des logiciels utilisés, tels que FreeCAD ou KiCAD, afin de documenter aussi précisément que possible la progression des différentes tâches.

Le présent article s’inscrit dans un contexte particulier. D’une part, l’avancement du pont élévateur à l’échelle 1/12 du diorama, l’équipement industriel le plus complexe du dispositif, a été ralenti à la suite de la réalisation d’une maquette de validation. Les essais menés sur cette maquette ont mis en évidence plusieurs insuffisances dans la conception des schémas électroniques destinés au pilotage du système. D’autre part, cette nécessité de réviser la conception s’est trouvée aggravée par la mise à jour du logiciel vers la version 9.0.7, laquelle a entraîné des comportements inattendus lors de l’ouverture de fichiers créés avec une version antérieure, en particulier ceux reposant sur l’usage de feuilles hiérarchiques.

Face à ces difficultés, il m’a paru indispensable de réexaminer l’usage de cette fonctionnalité afin de renforcer la robustesse de mes futurs fichiers de conception électronique, tout en améliorant la qualité des schémas de commande du pont élévateur.

Principe des feuilles hiérarchiques dans KiCad

Structuration modulaire des schémas électroniques

Dans le logiciel de conception électronique KiCad, la fonctionnalité des feuilles hiérarchiques occupe une place centrale dans la structuration et la gestion de schémas complexes. Elle permet d’organiser un projet en sous-ensembles cohérents, facilitant ainsi la lisibilité, la modularité et la réutilisation des blocs fonctionnels au sein d’un même design ou dans plusieurs projets successifs.

Sur le plan conceptuel, une feuille hiérarchique constitue une représentation encapsulée d’une partie du schéma global. Elle joue un rôle comparable à celui d’un module ou d’une fonction dans un langage de programmation : en isolant une fonction électronique spécifique — telle qu’une alimentation, une interface de commande ou un circuit de régulation — elle permet de clarifier les responsabilités de chaque sous-bloc tout en réduisant la charge cognitive nécessaire à la compréhension du système complet. Cette approche hiérarchique s’avère particulièrement pertinente pour les projets comportant de multiples interactions entre sous-systèmes, où un schéma linéaire et monolithique entraînerait inévitablement une perte de lisibilité.

Création et intégration des feuilles hiérarchiques

Sur le plan opérationnel, KiCad offre deux mécanismes complémentaires au sein de cette fonctionnalité :

  • La création de feuilles hiérarchiques, qui génère un fichier de schéma distinct et permet de circonscrire un sous-circuit dans un espace dédié.
  • L’utilisation de symboles hiérarchiques, qui assurent l’intégration de ces sous-schémas au sein du schéma principal, tout en définissant clairement les connexions électriques via des ports d’entrée et de sortie.

Avantages pour la maintenance et la réutilisation des designs

L’un des avantages majeurs de cette approche réside dans la possibilité de réutiliser des blocs fonctionnels sans les reconstruire entièrement. Les concepteurs peuvent ainsi constituer une bibliothèque interne de sous-circuits robustes et validés, contribuant à une standardisation progressive de leurs méthodes de conception. De plus, en cas de modifications, les feuilles hiérarchiques permettent une mise à jour localisée du design, limitant les erreurs potentielles et garantissant une meilleure cohérence globale du projet.

Enfin, la structuration hiérarchique favorise la collaboration au sein d’équipes de conception. Chaque membre peut se voir confier un sous-système particulier, dont le développement est rendu indépendant des autres parties du schéma. Cette division du travail, rendue explicite par la hiérarchie des feuilles, contribue à une gestion plus efficace des tâches ainsi qu’à une documentation technique plus rigoureuse.

Application au pont élévateur du projet BATLab112

Principe de fonctionnement du pont élévateur

Le pont élévateur intégré au diorama du projet BATLab112 a pour fonction d’assurer le déplacement vertical de la Batmobile entre les deux niveaux de l’atelier robotisé. Son principe de fonctionnement s’inspire directement des ponts élévateurs électriques à quatre colonnes utilisés dans l’industrie automobile pour le levage de véhicules lourds à des fins de maintenance. Chaque colonne de ce type de dispositif est équipée d’une vis sans fin entraînée par un moteur électrique. La synchronisation des quatre moteurs permet de contrôler de manière coordonnée la montée ou la descente de la plateforme supportée par l’ensemble des colonnes, en fonction du sens de rotation imposé à ces derniers.

Intégration dans l’atelier robotisé du diorama

Cet équipement s’insère dans un ensemble plus large d’installations composant le diorama du projet BATLab112, lequel comprend notamment :

  • Une plateforme rotative soutenue par les colonnes du pont élévateur
  • Un pont roulant bipoutre équipé de deux bras robotiques destinés à la manipulation de charges importantes
  • Un poste électrique assurant la distribution de l’énergie nécessaire au fonctionnement des différents équipements
  • Quatre consoles de commande dédiées au pilotage individuel de chacun de ces sous-systèmes.

L’ensemble de ces dispositifs vise à atteindre un niveau élevé de réalisme tant fonctionnel qu’esthétique.

Architecture hiérarchique du schéma électrique

Niveau 1 : Architecture générale du système

Le premier niveau hiérarchique du schéma électrique du pont élévateur correspond à la structure générale de son architecture de commande et d’alimentation. Il comprend :

  • Une console de commande
  • Deux armoires électriques destinées respectivement à l’asservissement des moteurs (régulation, contrôle du sens de rotation, ajustement de la vitesse)
  • Quatre plateformes moteurs assurant l’entraînement mécanique des quatre colonnes
  • Deux armoires issues du poste électrique, garantissant une distribution de l’énergie électrique

Niveau 2 : Organisation interne des équipements

Le second niveau hiérarchique décrit l’organisation interne des modules constituant chacun des équipements précédemment mentionnés.

Armoire électrique 1 : Régulation de la vitesse de rotation des moteurs

L’armoire électrique qui regroupe les équipements électroniques de régulation de la vitesse de rotation des moteurs contient :

  • Un module adaptateur accueillant un microcontrôleur de type Arduino R4
  • Un circuit imprimé (PCB) regroupant les fonctions de sectionneur principal, porte-fusible et bornier.

Armoire électrique 2 : Interface de puissance électrique et de contrôle du sens de rotation des moteurs

L’armoire électrique qui regroupe les équipements électroniques de contrôle du sens de rotation des moteurs contient :

  • Deux modules constitués de doubles ponts en H
  • Un circuit imprimé (PCB) regroupant les fonctions de sectionneur principal et bornier.

Console de commande

La console de commande contient :

  • Deux cartes Arduino Mega 2560, associées à deux écrans LCD TFT de 2,8 pouces
  • Trois circuits imprimés (PCB) dédiés aux fonctions de commande électronique.

Niveau 3 : Conception détaillée des circuits électroniques

Enfin, le troisième niveau hiérarchique permet de détailler le schéma électronique propre à chacun des PCB identifiés au niveau supérieur. Ce niveau constitue l’unité de description la plus fine, garantissant une documentation précise et exploitable pour la conception, la vérification et la maintenance des différents modules électroniques du pont élévateur.

Conclusion

Le fichier final de conception réalisé sous KiCad regroupe l’ensemble des feuilles schématiques correspondant à tous les modules de chacun des niveaux hiérarchiques. Cette organisation centralisée offre une navigation efficace au sein du projet : elle permet de sélectionner rapidement le degré de détail souhaité lors de la consultation des schémas, tout en conservant une vision d’ensemble du fonctionnement global du système. Une telle visibilité est particulièrement utile pour appréhender la structure et la cohérence des liaisons établies entre les différents équipements définis au premier niveau hiérarchique.

Pour plus d’infos

Pour en apprendre plus sur le contenu et le fonctionnement de ces schémas

Pour découvrir le diorama à l’échelle 1/12 du projet BATLab112

BATLab112 School – Scolaire – Module 3

Module 2

Initiation à l’électronique par expérimentation

Objectif

Permettre aux élèves de découvrir les principes fondamentaux de l’électricité et de l’électronique à travers l’expérimentation, sans apport théorique préalable, en développant la curiosité scientifique et la compréhension intuitive des phénomènes électriques.

Objectifs détaillés

  • Identifier les éléments essentiels d’un circuit électrique simple.
  • Comprendre les notions de circuit fermé, polarité, tension et résistance à partir de manipulations concrètes.
  • Expérimenter différents montages et observer leurs effets.
  • Coopérer au sein d’un groupe pour résoudre un défi expérimental.
  • Verbaliser les observations et en tirer des conclusions collectives.

Compétences mobilisées

  • Observer et expérimenter.
  • Travailler en équipe et communiquer efficacement.
  • Raisonner par hypothèse et déduction.
  • Relier la théorie à la pratique.
  • Développer la motricité fine et la rigueur technique dans l’assemblage.

Programme

Mise en situation

Durée : 10 min

Objectif : Eveiller la curiosité et susciter l’engagement.

  • Présentation du matériel avec une explication technique sommaire.
  • Question-problème : « Comment faire s’allumer cette LED ? »
  • Les élèves formulent des hypothèses et mettent en oeuvre un montage validé par l’intervenant-e.

Expérimentation libre

Durée : 20 min

Objectif : découvrir le fonctionnement d’un circuit simple par essai-erreur.

  • Par petits groupes, à partir du montage réalisé précédemment, les élèves testent différentes configurations de branchement.
  • L’intervenant-e guide par questionnement :
    • « Pourquoi cela ne s’allume-t-il pas ? »
    • « Que se passe-t-il si on inverse la polarité ? »
  • Les élèves apprennent par tâtonnement et observation directe.

Structuration des connaissances

Durée : 30 min

Objectif : consolider les apprentissages issus de la manipulation.

  • Montage collectif commenté : pile → résistance → LED → interrupteur.
  • Test de variations (changer la résistance, inverser la polarité, ajouter une deuxième LED).
  • L’intervenant-e introduit les notions de base : courant, résistance, polarité, circuit ouvert/fermé.

Défi expérimental

Durée : 20 min

Objectif : Réinvestir les apprentissages dans une situation-problème.
Exemples de défis à choisir selon le niveau :

  • Concevoir un montage pour que l’action sur 2 interrupteurs soit nécessaire pour allumer la LED.
  • Concevoir un montage pour que l’action sur l’un ou l’autre des interrupteurs soit nécessaire pour allumer la LED
  • Les élèves doivent concevoir, tester et présenter leur solution.

Retour à la page d’origine

L’intérêt de FreeCAD dans la conception d’un diorama

Introduction

La conception d’un diorama technique, pédagogique et fonctionnel — comme celui développé dans le cadre du projet BATLab112 — requiert une méthodologie rigoureuse fondée sur la précision dimensionnelle, la maîtrise des interactions mécaniques et la cohérence esthétique de l’ensemble. Les outils de Conception Assistée par Ordinateur (CAO) s’imposent dans cette démarche, car ils permettent de structurer les différentes phases du projet, de réduire les risques d’erreurs et d’assurer la reproductibilité des modèles.

Dans cette perspective, FreeCAD, logiciel libre de modélisation 3D paramétrique, constitue un environnement particulièrement pertinent. Ses capacités avancées de représentation, sa flexibilité structurelle et son inscription dans l’écosystème open source en font un outil adapté aux projets complexes, évolutifs et techniquement exigeants tels que BATLab112.

Un environnement paramétrique garantissant la cohérence structurelle

FreeCAD repose sur une architecture entièrement paramétrique dans laquelle chaque élément géométrique est défini par un ensemble de contraintes et de variables modifiables. Cette approche permet d’obtenir une cohérence structurelle particulièrement utile dans la conception d’un diorama évolutif.

Cette architecture paramétrique :

  • garantit la cohésion technique entre les sous-systèmes, en assurant que toute modification locale reste compatible avec l’ensemble
  • réduit le risque d’erreurs structurelles, en évitant les incohérences dimensionnelles qui apparaissent fréquemment dans des projets non paramétriques
  • facilite l’intégration progressive de nouveaux modules, puisque les ajouts ou remaniements s’effectuent sans perturber l’architecture globale
  • permet des itérations rapides, essentielles lors des phases de prototypage ou de correction.

Dans le cadre du projet BATLab112, l’utilisation de FreeCAD a permis un travail fondamental : le dimensionnement complet des équipements miniatures du diorama à partir du modèle réduit de la Batmobile, choisi comme référence esthétique et dimensionnelle. Le véhicule, présenté à l’échelle 1/12, a servi de base pour établir l’encombrement maximal des plateformes motorisées, pour calibrer la hauteur utile du pont élévateur, ou encore pour définir les dégagements nécessaires aux mouvements de rotation et de translation. FreeCAD a donc rendu possible une modélisation cohérente de l’ensemble du dispositif, en permettant d’adapter chaque équipement aux proportions imposées par l’objet central du diorama.

Un exemple concret :

L’article de présentation de la modélisation 3D de l’intégration des équipements industriels dans la diorama, qui consiste à rassembler tous les équipements industriels conçus séparément, dans une modélisation globale de l’atelier de la Batcave du projet BATLab112 est une parfaite illustration de l’intérêt de l’utilisation d’un logiciel de modélisation 3D paramétrique tel que FreeCAD.

Une précision adaptée aux exigences du diorama technique

La fabrication d’un diorama fonctionnel impose une maîtrise fine des échelles et des tolérances mécaniques, particulièrement dans un projet tel que BATLab112 associant impression 3D, assemblages mécaniques et intégration électronique.

FreeCAD permet un contrôle dimensionnel très précis, répondant directement aux contraintes imposées par la fabrication additive ou par les mécanismes miniaturisés (guidages linéaires, engrenages, axes, plateformes motorisées, etc.).

La modélisation détaillée des circuits imprimés équipant les consoles de commande et les armoires électriques du pont élévateur a démontré toute l’importance de cette précision de conception. FreeCAD a permis de reproduire les PCB avec une exactitude compatible avec le pas standard de 2,54 mm, garantissant l’emplacement précis de chaque composant électronique (microcontrôleurs, borniers, LED, résistances). Cette modélisation rigoureuse a rendu possible :

  • l’intégration réaliste des PCB dans les volumes restreints des consoles de commande miniatures,
  • l’anticipation des interférences possibles avec les parois internes, câblages ou pièces mécaniques environnantes,
  • la vérification préalable de l’accessibilité nécessaire pour les opérations d’assemblage à l’échelle réduite.

Grâce à ses outils d’esquisse, de cotation et de modélisation volumique, ainsi qu’aux modules spécialisés tels que Part Design, Draft ou TechDraw, FreeCAD a permis de générer des plans cotés, des vues éclatées, des cinématiques de sous-ensembles et des validations d’interférences, indispensables à la fabrication et à l’assemblage des différents systèmes du diorama.

Un exemple concret :

L’article consacré à la modélisation 3D de l’intégration des PCB, équipés de leurs composants électroniques, au sein du corps de la console de commande constitue une illustration particulièrement représentative de la précision offerte par FreeCAD.

Une intégration naturelle dans un processus de fabrication

FreeCAD s’intègre aisément dans l’ensemble de la chaîne de fabrication numérique grâce à sa capacité à exporter des modèles dans des formats couramment utilisés dans l’industrie. Cette interopérabilité constitue un atout essentiel pour un diorama mêlant mécanique, électronique, architecture miniature et automatisation.

Dans le cadre du projet BATLab112, l’utilisation de FreeCAD permet :

  • l’exportation de modèles STL, destinés à l’impression 3D des pièces structurelles ou mécaniques, notamment sur l’imprimante Anet A8 ;
  • la génération de fichiers DXF ou SVG, compatibles avec la découpe laser, une technologie en cours d’étude pour les développements futurs du diorama ;
  • la production de fichiers STEP, facilitant l’importation et l’intégration de composants électroniques (LED, résistances, microcontrôleurs Arduino) ou mécaniques (écrous, boulons, glissières) provenant de plateformes telles que GrabCAD.

Cette capacité à circuler entre différents outils de production garantit une continuité fluide entre la phase de conception numérique et la fabrication physique du diorama.

Un exemple concret :

L’article consacré à la modélisation 3D de la structure des armoires de distribution électrique met en évidence la manière dont FreeCAD permet d’articuler de manière cohérente la conception du design de ces structures avec les contraintes spécifiques de leur fabrication en impression 3D. Il illustre notamment la prise en compte, dès la phase de modélisation, des limitations techniques et dimensionnelles de l’imprimante Anet A8 utilisée dans le cadre du projet.

Un outil open source favorisant l’adaptabilité

L’un des avantages majeurs de FreeCAD réside dans sa nature open source, qui offre une série de bénéfices spécifiques pour la conception d’un diorama évolutif.

Tout d’abord, la pérennité des données est assurée, puisque les fichiers produits ne dépendent pas de licences propriétaires susceptibles de devenir obsolètes ou inaccessibles. Dans le projet BATLab112, débuté en 2018 et encore en développement, cette indépendance garantit la continuité du travail.

Ensuite, la forte évolutivité fonctionnelle du logiciel permet d’adapter l’outil aux besoins spécifiques du diorama. L’ajout de macros, de scripts Python ou de modules complémentaires facilite, par exemple, la simulation des mouvements de chaque système du diorama, qu’il s’agisse d’un équipement isolé ou d’un ensemble de mécanismes fonctionnant simultanément.

Par ailleurs, FreeCAD bénéficie d’une communauté active et collaborative fournissant une documentation abondante, des bibliothèques de modèles et un accompagnement constant dans la résolution de problèmes techniques.

Enfin, son accessibilité économique, due à l’absence de frais de licence, rend possible une utilisation dans des contextes amateurs, pédagogiques ou associatifs tout en conservant un niveau de professionnalisme élevé.

Dans le cas du BATLab112, cette philosophie ouverte a permis une évolution continue du diorama, facilitant l’ajout de nouvelles fonctionnalités, l’amélioration de dispositifs existants et le renforcement du réalisme technique du modèle.

Un support méthodologique pour la gestion du projet

Au-delà de la modélisation 3D, FreeCAD contribue à structurer la démarche méthodologique du projet. Dans BATLab112, l’architecture générale du diorama a été organisée selon une logique systémique, chaque système représentant un équipement industriel miniature, décomposé en sous-systèmes et composants. Cette structuration hiérarchique a favorisé une vision globale du projet, tout en permettant une progression contrôlée à travers les différentes phases de développement.

Dans ce contexte, FreeCAD s’est révélé parfaitement adapté à une méthode de gestion de projet, notamment à travers :

  • la planification séquentielle des étapes de fabrication et d’assemblage, grâce à la modélisation progressive des systèmes
  • l’anticipation des interactions entre mécanismes, éclairages, câblages et éléments décoratifs grâce aux assemblages numériques
  • la production d’une documentation technique distribuable à des collaborateurs, des élèves ou des intervenants extérieurs
  • la simulation préalable de cinématiques complexes (rotation de la Batmobile, élévation du pont, synchronisation d’équipements) permettant de réduire le besoin de prototypes physiques intermédiaires
  • la traçabilité des évolutions du modèle numérique, essentielle dans un projet à long terme débuté en 2018 et enrichi continuellement.

Un exemple représentatif issu du projet BATLab112 illustre cette intégration méthodologique : FreeCAD a été utilisé comme outil central pour orchestrer les différentes phases du développement, depuis la modélisation initiale des environnements architecturaux jusqu’à l’intégration finale des sous-systèmes mécaniques et électroniques. L’outil a servi de base commune pour valider les choix techniques, identifier les risques de conception, organiser la fabrication des pièces et coordonner les étapes d’assemblage. Par son approche paramétrique et sa capacité à documenter automatiquement chaque étape, FreeCAD s’est ainsi comporté comme un véritable support de gestion de projet, et non comme un simple logiciel de modélisation.

Un exemple concret :

La page consacrée à la présentation de la méthode utilisée pour gérer le projet BATLab112 met en évidence le rôle central joué par FreeCAD tout au long du cycle de vie du projet. Elle souligne l’importance de cet outil depuis les phases de conception préliminaire, où sont définies les architectures générales et les premiers volumes fonctionnels, jusqu’à la modélisation 3D détaillée de l’ensemble des équipements intégrés dans le diorama.

Conclusion

L’usage de FreeCAD dans la conception du diorama technique BATLab112 révèle une série d’avantages déterminants tant sur le plan conceptuel que sur le plan opérationnel. Sa modélisation paramétrique, sa précision dimensionnelle, son interopérabilité avec les outils de fabrication numérique et sa nature open source en font un environnement particulièrement adapté à la conception rigoureuse, évolutive et documentée d’un diorama fonctionnel.

Au-delà de la simple production de modèles 3D, FreeCAD constitue un véritable environnement de conception, de prototypage et de communication technique. Le projet BATLab112 illustre de manière exemplaire comment cet outil permet de sécuriser les choix conceptuels, d’enrichir progressivement les fonctionnalités du diorama et d’assurer une cohérence globale dans l’ensemble du processus créatif.

Voir aussi

L’utilisation de FreeCAD en phase de conception préliminaire du projet BATLab112

L’utilisation de FreeCAD en phase de conception détaillée du projet BATLab112

Arduino et Diorama du projet BATLab112 : Les consoles de commande

Introduction

Les consoles de commande du projet BATLab112 constituent des modules techniques intégrés au diorama de la Batcave, destinés à centraliser les commandes manuelles et l’affichage des données liées aux équipements industriels miniatures présent dans le diorama de la Batcave. Leur fonctionnement repose en grande partie sur l’intégration de cartes microcontrolleur Arduino, choisi pour leur facilité de mise en œuvre, leur modularité et la disponibilité de nombreux modules compatibles.
L’objectif principal est d’obtenir des consoles fonctionnelles, capables d’afficher des informations en temps réel sur l’état des équipements industriels, d’émettre des signaux lumineux et d’interagir avec d’autres sous-systèmes du diorama.

Fonction et organisation générale des consoles

  • Chaque console est conçue comme un bloc autonome comprenant :
  • Deux cartes Arduino Mega 2560
  • Deux écrans TFT 2,8’’
  • Un pupitre de commandes manuelles composées de switches, boutons poussoirs, Leds …
  • Des modules électroniques complémentaires en fonction des besoins techniques d’équipement contrôlé tels que des modules électroniques L298N

Les consoles de commande sont directement connectées aux sorties des armoires de raccordement du poste électrique.

Choix des microcontrôleurs

Modules d’affichage

Le choix des microcontrôleurs destinés aux consoles de commande est directement lié au type de modules d’affichage retenus. Les consoles du projet BATLab112 utilisent des écrans TFT tactiles 2,8’’, équipés d’un lecteur de carte au format SIM, nécessitant un nombre important de broches pour gérer simultanément l’affichage graphique, la couche tactile et les fonctionnalités annexes intégrées au module.

Pour la première console, deux écrans sont utilisés afin d’afficher en temps réel l’ensemble des informations relatives à l’état du système industriel contrôlé. Cette organisation à double affichage permet de répartir clairement les données selon leur nature et leur utilité opérationnelle. Les écrans sont ainsi mobilisés pour présenter :

  • L’état des commandes manuelles, incluant l’activation des interrupteurs, des boutons et des sélecteurs.
  • L’historisation des commandes, permettant de visualiser la dernière action effectuée ou de suivre la séquence d’ordres exécutés.
  • Une représentation visuelle de l’équipement, offrant un retour graphique instantané sur la position ou l’état général du dispositif piloté.
  • L’état des capteurs de fin de course, utile pour vérifier la conformité des déplacements ou des rotations simulées.
  • Les mesures spécifiques à l’équipement, telles que la vitesse de déplacement ou de rotation, les modes de fonctionnement sélectionnés, ou encore les valeurs de consigne.

Microcontrolleurs

La phase de conception préliminaire de la première console de commande, destinée au pilotage de la plateforme rotative de la Batmobile, a conduit au choix d’une carte Arduino Mega 2560. Ce choix s’explique principalement par le nombre élevé de broches disponibles, permettant de répondre aux besoins de raccordement identifiés lors de ce premier développement. L’architecture retenue devait également anticiper l’évolution des consoles futures, notamment celles destinées à piloter des équipements mécaniques plus complexes. En effet, si la plateforme rotative repose sur le pilotage d’un seul moteur, le pont roulant nécessite deux moteurs, le pont élévateur quatre, et certains bras robotiques jusqu’à cinq.

L’Arduino Mega 2560 présente ainsi plusieurs avantages pour la mise en œuvre des éléments techniques suivants :

  • Raccordement simple et direct des écrans tactiles TFT 2,8’’, équipés d’un lecteur de carte au format SIM, nécessitant un grand nombre de broches numériques et analogiques pour la gestion simultanée de l’affichage, du tactile et des fonctions associées.
  • Connexion des éléments de commande manuelle, incluant LED, interrupteurs et boutons poussoirs, chacun demandant un adressage propre et suffisamment de broches d’entrées/sorties.
  • Gestion des signaux PWM, utilisés pour le pilotage des moteurs ou pour la modulation des effets lumineux, nécessitant la disponibilité de plusieurs sorties PWM dédiées.
  • Accès à un port de communication série (Rx/Tx), indispensable pour les échanges de données entre microcontrôleurs ou entre la console et d’autres modules du diorama.

L’ensemble de ces facteurs a confirmé la pertinence du choix de l’Arduino Mega pour assurer la robustesse, la modularité et l’évolutivité requises par la suite du projet BATLab112.

Intégration esthétique

L’intégration des deux modules Arduino Mega 2560, indispensables à chacune des consoles de commande pour assurer le pilotage des deux écrans TFT 2,8″, a exercé une influence déterminante sur la conception générale de ces interfaces. Bien que les microcontrôleurs demeurent relativement compacts, leur installation directe, équipée de leurs écrans respectifs, sur le panneau vertical frontal de la console aurait entraîné une augmentation notable des dimensions hors tout. Une telle configuration se serait révélée incompatible avec les contraintes spatiales strictes imposées par l’intégration de quatre consoles au sein du diorama.

Afin de concilier cohérence technique, lisibilité fonctionnelle et exigences esthétiques, le choix s’est porté sur une implantation verticale et déportée à l’arrière des modules Arduino. Cette solution intermédiaire a permis d’optimiser l’espace tout en préservant la silhouette des consoles, garantissant ainsi une intégration harmonieuse dans l’ensemble scénographique du projet BATLab112.

Conclusion

La réalisation des consoles de commande du projet BATLab112 met en lumière l’intérêt particulier de l’écosystème Arduino pour les projets de diorama intégrant des fonctionnalités mécaniques, lumineuses ou interactives. Dans un contexte où la miniaturisation, la fiabilité et la polyvalence sont essentielles, les microcontrôleurs Arduino se révèlent être des outils parfaitement adaptés. Leur rapidité de mise en oeuvre, leur compatibilité immédiate avec une vaste gamme de modules d’affichage, de commande ou de pilotage moteur, ainsi que la simplicité de leur programmation, en font une solution idéale pour orchestrer les multiples sous-systèmes qui animent un diorama technique.

L’intégration des Arduino dans les consoles de BATLab112 montre à quel point ces microcontrôleurs facilitent le développement progressif d’un projet créatif. Ils permettent d’ajouter, de tester ou de modifier rapidement des fonctions, sans revoir entièrement l’architecture existante. Cette capacité d’évolution est un atout décisif dans un diorama où chaque module — plateforme rotative, pont roulant, pont élévateur ou bras robotique — impose ses propres besoins électriques et mécaniques. Grâce à l’Arduino, ces exigences peuvent être prises en charge de manière cohérente, tout en restant accessibles à un maquettiste ou un concepteur ne disposant pas nécessairement d’un bagage spécialisé en électronique industrielle.

Voir aussi

La story de l’avancement des consoles de commande

Le suivi d’avancement des consoles de commande

Electronique du pont élévateur – Prototype Ep2

À la suite du premier article sur la version initiale de l’électronique du pont élévateur, celui-ci présente les principales évolutions techniques mises en œuvre.… Lire la suite →

Première publication :

Dernière mise à jour :

Temps de lecture :

3–5 minutes

Introduction

Le premier prototype du système électronique destiné à la commande des quatre moteurs du pont élévateur du diorama pédagogique de la Batcave a mis en évidence plusieurs dysfonctionnements. Ceux-ci résultent principalement d’un choix de composants inadapté lors de la phase de conception, notamment au regard des performances attendues du système. Plus précisément, le prototype a révélé les limites techniques des quatre convertisseurs fréquence-tension utilisés comme interface entre les plateformes moteurs et la console de commande.

Les moteurs fonctionnant à des fréquences inférieures à 500 Hz, les convertisseurs délivrent des tensions de sortie présentant des variations inférieures à 50 mV. L’acquisition, la transmission et le traitement de ces signaux de très faible amplitude induisent un taux d’incertitude trop élevé pour garantir un fonctionnement suffisamment fiable et prévenir les risques de blocage du pont élévateur.

Présentation générale

Evolution de la conception

L’objectif principal de ce nouveau prototype est de valider le principe des modifications proposées à la conception initiale. Celles-ci reposent notamment sur le remplacement des quatre modules de conversion fréquence-tension par une carte à microcontrôleur de type Arduino.

Un second objectif consiste à évaluer l’intégration d’un écran LCD I2C associé au microcontrôleur, permettant l’affichage local des vitesses de rotation des moteurs ainsi que leur traitement au plus près des plateformes. Cette amélioration, non envisagée dans la conception initiale, a émergé lors de l’utilisation de la plateforme TinkerCAD, au cours de la simulation du remplacement des modules de conversion par un Arduino.

Un troisième objectif vise à valider un nouveau mode d’échange d’informations entre l’armoire électrique d’acquisition des signaux issus des capteurs optiques et la console de commande. Le premier prototype reposait sur la transmission de quatre signaux analogiques correspondant aux tensions en sortie des convertisseurs. L’intégration d’un microcontrôleur dans l’armoire électrique permet désormais d’envisager une communication plus fiable via les ports série (Rx/Tx). Le traitement des signaux est ainsi déporté vers ce microcontrôleur, libérant celui de la console de commande, qui est alors exclusivement dédié à la mise à jour de l’affichage sur l’écran TFT 2,8″.

Description générale du système

Comme indiqué dans la conclusion de l’analyse du premier prototype, l’architecture générale du système électronique a été globalement reconduite. Le dispositif comprend ainsi les quatre plateformes moteurs assurant l’entraînement des axes du pont élévateur, connectées à deux armoires électriques distinctes :

  • une armoire [1] dédiée à l’acquisition et au traitement des signaux en fréquence issus des capteurs optiques des plateformes ;
  • une armoire [2] destinée à la commande du sens et de la vitesse de rotation des moteurs.

Dans le cadre de ce nouveau prototype, un microcontrôleur Arduino UNO R3, déjà disponible dans le stock du projet BATLab112, a été retenu pour remplacer les quatre modules de conversion. Ce choix, fondé sur une démarche de rationalisation des coûts, demeure provisoire et pourra évoluer au cours des phases ultérieures du projet.

Implantation des nouveaux éléments

  • Le microcontrôleur Arduino Uno est installé à plat devant les armoires électriques.
  • L’écran LCD i2C est positionné de face, à proximité.
  • La liaison de transmission série entre les microcontrôleurs est assurée par le câble bleu et blanc.
  • Les quatre câbles transmettant les signaux en tension des convertisseurs vers la console de commande ont été supprimés : l’Arduino Uno est désormais connecté, via l’armoire n°1, directement aux sorties des capteurs optiques des plateformes moteurs.
  • Le câble transmettant la commande de vitesse entre la console et l’armoire n°2 a été retiré. L’Arduino Uno fournit désormais quatre signaux à rapport cyclique réglable, permettant de piloter indépendamment la vitesse de rotation de chaque moteur.

Conclusions

La conclusion de l’article consacré au premier prototype soulignait deux axes principaux d’amélioration :

  • Le remplacement des convertisseurs fréquence-tension par un microcontrôleur Arduino
  • L’amélioration de l’esthétique et de la robustesse des PCB des borniers des armoires électriques.

Le présent travail confirme la validité du principe de remplacement des convertisseurs par un microcontrôleur. Il reste toutefois à déterminer le modèle Arduino le plus adapté pour une intégration définitive au sein de l’armoire électrique d’acquisition et de traitement des signaux issus des capteurs optiques des plateformes moteurs. Un premier état des lieux indique que l’usage de modules Arduino Nano serait pertinent, leurs dimensions et caractéristiques répondant aux contraintes d’intégration et de performance. Leur déploiement sera effectué lors de la révision de l’implantation interne des armoires électriques.

Enfin, la refonte des PCB des borniers des deux armoires électriques sera également réalisée au cours de cette même phase de réaménagement interne.trique sera aussi mise en oeuvre lors de la reprise de l’implantation interne de ces deux armoires.

Voir aussi

Articles – Pont élévateur

Story – Pont élévateur

Articles – Prototypes

Story – Pont élévateur – 017

Categorie :

Légende :

L’ultime évolution du système électronique de commande des moteurs du pont élévateur du diorama de la Batcave est en cours de mise au point.

Le remplacement de 4 convertisseurs fréquence/tension par un microcontrôleur Arduino UNO pour le traitement des signaux issus des capteurs optiques des plateformes moteurs et la transmission de données vers la console de commande.

Pont élévateur – Electronique – Conception Ep2

Suite à la réalisation du premier prototype opérationnel, cet article présente la reprise de la conception de l’électronique de commande du pont élévateur, du diorama de la Batcave du projet BATLab112.


Introduction

Cet article fait suite à la conception détaillée de l’électronique de commande et la réalisation d’un premier prototype opérationnel de l’électronique de commande du pont élévateur du diorama pédagogique à l’échelle 1/12 de la Batcave du projet BATLab112.

Modification de la conception initiale

Les essais effectués à l’aide du montage prototype ont mis en évidence que les modules de conversion des signaux de fréquence, issus des capteurs optiques des plateformes moteurs, en signaux de tension exploitables par la carte Arduino Mega intégrée à la console de commande du pont élévateur, ne sont pas adaptés. En effet, la conversion de signaux de fréquence trop faibles génère des tensions dont les variations en amplitude, corrélées à la fréquence, sont insuffisantes pour permettre une interprétation fiable et précise par le microcontrôleur.

L’objet de cet article est double. Il s’agit, dans un premier temps, de proposer une nouvelle conception de l’électronique de commande, en remplaçant les modules de conversion fréquence/tension par des cartes Arduino, capables d’assurer directement la lecture, le traitement et la transmission des signaux issus des capteurs optiques.
Dans un second temps, l’objectif est d’introduire plusieurs améliorations fonctionnelles absentes de la première version du système, notamment la mise en place d’une régulation de vitesse pour chacun des quatre moteurs assurant l’entraînement des axes du pont élévateur. Cette évolution vise à garantir un mouvement synchronisé et sécurisé de l’ensemble des plateformes, tout en offrant une meilleure stabilité et une précision accrue lors des phases de montée et de descente.

Les éléments conservés depuis la version initiale

Dans une volonté de minimiser l’impact des modifications envisagées, tant en termes de temps que de coût, certains éléments existants doivent être conservés. Cette approche vise à réutiliser au maximum les composants et sous-ensembles déjà en place, afin de limiter les interventions matérielles et de garantir la compatibilité avec l’infrastructure électrique actuelle du projet.

Les armoires électriques

L’implantation de cette électronique au sein des deux armoires électriques est conservée. Les dimensions mécaniques de ces armoires demeurent inchangées, afin de maintenir la cohérence avec les autres ensembles électriques similaires du projet.

La conception de l’agencement de l’armoire dédiée au contrôle de la vitesse et du sens de rotation des moteurs n’est que marginalement affectée par le changement de procédé de mesure de la vitesse. Cependant, l’analyse du fonctionnement du prototype a mis en évidence la nécessité d’une évolution majeure : le système doit désormais permettre de piloter la vitesse de rotation de chacun des moteurs de manière indépendante. Cette modification ouvre la voie à une régulation plus fine du mouvement de chaque axe du pont élévateur, garantissant un meilleur équilibrage et une synchronisation plus précise de l’ensemble.

Dans le montage initial, le signal issu du générateur à rapport cyclique variable, conçu à partir d’un oscillateur NE555, produit un signal carré unique distribué simultanément vers les quatre entrées des deux doubles ponts en H assurant le pilotage des moteurs.
Cependant, ce dispositif, entièrement autonome et dépourvu de rétroaction, ne permet aucune régulation dynamique du rapport cyclique en fonction des variations de vitesse propres à chacun des moteurs. En conséquence, toute fluctuation mécanique ou électrique affectant un moteur se répercute sur l’équilibre global du système, sans possibilité de correction différenciée.

Schéma électronique

La reprise de cette conception électronique a également constitué l’occasion d’utiliser, pour la première fois dans l’avancement du projet BATLab112, l’outil en ligne TinkerCAD, dédié à la conception et à la simulation de circuits électroniques. Cet environnement virtuel a permis de modéliser les nouveaux schémas de commande avant leur réalisation concrète, facilitant ainsi les phases de test, de validation et d’ajustement.
L’usage de TinkerCAD a également contribué à limiter les erreurs de conception, qui se sont déjà avérées coûteuses en temps et en ressources matérielles, en permettant d’anticiper les incompatibilités potentielles entre composants et de valider les principes de fonctionnement avant toute phase de prototypage physique.

Pour accéder à TinkerCAD cliquer sur l’image ou sur ce lien : https://www.tinkercad.com/things/4NAy7qcVIJG

Présentation générale

Au centre de ce schéma, les deux cartes Arduino Uno jouent un rôle de représentation :

  • celle située à gauche symbolise la carte Arduino Mega 2650 utilisée dans la console de commande ;
  • celle située à droite correspond à la nouvelle carte Arduino intégrée au montage, dédiée à l’acquisition et au traitement des signaux électriques provenant des capteurs optiques de mesure des vitesses de rotation des moteurs.

Dans cette simulation, l’écran TFT 2,8″ associé à la carte Mega a dû être remplacé par un écran LCD I2C 16×2, en raison des limitations de la bibliothèque de composants disponibles dans TinkerCAD. Toutefois, ce remplacement s’est révélé être une opportunité technique : il a permis d’envisager une solution d’affichage local, directement au plus près des armoires de raccordement électriques.
Les faibles dimensions et la simplicité de câblage de ces écrans LCD offrent de nouvelles perspectives d’intégration, notamment sur la porte même des armoires électriques.

La platine de prototypage électronique présente sur le schéma remplit quant à elle un rôle symbolique, représentant la console de commande physique du dispositif.

Enfin, les quatre générateurs de fonctions simulent les signaux issus des capteurs optiques placés sur les plateformes moteurs. Ces générateurs, réglables individuellement, sont associés à quatre oscillogrammes permettant d’observer les rapports cycliques et les signaux de commande de vitesse de rotation produits par la carte Arduino.
Cette configuration a notamment permis de valider expérimentalement la régulation de vitesse des moteurs dans un environnement virtuel.

Évolution depuis la version initiale

Mesure de la vitesse de rotation des moteurs

La mesure de la vitesse de rotation des moteurs est la fonction la plus impactée par les évolutions de cette nouvelle conception. Jusqu’à présent, cette mesure était assurée par des modules de conversion fréquence/tension, qui se sont révélés inadaptés aux conditions réelles de fonctionnement et aux niveaux de signaux fournis par les capteurs.

Comme évoqué précédemment, l’objectif consiste à remplacer ces modules par une ou plusieurs cartes Arduino, chargées d’assurer l’acquisition, le traitement et la conversion des signaux de fréquence issus des capteurs optiques positionnés sur les quatre plateformes moteurs.


L’utilisation de l’outil de simulation TinkerCAD joue ici un rôle essentiel : elle permet d’expérimenter différentes configurations pour déterminer le nombre de cartes Arduino nécessaires à la gestion simultanée des signaux, ainsi que le modèle le plus approprié. Ce choix dépendra à la fois des capacités d’entrée/sortie disponibles et des contraintes d’encombrement mécanique, afin de garantir une intégration optimale en remplacement direct des anciens modules de conversion.

Edition des schémas électroniques

La simulation du montage électronique du diorama de la Batcave du projet BATLab112 est éditée avec l’application Web TinkerCAD.

Script Arduino

Script d’acquisition et traitement des signaux de vitesse moteur

/**************************************************************/
/* Script for Arduino Check Measure */
/* Measures and converts the frequency values from the */
/* generators to transmit them to the second Arduino */
/**************************************************************/
#include <LiquidCrystal_I2C.h>

#define COUNTER 1 // Nb pulses/measure
#define DUTY_CYCLE_INIT 70 // Initialization Duty Cycle

LiquidCrystal_I2C lcd_1(38, 16, 2);

/* GLOBAL VARIABLES *******************************************/
int PulseCounter = 1;
int Freq_min;
int Motor_min;

float Period[]={0,0,0,0};
float old_Period[]={0,0,0,0};

float Freq[]={0,0,0,0};
int Freq_int[]={0,0,0,0};
char Freq_char[4][4]={"000","000","000","000"};

int Duty_cycle[4]={DUTY_CYCLE_INIT,DUTY_CYCLE_INIT,DUTY_CYCLE_INIT,DUTY_CYCLE_INIT};
float Duty_cycle_control[4]={1,1,1,1};

const byte pinIn[] = {4, 7, 12, 13}; // Pins used to get Freq
const byte pinPWM[] = {3, 9, 10, 11}; // Pins PWM

/**************************************************************/
/* Void setup() */
/**************************************************************/
void setup()
{
/* ARDUINO PINOUT *******************************************/
//MANUAL COMMAND PIN
int PIN_FREQ0 = 4;
int PIN_FREQ1 = 7;
int PIN_FREQ2 = 12;
int PIN_FREQ3 = 13;

pinMode(PIN_FREQ0, INPUT);
pinMode(PIN_FREQ1, INPUT);
pinMode(PIN_FREQ2, INPUT);
pinMode(PIN_FREQ3, INPUT);

//PWM PINS
int PIN_PWM0 = 3;
int PIN_PWM1 = 9;
int PIN_PWM2 =10;
int PIN_PWM3 =11;

pinMode(PIN_PWM0, OUTPUT);
pinMode(PIN_PWM1, OUTPUT);
pinMode(PIN_PWM2, OUTPUT);
pinMode(PIN_PWM3, OUTPUT);


/* SET PWM FREQUENCY DIVISOR ********************************/
// PWM PIN 9 & 10 → 31372.55 Hz
//TCCR1B &= 0b11111000;
//TCCR1B |= 0b00000001;
// PWM PIN 3 & 11 → 31372.55 Hz
//TCCR2B &= 0b11111000;
//TCCR2B |= 0b00000001;

/* POWER PWM SIGNALS ****************************************/
analogWrite(PIN_PWM0, map(DUTY_CYCLE_INIT,0,100,0,255));
analogWrite(PIN_PWM1, map(DUTY_CYCLE_INIT,0,100,0,255));
analogWrite(PIN_PWM2, map(DUTY_CYCLE_INIT,0,100,0,255));
analogWrite(PIN_PWM3, map(DUTY_CYCLE_INIT,0,100,0,255));

/* INIT SERIAL1 PORT ****************************************/
Serial.begin(9600);

/* LCD FIRST DISPLAY ****************************************/
lcd_1.init();
lcd_1.backlight();
lcd_1.setCursor(0,0);
lcd_1.print("MEASURE");
lcd_1.setCursor(0,1);
lcd_1.print("WIP...");

delay(3000);
}

/**************************************************************/
/* Void loop() */
/**************************************************************/
void loop() {

/* CHECK FREQUENCIES ****************************************/
for(int i=0; i<4; i++)
{
Period[i] = ReadPeriod(pinIn[i]); // Period in µsec
Freq[i] = (1000000/Period[i]); // Frequency in Hz
}

/* DUTY_CYCLE CONTROL VALUE *********************************/
Freq_min = min(min(min(Freq[0],Freq[1]),Freq[2]),Freq[3]);
for(int i=0; i<4; i++)
{
if(Freq_min == Freq[i])
{
Motor_min = i;
}
}
for(int i=0; i<4; i++)
{
Duty_cycle_control[i] = Freq_min/Freq[i];
Duty_cycle[i] = Duty_cycle[i] * Duty_cycle_control[i];
analogWrite(pinPWM[i], map(Duty_cycle[i],0,100,0,255));
}

/* FORMAT FREQ VALUE ON 3 DIGITS ****************************/
// Freq value range : 10 Hz -> 500 Hz
for (int i=0;i<4;i++)
{
/*if (Freq[i]==0)
{
for(int c=0;c<3;c++)
{
Freq_char[i][c]="0";
}
}*/
if (Freq[i]<10)
{
Freq[i] = Freq[i] + 910;
}
if (Freq[i]<100)
{
Freq[i] = Freq[i] + 900;
}

/* CONVERTING (FLOAT) FREQ VALUE in CHAR ******************/
if(Freq[i]!=0)
{
Freq_int[i] = round(Freq[i]);
itoa(Freq_int[i],Freq_char[i],10);
}
}

/* SEND FREQ_CHAR VIA RxTx PORT *****************************/
for(int i=0; i<4; i++)
{
Serial.write(Freq_char[i],3);
}

/* DISPLAY VALUES *******************************************/
// FIRST : FREQUENCIES
lcd_1.init();
lcd_1.setCursor(0,0);
lcd_1.print("F0:");
lcd_1.print(Freq_char[0]);
lcd_1.setCursor(0,1);
lcd_1.print("F1:");
lcd_1.print(Freq_char[1]);
lcd_1.setCursor(9,0);
lcd_1.print("F2:");
lcd_1.print(Freq_char[2]);
lcd_1.setCursor(9,1);
lcd_1.print("F3:");
lcd_1.print(Freq_char[3]);

delay(3000);

// SECOND : DUTY CYCLE
lcd_1.init();
lcd_1.setCursor(0,0);
lcd_1.print("D0:");
lcd_1.print(Duty_cycle[0]);
lcd_1.setCursor(0,1);
lcd_1.print("D1:");
lcd_1.print(Duty_cycle[1]);
lcd_1.setCursor(9,0);
lcd_1.print("D2:");
lcd_1.print(Duty_cycle[2]);
lcd_1.setCursor(9,1);
lcd_1.print("D3:");
lcd_1.print(Duty_cycle[3]);

PulseCounter = 0;
delay(2000);
}

/**************************************************************/
/* Function : ReadPeriod() */
/* Input : The signal number of the measured period */
/* Return : none */
/* Digest : Use the Arduino pulseIn command to measure */
/* the signal period in microseconds */
/**************************************************************/
float ReadPeriod(int signal)
{
int pin = 0;
float VarPeriod = 0;
PulseCounter = 0;
while(PulseCounter <= COUNTER)
{
VarPeriod = (VarPeriod + pulseIn(signal,HIGH));
VarPeriod = (VarPeriod + pulseIn(signal,LOW));
PulseCounter++;
}
VarPeriod = VarPeriod / PulseCounter;
return VarPeriod;
}

Limite de fonctionnement du script

Régulation de la vitesse de rotation des moteurs

Le modèle de la bibliothèque TinkerCAD de moteur à courant continu équipé d’un encodeur ne permet, à priori, pas de simuler le fonctionnement réel de l’encodeur. Cette limitation a directement conduit à adopter une approche simplifiée pour la régulation de la vitesse des moteurs. En l’absence de signaux de retour exploitables, la régulation du rapport cyclique du signal PWM de pilotage reste très rudimentaire dans cette première version du script.

À partir d’une configuration initiale des rapports cycliques fixée à 70 % :

#define DUTY_CYCLE_INIT 70

La plus petite valeur parmi les quatre vitesses de rotation simulées est utilisée comme référence pour ajuster les rapports cycliques des trois autres moteurs. Cette méthode, bien que cohérente dans le cadre des contraintes de la simulation, ne constitue pas une véritable régulation en boucle fermée : elle repose uniquement sur une logique de comparaison relative, sans mesure réelle de la vitesse issue d’un encodeur.

De plus, les délais d’exécution du code et les latences propres à l’environnement de simulation TinkerCAD limitent la précision des ajustements et induisent un comportement parfois irrégulier. Ces approximations rendent difficile toute extrapolation directe du fonctionnement simulé vers un système physique réel.

Ainsi, le script doit être considéré avant tout comme une première approche conceptuelle de la régulation multi-moteurs. Il permet de valider les principes d’organisation du code — gestion des signaux PWM, comparaison des vitesses, et synchronisation relative — tout en offrant une base solide pour une future version du programme. 

Fréquences des signaux PWM

/* SET PWM FREQUENCY DIVISOR ********************************/
// PWM PIN 9 & 10 → 31372.55 Hz
// TCCR1B &= 0b11111000;
// TCCR1B |= 0b00000001;
// PWM PIN 3 & 11 → 31372.55 Hz
// TCCR2B &= 0b11111000;
// TCCR2B |= 0b00000001;

Ces lignes de script déclarées en commentaire correspondent à la mise en œuvre initiale de diviseurs de fréquence appliqués aux signaux PWM générés par les broches 3, 9, 10 et 11. L’objectif de cette modification était d’augmenter la fréquence de modulation, passant d’environ 490 Hz à des valeurs supérieures à 20 kHz, afin de rendre les signaux inaudibles pour l’oreille humaine. Cette approche avait été envisagée pour améliorer le confort sonore du système lors des phases de commande moteur. Cependant, elle a été finalement mise de côté, car l’augmentation de la fréquence PWM provoquait des dysfonctionnements dans la communication I2C utilisée par l’écran LCD, rendant son affichage inopérant.
Une solution alternative, consistant à utiliser des bibliothèques spécialisées telles que PWM.h, sera étudiée ultérieurement afin d’obtenir un contrôle plus fin des fréquences de modulation sans interférer avec les autres périphériques du système.

Bienfaits des limites de TinkerCAD

Les limites rencontrées lors de l’utilisation de TinkerCAD apparaissent clairement dès la conception du schéma électronique, notamment en raison de l’absence de certains composants essentiels utilisés dans le cadre du projet BATLab112, tels que la carte Arduino Mega 2560 ou encore les écrans TFT 2,8″.

Cependant, loin de constituer un frein, ces contraintes se sont révélées particulièrement formatrices. Elles ont favorisé une approche plus inventive et une optimisation du travail de conception. En effet, cette première expérience d’utilisation de TinkerCAD a permis de démontrer qu’une seule carte Arduino Uno pouvait remplacer les quatre modules de conversion fréquence/tension initiaux, tout en assurant l’acquisition et le traitement des signaux issus des capteurs.

L’absence de certains composants dans l’environnement de simulation a également encouragé la recherche de solutions alternatives et l’amélioration des montages existants. Ainsi, la nécessité d’optimiser l’utilisation des broches disponibles sur l’Arduino Uno, en nombre plus limité que sur la Mega 2560, a conduit au développement de nouvelles stratégies de communication.
Parmi celles-ci, la mise en place d’un échange de données par liaison série entre l’Arduino dédié à l’acquisition et au traitement des signaux de vitesse de rotation des moteurs, et l’Arduino de la console de commande responsable de l’affichage, constitue une évolution majeure. Cette approche a permis non seulement d’alléger le câblage, mais aussi d’améliorer la modularité et la clarté fonctionnelle du système.

Prototypage de validation

Maquette de prototypage

Cette maquette de prototypage est destinée à valider le câblage ainsi que le fonctionnement de la carte Arduino dédiée à l’acquisition, au traitement et à la transmission des signaux de vitesse des quatre moteurs. Elle constitue une étape préalable essentielle avant l’intégration du système complet sur le prototype fonctionnel.

Adaptations par rapport au montage TinkerCAD

Dans cette version matérielle, les générateurs de fréquences utilisés dans le montage TinkerCAD sont remplacés par un clone d’Arduino Mega, chargé de délivrer quatre signaux PWM. Deux de ces signaux sont associés à un diviseur de fréquence, permettant d’alterner entre deux valeurs de fréquences distinctes afin de simuler différentes vitesses de rotation des moteurs.

La carte Arduino Uno couplée à un écran LCD, représentant la console de commande dans la simulation TinkerCAD, est remplacée par la carte Arduino Mega équipée d’un écran TFT 2,8″. Cet ensemble est directement issu de la console de commande réelle du système.

De son côté, l’écran LCD initialement utilisé sur la carte Arduino Uno en charge de la mesure, du traitement et de la transmission des informations, est désormais remplacé par un écran OLED I2C, plus compact et offrant une intégration dans l’armoire électrique.

Conclusion

Le fonctionnement général de cette maquette est validé. Les échanges entre les cartes, ainsi que la génération et la lecture des signaux de vitesse, se comportent conformément aux attentes.
La prochaine étape consistera à intégrer ce montage dans les armoires électriques du prototype initial du système de commande, en liaison avec les plateformes moteurs, afin de procéder aux essais en conditions réelles.

Voir aussi

Articles – Pont élévateur

Articles – Conception détaillée

Une décision tardive dans le projet

Retour sur l’usage tardif de la simulation électronique dans le projet BATLab112

L’utilisation de l’outil de simulation est intervenue tardivement dans le développement du projet BATLab112. Plusieurs raisons expliquent ce choix chronologique.
Tout d’abord, les phases de conception et de mise au point des montages électroniques nécessaires à l’équipement du diorama pédagogique ont toujours constitué pour moi des moments privilégiés d’expérimentation et de manipulation concrète. Ces étapes de prototypage manuel répondaient à une démarche d’apprentissage active, où la compréhension passait par l’expérience directe plutôt que par la modélisation. Je ne ressentais donc pas le besoin d’avoir recours à un outil de simulation préliminaire.

Il est vrai que j’utilise depuis plusieurs années le logiciel KiCAD, un outil complet et performant de conception et de simulation de circuits électroniques. Cependant, mon usage de KiCAD s’est jusqu’à présent limité à la conception et à la documentation des schémas électriques, sans exploiter ses fonctions avancées de simulation. Cela suffisait à garantir la traçabilité et la reproductibilité des montages réalisés.

Par ailleurs, jusqu’à une période récente, je n’avais pas été confronté à des circuits dont la complexité justifiait une phase de simulation préalable. Les montages développés – qu’il s’agisse de circuits analogiques simples, comme des générateurs de signaux carrés, ou de circuits de commande manuelle pour les consoles du projet – restaient suffisamment accessibles pour être directement testés sur maquette. Il en allait de même pour les montages à base de cartes Arduino, dont la complexité tenait davantage à la programmation qu’à la structure électronique elle-même.

C’est l’échec rencontré lors du développement du système de commande du pont élévateur du diorama qui a profondément modifié cette approche. Le prototype réalisé a mis en évidence plusieurs faiblesses, tant dans la conception du circuit que dans le choix des composants utilisés. Une révision complète de l’électronique s’est alors imposée, accompagnée d’une réflexion sur l’adéquation des composants employés.
Les essais ont notamment révélé les limites des modules manufacturés de convertisseurs fréquence-tension, qui se sont avérés inadaptés aux besoins spécifiques du projet.

Parmi les alternatives envisagées figure l’utilisation de microcontrôleurs Arduino, dont certains modèles compacts, tels que l’Arduino Nano, pourraient être intégrés directement à la place des modules défaillants. Cependant, la complexité de cette nouvelle architecture, ainsi que les interrogations techniques qu’elle soulève en matière de performances et de faisabilité, rendent désormais indispensable le recours à une phase de simulation électronique. Celle-ci constitue aujourd’hui une étape clé pour fiabiliser la conception et sécuriser la prochaine phase de développement du projet.

Découverte et prise en main de TinkerCAD comme outil de simulation

C’est dans ce contexte de remise en question de la conception électronique du pont élévateur que j’ai découvert les fonctionnalités de simulation de TinkerCAD.

La première approche de TinkerCAD Circuits s’est révélée particulièrement intuitive. L’environnement graphique, simplifié et accessible via un navigateur internet, permet de concevoir des schémas en quelques minutes, en disposant virtuellement des composants standards (résistances, transistors, capteurs, microcontrôleurs Arduino, etc.) tout en visualisant en temps réel le comportement du montage. Cette approche favorise une compréhension immédiate du fonctionnement du circuit, sans nécessiter l’installation d’un logiciel complexe ou la gestion de bibliothèques de composants.

La simulation intégrée offre également un avantage pédagogique indéniable : elle permet d’expérimenter sans risque matériel et de valider des hypothèses de fonctionnement avant toute phase de prototypage réel. Dans le cadre de BATLab112 School, où l’objectif est à la fois technique et éducatif, cette dimension de visualisation et d’expérimentation virtuelle peut s’avérer très pertinente.

Toutefois, les premières expérimentations ont également mis en évidence certaines limites propres à l’outil. Si TinkerCAD s’avère idéal pour simuler des montages simples ou intermédiaires, il atteint rapidement ses limites dès lors que le projet requiert des composants spécifiques, des conditions de charge complexes ou des signaux analogiques précis. Les modèles proposés restent génériques, et les réglages fins, tels que la mesure de bruit, la gestion de la fréquence d’horloge ou la caractérisation des composants, ne sont pas toujours disponibles.

Malgré ces limites, l’usage de TinkerCAD représente une étape charnière dans mon approche de la conception électronique du projet BATLab112.