CT 4.2 - Appliquer les principes élémentaires de l’algorithmique et du codage à la résolution d’un problème simple.

Thème : Assurer le confort dans une habitation
Comment programmer un éclairage automatique ?


Problématique
Séance 3 : Comment écrire le programme d'un système automatique ?




Compétence : CT 4.2 - Appliquer les principes élémentaires de l’algorithmique et du codage à la résolution d’un problème simple.


Connaissances :
Notions d’algorithme et de programme. Notion de variable informatique.
Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.
Systèmes embarqués.
Forme et transmission du signal.
Capteur, actionneur, interface.


Démarche pédagogique : Résolution de problèmes.
Activités :
1)Notions d’algorithme et de variables.
a)Notion d’algorithme et de programme
Histoire du nom d’algorithme : C’est un mot dérivé du nom du mathématicien Al_Khwarizmi qui a vécu au 9ème siècle. Il était membre de l'académie des sciences à Bagdad .


Un programme informatique permet à l’ordinateur de résoudre un problème.
– Avant de communiquer à l’ordinateur comment résoudre un problème, il faut d’abord pouvoir le résoudre soi même.


Un algorithme est une suite d’instructions ayant pour but de résoudre un problème donné. Ces instructions doivent être exécutées de façon automatique par un ordinateur.
Exemples:
– préparer une recette de cuisine,
– montrer le chemin à un touriste,
– Donne 2 exemples :
– ………………………………….
– ………………………………….


Un algorithme peut se comparer à une recette de cuisine (replace ces 3 mots Les règles de transformations, Le résultat, Les données dans le texte ci-dessous) :  
– ……………… c’est comme le plat à cuisiner,
– ……………... sont similaires aux  ingrédients de la recette,
– …………………………….  se comparent aux instructions de la recette.


b)algorithme et programme
L’élaboration d’un algorithme précède l’étape de programmation.
• Un programme est un algorithme.
• Un langage de programmation est un langage compris par l'ordinateur.
L’élaboration d’un algorithme est une démarche de résolution de problème exigeante
La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.


c)Représentation d’un algorithme
Historiquement, il existe 2 façons pour représenter un algorithme :
L’Organigramme : représentation graphique avec des symboles (carrés, losanges, etc.)
• offre une vue d’ensemble de l’algorithme


En programmation, le pseudo-code est une façon de décrire un algorithme sans référence à un langage de programmation en particulier.
• plus pratique pour écrire un algorithme
• représentation largement utilisée


d)Patron général d'un algorithme
Algorithme NomAlgorithme
Début
 ... actions
Fin


Écrivons par exemple un algorithme qui écrit “Hello word !!!” à l’écran
Algorithme Bonjour
Début
 Écrire('Hello world !!!')
 ALaLigne
Fin


e)Notion de variable informatique.
Une variable est constitué d'un nom et d'un contenu, ce contenu étant d'un certain type. Les types différents : booléen, caractère, chaîne de caractères, nombre entier, nombre réel.
Pour la clarté de l'algorithme, il faut déclarer les variables utilisées et leur type au tout début.
Affectation souvent symbolisée par une flèche vers la gauche (←).


Algorithme NomAlgorithme
Variable ...
Début
 ... actions
Fin


f)TP1 d’algorithmique sur les variables
Nous allons utiliser le logiciel algobox pour construire des algorithmes.
Apprenons ce qu’est une variable, je vais suivre la procédure sur les variables.


g)Instructions conditionnelles et itératives
Le Si Alors Sinon va permettre de conditionner l'exécution de certaines instructions.


Le rôle des boucles est d'itérer un bloc d'instructions, soit un nombre précis de fois, soit relativement à une condition.


Si Alors Sinon


Algorithme QueFaireCeSoir
Début
 Si Pluie
 Alors
   LireLivre
   SeCoucherTot
 Sinon
   AllerAuCinema
 Fin si
Fin


