Visionneuse MJPEG

Cette activité de programmation est menée en seconde année. Le but est d’afficher le flux internet de Webcams compatibles MJPEG.

L’étude du format MJPEG permet de comprendre comment le flux vidéo est transmis par la Webcam : Les images sont compressées au format JPEG puis transmise l’une après l’autre.

L’algorithme mis en place est relativement simple :

  • on reçoit en continu le flux d’octets venant de la webcam
  • on repère une image en recherchant les octets « magiques »
  • dès qu’une image JPEG est détectée, elle est affiché

Exemple de code C++ utilisé :

 void MainWindow::TraiteJpeg(void) {
    QByteArray ImageBrute;
    QPixmap ImageBitmap;
    tampon->RetirerJpeg(&ImageBrute);
    if (ImageBitmap.loadFromData(ImageBrute)) {
        ui->label->setPixmap(ImageBitmap);
        qDebug("AFFICHAGE");
    }
    else{
        qDebug("ERREUR FORMAT IMAGE");
    }
}

Supervision de bâtiment

Pour prendre en main les éléments de base de l’internet des objets, on étudie le système de supervision installé dans une des salles de classe.

Ce système fonctionne en continu, notamment pour afficher l’heure et la température, mais aussi collecter d’autres mesures d’ambiance.

Réaliser ce système permet de mettre en œuvre des composants matériels et logiciels, par exemple :

Multicapteur XBee
Baie de serveurs
Nano-ordinateur
Solution de virtualisation de serveur Proxmox
Serveur NodeRed – Programmation par blocs
Grafana – solution de visualisation de données

Cette réalisation permet aussi de voir une utilisation concrète des notions étudiées en cours, comme :

  • les VLANs
  • le routage IP
  • la création d’une base de donnée en SQL

Plusieurs extensions peuvent être envisagées :

  • ajouter un capteur de CO2 et alerter de la nécessité d’aérer la salle
  • programmer un report de sonnerie pour la fin des cours

Peut-être pourrez-vous y participer ?

Piloter un gobo

Un gobo est un projecteur de spectacle.

Après avoir appris à réaliser des interfaces graphiques simples, vous développez une interface plus élaborée pour piloter le gobo : déplacer le spot, choisir la couleur, le motif…

C’est l’occasion de continuer l’apprentissage du C++, mais aussi de se simplifier la tâche avec des outils de conception rapide, comme Qt Designer.

Qt Designer
Qt Designer, un composant de Qt Creator