Exercice Questions 1.18 et 1.19 · Bac Sciences de l'Ingénieur Métropole 2024 (sujet 1)
Thème : Traitement de l'information : algorithmes et programmation · Tiré du sujet Métropole France 1 (2024)
Énoncé
Sous-partie 3: Analyse de l'affichage de l'état de charge de la batterie et des conditions de montée
L'objectif de cette sous-partie est de valider l'algorithme de gestion de l'affichage du niveau de charge de la batterie et d'établir les conditions de montée du siège de relevage.
Le siège de relevage dispose d'un indicateur du niveau de charge de la batterie composé de cinq leds vertes et d'une led rouge (figure 14).
La notice d'utilisation du siège de relevage indique que si la led rouge de l'indicateur clignote, la batterie doit être rechargée.
Le niveau de charge de la batterie du siège de relevage est contrôlé en surveillant la tension qui diminue au cours de sa décharge.
Le principe de cette surveillance (figure 15) comporte une adaptation de la tension réalisée par un pont diviseur de tension associé au convertisseur analogique numérique (CAN) du microcontrôleur qui gère l'indicateur à leds.
La figure 16 indique, pour la batterie du siège de relevage, les valeurs de la tension en fonction du pourcentage de charge.
% de charge · 100 % · 90 % · 80 % · 70 % · 60 % · 50 % · 40 % · 30 % · 20 % · 10 %
en V · 12,73 · 12,62 · 12,50 · 12,37 · 12,24 · 12,10 · 11,96 · 11,81 · 11,66 · 11,51
Figure 16: tension en V en fonction de l'état de charge en %
Le pont diviseur de tension est composé de deux résistances et (figure 17).
La résistance est égale à .
Le convertisseur analogique numérique (CAN) convertit la tension en une valeur numérique .
Le quantum est défini par la relation:
La gestion des leds est assurée par un scénario qui répond à la description suivante:
Si le niveau de charge est supérieur à 80 % de la capacité totale de la batterie, les cinq leds vertes sont allumées. Au fur et à mesure que le niveau de charge diminue, les leds vertes s'éteignent, depuis la led verte 5 située en haut de l'indicateur jusqu'à la led verte 1 située en bas:
niveau de charge supérieur à 60 %, quatre leds vertes allumées;
niveau de charge supérieur à 40 %, trois leds vertes allumées;
niveau de charge supérieur à 20 %, deux leds vertes allumées;
niveau de charge supérieur à 10 %, une led verte allumée.
Lorsque le niveau de charge devient inférieur ou égal à 10 %, les leds vertes sont éteintes et la led rouge clignote avec une période d'une seconde, la batterie doit être rechargée.
La première partie de l'algorithme en langage Python est présentée et expliquée ci-dessous:
led_refs = [led_rouge, led_verte1, led_verte2, led_verte3,
led_verte4, led_verte5]
def controle_leds(liste_etats):
for led_ref, etat in zip(led_refs, liste_etats):
led_ref.write_digital(etat)
controle_leds([0,0,0,0,0,0]) # initialisation La fonction controle_leds(liste_etats) permet d'affecter à l'ensemble des leds des états logiques 0 (éteinte) ou 1 (allumée) selon la liste à six éléments définie par liste_etats.
Ainsi l'instruction controle_leds([0,0,0,0,0,0]) éteint l'ensemble des leds.
L'ordre des leds est fixé par l'instruction: led_refs = [led_rouge, led_verte1, led_verte2, led_verte3, led_verte4, led_verte5].
Ainsi pour un niveau de charge supérieur à 20 % controle_leds([0,1,1,0,0,0]) allume la led_verte1 et led_verte2 et éteint toutes les autres.
Le tableau de la figure 18 donne des exemples de traduction d'opérations logiques en langage Python:
opérations logiques · a et b · a ou b · non a · a et ( c ou d)
Syntaxe en Python · a and b · a or b · not a · a and ( c or d)
Figure 18: Syntaxe d'opérations logiques en langage Python
Le siège de relevage n'autorise le fonctionnement qu'après la vérification du bon assemblage des quatre pieds et des deux demi-dossiers. La présence de chaque élément est détectée par un capteur dont l'état est associé à une variable binaire.
Par exemple, si le pied avant droit est présent, la variable pied_avant_droit est vraie, sinon elle est fausse. Il en est de même pour les autres éléments associés aux variables: pied_avant_gauche, pied_arriere_gauche, pied_arriere_droit, dossier_gauche et dossier_droit.
La variable montage_correct est associée au bon assemblage, elle répond à l'équation logique en langage Python:
montage_correct = pied_avant_gauche and pied_avant_droit and pied_arriere_gauche and pied_arriere_droit and dossier_gauche and dossier_droit La montée du siège de relevage, associée à la variable montee, est obtenue lorsque la totalité des conditions suivantes est vérifiée:
le montage est correct, la variable montage_correct est vraie;
le cordon d'arrêt d'urgence est présent, la variable cordon_urgence est vraie;
la position haute est non atteinte, la variable position_haute est fausse;
la commande montée siège est appuyée, la variable cde_montee_siege est vraie, ou la commande montée télécommande est appuyée, la variable cde_montee_telecommande est vraie.
Question 1.18 (DR3)
Compléter sur l'algorithme de gestion de l'indicateur de niveau de charge de la batterie du document réponse DR3, les éléments manquant dans les zones identifiées par des pointillés pour que celui-ci réponde au scénario.
while True:
valeur = U_test_batt.read_analog()
if valeur > 851: #état charge batterie supérieur à 80 %
controle_leds([0,1,1,1,1,1])
elif valeur > 835: #état charge batterie supérieur à 60 %
elif valeur > 815: #état charge batterie supérieur à 40 %
controle_leds([0,1,1,1,0,0])
elif valeur > 795: #état charge batterie supérieur à 20 %
elif valeur > 784: #état charge batterie supérieur à 10 %
controle_leds([0,1,0,0,0,0])
else: #état charge batterie inférieur à 10 %
controle_leds([1,0,0,0,0,0])
sleep(500) #temporisation 500 ms
controle_leds([0,0,0,0,0,0])
Question 1.19
En utilisant la syntaxe de la figure 18, écrire en langage Python l'équation logique des conditions de montée du siège de relevage montee.
opérations logiques
a et b
a ou b
non a
a et ( c ou d)
Syntaxe en Python
a and b
a or b
not a
a and ( c or d)

