TP 01 – 30% de la note finale

5 octobre 2021

Version préliminaire du document

Résumé

Écrire un programme qui permet d’ajuster individuellement l’intensité des couleurs rouge, vert et bleu du LCD de Grove.

Date de remise: 24 octobre, 23h55


Contexte de réalisation

À partir

Programmer une application qui permet de varier les valeurs RGB du rgb_lcd.


1.1 – Au démarrage de l’application, l’écran suivant est affiché pendant 3 secondes:

NOTE: Il faut remplacer le texte ‘Votre Matricule’ par votre numéro de matricule et remplacer ‘420-1C5’ par ‘420-1C4‘.

1.2 – Puis, le texte est poussé vers la gauche jusqu’à disparaître de l’écran

Indice:

for (int positionCompteur = 0; positionCompteur < n; positionCompteur++) {
        lcd.scrollDisplayLeft();
        delay(150);
    }
lcd.clear();

2 – Après, l’écran principal est affiché:

*DescriptionIndice
*1   Afficher la valeur actuelle de:
1.1 Rouge
1.2 Vert
1.3 Bleu

en format hexadécimal sur 2 car.
sprintf(« %02X »)
*2Indique la couleur courante.

À l’utilisation du bouton, le texte doit passer de
Rouge à Vert puis à Bleu

ou bien,

de Bleu à Rouge puis à vert.

Cela dépendra de la méthode utilisée pour gérer le bouton.
compteurBouton % 3
*3La valeur courante du potentiomètre en format décimal.
*4 Le nombre de secondes et de minutes écoulées
depuis le démarrage du Arduino.
seconds = millis() / 1000
minutes = seconds / 60
hours = minutes / 60

Pour extraire les secondes et minutes:

% 60

sprintf()
pour la mise en forme mm:ss
*5CET ITEM EST EN OPTION

Il n’est pas obligatoire de le faire pour obtenir 100%

Si vous décidez de l’inclure, vous serez alors corrigé sur 120%.

Le car. ‘*‘ à la position (15,0) du LCD, indique que
l’utilisation du pot n’a pas d’effet sur la couleur courante.

Lorsque abs(valeurPot – valeurCouleurSélectionnée) < 5
alors le ‘*’ sera effacé et la couleurSélectionnée
pourra être modifiée par la valeur du pot.

Ceci permet de ne pas appliquer la valeur actuelle du Pot
à la nouvelle couleur lorsque le bouton est appuyé.

La modification sera permise seulement lorsque le Pot
aura une valeur proche (+-5) à la valeur précédente de la couleur sélectionnée.


 

2.1 – Exemple de fonctionnement

R=AE, G=35, B=2C. (Les valeurs sont affichées en format HEX)
En fonction depuis 2 minutes et 18 secondes.
Option menu = Vert
Valeur du Pot = 53
Pot déverrouillé. Pas de car ‘*’ à la position (15,0)


3 – Éléments prescrits

Il faut :

3.1 – Documenter le code source: bloc d’entête, fin de bloc, sections et lignes.

Par exemple,

/* 
   -----------------------------------------------------------------------
   Projet:         TP01
   Nom du fichier: 
   Auteur:         
   Date:           
   -----------------------------------------------------------------------
   Description:    
   -----------------------------------------------------------------------
   M-A-J:          
   -----------------------------------------------------------------------
*/


// Inclusion des librairies requises
...

// Définition des MACRO
...

// Définition des constantes
...

// Définition des variables globales
unsigned long int ceciEstUneVariableLongueNonSignee;  // Une variable qui sert à ...
int i;                                                // Une variable avec un nom peu significatif 

// DÉBUT du code -->

// fonction pour initialiser les paramètres du projet
void setup() {

  // Tester si la fin du monde est à 7h.
  if (finDuMonde == 7) {
    ...
  }  // if a==b. (Commentaire de FIN de BLOC)


} // Fin de la fonction setup()


// Boucle principale de l'application
void loop() {
   ...
} // loop()


// ***** FIN DU CODE SOURCE

3.2 – Utiliser l’instruction switch() pour tester les options du menu; 0, 1, 2.

3.3 – Utiliser des noms de variables significatifs.

3.4 – Utiliser l’instruction ‘Serial.print’, conditionnel à la présence de la macro DEBUG.


4 – Grille de correction (pourrait changer)

Respect du devis (Éléments à l’écran)10 %
Documentation20 %
Éléments prescrits10 %
Fonctionnalité de l’application40 %
Optimisation du code10 %
Affichage des minutes et secondes10 %
Point *5 (Optionnel)20 %

5 – Remise

Date: 20 octobre, 13h00. (à confirmer)

Méthode de remise: LEA


Document rédigé par Alain Boudreault – version 2021.10.06.02