Ceci est une ancienne révision du document !
Découverte de la programmation des objets (PICAXE)
Pour aller plus loin dans les activités de programmation, nous allons quitter Scratch et ses animations sur l'ordinateur pour la programmation d'objets domotiques grâce à Blockly pour Picaxe.
Compétence(s)
CT 1.2 Mesurer des grandeurs de manière directe ou indirecte.
CT 4.2 Appliquer les principes élémentaires de l’algorithmique et du codage à la résolution d’un problème simple.
CT 5.5 Modifier ou paramétrer le fonctionnement d’un objet communicant.
J’ai acquis la(les) compétence(s) si :
Dans cette activité, nous allons programmer des objets simples de la vie quotidienne, une sonnette, un clignotant, un interrupteur d'éclairage manuel et un automatique.
La domotique regroupe l'ensemble des techniques et technologies permettant d'automatiser, de programmer et de gérer les tâches de confort, de sécurité, de maintenance et plus généralement de services dans l'habitat individuel ou collectif.
Le mot est un néologisme, formé à partir du mot latin domus , (le domicile), et du suffixe -tique signifiant relatif à, que l'on retrouve dans électronique, électrotechnique, robotique et l'informatique.
Présentation de la maquette
Nous allons utiliser une carte programmable PICAXE AXE092 qui comporte un microcontrôleur PICAXE 08M2.
Toutes les broches d'un microcontrôleur ne sont pas équivalentes.
Il faut déterminer quel capteur (entrée) ou quel actionneurs (sortie) on peut lui connecter en fonction du type de l'information logique ou analogique.
| C.0 | C.1 | C.2 | C.3 | C.4 | C.5 | Utilisation |
| X | X | X | | X | | Sortie numérique (SN) |
| | X | X | X | X | X | Entrée numérique (EN) |
| | | X | | | | Sortie analogique (SA) |
| | X | X | | X | | Entrée analogique (EA) |
:
| Br | Ty | Nom | Utilisation |
| C.0 | SN | LED rouge | Visualisation d'une information |
| C.1 | SN | LED jaune | Visualisation d'une information |
| C.2 | SN | LED verte | Visualisation d'une information |
| C.3 | EN | Bouton poussoir | Demande d'une action |
| C.4 | EA | LDR | Mesure de la lumière |
Un bouton poussoir est activé si on appuie dessus, et il se désactive seul si on le relâche (ressort).
Un actionneur garde la dernière information reçue mais il ne peut pas “être lu” par le microcontrôleur.
L'application utilisée pour la programmation est Blockly pour Picaxe (voir l'utilisation si besoin). Un simulateur est disponible sur la même page si l'on ne dispose pas de la maquette réelle.
Configuration
Blockly : Il faut créer un nouveau projet et définir le PICAXE 08M2 (Paramètres - Type de PICAXE - 08M2).
Simulateur : Il faut charger la maquette Axe092 (Fichier - Ouvrir - Maquettes - Découverte - Axe092).
Exercices
Sur une feuille de copie ayant pour titre “Découverte de la programmation des objets”, vous devez pour les 4 exercices :
Indiquer leur nom (titre de chapitre)
Recopier le problème
Trouver et écrire l'algorithme
Le traduire en programme avec Blockly et coller la solution sur la feuille
Le tester (maquette ou simulateur) pour vérifier le fonctionnement et le corriger si besoin (algorithme et programme).
Faire voir le résultat au professeur qui vous remettra la solution imprimée à coller sur la feuille.
Il s'agit, en plus que d'apprendre à programmer, d'apprendre à travailler en autonomie et à augmenter seul ses compétences.
Vous devez utiliser vos cours dans votre classeur pour vous aider.
Essayer de faire les exercices sans lire les “Coups de pousse”. Ne les utiliser qu'en cas de difficulté.
Relisez-vous et contrôler votre montage et votre programme.
N'appeler le professeur que lorsque l'exercice est réussi ou pour de gros problèmes.
Faites bien attention à ce que vous venez de réaliser, cela rendra plus facile les exercices suivants ou vous rencontrerez les mêmes demandes.
Exercice 1 : La sonnette lumineuse
Nous voulons que la LED verte s'allume uniquement lorsque le bouton est appuyé. Elle est éteinte lorsque le bouton est relâché. Le programme ne doit pas avoir de fin pour qu'il puisse détecter des appuis successifs sur le bouton.
Coups de pousse
Pour l'algorithme
Il n'est pas nécessaire de faire des phrases mais on doit utiliser des mots clés + verbe d'action + capteur/actionneur + état.
Il faut répéter indéfiniment le programme si l'on veut pouvoir répéter les mêmes actions (ex. appuyer plusieurs fois).
Il faut lire le capteur (= entrée) pour savoir si l'on doit allumer ou éteindre (un capteur est lu par le programme mais le programme ne peut pas le modifier).
Il faut modifier un actionneur (= sortie) pour allumer ou éteindre (un actionneur est modifié par le programme mais le programme ne peut pas lire son état).
Pour le programme
Un signal électrique est dit : désactivé/0/bas s'il est absent/éteint/relâché ou activé/1/haut s'il est présent/allumé/appuyé
Un nom de capteur ou d'actionneur est remplacé par sa broche (et un nom de variable par son code)
Blocs utiles : Sorties → Sortie ; Entrées → Si ; Boucles → Répéter
Solution type
**ALGORITHME**
Répéter indéfiniment
Si bouton appuyé
Allumer led rouge
Sinon
Éteindre led rouge
Repérez bien les indentations de l'algorithme et leur traduction dans le programme, les différentes catégories de blocs disponibles et leur couleur :
Sortie pour réaliser les actions
Entrée pour avoir des informations
Boucles pour les répétitions
…
Exercice 2 : Le clignotant
Nous voulons que la LED jaune clignote 5 fois en 5 secondes lorsque le bouton est appuyé et reste éteinte autrement. Le programme doit se répéter à chaque demande comme le précédent.
Coups de pousse : Faire clignoter
Clignoter, c'est allumer puis éteindre. (Beaucoup de langages ne connaissent pas le mot clignoter).
Le microcontrôleur (> 1000 actions par secondes) étant plus rapide que notre œil (maxi 25 images par secondes), il faut pour voir les clignotements le ralentir (attention clignoter = 1/2 allumé et 1/2 éteint; 1 seconde = 1000 ms).
Coups de pousse : Compter les clignotements
Il faut utiliser une variable pour fixer la valeur du compteur au début (0 ou 1)
Il faut utiliser une condition fonction de la valeur de fin pour l'arrêter (ex. compter jusqu'à 5 : si début = 0 → fin = 5 ; si début = 1 → fin > 5).
Il faut ajouter 1 au compteur à chaque itération/répétition pour le faire progresser.
Exercice 3 : L'interrupteur
Lorsque nous appuyons sur le bouton, nous voulons que la LED s'allume si elle était éteinte et reste allumé lorsque le bouton est relâché. Si elle était allumée elle doit s'éteindre et rester éteinte.
Le programme doit fonctionner lui aussi en permanence.
ATTENTION : Le microcontrôleur peut lire mais pas modifier un capteur et peut modifier mais pas lire un actionneur.
Coups de pousse : Se rappeler de l'état de l'actionneur
Coups de pousse : Éviter les clignotements
Le microcontrôleur étant plus rapide que notre doigt, lors de la détection d'un appui, il faudra qu'il attende que le bouton soit relâché avant d'en prendre en compte un nouveau.
Exercice 4 : L'interrupteur crépusculaire
Nous voulons que la LED s'allume si l'on appuie sur le bouton et que la lumière ambiante est faible.
Elle doit resté éteinte pour faire des économies sinon. Le programme doit fonctionner lui aussi en permanence.
La valeur mesurée de la lumière varie de 0, la nuit noire, à 1023, le plein soleil. On a décidé que le niveau de lumière à partir duquel la LED doit s'allumer est 200.
Coups de pousse
Le programme ressemble à celui de la sonnette avec une condition supplémentaire (la lumière du jour).
Le capteur analogique écrit directement la mesure dans une variable (Entrée - > lire valeur). Il faut comparer cette variable au seuil.
Pour aller plus loin