Boucle Tant que
C’est une instruction qui peut aider un robot à se déplacer.


Algorithme JusquAuMur
Début
 Tant que Non(DevantMur) faire
   Avancer
 Fin tant que
Fin


TP2 d’algorithmique sur la condition si, alors.
Lorsque vous allez au cinéma, quand vous avez moins de 16 ans alors vous ne payez que 5€ le prix de la place sinon c’est une entrée à 10€ à plein tarif.
Écrit et complète l’algorithme sur ta feuille


Variables :
age : nombres ……….
Entrée :
Saisir ……….
Traitement :
Si age<.......
 Alors
   Afficher …..€
 Sinon
   Afficher …..€
Fin …..

Puis tu vas construire l’algorithme à l’aide d’algobox en donnant votre âge, le logiciel affichera le prix à payer de la place de cinéma. Vous testerez votre programme. Attention, vous n’oublierez pas d’activer l’option “sinon” dans le menu “si”.


h)La boucle itérative
Définition : Lorsque l’on doit répéter un nombre de fois connu à l’avance la même tâche, on utilise une boucle itérative de la forme « Pour.. allant de... à ».
Dans un algorithme, cette structure est codée de la façon suivante :


Pour variable allant de valeur_depart à valeur_fin faire
tâche 1
tâche 2
...
Fin pour


La variable utilisée dans la boucle est appelée compteur. À chaque passage dans la boucle, sa valeur est automatiquement augmentée de 1.


TP3 d’algorithmique sur la boucle itérative
Affiche la table de multiplication (de 0 à 10) d’un nombre entier donné.
Écrit et complète l’algorithme sur ta feuille
Variables :
n, m, i : nombres …………..
Entrée :
Saisir n
Traitement :
Pour i allant de …. à …. faire
m reçoit n × ….
 ……….. n ,« x », i, « = », …..
Fin Pour


Ecris ton algorithme avec algobox et teste le.
N’oublie pas d’ajouter un retour à la ligne pour l’affichage situé dans la boucle à la fin de ton programme !





i)Qu'est-ce qu’un organigramme ? Un organigramme permet de décrire plus facilement qu'avec un texte le fonctionnement d'un système automatisé



Ce symbole représente la situation
de début ou de fin de l'organigramme

Ce symbole représente l'action
conduisant à l'état A

Ce symbole représente sous forme de question le test permettant de détecter l'évènement X


2)Découverte du matériel et du logiciel de programmation
a - Quelle est la fonction de la carte Arduino ? …………………………………………………………………………………………………
…………………………………………………………………………………………………


b - A l'aide de la vidéo et de la fiche ressource R1, compléter le texte suivant avec les mots suivants : les variables, des entrées, des sorties, le microcontrôleur, l’envoi de données, de recevoir des données, morte, vive, un capteur, un actionneur.


Un Arduino peut-être vu comme un ordinateur, on y retrouve 2 types de mémoire : la mémoire …….. et la mémoire ……...
La mémoire morte permet de stocker les instructions que l’on veut voir exécuter par Arduino. Cette mémoire est préservée même si Arduino n’est pas alimentée.
La mémoire vive stocke les données qui changent : ce sont ……………...


L'Arduino est une carte composée de connecteurs électriques qui peuvent être ………….. ou …………... Au centre de cette carte on trouve un calculateur qui va traiter et exécuter  les instructions : …………………....


Sur une entrée on peut mettre …………..., sur une sortie ……………... Une entrée permet …………………….. comme par exemple, celle d'un capteur, comme une présence. Une sortie c'est ………………. comme par exemple pour piloter un moteur, allumer une lampe.

c - Compléter le nom des principaux éléments de la carte Arduino ci-dessous avec les mots de la liste suivante : Entrées / Sorties numériques - Broches d'alimentation - Port USB - Entrées analogiques – Microcontrôleur - Alimentation externe


d - Quelle est la fonction du shield BASE GROVE ?
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………


