Projets 2022-2023

<> =INFO=

Projet Semestre S8
Enseignants responsables : Olivier Richard


 * Dates : Lundi après-midi, Mardi après-midi
 * Lancement: Lundi 9 Janvier 2023 après midi à 14h30 salle PG 39
 * Soutenance à mi-parcours: Mardi 28 Février 2023 après midi à 14h00 salle PG 39
 * Soutenance: A définir


 * Evaluation à mi-parcours le lundi/mardi ???: Format: 10min (5min de présentation 3 slides au plus, 5min de discussion). Cette évaluation sera prise en compte dans la note finale.

Consignes générales:


 * Vous devez être pro-actifs !!!: Si des points sont pas ou mals spécifiés, vous le faîtes et vous justifiez vos choix. Pour les problèmes techniques éventuels vous pouvez: creuser la question, contacter l'auteur du code si il y a lieu, écrire un rapport de bug (Attention: ca se prépare !), soumettre un patch/pull request, contacter l'enseignant ou la personne référente du projet.


 * Vous devez maintenir une fiche de suivi de projet: elle doit être mise à jour chaque semaine, elle rassemble les élements essentiels du projet, elle indique les évolutions du projet et présente sa feuille de route. Note: le nom de la fiche doit être composé du nom du projet et suffixé par info4_2022_2023. Cette fiche compte pour la note finale


 * Votre code doit être hébergé sur le gitlab et à l'URL suivante https://gricad-gitlab.univ-grenoble-alpes.fr/Projets-INFO4/22-23, vous utiliserez votre compte UGA.


 * Chaque projet doit avoir aux moins 2 dépôts git:
 * Un pour les documents demandés rapport, présentation de pré-soutenante, de soutenance, flyer. Il sera appelé documents.
 * *Un ou plusieurs pour le code,* les tests, les évaluations, les preuves de concept, la ou les documentations afférentes.


 * Les documents public doivent être rédigés en anglais (README, documentation, commentaires de code, nom de variables et de fonctions). Le *rapport* sera aussi demandé en *anglais* (il fera la taille d'un rapport de TP). Les transparents des présentation peuvent être en anglais ou en français, la soutenance sera taire en français.


 * Une section dans le rapport doit indiquer ce qui a été développé (LoC) et/ou testé.


 * La note obtenue tiendra compte du nombre et de la qualité des commits observé dans vos dépots git et la branche master (or depot documents). La qualité comprend l'intitulé du commit et son contenu. Les notes pourront être différentiées dans un groupe, il n'est pas acceptable de pas avoir de commit dans le(s) dépôt(s) du projet (or dépôt documents).


 * Il est fortement conseillé de suivre un développement incrémental qui permette d'avoir à tout moment un démonstrateur à présenter, un projet peut être constituer d'une succession de démonstrateurs présentables séparément.


 * Vous devez faire aussi des schémas d'architectures générales et/ou spécifiques, des diagrammes de séquence, et autre documents de spécification si nécessaire. Ces documents vous serviront de base de discussion/brainstorming interne ainsi que dans vos différents documents (rapport, présentations, documentation). Ces schémas sont avant tout conceptuels et techniques.

Propositions de projets S8

 * 1. Centipède, Nicolas Palix, Didier Donsez
 * 2. Dévelopement d’une application iOS/Android RTK NTrip, Éric Sibert, Yves Pratter (pour les communautés OpenStreetMap et Centipède)
 * 3. Reconnaissance de chants d'oiseau par réseaux de neurones embarqués avec TinyML (Attention c'est le meme projet que le projet 16 "Robin"), Didier Donsez
 * 4. Développement d'extension de jeux sur DreamCast, Matthieu Mallet (à confirmer)
 * 5. Des polymères dans ton école, dans ton musée, Vincent Mareau, Olivier Richard
 * 6. Guidage autonome centimétrique de véhicules sur circuit, Didier DONSEZ.
 * 7. Géolocalisation intérieure centimétrique en Ultra Wide Band, Didier DONSEZ.
 * 8. Reprise du projet 21-22 RealWorld avec Dioxus (Rust + web), Olivier Richard
 * 9. Paquets NIX pour Polytech, Olivier Richard
 * 10. Mini compilateur C pour mini CPU, Olivier Richard
 * 11. Logiciel d'execution de commande à distance: Rust + tokio + grpc/tonic, Olivier Richard
 * 12. Limitation des appels systèmes noyaux pour les systèmes de fichiers distribués, Olivier Richard
 * 13. Proof of Coverage LoRaWAN pour TTN, CampusIoT et Helium, Didier Donsez, Olivier Alphand.
 * 14. Jeux d'arcade pour table tactile de café, Didier Donsez, Nicolas Palix.
 * 15. Analyse et visualisation de données environnementales d’espèces envahissantes, Thierry Tatoni et et Estelle Dumas (Institut Méditerranéen de Biodiversité et d'Ecologie)
 * 16. Robin, la suite (Attention c'est le meme projet que le projet 3 "Chant d'oiseaux"), Didier Donsez
 * 17. Poursuite projet 21-22 Portail pour gestionnaire de taches(react, Typescript) ou reecriture en VueJS, Olivier Richard
 * 18. Reprise du projet 21-22 Portail pour gestionnaire de taches avec Streamlit(Python), Olivier Richard
 * 19. Portage d'Artiphonie en Godot 4, Olivier Richard
 * 20. Amélioration de la plateforme de prêt Matos de la fablab MASTIC Germain Lemasson
 * 21. Portage Godot 3 ou 4 de TanksOfFreedom, Nicolas Palix
 * 22. Agriculture connectée en partenariat avec les projets collectifs IESE/MAT : Nicolas Palix
 * 23. Faults In Linux, Nicolas Palix
 * 24. OsmAnd+Traffic, Nicolas Palix
 * 25. Géolocalisation dans une constellation de cubesats ou de pseudolites, Didier DONSEZ, Olivier ALPHAND

Projet IoT S9
Enseignants responsables : Bernard Tourancheau

Calendrier: Octobre à Décembre 2022. Soutenance ?? Janvier 2023.

Exposés points techniques 10' - questions 5'
 * Nom Sujet
 * ??? Python
 * ??? MQTT
 * ??? COAP

Projet Semestre S10
Enseignant responsable : Didier Donsez

Le projet S10 est un projet en équipe qui se déroule en quasi-plein temps au début du semestre 10. Les équipes sont constituées de 2 à 4 élèves. Chaque équipe traite un sujet proposé par un porteur (enseignant de l'école, association ou entreprise externe à l'école). Le sujet est en général exploratoire. Chaque équipe est autonome dans son organisation. Les choix technologiques sont décidés par l'équipe en concertation avec le porteur. L'équipe rencontre régulièrement le porteur pour présenter les choix et rendre compte des avancements et des difficultés rencontrés. Le projet fait l'objet de 2 soutenances et d'un présentation d'un poster en anglais.

Organisation
Calendrier: 16/01 (8H30-12H00) au ??/03.

Convention des projets tutorés externes : Elise Didier.

Réunion de présentation et choix des sujets: 16/01 (9H00-12H00) (salle : voir ADE et distanciel Zoom pour les élèves et les porteurs de sujet)

Démarrage travail de groupe: dès les examens passés

Séances de Management de projets innovants (Responsables: Stéphanie Diligent et Emmanuelle Tréhoust): A voir dessus.

Soutenance à mi-parcours : 10/02/2022 13H30-17H30 (15 minutes par équipe).

Soutenance finale : 17/03/2022 (8H30-12H00 et 13H30-17H00). 30 minutes par équipe, questions/réponses et démonstration incluse. Prière de rapporter au fablab le matériel emprunté juste après votre soutenance.

Présentation posters (Responsable: Caroline West) : 16/03/2022 après-midi.

Séances MPI
Voir ADE qui fait foi.

Soutenance intermédiaire S10
Date: 10/02/2023 13H30-16H00. Salle 035.

Créneaux de 10 minutes. 5 minutes entre 2 créneaux.

Ordre de passage : 13H30 + (0H15 * (numero de groupe - 1)

L'objectif de la soutenance intermédiaire est de vérifier si l'équipe projet est en bon ordre de marche

L'équipe présentera en 5-6 transparents en 7 minutes.
 * les équipiers et leurs rôles
 * le contexte, le sujet et l'objectif du projet
 * l'architecture du systèmes à réaliser
 * les technologies utilisées
 * le plan de travail (backlog, planning, ce qui est fait, ce qu'il reste à faire ...)
 * les difficultés (s'il y a)

Prévoyez du temps pour les questions-réponses (3 minutes max).

Respectez bien les créneaux indiqués (par respect pour les autres équipes) et soyez présents un peu en avance dans la salle d'attente.

La présence des porteurs n'est pas obligatoire.

Soutenance finale S10
Date provisoire: 17/03/2023 (8H30-12H00 et 13H30-17H00).

'''La présence du(des) porteur(s) est obligatoire. Pensez à les prévenir bien à l'avance'''

Durée: 40 minutes par équipe: présentation (20 minutes), démonstration (10 minutes) et questions/réponses (10 minutes). 5 minutes de battement avec l'équipe suivante.

Les documents devront être en ligne sur le wiki (colonne Documents) la avant-veille (ie avant le 15/03/2021 23:59:59 CET) qui est aussi la veille des posters en anglais.

La présentation est constituée des chapitres suivants:
 * Rappel du sujet/besoin et cahier des charges
 * Technologies employées
 * Architecture techniques
 * Réalisations techniques
 * Gestion de projet (méthode, planning prévisionnel et effectif, gestion des risques, rôles des membres ...)
 * Outils (collaboration, CD/CI ...)
 * Métriques logiciels : lignes de code, langages, performance, temps ingénieur (d'après vos journaux), la répartition des lignes de code et des commits en pourcentage entre les membres du projet ...)
 * Conclusion (Retour d'expérience)
 * Transparent expliquant la démonstration

L'ensemble des documents doit être accessible depuis le tableau ci-dessus et dans chaque fiche de suivi.

Le screencast (réalisé lors de la dernière répétition) sera rendu disponible via un partage caché (wetransfer, google drive …) dont le lien sera ajouté dans le devoir idoine sur Moodle et également envoyé par mail à votre tuteur.

Le rapport final contient les mêmes chapitres que la présentation ainsi qu'un glossaire et une bibliographie. Le rapport ne doit pas dépasser 15 pages (schémas et figures compris). Vous pourrez référencer les autres documents que vous avez produits au cours du projet (spécifications détaillées, algorithmes, conception d'écrans ...).

Le rapport final est au format Markdown et doit être placé dans un des dépôts Git de votre groupe/organisation.

Votre fiche d'auto-évaluation doit être déposée sur Moodle

NB: le rapport technique listé dans la colonne Documents contient tout ce qui ne tient pas dans les 15 pages du rapport final : cahier des charges, diagrammes UML, enquêtes utilisateurs design UI, API, technologies employées (détail), plan de tests, term of services, conformance RPGD, audits/diagnostiques sécurité, MTBR, rapport de vulnérabilité, plan de charge, rapports de charge, manuel d'installation … : ça dépend un peu de la nature de votre projet.

Conseil :
 * 20+10 minutes c'est très court alors répétez la soutenance et votre démonstration auparavant !
 * Prévoyez 1 ou 2 transparents pour présenter la démonstration.
 * Prévoyez des transparents supplémentaires en annexe pour répondre aux questions.

Prière de rapporter au fablab le matériel emprunté juste après votre soutenance.

Matin

 * 08H30 Cinéma Project Manager
 * 09H15 Evaluation en ligne
 * 10H00 ???
 * 10H45 ???
 * 11H30 Fitsize

Après midi

 * 13H30 ???
 * 14H15 ???
 * 15H00 ???
 * 15H45 ???
 * 16H15 ???

After soutenance after COVID
Avant le COVID, il était traditionnel d'organiser un pot INFO5 dans la cafét de Polytech après les soutenances. Si vous êtes interessés, signalez votre envie d'organiser ce pot de fin de projet (et du début du stage).

Sujets S10

 * 2 - Polytech-SI: une alternative à ADE, Nicolas Palix (LIG/UGA), Olivier Richard (LIG/UGA)
 * 3 - FitSize : Collections intelligentes, Fidèle EYA’A, Jean-Marc INIKO (DigifitMode)
 * 4 - Adaptation à un protocole expérimentale d’une plateforme d’evaluation en ligne, Christelle Martin-Lacroux (CERAG/UGA), Sybille Caffiau(LIG/UGA), Sophie Dupuy-Chessa (LIG/UGA)
 * 5 - Intégration LoRaWAN à la plateforme Domus, Sybille Caffiau(LIG/UGA)
 * 6 - Suite du projet eCOM Suivi nutritionnel en EPHAD (à confirmer), Jean-Rémi BARGIN (Mutuelle Française Isère), Alexandre Lefebvre (MoonshotLabs)
 * 7 - Carte neige et avalanches – Skitour.fr, Jeroen Zijp (SkiTour)
 * 8 - Mapillary RTK (à confirmer), Nicolas PALIX LIG/UGA
 * 9 - Outil de création de visite virtuelle de bâtiments avec placement d'information temps réel, Didier DONSEZ (LIG)
 * 13 - Cinema Project Manager (CPM): Association Studio Rv & Co
 * 14 - Assistant Vocal avec ChatGPT, Julian Royet

Sujets non choisis

 * 1 - Test d'infrastructures avec NixOS 2023, Olivier Richard (LIG)
 * 10 - Service de géolocalisation par TDOA LoRaWAN, Didier DONSEZ (LIG/UGA), Olivier ALPHAND (LIG/GINP)
 * 11 - Contributions open-source au projet JHipster (reporté à 2024) : Didier DONSEZ (LIG/UGA)
 * 12 - Contributions open-source au projet RIOT OS (reporté à 2024) : Didier DONSEZ (LIG/UGA)

=IESE=

Internet des Objets
Enseignants : Didier Donsez, David Eon

Objectif
L’objectif du mini-projet de l'UE "Internet des Objets" est d’étudier du prototypage d’un objet connecté et du service associé.

La connectivité de l’objet peut être de type LoRaWAN, BLE ou Wifi (ou les 3 ensembles).

L’objet peut se baser sur un produit ou une carte d’évaluation à laquelle sont raccordés des capteurs (platine Grove par exemple). Les capteurs Grove et autres peuvent être emprunter au fablab via le service https://matos.univ-grenoble-alpes.fr/#/.

L’objet LoRaWAN est identifié par son DevEUI et associé à une pièce ou à un lieu. Il peut être enregistré sur un réseau public en OTAA (TTN, Helium) ou sur un réseau privé en OTAA comme CampusIoT.

Les réseaux LoRaWAN utilisables en fonction de la couverture de votre site peuvent être :
 * CampusIoT
 * The Things Network
 * Helium (10000 DC gratuit soit un message de 24 bytes par DC)

Pour l’affichage de données, vous pourrez utiliser des plateformes comme InfluxData, Cayenne, Thingsboard, Home assistant …

L’objectif du projet est de
 * réaliser une analyse (rapide) du marché des produits commerciaux concurrents
 * définir l’architecture globale du systèmes (ensemble d’objets, service en ligne (cloud)),
 * définir la sécurité globale (clé de chiffrage),
 * définir le respect de la vie privée du service (RGPD) : lister les risques d’atteinte au respect de la vie privée
 * définir l’architecture matérielle de l’objet,
 * estimer le coût de la BOM de votre produit (composants, PCB et enclosure) pour 5000 unités produites
 * pour le boitier, vous pouvez rechercher des boitiers “standards” disponibles dans les catalogues fournisseurs
 * pour le PCB, vous pouvez fournir une estimation du prix de fabrication du PCB et du masque chez des fournisseurs comme https://jlcpcb.com/, https://www.wedirekt.fr/fr/ …
 * estimer le coût de certification ETSI du produit, le coût de certification LoRa Alliance du produit ...
 * proposer une implémentation du logiciel embarqué de l’objet défini.
 * définir/documenter le format des messages uplink et downlink échangés (dans le cas des objets LoRaWAN, privilégiez le format LPP)
 * définir le logiciel embarqué de l’objet.
 * donner les métriques logiciel du logiciel embarqué (nombre de lignes de code, taille du binaire du firmware ie le fichier .bin)
 * instrumenter le logiciel embarqué pour mesurer les différents temps d’exécution des principales phases d’exécution (par exemple: durée d’une prise de photo, écriture sur carte SD, inférences avec un réseau de neurones …)
 * prévoir de montrer la trace console de l’objet pendant la démonstration.
 * estimer la durée de vie de la batterie de l’objet (pour LoRaWAN en fonction du datarate comme avec l’outil https://www.elsys.se/en/battery-life-calculator/
 * réaliser une analyse (brève) du cycle de vie du produit “durable” et “sobre” (ACV)
 * rechercher et analyser (avantages/inconvénients sous la forme d’une grille) des produits concurrents
 * montrer les intégrations effectuées (cayenne, influxdb, home assistant, jupyter notebook …)
 * compter le nombre de lignes de code développé (coté objet, coté application) avec un outil comme cloc. Précisez les langages et les outils utilisés (git, arduino-cli …)

Le firmware (si RIOT ou FreeRTOS) doit activer le watchdog timer afin de redémarrer en cas de crash logiciel.

Vous pourrez « fabriquer » un boîtier de la version prototype de l’objet en utilisant une imprimante 3D ou la découpeuse laser disponibles au fablab.

Projets

 * Détection d’ouverture de porte/fenêtre (avec Home Assistant)
 * Suivi de troupeaux de bovins : détection d’anomalie (attaque des prédateurs …)
 * Mesure d’occupation du salle et de niveau de confort sonore (de bruit)
 * Comptage de vehicules avec YOLO
 * Comptage de personnes avec YOLO
 * Nichoir connecté (remarque: semblable aux ruches connectés de Polytech). Contribution à RIOT OS
 * Artificial Noise et LoRaWAN
 * Affichage d’un QRCode régénéré périodiquement sur écran e-Paper (gestion de files d’attente virtuelle, ronde de surveillance, course d’orientation, réservation d’une salle, collecte de tickets de réduction …). Contribution à RIOT OS
 * Remontée d’info véhicule via LoRaWAN. (Il faut une voiture avec une prise ODB-II). Contribution à RIOT OS
 * Détection (comptage) de personnes
 * Prise connectée LoRaWAN : Mesure de consommation de courant. Contribution à RIOT OS
 * Scanner QRCode pour ouverture de porte