Corrigé
Corrigé établi d’après les éléments de correction officiels
Question 1.18 : Compléter la liste des états pour un niveau supérieur à 60 %
Réponse : ```python 0, 1, 1, 1, 1, 0 ```
Question 1.18 : Compléter la liste des états pour un niveau supérieur à 20 %
Réponse : ```python 0, 1, 1, 0, 0, 0 ```
Question 1.18 : Compléter la temporisation sleep(...) pour la période de clignotement
Réponse : ```python 500 ```
Question 1.19 : Écrire en langage Python l'équation logique des conditions de montée du siège montee
Réponse : ```python montage_correct and cordon_urgence and not position_haute and (cde_montee_siege or cde_montee_telecommande) ```
L’explication pas à pas, faite avec l’IA, est réservée aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice Sous-partie 3 - Traitement de l'information · Métropole 2025 (sujet 2) · Exercice Sous-partie 3 - Logique de commande et suivi de l… · Métropole 1 remplacement 2024 ›
Plus d’exercices de Traitement de l'information : algorithmes et programmation
- Exercice Sous-partie 3 - Question 1.14 · Métropole 2026 (sujet 1)
- Exercice Sous-partie 3 - Traitement de l'information : alg… · Métropole 2026 (sujet 2)
- Exercice Sous-partie 3 - Algorithmique et programmation Py… · Métropole 2025 (sujet 1)
- Exercice Sous-partie 3 - Question 1.17 · Métropole 1 remplacement 2025
- Exercice Sous-partie 3 - Traitement de l'information · Métropole 2025 (sujet 2)
- Exercice Sous-partie 3 - Logique de commande et suivi de l… · Métropole 1 remplacement 2024
- Exercice Sous-partie 3 - Algorithmes et programmation · Métropole 2024 (sujet 2)
- Exercice Sous-partie 1 - Traitement de l'information · Métropole 2023 (sujet 1)
- Exercice Sous-partie 1 - Traitement de l'information · Métropole 2023 (sujet 2)
- Exercice Sous-partie 2 - Choix B · Métropole 1 remplacement 2022