vendredi 5 mars 2021

Contrôler Powerpoint avec un Leonardo et une télécommande de téléviseur

Dans l'article précédent, nous avons vu qu'un Arduino Leonardo peut facilement être programmé de façon à contrôler un diaporama Powerpoint. Cette fois, nous ajoutons au Leonardo une télécommande infrarouge conçue pour le contrôle d'un téléviseur. Pendant que le Leonardo sera branché au port USB de l'ordinateur, la télécommande permettra au conférencier de contrôler à distance son diaporama Powerpoint.


Capteur TSOP4838

Pour capter les signaux infrarouges émis par la télécommande, j'ai utilisé le capteur TSOP4838 fabriqué par Vishay. Il est spécialement conçu pour capter les signaux modulés à 38 kHz.


J'ai branché la broche "Out" du TSOP4838 à la broche 11 de l'Arduino Leonardo. Les deux autres broches servent à alimenter le capteur: la broche centrale est connectée à GND alors que la dernière broche est branchée à une résistance de 100 Ω qui est elle-même reliée à 5 V. De plus, un condensateur de 4,7 µF est placé en parallèle avec les deux broches d'alimentation.

Bibliothèque IRremote

Grâce au gestionnaire de bibliothèques de l'IDE Arduino, j'ai installé la bibliothèque IRremote.

Trouver la commande envoyée par les touches de la télécommande

Pour ce premier prototype, je voulais activer 7 touches de la télécommande, qui auraient pour effet de passer à la diapo suivante, reculer d'une diapo, déplacer le pointeur à l'écran et simuler un clic de souris.

Afin de connaître le code envoyé par chacune de ces touches, j'ai téléversé dans le Léonardo l'exemple IRrecevieDump, qui est distribué avec la bibliothèque IRremote.


Chaque fois que j'appuie sur un bouton de la télécommande, des informations apparaissent dans le moniteur série de l'IDE Arduino. Par exemple, j'apprend que le bouton "prochaine diapo" envoie un message encodé selon le protocole Panasonic dont l'adresse est 0x8 et la commande est 0x34.


Connaissant la commande correspondant à chacun des 7 boutons qui m'intéressent, il a été facile de rédiger un sketch qui permet de contrôler le powerpoint lorsque j'appuie sur les boutons.

-

/*
Contrôle d'un diaporama powerpoint avec une télécommande
de téléviseur et un arduino Leonardo.
Pour plus d'infos:
https://electroniqueamateur.blogspot.com/2021/03/controler-un-diaporama-powerpoint-avec.html
*/
#include <Mouse.h> // permet au Leonardo de se comporter comme une souris USB
#include <Keyboard.h> // permet au Leonardo de se comporter comme un clavier USB
#include <IRremote.h> // pour interpréter les signaux de la télécommande
int IR_RECEIVE_PIN = 11; // récepteur IR à la broche 11 du Leonardo
int pixels = 24; // déplacement du pointeur à chaque pression de bouton, en pixels
void setup()
{
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}
void loop() {
if (IrReceiver.decode()) {
IrReceiver.resume();
if (IrReceiver.decodedIRData.address == 0x8) {
switch (IrReceiver.decodedIRData.command) {
case 0x34: // prochaine diapo
Keyboard.write(KEY_RIGHT_ARROW);
break;
case 0x35: // diapo précédente
Keyboard.write(KEY_LEFT_ARROW);
break;
case 0x49: // clic de souris
Mouse.click();
break;
case 0x4A: // déplacer le pointeur vers le haut
Mouse.move(0, -pixels, 0);
break;
case 0x4F: // déplacer le pointeur vers la droite
Mouse.move(pixels, 0, 0);
break;
case 0x4B: // déplacer le pointeur vers le bas
Mouse.move(0, pixels, 0);
break;
case 0x4E: // déplacer le pointeur vers la gauche
Mouse.move(-pixels, 0, 0);
break;
}
}
}
}

-

À lire aussi:


Yves Pelletier (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire