Pergola automatisée
Une pergola est une petite construction de jardin (initialement utilisée pour servir de support à des plantes grimpantes) dont la fonction principale est d’ombrager délicatement une terrasse.
Elle est faite de poutres horizontales en forme de toiture, soutenues par des colonnes.
Aujourd’hui, on trouve des pergolas réalisées avec des lames que l’on peut orienter pour ajuster la luminosité :
On se propose de réaliser une maquette de pergola automatisée : l’orientation des lames se fait automatiquement, en fonction de la luminosité ambiante.
Matériel
- Un Arduino UNO et un shield de prototypage avec BreadBoard.
- Un servomoteur
- Une photorésistance et une résistance de 10kΩ
- Un potentiomètre 10kΩ
Logiciel
Préparation
- Ouvrir MATLAB et naviguer jusqu’au dossier de travail choisi
- Créer un nouveau modèle Simulink (choisir « Blank model »)
- L’enregistrer aussitôt ! (sous le nom « pergola.slx » par exemple)
- Ouvrir le Library Browser et afficher les blocs de Simulink Support Package for Arduino Hardware/Common :
- Configurer le modèle Simulink pour programmer un Arduino UNO : voir Configuration
Pilotage d’un servomoteur
- Depuis le Library Browser, ajouter un bloc Standard Servo Write :
Un servomoteur est piloté en position angulaire. Le bloc Standard Servo Write attend un nombre entre 0 et 180.
- Configurer le bloc pour qu’il pilote un servomoteur connecté au port numérique 4 :
- Ajouter un bloc Sin Wave :
- Configurer le bloc afin que sa sortie évolue entre 0 et 180 à une fréquence de 1 fois toutes les 2 secondes :
- Relier les deux blocs :
- Sur le shield de prototypage de l’Arduino, connecter un servomoteur (port numérique 4) : voir Les servomoteurs
- Compiler et téléverser le programme dans l’Arduino : bouton Deploy to Hardware
En cas de problème, consulter la rubrique Erreurs fréquentes
Acquisition de la luminosité
Pour acquérir la luminosité on utilise un capteur de type photorésistance. Comme son nom l’indique, il s’agit d’un dipôle dont la résistance varie en fonction de la luminosité.
- Câbler une photorésistance (voir l’article Les Photorésistances) sur le port analogique 0.
- Depuis le Library Browser, ajouter un bloc Analog Input :
- Configurer ce bloc sur le port analogique 0, avec une période d’échantillonnage de 0.1 s :
- Ajouter un bloc Serial Transmit :
Ce bloc permet d’envoyer une information par le port série de l’Arduino. Une fois le téléversement terminé avec Simulink, on utilise un Moniteur Série (celui de l’IDE Arduino par exemple) pour afficher ces informations.
- Configurer ce bloc pour qu’il envoie les données en mode println (voir bibliothèque Serial) :
- Relier les deux blocs :
- Compiler et téléverser le programme dans l’Arduino : bouton Deploy to Hardware
Une fois la compilation terminée (et surtout pas avant) ouvrir un moniteur série (celui de l’IDE Arduino par exemple : )
- Relever les deux valeurs extrêmes renvoyées par le capteur (obscurité / plein soleil)
Traitement de l’information
A présent, il faut faire en sorte d’actionner le servomoteur pour fermer les lames de la pergola lorsque la luminosité est trop forte.
- Ajouter un bloc Chart :
Ce bloc permet de concevoir un diagramme d’état.
- Ouvrir le bloc Chart (diagramme d’état)
- Construire le diagramme suivant :
-
- Chaque rectangle correspond à un état : il porte un nom, et contient des instructions
- Chaque flèche correspond à une transition : ce sont les liens permettant de faire passer le diagramme d’un état à un autre.
- La transition avec un point permet de désigner l’état initial
- p est une donnée de sortie, correspondant à l’ordre à envoyer au servomoteur.
- En double cliquant sur les transitions, ajouter les conditions qui doivent provoquer les changements d’état :
-
- Les crochets indiquent qu’il s’agit d’une condition pour franchir la transition
- l est une donnée d’entrée, correspondant à la valeur quantifiée de luminosité.
Les valeurs numériques des conditions doivent être adaptées en fonction des valeurs relevées en sortie du bloc Analog Input !
- Quitter l’édition du Chart en cliquant sur le nom du modèle :
À ce stade, le bloc Chart ne possède aucune entrée/sortie …
- Ouvrir le Model Explorer
- Sélectionner le Chart :
Le bloc Chart comporte désormais un port d’entrée et un port de sortie, et peut être relié au reste du modèle :
- Compiler et téléverser le programme dans l’Arduino : bouton Deploy to Hardware
Réglage du seuil de luminosité
Rajouter un potentiomètre au montage et modifier le modèle Simulink pour que le seuil de luminosité qui déclenche l’ouverture et la fermeture de la pergola soit réglable.
Maquette
Réaliser une maquette à partir d’une petite boite en carton judicieusement découpée.
Placer les composants sur la maquette (scotch, colle chaude, …)