Laboratoire 5 : Projet

Systèmes embarqués temps réel (GIF-3004)

Objectifs

Ce laboratoire vise les objectifs suivants :

  1. Gérer la communication et la synchronisation entre deux systèmes informatiques distincts;
  2. Observer et analyser la latence et le débit dans la communication entre dispositifs;
  3. S’adapter aux limitations et variations intrinsèques d’un lien de communication;
  4. Définir des mesures et un cahier de charge d’un système informatique;
  5. Effectuer une évaluation expérimentale des performances d’un système informatique;
  6. Mettre en commun les connaissances vues au fil du cours pour créer un système embarqué temps réel complet.

Présentation

Le laboratoire 5 offre la latitude aux étudiants de proposer un projet de leur cru, afin de mettre en pratique les différentes notions vues en classe, tout en permettant de s’adapter à la situation de chaque équipe. Le projet est organisé en trois étapes :

  1. Proposition de projet avec cahier de charge (d’ici vendredi 10 avril, midi);
  2. Commentaires de l’équipe du cours et approbation pour la poursuite du projet;
  3. Dépôt du résultat du projet, avec rapport présentant le système, une évaluation expérimentale pour valider le cahier de charge et une démonstration vidéo (d’ici vendredi 1er mai, midi).

Proposition du projet et cahier de charge

D’ici midi le 10 avril, vous devez remettre une proposition courte de votre projet en format PDF dans monPortail. Celle-ci doit comporter les éléments suivants :

  • Présentation générale du projet et objectifs;
  • Cahier de charge;
  • Aperçu de la solution envisagée.

Cette proposition doit faire un maximum deux pages. Dans les jours suivant le dépôt, nous allons lire les propositions et en valider le contenu. Si la proposition est acceptable, vous serez autorisé à effectuer votre projet. Sinon, vous devrez produire une révision de votre proposition selon les commentaires que nous vous donnerons par courriel.

Par cahier de charge, on entend la présentation d’au minimum trois mesures distinctes proposées avec cible associée. Ces mesures du cahier de charge doivent en général viser l’évaluation de notions de communication temps réel, comme la latence des communications, la bande passante ou le taux de rafraichissement.

Voici un exemple d’un cahier de charge que l’on aurait pu définir pour le laboratoire 3:

Exigence Cible Explication
Traitement grosse vidéo > 30 FPS Exécution d’une grosse vidéo (config 5)
Multiplexing > 10 FPS Exécution de 4 vidéos multiplexés en temps réel (config 9)
Conversion Binaire Exécution d’un filtrage et d’un redimensionnement de deux vidéo en simultané (config 10)

Le contenu de cette proposition pourra être récupéré pour le rapport du projet.

Réalisation du projet et utilisation de GitHub

Vous devez réaliser un projet qui met à contribution les notions apprises dans le cours. Vous êtes libre d’utiliser des librairies externes, selon la pertinence au projet, mais pas d’utiliser un projet qui correspond partiellement ou complètement à votre projet. Nous vous demandons de développer votre projet en utilisant GitHub pour faire la gestion des versions de votre code source. Nous vous demandons également de nous donner accès à votre dépôt GitHub lors du dépôt de votre rapport. Nous nous réservons d’analyser les activités dans le dépôt GitHub du projet pour valider les développements qui y ont été faits et les contributions des membres de l’équipe

Selon la nature du projet que vous visez, nous vous fournissons du code qui pourrait vous être utile.

Rapport et démonstration vidéo

L’évaluation se fait principalement à partir du rapport, qui doit contenir les informations suivantes :

  • Présentation générale du projet et objectifs;
  • Cahier de charge;
  • Présentation détaillée de la solution;
  • Méthodologie expérimentale utilisée pour valider la solution selon le cahier de charge;
  • Résultats et analyse de la validation expérimentale;
  • Lien vers dépôt GitHub du projet et explications pour la compilation du projet.

Nous vous demandons également de nous préparer une démonstration vidéo illustrant le bon fonctionnement du projet. Cette vidéo n’a pas à être monté de façon professionnelle, mais doit démontrer que le projet fonctionne tel qu’expliqué dans le rapport. Limitez-vous à un vidéo d’une durée de deux minutes au maximum, en fournissant un fichier selon un format standard (ex. format mp4) et de taille raisonnable (maximum de 20 Mo). Vous pouvez également nous fournir un lien vers un vidéo hébergé à l’externe (ex. YouTube) si vous préférez.

Modalités d’évaluation

Ce travail doit être réalisé en équipe de deux, la charge de travail devant être répartie équitablement entre les deux membres de l’équipe.

L’évaluation se fera à partir des éléments déposés dans monPortail, avant le 1er mai 2020 à midi. Les éléments suivants doivent être déposés :

  • Rapport détaillé (format PDF);
  • Démonstration vidéo (20 Mo maximum, ou lien externe);
  • Code source et binaires du projet (plus lien vers dépôt GitHub).

Ce travail compte pour 15% de la note totale du cours. Le barème d’évaluation détaillé sera le suivant (laboratoire noté sur 20 points) :

  • (3 pts) Définition du problème et cahier de charges approprié;
  • (7 pts) Fonctionnement général du système et qualité de l’implémentation (incluant code);
  • (5 pts) Analyse expérimentale des performances pour validation selon le cahier de charges;
  • (5 pts) Qualité, rigueur et présentation du rapport, qualité et pertinence de la démonstration vidéo.

Suggestions de projet

  • Haut-parleur réseau : transmission d’un flux audio d’un ordinateur personnel vers RPi;
  • Vidéosurveillance : capture d’un flot d’images sur ordinateur personnel et affichage sur RPi (ou inversement);
  • Clavier/souris sans fil : capture de clavier et/ou souris sur RPi pour contrôle d’un ordinateur personnel.