Chronomètre d’escalade
Thème 2023 : l’ingénierie au service du sport
Mission du système
Lors d’une épreuve d’escalade chronométrée, il est nécessaire que le chronomètre soit démarré et arrêté à temps, et avec la même précision pour tous les grimpeurs successifs de la voie.
Un chronomètre d’escalade est constitué de deux parties pour contrôler le chronométrage :
- une au sol pour déclencher le chronomètre lorsque le grimpeur commence l’épreuve,
- une en haut du mur pour arrêter le chronomètre à la fin de l’épreuve
Un afficheur numérique affiche le temps écoulé.
Cahier des charges
Il existe déjà de nombreux chronomètres pour l’escalade mais la plupart n’est pas portable et encore moins autonome en énergie. De plus, ils sont très chers !
L’objectif du projet est de mettre en œuvre un chronomètre à la portée de tous, utilisant des composants simples et faciles à se procurer … et bon marché ! Il est important qu’il soit transportable facilement (léger) et autonome en énergie (au moins 8h).
Il doit être très simple d’utilisation et doit permettre à un grimpeur seul de connaitre son temps un fois redescendu.
Contraintes de conception
Le système se compose de deux boitiers seulement (un en haut et un en bas de la voie), chacun alimenté par une batterie rechargeable Li-ion.
Les deux systèmes comportent chacun un microcontrôleur et communiquent par ondes radio.
Composants utilisés
Microcontrôleur
Arduino
Stockage
Batterie lithium-ion
type 18560
Alimentation
Régulateur de charge
type 134N3P
Communication
Module transmetteur sans fil
nRF24L01+
Documentation
Autre ressource
exemple sur arduino.blaisepascal.fr
Boitier et pièces diverses
Les deux boitiers sont préconçus avec un modeleur volumique (Onshape)
Document OnshapeModèle volumiqueAperçu du contacteur-afficheur_BAS
Aperçu du contacteur_HAUT
Programmation
Les microcontrôleurs seront programmés en langage Arduino. On distinguera 3 principales parties, d’abord traitées séparément, puis réunies en 2 programmes pour chacun des boitiers.
Utiliser un afficheur 7 segment 4 digits
Utiliser la page du wiki DFRobot dédiée à l’afficheur choisi :
Faire un chronomètre
Voici un exemple de programme qui permet de créer un chronomètre géré avec 2 boutons poussoirs. Il utilise les interruptions.
const int boutonStart = 2; // ports 2 et 3 obligatoires pour interruptions const int boutonStop = 3; // sur Arduino UNO volatile unsigned long time0; // instant initial (début du chrono en ms) volatile bool running = false; // état du chrono volatile unsigned long chrono = 0; // valeur du chrono (en ms) void setup() { pinMode(boutonStart, INPUT); pinMode(boutonStop, INPUT); Serial.begin(9600); // les ISR (fonctions) exécutées quand on agit sur les boutons attachInterrupt(digitalPinToInterrupt(boutonStart), start, CHANGE); attachInterrupt(digitalPinToInterrupt(boutonStop), stop, CHANGE); } void loop() { if (running) { // Actualisation du chrono (uniquement si démarré) chrono = millis()-time0; } // Affichage du chrono Serial.print(float(chrono)/1000); Serial.println(" s"); delay(100) ; // affichage tous les 1/10 secondes } void start() { if (digitalRead(boutonStart) == HIGH) { // le bouton start vient d'être appuyé : remise à zéro chrono = 0; running = false; } else { // le bouton start vient d'être relâché : démarrage chrono running = true; time0 = millis(); Serial.println("############### START"); } } void stop() { if (digitalRead(boutonStop) == HIGH) { // le bouton stop vient d'être appuyé : arrêt chrono running = false; Serial.println("STOP ###############"); } else { // le bouton stop vient d'être relâché : ??? } }
Faire une communication sans fil simplex
Suivre les exemples proposés sur arduino.blaisepascal.fr :
Feuille de route
Voici les différentes tâches à répartir au sein des équipes :
- Réaliser un diagramme (draw.io) représentant le cahier des charges de ce système sous forme d’un diagramme des exigences,
- Réaliser un diagramme (draw.io) représentant les chaînes fonctionnelles de ce système,
- Mettre en œuvre l’afficheur 7 segments,
- Mettre en œuvre une communication sans fil entre deux Arduinos,
- Mettre en œuvre un chronomètre avec démarrage/arrêt par deux microrupteurs,
- Compléter la maquette volumique en y incluant les composants et en concevant les pièces nécessaires à leur intégration,
- Construire le système (impressions, montage, câblage, …),
- Tester !
Réalisation
Boitier BAS : découpe laser et collage
Boitier HAUT : impression 3D et assemblage
Programmation
Voici les programmes réalisés pour chacun des deux boitiers :
Résultat
En vidéo
Voici une vidéo réalisée par Antoine SEBBAN, élève de terminale au lycée Blaise Pascal dans la spécialité CAV (cinéma-audiovisuel).
Les scènes ont été filmées dans le gymnase de la cité scolaire, avec l’aide de Mme Seigneur, professeur d’EPS.
Mon projet en 180 secondes :
En images
Le jour de la finale académique
Profil : Jerome_le_chronometre
Merci à nos artistes :
- @antoine_en_raw : Réalisateur et monteur de la vidéo, photographe
- @atomerouge : Graphiste (réalisation du logo et de l’aspect graphique)
Améliorations possibles
- Utiliser des microcontrôleurs plus légers et économiques (Arduino mini, nano, …)
- Améliorer la conception des boitiers :
- boutons de mise sous tensions noyés dans les boitiers pour éviter un allumage intempestif
- …
- Souder les connexions ou utiliser de meilleurs connecteurs pour plus de robustesse,
- …