Aller au contenu

Projets / Télécommande Infrarouge Autonome (Projet 32)

Projet industriel n°32 · Grenoble INP - Phelma · Année 2025 — 2026

Télécommande infrarouge autonome pour vidéoprojecteurs

Système embarqué autonome d'extinction des vidéoprojecteurs de la salle des conseils de Grenoble INP - Phelma : rétro-ingénierie du protocole infrarouge NEC (38 kHz), fusion multi-capteurs (PIR, radar mmWave, son, VGA), carte électronique sur mesure sous KiCad 9 et firmware Raspberry Pi Pico 2WH (MicroPython & C++).

KiCad 9 Raspberry Pi Pico 2WH MicroPython C/C++ Protocole NEC PCB double face Fusion multi-capteurs
Prototype sur plaque d'essai (breadboard) avec Arduino Uno, capteurs PIR et LDR

Phase 1 · Prototypage breadboard (Arduino Uno)

Câblage initial sur plaque d'essai : Arduino Uno, 2 capteurs PIR, 4 LDR (A0–A3), récepteur et LED IR.

Rendu 3D de la carte électronique PCB sous KiCad 9, version 1.2

Phase 2 · PCB sur mesure (KiCad 9 — v1.2)

Carte finale double face accueillant le Raspberry Pi Pico 2WH, l'étage LDO 5V et les connecteurs dédiés.

1. Contexte et cahier des charges (SysML)

À l'issue des réunions en salle des conseils, les vidéoprojecteurs restent fréquemment allumés toute la nuit — environ deux fois par semaine, soit près de 1 250 heures par an sur une durée de vie totale de lampe de 3 000 à 4 000 heures, soit près d'un tiers de leur durée de vie. Le système conçu répond à trois niveaux d'exigences fonctionnelles :

  • Détection de l'état réel des vidéoprojecteurs

    Mesure directe de la tension sur les sorties VGA (VGA1, VGA2) couplée à des photorésistances (PGM1201) afin de ne commander l'extinction que si l'appareil ciblé est effectivement sous tension.

  • Surveillance multi-capteurs de l'occupation

    Fusion des informations issues d'un capteur de mouvement infrarouge passif (SBC-PIR), d'un radar de présence à ondes millimétriques (mmWave Gravity SEN0609) et d'un détecteur acoustique (SEN-14262).

  • Extinction automatique et mode Sniffer d'apprentissage

    Émission d'une salve infrarouge d'extinction après 1h30 (5 400 s) d'inactivité, et clonage à la volée d'une nouvelle télécommande par simple appui long (3 s) sur le bouton d'apprentissage (GPIO19).

Diagramme des exigences SysML du projet

2. Architecture matérielle et carte PCB (KiCad 9)

La carte électronique double face (135 × 130 mm) intègre un étage de régulation linéaire 5V (TLV1117-50, alimenté en 12V DC via J1) et centralise l'ensemble des capteurs et actionneurs autour du microcontrôleur Raspberry Pi Pico 2WH.

Schéma synoptique de l'architecture système
Rendu 3D de la carte PCB sous KiCad 9

Brochage de la carte électronique (v1.2)

Connecteur Broche MCU Rôle fonctionnel
J_VGA1 / J_VGA2GPIO3 / GPIO2Lecture de l'état sous tension des vidéoprojecteurs 1 et 2.
J_Photoresistance1/2ADC0 / ADC1Mesure analogique de luminosité (PGM1201).
J_DETECTEUR_MOUVEMENT1GPIO16Capteur de mouvement infrarouge passif (SBC-PIR).
J_DETECTEUR_PRESENCE1GPIO17Radar de présence mmWave (SEN0609).
J_CAPTEUR_SONORE1/2GPIO20 / GPIO21Enveloppe acoustique et seuil binaire (SEN-14262).
J_EMETTEUR1 / 2GPIO7 / GPIO14Commande PWM 38 kHz des 2 émetteurs IR (GT1087).
J_RECEPTEUR1GPIO18Réception et apprentissage (Sniffer) de trames IR (GT1089).
J_Bouton1GPIO19Bouton d'activation du mode apprentissage (3 s).

