Synopsis

L’objectif de cette séquence est de vous faire découvrir la programmation HTML/CSS/Javascript au travers la réalisation d’une interface Web destinée à piloter une lyre d’éclairage artisanale.

lyreduino

Contexte

On désire superviser, via le réseau, une lyre d’éclairage artisanale architecturée autour :

“Superviser” signifie 2 choses :

  1. Contrôler c.-à-d. visualiser l’état courant d’un dispositif, procédé industriel…​

  2. Commander c.-à-d. changer l’état de ce même dispositif, procédé industriel

Dans notre cas, la supervision de la lyre d’éclairage se résumera donc au contrôle/commande :

  1. des 2 servomoteurs — via la carte Arduino Uno R3 — pour déterminer son inclinaison sur l’axe X(→ tilt) et sa rotation sur l’axe Z (→ pan)

  2. du shield “Neopixel”  — toujours via la carte Arduino Uno R3 — de façon à spécifier le motif d’éclairage à appliquer (l’équivalent d’un “gobo” sur une vraie lyre d’éclairage) ainsi que son intensité.

La supervision se fera depuis une page web qui sera servie depuis une application NodeJS qui relayera vers la carte Arduino Uno R3 — par liaison série — les ordres correspondant aux actions de l’utilisateur sur l’interface web.

L’application NodeJS sera hébergée sur une carte Raspberry Pi pour faciliter la mise en place de la lyre d’éclairage (encombrement réduit, consommation moindre)

L’architecture de l’application finale est donc la suivante :

lyreduino synoptic.drawio

Déroulement global de l’activité

L’activité peut se décomposer comme suit :

  1. Préparation d’une carte Raspberry Pi (OS, configuration initiale)

  2. Installation de l’environnement de développement et d’exécution NodeJS

  3. Installation des modules NodeJS nécessaires à notre application :

    • Express → cadre applicatif NodeJS pour construire des application Web

    • Socket.IO → permet la communication bi-directionnelle en temps-réel entre un serveur Web et une page web chargée dans un navigateur via des websockets

    • Johnny-Five → permet de contrôler une Arduino via une liaison usb/série à l’aide d’un ensemble de commandes intégrées à un protocole dédié appelé Firmata

  4. Appropriation de la programmation HTML/CSS/Javascript et mise en œuvre du cadre applicatif Express pour construire l’interface web

  5. Mise en œuvre du module Socket.IO pour pouvoir interagir directement avec l’application depuis la page web

  6. Mise en œuvre du module serialport pour contrôler la lyre d’éclairage

  7. Contrôle des E/S de la carte Arduino Uno R3 via le module Johnny-Five de NodeJS

🞄  🞄  🞄