Skip to content

Contrôle de la luminosité d'un vidéoprojecteur

KuribohAile edited this page Jun 30, 2024 · 9 revisions

Préambule

Cette page porte sur l'utilisation du VELUQAC dans le cadre du contrôle d'un vidéoprojecteur.

Dans le but de lutter contre la sédentarité, nous souhaitons lier le suivi des cours (où nous sommes contraints de rester assis) et l'activité physique. L'idée ici serait de relier la production d'électricité du VELUQAC aux vidéoprojecteurs dans les salles de classes de l'UQAC, pour y contrôler leurs intensités lumineuses. Ainsi, pour que les élèves puissent suivre les différents slides d'un cours projeté, ils devront produire suffisamment d'énergie avec le VELUQAC afin que la luminosité soit adaptée.

Exploration et Recherche

Vidéoprojecteur

Dans le cadre de notre recherche, nous nous sommes d'abord intéressé au contrôle de la luminosité d'écran (étant connectable par HDMI comme le vidéoprojecteur).

Il s'agit ici de manipuler la luminosité de différents écrans par le code.

Nous utilisons comme langage de programmation Python et comme système d'exploitation Windows 11. Il est requis de disposer du gestionnaire de paquets Python PIP et d'installer la librairie screen_brightness_control à l'aide de la commande suivante :

pip install screen_brightness_control
  • Posons tout d'abord comme paramètre d'entrée brightness. Il s'agit de la valeur de la luminosité qui doit être imposé à l'écran / au vidéoprojecteur. Le but final de cette valeur est d'être reliée à la production moyenne d'électricité d'un utilisateur du VELUQAC afin de pouvoir faire varier la luminosité des appareils.

  • On pose au préalable X la production moyenne d'électricité et C un coefficient à déterminer. C doit nous servir à poser la valeur de sortie de brightness entre 0 et 100 pour qu'elle puisse être exploitable par notre fonction.

Voici donc à quoi devrait ressembler brightness avant de rentrer dans notre fonction de contrôle :

brightness = X*C;
  • On pourrait également imaginer un coefficient modulable (entre 0 et 1) en fonction d'une difficulté que sélectionnerait l'utilisateur du VELUQAC. Cela pourrait un challenge intéressant pour les plus sportifs, leur demandant de fournir plus d'effort à un rythme régulier pour continuer à avoir une luminosité correcte.

Code


Cette partie est dédiée à l'explication du code Luminositycontrol.py.

On y définie 2 fonctions :

  • list_monitors(), qui liste les moniteurs disponibles et renvoie une liste de noms de moniteurs.
  • set_brightness(brightness, display=None), qui règle la luminosité de l’écran spécifié (ou de l’écran principal s’il n’est pas spécifié).

Pour changer la luminosité des différents écrans, il suffit de changer les valeurs inscrites dans la boucle if name == 'main':.