Skip to content
UCAO-TECH Team

Test 3 Electronique: Test de sortie - Afficheur 7 segments mécanique avec servomoteurs ​

Afficheur 7 segments mécanique réinventé à l'aide de servomoteurs - Une fusion de la logique numérique et du mouvement mécanique.

Contexte du projet ​

Dans un monde dominé par les écrans numériques et les LED, le Tekbot Robotic Challenge 2025 lance un défi audacieux: réinventer l'afficheur 7 segments en lui donnant une âme mécanique.

Concept initial

Origine du projet: TEKBOT ROBOTIC CHALLENGE 2025


Objectifs du projet ​

Objectifs principaux ​

  • Concevoir un afficheur 7 segments entièrement mécanique
  • Contrôler précisément 7 servomoteurs avec un microcontrôleur
  • Implémenter un comptage cyclique 0→9→0

Objectifs secondaires ​

  • Réduire le nombre de broches en utilisant des circuits intégrés
  • Documenter le processus de développement
  • Valider la solution par simulation

Partie 1: Implémentation physique ​

Composants utilisés ​

ComposantRéférenceQuantitéRôle
MicrocontrôleurATmega328P1Cerveau du système
ServomoteursSG907Contrôle des segments
RégulateurLM78051Régulation 5V
BatterieLi-ion 7.4V1Alimentation
Condensateurs100nF, 1000μF, 10µF4Filtrage
Cristal16MHz1Horloge

Schéma électronique ​

Schéma électronique complet

Description:

  • Protection contre la surcharge
  • Connexion directe des servos aux broches PWM
  • Circuit de réinitialisation avec bouton poussoir

Schéma physique 1

Schéma physique 2

Alimentation ​

Le système d'alimentation comprend:

  • Batterie Li-ion 7.4V 2S: Source d'énergie principale
  • Régulateur LM7805: Stabilisation à 5V pour les composants
  • Condensateurs de filtrage: 100nF et 10μF pour lisser l'alimentation

Réalisation du PCB ​

PCB vue avant

PCB vue arrière

Caractéristiques:

  • Conçu avec KiCad
  • Double face
  • Pistes de 0.6 mm
  • Espacement optimisé pour les connecteurs

📥 Télécharger les fichiers PCB

Code Arduino ​

Extrait du code principal utilisant millis() pour un timing non-bloquant:

cpp
// Initialisation progressive des servos
if (!initTerminee) {
  if (millis() - debutInit >= 100) { // Délai entre les servos
    debutInit = millis();
    servoEnCours++;
    
    if (servoEnCours < 7) {
      segments[servoEnCours].attach(brochesServos[servoEnCours]);
      segments[servoEnCours].write(90);
    } else {
      initTerminee = true;
      afficher(chiffreActuel); // Affichage initial 0
    }
  }
}

Partie 2: Innovation théorique ​

Concepts clés ​

  • Contrôle angulaire précis: Chaque servo doit atteindre un angle spécifique pour afficher correctement chaque segment.
  • Synchronisation des servos: Les servos doivent être synchronisés pour éviter les erreurs d'affichage.

Défis théoriques ​

  • Calculer les délais optimaux pour le contrôle des servos.
  • Modéliser le comportement dynamique du système pour un contrôle prédictif.

Comparaison et avantages ​

CritèreAfficheur 7 segments traditionnelAfficheur 7 segments avec servomoteurs
FlexibilitéFaibleÉlevée
Complexité de contrôleFaibleÉlevée
CoûtFaibleÉlevé
MaintenanceSimpleComplexe
InnovationStandardHaute

Problèmes rencontrés ​

  • Problème: Difficulté à synchroniser les servos pour un affichage précis.
    • Solution: Ajustement des délais dans le code et utilisation de la fonction millis() pour un timing non-bloquant.

Références techniques ​

  1. Servomoteurs SG90 - Spécifications
  2. ATmega328P - Datasheet
  3. Régulateur LM7805 - Informations

Conclusion ​

Ce projet a permis d'explorer les limites de l'afficheur 7 segments traditionnel en intégrant des éléments mécaniques. Bien que des défis subsistent, notamment en termes de coût et de complexité, les résultats obtenus ouvrent la voie à de nouvelles innovations dans le domaine des afficheurs numériques.