e - Que contient le boîtier Arduino et quel est son rôle ?
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………


f - Décrivons la chaîne d’information de type acquérir afin de comprendre le fonctionnement des capteurs.
A l'aide de la fiche ressource R5, compléter le texte suivant avec les mots suivants : acquérir, d’information, une grandeur physique.
Les capteurs sont des éléments qui transforment ……………………... en information
électrique. Ils permettent d'.............. un état du système à un moment donné.
L’information est délivrée sous la forme d'un signal qui sera exploité par la chaîne ………………..


Compléter la chaîne d’information ci-dessous :




Selon les capteurs, l'information peut être de nature différente : Citez les 3 types d’information. On a une information de type ………………………………………………...


A l'aide de la fiche ressource R5, compléter le tableau suivant :




3)Programmation arduino.
a - Connaître ses outils :
Consultez la fiche ressource R2 et suivez la procédure.
Appuyez sur start simulation. Que se passe-t-il ? ............................................................


4)Comment programmer l'allumage d'une LED ?
On va suivre cet organigramme pour construire notre programme :


Consultez la fiche ressource R3 et suivez la procédure.
Appuyez sur start simulation. Que se passe-t-il ? …………………………………………...


Nous utilisons un langage de programmation qui est le langage C pour communiquer avec l’interface. La programmation est complexe mais on peut programmer la carte arduino à l’aide d’un logiciel de programmation visuel dénommé Blockly. Il est plus simple d’utilisation. Il va générer automatiquement du code C.


5)Comment programmer le clignotement d'une LED en gardant le montage précédent vue en 4) ?
On va suivre cet organigramme pour construire notre programme :
Consultez la fiche ressource R4 et suivez la procédure.
On attribue une valeur à la variable de la broche : Donner sa valeur ? ………………………..
Appuyez sur start simulation. Que se passe-t-il ? ……………………………………………..


Ecrivez votre programme blockly obtenu dans ce cadre ci-dessous :

















6)Comment mesurer la luminosité ambiante avec une photorésistance et une carte Arduino ?
Nous allons apprendre ensemble à mesurer la luminosité ambiante d'une pièce au moyen d'une photorésistance et d'une carte Arduino. Nous verrons d'abord comment fonctionne une photorésistance, puis comment l'utiliser.
En effet la lampe solaire réagira à la présence ou non de lumière. Si il y a de la lumière alors la lampe solaire stockera son énergie électrique dans des batteries sinon elle allumera la DEL quand il fera donc noir.


a - Consultez la fiche ressource R6 et suivez la procédure.


b - Lorsqu’on place le curseur de la photorésistance sur la position noir, quelle valeur obtient-on ? …………


c - A l’opposé, lorsqu’on place le curseur de la photorésistance sur la position lumière totale, quelle valeur obtient-on ? ………...


Conclusion :
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………
…………………………………………………………………………………………………

Ressources :
- Fiche ressource R1 sur la découverte du matériel Arduino uno.
- Fiche ressource R2 sur connaître les outils de simulation d’un arduino..
- Fiche ressource R3 sur la programmation de l’éclairage d’une DEL.
- Fiche ressource R4 sur la programmation d’un clignotement d’une DEL avec Blockly.
- Fiche ressource R5 sur la chaîne d’information et la nature d’information.
- Fiche ressource R6 sur mesurer la luminosité ambiante.
- Fiche ressource R7 sur  l’algorigramme.
- Fiche ressource R8 avec un TP de la notion de variables avec l’algorithmique.
- Logiciel Algobox.


EVALUATION
Attendus en fin de cycle
Maîtrise insuffisante
Maîtrise fragile
Maîtrise satisfaisante
Très bonne maîtrise
CT 4.2 - Appliquer les principes élémentaires de l’algorithmique et du codage à la résolution d’un problème simple.





Vous cocherez dans le tableau la réponse CT 4.2