Nomenclature complète (BOM) : Raspberry Pi Pico 2WH (SC1634), régulateur LDO TLV1117-50, capteur sonore SEN-14262, radar mmWave Gravity SEN0609, capteur PIR SBC-PIR, 4 photorésistances PGM1201, 2 émetteurs IR GT1087, récepteur IR GT1089, bouton poussoir R1381R.

3. Rétro-ingénierie du protocole NEC et firmware embarqué

Le signal émis par la télécommande d'origine face au récepteur GT1089 a été capturé à l'oscilloscope numérique Tektronix et décodé via un banc Arduino Uno, révélant une modulation NEC sur porteuse à 38 kHz de valeur hexadécimale brute 0x6F905583 : en-tête de synchronisation (9 ms + 4,5 ms), bit logique 0 (562 µs + 562 µs) et bit logique 1 (562 µs + 1 675 µs).

Chronogramme du protocole NEC

Principe temporel du protocole NEC

Capture de la trame infrarouge à l'oscilloscope Tektronix

Capture de la trame IR à l'oscilloscope

Le firmware principal, embarqué en MicroPython sur le Raspberry Pi Pico 2WH, pilote simultanément les deux émetteurs IR via des générateurs PWM matériels cadencés à 38 kHz (rapport cyclique 50 %). Un triple tir d'extinction envoie 3 trames NEC consécutives espacées de 500 ms pour garantir la prise en compte de la commande. Le mode d'apprentissage universel, déclenché par un appui de plus de 3 secondes sur le bouton GPIO19, place le boîtier en écoute sur le récepteur GT1089, mesure à la microseconde les 67 fronts successifs du signal capté et met à jour dynamiquement en mémoire le code de la télécommande clonée.

4. Conception mécanique et intégration du boîtier

Pour protéger la carte électronique de la poussière dans le faux plafond tout en intégrant les passages de câbles et l'interface utilisateur, une première modélisation 3D (boîtier perforé et couvercle à poignée) a laissé place à la solution retenue : un boîtier en bois assemblé à créneaux (14 × 15,5 × 10 cm), généré via boxes.py, adapté en CAO 2D pour les perçages des connecteurs et fabriqué au FabLab de Phelma.

Modélisation 3D de la base du boîtier
Modélisation 3D du couvercle du boîtier
Plan 2D de découpe laser du boîtier (boxes.py)
Boîtier final assemblé et câblé
Banc de démonstration lors de la soutenance finale

5. Mon rôle et l'équipe projet

Chef de projet de l'équipe « Télécommande autonome » (4 coéquipiers : Amaury Simonnot, Corentin Pilleux, Corentin Eletti, Reda Lounis), au sein d'un projet n°32 mené en 2025-2026 à Grenoble INP - Phelma, encadré par Julien Traveaux, Sophie Cornu et l'équipe du FabLab. Au-delà de la coordination d'équipe, ma contribution technique a couvert :

  • Conception de la carte PCB sous KiCad 9

    Schéma électrique, routage double face et régulation d'alimentation de la carte finale (135 × 130 mm) autour du Raspberry Pi Pico 2WH.

  • Rétro-ingénierie du protocole infrarouge NEC

    Capture et décodage à l'oscilloscope de la trame de la télécommande d'origine, puis reproduction du signal sur banc Arduino.

  • Firmware MicroPython du Raspberry Pi Pico

    Génération PWM 38 kHz, logique de triple tir d'extinction et implémentation du mode Sniffer d'apprentissage universel.

  • Conception et fabrication du boîtier

    Modélisation 3D, génération du plan de découpe laser (boxes.py) et assemblage au FabLab de Phelma.

6. Résultats

Un prototype fonctionnel validé en conditions réelles dans la salle des conseils : détection fiable de l'état des vidéoprojecteurs et de l'occupation de la salle, extinction automatique après 1h30 d'inactivité et mode d'apprentissage universel opérationnel — permettant d'éviter jusqu'à 1 250 heures par an d'allumage inutile, soit près d'un tiers de la durée de vie des lampes.