Cours:DevoirPOO2Ressources : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « <accesscontrol>Acces:Prof</accesscontrol> {{Rouge|'''Attention''', on utilise les GPIO de façon différente que pendant les séances.}} {{Rouge|Même si le nom est ide... »)
 
(Contenu remplacé par « <accesscontrol>Acces:Prof</accesscontrol> {{Rouge|'''Attention''', on utilise les GPIO de façon différente que pendant les séances.}} {{Rouge|Même si le nom est... »)
Ligne 6 : Ligne 6 :
 
{{Rouge|Même si le nom est identique aux classes déjà utilisées, elles peuvent être différentes !!}}
 
{{Rouge|Même si le nom est identique aux classes déjà utilisées, elles peuvent être différentes !!}}
  
=Analyse et utilisation=
 
 
==Classes à disposition==
 
  
 
Voici l'archive contenant les fichiers des classes listées ci-dessous : [[Media:ClassesEvaluationPOO.zip ‎]]
 
Voici l'archive contenant les fichiers des classes listées ci-dessous : [[Media:ClassesEvaluationPOO.zip ‎]]
 
==Diagramme de classes==
 
 
 
{{Eval|2|Réaliser un diagramme des classes déclarées dans les fichiers suivants :}}
 
*eclairagedimmable.h
 
*barregraphe.h
 
*leddimmable.h
 
*bouton.h
 
 
'''Remarque''' :
 
*Vous listerez les {{Rouge|signals}} avec les méthodes en indiquant <code>signal</code> devant le nom
 
 
==Programme==
 
 
===Création du projet===
 
 
{{Eval|2|Faire un nouveau projet :}}
 
*de type <code>QWidget</code> application
 
*ajouter un bouton sur l'interface graphique pour quitter l'application
 
*ajouter les fichiers des classes données en début d'énoncé
 
*{{Rouge|'''ajouter à la fin du fichier .pro la ligne'''}} <code>LIBS += -lpigpio</code>
 
 
===Utilisation de la classe LedDimmable===
 
 
Une led est connectée sur la sortie {{Rouge|pwm 0}}.
 
 
On souhaite pouvoir modifier l'état (allumée/éteinte) et la puissance d'éclairage de cette led à l'aide de 4 boutons placés sur l'interface graphique.
 
 
{{Eval|3|Ecrire un programme qui répond à ce cahier des charges :}}
 
*il doit y avoir 5 boutons sur l'interface graphique (on, off, +,  -, quitter appli)
 
 
===Utilisation de la classe <code>Barregraphe</code>===
 
 
On ajoute la gestion des 4 leds (broches 18/19/26/27) à l'aide de la classe <code>Barregraphe</code>.
 
 
{{Eval|3|Ajouter à votre programme :}}
 
*1 objet de type <code>Barregraphe</code>
 
*2 boutons sur l'interface graphique
 
**l'un pour augmenter la puissance du Barregraphe
 
**l'autre pour diminuer la puissance du Barregraphe
 
*faire en sorte que
 
**le bouton pour allumer la LedDimmable allume également le Barregraphe
 
**le bouton pour éteindre la LedDimmable éteigne également le Barregraphe
 
 
=Conception=
 
 
On souhaite pouvoir commander les éclairages à l'aide de dispositifs augmentant ou diminuant la puissance d'éclairage :
 
* représentés par une classe <code>VariateurPuissance</code>
 
qui sera spécialisée en
 
* une classe <code>IkeaTradfri</code> représentant un module à deux boutons (un bouton "plus" et un bouton "moins")
 
* une classe <code>Gradateur</code> représentant un module codeur incrémental
 
selon le diagramme de classes suivant :
 
 
[[Fichier:Eval2022-diagrammeClasse2.png]]
 
 
Rappel : <code>#</code> spécifie un attribut ou une méthode <code>protected</code>
 
 
Pour mémoire les ports GPIO utilisés par les modules sont les suivants :
 
 
{| class="wikitable"
 
|-
 
! n° GPIO !! Module !! n° GPIO !! Module
 
|-
 
| 5 || Encodeur voie A|| 16 || Bouton poussoir 1 (vert?)
 
|-
 
| 6 || Encodeur voie B|| 17 || Bouton poussoir 2 (rouge?)
 
|}
 
 
===Classe <code>IkeaTradfri</code>===
 
 
{{Eval|3|Ajouter au projet l'implémentation de <code>IkeaTradfri</code> :}}
 
* un appui sur le bouton vert doit émettre le signal <code>plus()</code>
 
* un appui sur le bouton rouge doit émettre le signal <code>moins()</code>
 
 
{{Eval|2|Instancier un objet de type <code>IkeaTradfri</code> dans l'application pour commander la led dimmable.}}
 
 
===Classe <code>Gradateur</code>===
 
 
{{Eval|3|Ajouter au projet l'implémentation de <code>Gradateur</code> :}}
 
* Le codeur se comporte comme deux boutons (de type <code>Bouton</code>)
 
* Le sens de rotation peut être détecté en observant un front, descendant ou montant, sur la <code>voieB</code> et alors
 
** si <code>voieA = false</code> et <code>voieB = false</code> : émettre le signal <code>plus()</code>
 
** si <code>voieA = true</code> et <code>voieB = false</code> : émettre le signal <code>moins()</code>
 
{{Eval|2|Instancier un objet de type <code>Gradateur</code> dans l'application pour commander les leds du barregraphe.}}
 

Version du 4 octobre 2024 à 15:29

Il s’agit d’une page protégée.


Attention, on utilise les GPIO de façon différente que pendant les séances.

Même si le nom est identique aux classes déjà utilisées, elles peuvent être différentes !!


Voici l'archive contenant les fichiers des classes listées ci-dessous : Media:ClassesEvaluationPOO.zip ‎