====== Projet Long M1 [Old] ====== Dernière mise à jour: avril 2023 ===== Présentation ===== Enseignants : [[users:feree:index|Hugo Férée]], [[users:michele:index|Michele Pagani]], [[users:adegorre:index|Aldric Degorre]]. /* { :users:feree:presentation.pdf |Transparents de la réunion de présentation}} */ ==== Horaires et lieu séances ==== Bâtiment Sophie Germain. Mercredi, de 14h à 17h, salle **2027**. S'inscrire pour chaque séance **avant le mercredi soir précédent** en remplissant [[https://cloud.irif.fr/index.php/apps/appointments/pub/UJjwkUDYGE%2BR/form| ce formulaire]]. ==== Calendrier ==== * Amphi de rentrée : **16h15 à 17h15 en amphi 10E de la halle aux farines ({{ :users:feree:presentation.pdf |présentation}})** * Création du dépôt git et choix du projet au plus tard le **16 novembre 2022** (confirmation en séance) /** Reprise du semestre 2 : **semaine du 24 janvier**. */ * **Rapport intermédiaire** : **28 février 2023** ({{ :users:feree:ens:plong:report.pdf |Instructions}} et {{ :users:feree:ens:plong:rapport.tar.gz |exemple de rapport au format LateX}}). * Soutenances : entre les **22, 23 et 24 mai** 2023 ([[users:feree:plong_soutenances|planning]] et {{ :users:feree:ens:plong:consignes_soutenances.pdf |instructions}}), salle 376F à la halle aux farines. ==== Git ==== Chaque binôme doit stocker son projet dans le git de l'UFR d'informatique, [[http://gaufre.informatique.univ-paris-diderot.fr/|GitLab]]. Le nom du dépôt doit avoir la forme suivante: **nom1-nom2-plong-2022**, où nom1,nom2 sont les noms des membres du binôme. ===== Projets ===== Les projets sont de préférence définis par les binômes, mais nous vous proposons aussi quelques sujets qui peuvent être choisis tels quels ou servir d'inspiration. Une première proposition de sujet devrai être envoyée aux trois enseignants avant le **16 novembre 2022**. Le sujet sera ensuite validé rejeté ou amendé en séance. Il doit prendre la forme décrite dans {{ :users:feree:ens:plong:template_projet.md |ce template}} ({{ :users:feree:ens:plong:template_projet.pdf |[pdf]}}). En particulier, les trois critères suivants devront être satisfaits : - le projet vise à résoudre un **problème clairement définit**, ni trop simple, ni trop ambitieux - la réussite du projet est **testable**, via des tests unitaires ou tout autre méthode adaptée - le projet est **original**, soit par le problème qu'il traite, soit par la méthode. On évitera en particulier les sujets qui sont une application _directe_ d'un autre cours. En particulier, ne **sont pas des sujets acceptables** : * //un jeu vidéo// Sauf si le choix du langage est original (e.g. OCaml, Haskell) et présente des contraintes intéressantes (pas de framework existant, paradigme de programmation original) * //« un site web qui … »// ou //« une application android qui… »// : l'interface ne doit pas être la finalité du projet. En revanche, un projet satisfaisant les trois critères par ailleurs pourra être mis en valeur via une interface adaptée (site web, application mobile, etc.). /* - [[https://codimd.math.cnrs.fr/nf-ymj5-SuSZxOoQWbt1jg?both#|Tableau récapitulatif]] du choix de binôme et de sujets. - {{ :users:feree:ens:plong:template_projet.md |Template de sujet de projet}} */ Il est aussi possible de réaliser un sujet plus orienté recherche, en lien avec un enseignant de l'IRIF. ==== Quelques idées de projets ==== /* * {{ :users:feree:ens:plong:raytracer.pdf |Ray tracer}} * {{ :users:feree:ens:plong:exercices_java.pdf |Interface de programmation java avec exercices et correction automatique}} * Générateur de tracé pour compétition de robots suiveurs de ligne * simulateur de robot suiveur de ligne * {{ :users:feree:ens:plong:melodies.pdf |génération de mélodies Midi (Musique Assistée par Ordinateur)}} * {{ :users:feree:ens:plong:arduino.pdf |interface web de gestion distribuée d'arduino}} */ * développement d'une fonctionnalité pour un logiciel libre au choix * jeu vidéo (uniquement dans un langage sans framework standard, e.g. OCaml) * robot Nao, mindstorm (ou pistorm) : projet original au choix * {{ :users:feree:ens:plong:pitch.pdf |changement en temps réel de la tonalité d’un instrument de musique}} * {{ :users:feree:ens:plong:cabane.pdf |cabane à oiseaux connectée}} (machine learning, raspberrypi/arduino) * Interface de programmation java avec exercices avec correction automatique [sujet à venir] * {{ :users:feree:ens:plong:routage_surfacique.pdf | Service de routage prenant en compte les surfaces}} * {{ users:feree:ens:plong:lignes_bus.pdf | Vérification de lignes de bus pour OpenStreetMap}} * {{ users:feree:ens:plong:extract_tables.pdf | Extraire un tableau à partir d'une image}} ==== Matériel ==== Le matériel suivant est disponible pour tout projet, dans la limite des disponibilités : * raspberry pi * raspicam * caméra global shutter * robots Nao (version 6 et 8) * robots lego mindstorm, avec moteurs et capteurs RGB * shield piStorm pour raspberry pi * briques lego mindstorm, avec moteurs et capteur de couleur * accès à un serveur adapté au machine learning * esp32, récepteur LoRa, etc. Du (petit) matériel supplémentaire peut aussi être acheté si nécessaire. ==== Quelques projets des années passées (pour exemple) : ==== * [[https://www.youtube.com/watch?v=XJQ4gZKlbu0|projet mindstorm]], [[https://www.youtube.com/watch?v=4KqyzhoeYlU|mindstorm 2]], * [[https://www.youtube.com/watch?v=v0lk2-cFFec|jeu vidéo]] en **ocaml**, * [[https://www.youtube.com/watch?v=FIYHnNxbBd8|Nao 1]] /*, [[httŝ://drive.google.com/file/d/1iw-SU5QM0MXDP3E-_tQTwJwYzKIcxN5j/view|Nao 2]] */ * {{ :users:feree:ens:plong:sorter.pdf |Imprimer avec des pâtes alphabet}} * {{ :users:feree:ens:plong:penguins.pdf |Un outil d’apprentissage pour surveiller les populations de manchots}} * {{ :users:feree:ens:plong:rain.pdf |Quel chemin pour éviter la pluie ?}} /* ==== Suiveurs de ligne ==== * [[http://www.mindsensors.com/content/72-getting-started-with-pistorms|PiStorm (Getting started)]] * [[http://www.lego.com/en-us/mindstorms|Site web Mindstorm]] * [[http://www.sitedunxt.fr/download/Building_Instructions_Suiveur_de_ligne.html|Monter un suiveur de ligne]] * [[http://robotsquare.com/wp-content/uploads/2013/10/45544_educator.pdf|Monter un suiveur de ligne (nouveaux moteurs)]] * * Semaine 1 : installer LeJos (ou ev3dev) et écrire un HelloWorld * Semaine 2 : la brique commande deux moteurs qui peuvent bouger à des vitesses différentes * Semaine 4 : savoir reconnaître 5 couleurs (apprentissage/distance) * Semaine 5 : le robot est monté * Semaine 7 : le robot suit une ligne droite * Semaine 10 : le robot suit une ligne courbe * Semaine 18 : le robot gagne la compétition */ /* ==== Projets de recherche ==== * {{ :users:feree:ens:plong:cabane.pdf |Une cabane à oiseaux d’observation}} * {{ :users:feree:ens:plong:mosquitos.pdf |Détecter un moustique par son bourdonnement}} * {{ :users:feree:ens:plong:pitch.pdf |Changer la tonalité d’un instrument de musique en temps réel}} * {{ :users:feree:ens:plong:sorter.pdf |Imprimer avec des pâtes alphabet}} * {{ :users:feree:ens:plong:penguins.pdf |Un outil d’apprentissage pour surveiller les populations de manchots}} * {{ :users:feree:ens:plong:lyfe.pdf |What is Lyfe?}} * {{ :users:feree:ens:plong:rain.pdf |Quel chemin pour éviter la pluie ?}} * {{ :users:feree:ens:plong:sql.pdf | Static analysis of SQL queries}} */ ===== FabLab ===== Le Fablab est situé au 5e étage de la halle aux farine et est équipé de nombreux équipements pour la partie matérielle de vos projets, notamment : * découpeuse-laser * imprimantes 3D * découpeuse vinyle * brodeuse numérique * matériel pour soudure