Refactor code structure for improved readability and maintainability
This commit is contained in:
112
diapos/cahier-charges.tex
Normal file
112
diapos/cahier-charges.tex
Normal file
@@ -0,0 +1,112 @@
|
||||
\begin{frame}{Spécifications et Cahier des Charges}
|
||||
\begin{itemize}
|
||||
\item Fonctionnalités attendues du système complet
|
||||
\item Contraintes techniques à respecter
|
||||
\item Livrables du projet
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Fonctionnalités principales}
|
||||
\begin{itemize}
|
||||
\item \textbf{Acquisition d'images}
|
||||
\begin{itemize}
|
||||
\item Capture programmable à intervalles réguliers
|
||||
\item Résolution suffisante pour générer des vidéos HD
|
||||
\item Stabilité et qualité d'image optimales
|
||||
\end{itemize}
|
||||
\item \textbf{Gestion des données}
|
||||
\begin{itemize}
|
||||
\item Stockage local des images sur la Raspberry Pi
|
||||
\item Transmission des images vers un serveur distant
|
||||
\item Optimisation de la consommation d'énergie et de bande passante
|
||||
\end{itemize}
|
||||
\item \textbf{Interfaces utilisateur}
|
||||
\begin{itemize}
|
||||
\item Interface web et application mobile pour configuration
|
||||
\item Visualisation des images et vidéos générées
|
||||
\item Informations en temps réel sur l'état de la caméra
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Contraintes du projet}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Contraintes techniques}
|
||||
\begin{itemize}
|
||||
\item Autonomie énergétique (batterie + panneau solaire)
|
||||
\item Résistance aux intempéries (boîtier IP65)
|
||||
\item Connectivité réseau fiable
|
||||
\item Capacité de stockage suffisante
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Contraintes organisationnelles}
|
||||
\begin{itemize}
|
||||
\item Budget limité
|
||||
\item Délais de développement contraints
|
||||
\item Coordination entre équipes multidisciplinaires
|
||||
\item Disponibilité des ressources matérielles
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Architecture globale du système}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/global/global.png}
|
||||
\end{center}
|
||||
\vspace{0.5em}
|
||||
\begin{itemize}
|
||||
\item Approche modulaire facilitant le développement parallèle
|
||||
\item Communication entre modules via interfaces standardisées
|
||||
\item Séparation des responsabilités : acquisition, traitement, interface
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Livrables}
|
||||
\begin{itemize}
|
||||
\item \textbf{Prototype de caméra timelapse fonctionnel} comprenant:
|
||||
\begin{itemize}
|
||||
\item Système électronique complet
|
||||
\item Boîtier résistant aux intempéries
|
||||
\item Logiciel embarqué sur Raspberry Pi
|
||||
\end{itemize}
|
||||
\item \textbf{Logiciels et interfaces}
|
||||
\begin{itemize}
|
||||
\item Serveur de traitement et stockage
|
||||
\item Interface web
|
||||
\item Application mobile Android
|
||||
\end{itemize}
|
||||
\item \textbf{Documentation}
|
||||
\begin{itemize}
|
||||
\item Plans et schémas techniques
|
||||
\item Rapport de projet détaillé
|
||||
\item Plan Qualité Projet (PQP)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Indicateurs de performance}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Indicateurs de gestion}
|
||||
\begin{itemize}
|
||||
\item Tâches complétées par semaine
|
||||
\item Pourcentage d'avancement vs plan
|
||||
\item Respect des délais prévus
|
||||
\item Nouvelles compétences acquises
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Indicateurs techniques}
|
||||
\begin{itemize}
|
||||
\item Autonomie énergétique du système
|
||||
\item Fiabilité des transmissions de données
|
||||
\item Qualité des vidéos générées
|
||||
\item Score de satisfaction utilisateur
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
223
diapos/conclusion.tex
Normal file
223
diapos/conclusion.tex
Normal file
@@ -0,0 +1,223 @@
|
||||
\begin{frame}{Bilan et perspectives}
|
||||
\begin{block}{Résumé}
|
||||
\begin{itemize}
|
||||
\item Synthèse des apports du projet
|
||||
\item Retour d'expérience
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\begin{alertblock}{Perspectives}
|
||||
\begin{itemize}
|
||||
\item Améliorations possibles
|
||||
\item Suites envisagées
|
||||
\end{itemize}
|
||||
\end{alertblock}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Bilan du projet}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Objectifs atteints :}
|
||||
\begin{itemize}
|
||||
\item Système fonctionnel et autonome
|
||||
\item Interface utilisateur intuitive
|
||||
\item Qualité d'image satisfaisante
|
||||
\item Communication fiable entre composants
|
||||
\item Solution complète de bout en bout
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Retour d'expérience :}
|
||||
\begin{itemize}
|
||||
\item Travail en équipe pluridisciplinaire
|
||||
\item Gestion des contraintes techniques
|
||||
\item Adaptation aux imprévus
|
||||
\item Intégration de multiples technologies
|
||||
\item Respect des délais et du budget
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Difficultés rencontrées et solutions}
|
||||
\begin{itemize}
|
||||
\item \textbf{Autonomie énergétique}
|
||||
\begin{itemize}
|
||||
\item Difficulté : Consommation élevée du Raspberry Pi
|
||||
\item Solution : Mode veille optimisé et panneau solaire dimensionné
|
||||
\end{itemize}
|
||||
\item \textbf{Transmission des données}
|
||||
\begin{itemize}
|
||||
\item Difficulté : Connexion instable en zone reculée
|
||||
\item Solution : File d'attente et compression intelligente
|
||||
\end{itemize}
|
||||
\item \textbf{Intégration des composants}
|
||||
\begin{itemize}
|
||||
\item Difficulté : Espace limité et contraintes thermiques
|
||||
\item Solution : Conception 3D optimisée et refroidissement passif
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Perspectives d'évolution}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Améliorations techniques :}
|
||||
\begin{itemize}
|
||||
\item Réduction de la consommation énergétique
|
||||
\item Augmentation de la résolution (8K)
|
||||
\item Intégration de l'IA pour traitement avancé
|
||||
\item Optimisation pour conditions extrêmes
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Nouvelles fonctionnalités :}
|
||||
\begin{itemize}
|
||||
\item Détection automatique d'événements
|
||||
\item Contrôle par commande vocale
|
||||
\item Intégration avec drones pour vues dynamiques
|
||||
\item Analyses prédictives des phénomènes observés
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Applications futures}
|
||||
\begin{itemize}
|
||||
\item \textbf{Domaine scientifique}
|
||||
\begin{itemize}
|
||||
\item Surveillance environnementale
|
||||
\item Étude des écosystèmes
|
||||
\item Documentation des changements climatiques
|
||||
\end{itemize}
|
||||
\item \textbf{Domaine industriel}
|
||||
\begin{itemize}
|
||||
\item Suivi de chantiers complexes
|
||||
\item Contrôle de processus industriels
|
||||
\item Documentation pour assurances et contentieux
|
||||
\end{itemize}
|
||||
\item \textbf{Domaine artistique et médiatique}
|
||||
\begin{itemize}
|
||||
\item Productions audiovisuelles professionnelles
|
||||
\item Installations artistiques interactives
|
||||
\item Documentation d'événements culturels
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Mot de la fin}
|
||||
\begin{center}
|
||||
\Large\textbf{Merci pour votre attention !}
|
||||
|
||||
\vspace{1cm}
|
||||
|
||||
\normalsize
|
||||
Des questions ?
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Conclusion}
|
||||
\begin{itemize}
|
||||
\item Réalisation d'un système complet de caméra timelapse autonome
|
||||
\item Approche multi-disciplinaire : mécanique, électronique et informatique
|
||||
\item Méthodologie agile et développement en cycle en V avec itérations
|
||||
\item Tous les objectifs initiaux atteints avec succès
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Récapitulatif du projet}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Réalisations techniques :}
|
||||
\begin{itemize}
|
||||
\item Boîtier robuste et résistant aux intempéries
|
||||
\item Système électronique autonome
|
||||
\item Infrastructure serveur complète
|
||||
\item Interfaces web et mobile fonctionnelles
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Résultats obtenus :}
|
||||
\begin{itemize}
|
||||
\item Prototype fonctionnel
|
||||
\item Interface utilisateur intuitive
|
||||
\item Qualité des timelapses générés
|
||||
\item Fiabilité du système complet
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Gestion des risques}
|
||||
\begin{center}
|
||||
\begin{tabular}{|p{4cm}|p{3.5cm}|p{3.5cm}|}
|
||||
\hline
|
||||
\textbf{Risques identifiés} & \textbf{Impact potentiel} & \textbf{Solutions mises en œuvre} \\
|
||||
\hline
|
||||
Intégration mécatronique & Délais, coûts & Communication renforcée \\
|
||||
\hline
|
||||
Dysfonctionnement serveur & Pertes de données & Système robuste, sauvegarde \\
|
||||
\hline
|
||||
Manque de ressources & Délais & Ressources personnelles \\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\vspace{0.5em}
|
||||
\begin{itemize}
|
||||
\item Analyse précoce des risques
|
||||
\item Actions préventives efficaces
|
||||
\item Réactivité face aux problèmes rencontrés
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Compétences développées}
|
||||
\begin{itemize}
|
||||
\item \textbf{Compétences techniques :}
|
||||
\begin{itemize}
|
||||
\item Conception mécanique et fabrication additive
|
||||
\item Conception électronique et intégration
|
||||
\item Développement logiciel full-stack (serveur, web, mobile)
|
||||
\item Administration système et DevOps
|
||||
\end{itemize}
|
||||
\item \textbf{Compétences transversales :}
|
||||
\begin{itemize}
|
||||
\item Gestion de projet agile
|
||||
\item Communication interdisciplinaire
|
||||
\item Résolution de problèmes complexes
|
||||
\item Documentation technique
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Perspectives d'amélioration}
|
||||
\begin{itemize}
|
||||
\item \textbf{Améliorations techniques possibles :}
|
||||
\begin{itemize}
|
||||
\item Optimisation de l'autonomie énergétique
|
||||
\item Ajout de capteurs environnementaux supplémentaires
|
||||
\item Amélioration des algorithmes de traitement d'images
|
||||
\item Interface de configuration plus complète
|
||||
\end{itemize}
|
||||
\item \textbf{Évolutions potentielles :}
|
||||
\begin{itemize}
|
||||
\item Support pour plusieurs caméras synchronisées
|
||||
\item Intégration d'intelligence artificielle pour analyse
|
||||
\item Version commercialisable avec documentation utilisateur
|
||||
\item Extension à d'autres usages (surveillance, etc.)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Remerciements et questions}
|
||||
\begin{center}
|
||||
\large\textbf{Merci pour votre attention}
|
||||
\vspace{1.5em}
|
||||
|
||||
\normalsize
|
||||
Projet réalisé par\\
|
||||
THIEFFRY Raphaël, HUA Olivier, RIBETTE Baptiste,\\
|
||||
PUYAUBREAU Ethan et RUSSAC Antonin
|
||||
\vspace{1.5em}
|
||||
|
||||
\large\textbf{Questions ?}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
99
diapos/contexte-objectifs.tex
Normal file
99
diapos/contexte-objectifs.tex
Normal file
@@ -0,0 +1,99 @@
|
||||
\begin{frame}{Contexte et Objectifs}
|
||||
\begin{itemize}
|
||||
\item Création d'une caméra timelapse autonome et connectée
|
||||
\item Développement complet : matériel, logiciel et interfaces utilisateur
|
||||
\item Utilisation d'une Raspberry Pi et d'un module caméra fournis
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Qu'est-ce qu'un Timelapse?}
|
||||
\begin{columns}
|
||||
\begin{column}{0.6\textwidth}
|
||||
\begin{itemize}
|
||||
\item Technique photographique qui compresse le temps
|
||||
\item Capture d'images à intervalles réguliers
|
||||
\item Assemblées en vidéo à fréquence normale (24-30 fps)
|
||||
\item Permet d'observer des phénomènes lents (construction, floraison, etc.)
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.4\textwidth}
|
||||
\centering
|
||||
% Image exemple d'un timelapse
|
||||
[Image exemple de timelapse]
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Objectifs du projet}
|
||||
\begin{itemize}
|
||||
\item \textbf{Objectif principal :} Infrastructure matérielle et logicielle permettant la création d'une vidéo à partir d'une série d'images capturées via une caméra sans fil
|
||||
\item \textbf{Objectifs secondaires :}
|
||||
\begin{itemize}
|
||||
\item Créer un serveur de traitement et stockage
|
||||
\item Développer une interface d'accès Web
|
||||
\item Concevoir une application mobile
|
||||
\item Fabriquer un boîtier résistant aux intempéries
|
||||
\item Concevoir une carte électronique pour gérer l'énergie
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Périmètre du projet}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Informatique :}
|
||||
\begin{itemize}
|
||||
\item Traitement et stockage des données
|
||||
\item Serveur, interfaces Web et Android
|
||||
\item Publication de l'application
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Électronique :}
|
||||
\begin{itemize}
|
||||
\item Système autonome d'alimentation
|
||||
\item Gestion de la consommation d'énergie
|
||||
\item Protocoles de communication
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Mécanique :}
|
||||
\begin{itemize}
|
||||
\item Boîtier étanche et robuste
|
||||
\item Système de fixation adaptable
|
||||
\item Facilité de montage/démontage
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Hors périmètre :}
|
||||
\begin{itemize}
|
||||
\item Conception de la caméra
|
||||
\item Traitement d'images avancé
|
||||
\item Conception du matériel informatique
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Applications visées}
|
||||
\begin{itemize}
|
||||
\item \textbf{Projets de construction}
|
||||
\begin{itemize}
|
||||
\item Suivi de l'évolution des chantiers
|
||||
\item Documentation du processus de construction
|
||||
\end{itemize}
|
||||
\item \textbf{Phénomènes naturels}
|
||||
\begin{itemize}
|
||||
\item Croissance des plantes, floraison
|
||||
\item Événements météorologiques, lever/coucher de soleil
|
||||
\end{itemize}
|
||||
\item \textbf{Événements de longue durée}
|
||||
\begin{itemize}
|
||||
\item Expositions, événements publics
|
||||
\end{itemize}
|
||||
\item \textbf{Projets artistiques}
|
||||
\begin{itemize}
|
||||
\item Création de contenu visuel
|
||||
\item Narration visuelle accélérée
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
97
diapos/demo.tex
Normal file
97
diapos/demo.tex
Normal file
@@ -0,0 +1,97 @@
|
||||
\begin{frame}{Démonstration}
|
||||
\begin{center}
|
||||
\huge\textbf{Démonstration du projet}
|
||||
\vspace{1em}
|
||||
|
||||
\large Présentation du prototype fonctionnel
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Prototype intégré}
|
||||
\begin{columns}
|
||||
\begin{column}{0.6\textwidth}
|
||||
\textbf{Présentation du prototype :}
|
||||
\begin{itemize}
|
||||
\item Boîtier complet avec tous les composants intégrés
|
||||
\item Système électronique fonctionnel
|
||||
\item Connexion au serveur et démonstration de capture
|
||||
\item Tests des différentes fonctionnalités
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.4\textwidth}
|
||||
\centering
|
||||
% Image du prototype final
|
||||
[Photo du prototype complet]
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Interface web}
|
||||
\begin{center}
|
||||
% Capture d'écran de l'interface web
|
||||
[Capture d'écran de l'interface web]
|
||||
\vspace{0.5em}
|
||||
\textit{Interface de gestion des projets timelapse}
|
||||
\end{center}
|
||||
\vspace{0.5em}
|
||||
Démonstration des fonctionnalités :
|
||||
\begin{itemize}
|
||||
\item Création et configuration d'un projet
|
||||
\item Visualisation des images capturées
|
||||
\item Génération et visualisation d'une vidéo timelapse
|
||||
\item Configuration des paramètres de capture
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Application Android}
|
||||
\begin{center}
|
||||
% Capture d'écran de l'application mobile
|
||||
[Capture d'écran de l'application mobile]
|
||||
\vspace{0.5em}
|
||||
\textit{Application mobile de contrôle et visualisation}
|
||||
\end{center}
|
||||
\vspace{0.5em}
|
||||
Démonstration des fonctionnalités :
|
||||
\begin{itemize}
|
||||
\item Connexion et authentification
|
||||
\item Consultation des projets en cours
|
||||
\item Configuration à distance de la caméra
|
||||
\item Visualisation des timelapses générés
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Vidéos timelapses générées}
|
||||
\begin{center}
|
||||
% Exemple de timelapses générés
|
||||
[Exemples de timelapses générés]
|
||||
\vspace{0.5em}
|
||||
\textit{Résultats obtenus avec le système développé}
|
||||
\end{center}
|
||||
\vspace{0.5em}
|
||||
\begin{itemize}
|
||||
\item Présentation de plusieurs exemples de timelapse
|
||||
\item Démonstration de différents intervalles et durées
|
||||
\item Qualité d'image et stabilité du résultat
|
||||
\item Comparaison avant/après traitement
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Performances et résultats}
|
||||
\begin{itemize}
|
||||
\item \textbf{Autonomie énergétique :}
|
||||
\begin{itemize}
|
||||
\item Test en conditions réelles sur plusieurs jours
|
||||
\item Données de consommation et recharge
|
||||
\end{itemize}
|
||||
\item \textbf{Fiabilité de la transmission :}
|
||||
\begin{itemize}
|
||||
\item Statistiques de transmissions réussies
|
||||
\item Tests en conditions de connexion dégradée
|
||||
\end{itemize}
|
||||
\item \textbf{Qualité du traitement :}
|
||||
\begin{itemize}
|
||||
\item Stabilité des vidéos générées
|
||||
\item Efficacité des algorithmes de correction
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
141
diapos/elec.tex
Normal file
141
diapos/elec.tex
Normal file
@@ -0,0 +1,141 @@
|
||||
\begin{frame}{Partie électronique}
|
||||
\begin{itemize}
|
||||
\item Conception du système électronique autonome
|
||||
\item Gestion intelligente de l'énergie
|
||||
\item Intégration des composants avec la Raspberry Pi
|
||||
\item Protocoles de communication
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Composants électroniques principaux}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Unité de traitement :}
|
||||
\begin{itemize}
|
||||
\item Raspberry Pi 4B avec Raspbian
|
||||
\item Module caméra fourni par l'école
|
||||
\item Microcontrôleur STM32 pour gestion d'énergie
|
||||
\item Capteur hygrométrique
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Connectivité :}
|
||||
\begin{itemize}
|
||||
\item WiFi intégré à la Raspberry Pi
|
||||
\item Connexions filaires sécurisées
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Alimentation :}
|
||||
\begin{itemize}
|
||||
\item Batterie de 6€
|
||||
\item Panneaux solaires
|
||||
\item Modules d'alimentation à découpage (2)
|
||||
\item Système de gestion d'énergie
|
||||
\end{itemize}
|
||||
|
||||
\textbf{Composants additionnels :}
|
||||
\begin{itemize}
|
||||
\item Transistors (2 en 1)
|
||||
\item LED indicatrices d'état
|
||||
\item Résistances et condensateurs
|
||||
\item Connectique et câbles
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Architecture électronique}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/raspi/01_architecture_generale/Architecture Générale du Système Timelapse.png}
|
||||
\end{center}
|
||||
\vspace{0.5em}
|
||||
\begin{itemize}
|
||||
\item Conception modulaire avec connecteurs standards
|
||||
\item Protection contre les surtensions et court-circuits
|
||||
\item PCB optimisé pour minimiser les interférences
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Conception et fabrication du PCB}
|
||||
\begin{itemize}
|
||||
\item \textbf{Outils de conception :}
|
||||
\begin{itemize}
|
||||
\item Altium Designer pour conception et routage
|
||||
\item STM32 CubeIDE et STMProgrammer pour le développement logiciel
|
||||
\end{itemize}
|
||||
\item \textbf{Processus de fabrication :}
|
||||
\begin{itemize}
|
||||
\item Utilisation d'une graveuse mécanique
|
||||
\item PCB vierge (6€)
|
||||
\item Assemblage manuel des composants
|
||||
\item Tests de fonctionnement
|
||||
\end{itemize}
|
||||
\item \textbf{Approche itérative :}
|
||||
\begin{itemize}
|
||||
\item Versions successives documentées
|
||||
\item Répertoires numérotés par version de production
|
||||
\item Archives détachées des répertoires de travail
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Gestion de l'énergie}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Enjeux énergétiques :}
|
||||
\begin{itemize}
|
||||
\item Autonomie complète en extérieur
|
||||
\item Optimisation de la consommation
|
||||
\item Gestion des cycles charge/décharge
|
||||
\item Adaptation aux conditions météo
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Solutions implémentées :}
|
||||
\begin{itemize}
|
||||
\item Circuit de charge intelligent
|
||||
\item Mode économie d'énergie
|
||||
\item Surveillance de la batterie
|
||||
\item Protection contre décharge profonde
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Flux de traitement des données}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/raspi/02_flux_capture/Flux du Processus de Capture d'Images.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Capture et traitement d'images optimisés
|
||||
\item Stockage temporaire sur la Raspberry Pi
|
||||
\item Synchronisation avec le serveur distant
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Défis électroniques}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Défis rencontrés :}
|
||||
\begin{itemize}
|
||||
\item Intégration mécatronique
|
||||
\item Problématiques d'autonomie énergétique
|
||||
\item Fiabilité des connexions
|
||||
\item Gestion de la chaleur
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Solutions apportées :}
|
||||
\begin{itemize}
|
||||
\item Communication constante avec l'équipe mécanique
|
||||
\item Design électronique à basse consommation
|
||||
\item Connecteurs sécurisés et isolés
|
||||
\item Systèmes de dissipation thermique
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
188
diapos/info.tex
Normal file
188
diapos/info.tex
Normal file
@@ -0,0 +1,188 @@
|
||||
\begin{frame}{Architecture informatique}
|
||||
\begin{itemize}
|
||||
\item Développement basé sur méthodologie agile
|
||||
\item Architecture client-serveur distribuée
|
||||
\item Trois composants principaux : Backend, Frontend, Application mobile
|
||||
\item Infrastructure robuste et sécurisée
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Architecture globale}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/architecture/architecture_timelapse.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Architecture modulaire avec interfaces standardisées
|
||||
\item Communication via API REST sécurisée
|
||||
\item Séparation claire des responsabilités
|
||||
\item Intégration continue et déploiement automatisé
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Infrastructure et déploiement}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/backend/backend5/Déploiement.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Applications hébergées dans des conteneurs Docker
|
||||
\item Machine virtuelle Ubuntu Server sur hyperviseur Proxmox
|
||||
\item Trois niveaux d'abstraction facilitant maintenance et sauvegarde
|
||||
\item Déploiement et mise à jour automatisés via CI/CD
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Structure des classes et composants}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/raspi/03_structure_classes/Structure des Classes et Composants.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Organisation objet orientée domaines
|
||||
\item Séparation des responsabilités
|
||||
\item Interfaces clairement définies entre composants
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Synchronisation des données}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.75\textwidth]{out/diagrams/raspi/04_sequence_synchronisation/Séquence de Synchronisation des Données.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Processus robuste de transfert des images
|
||||
\item Gestion des échecs de connexion
|
||||
\item Reprise de transfert automatique
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Backend - Technologies et architecture}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Technologies utilisées :}
|
||||
\begin{itemize}
|
||||
\item Node.js + Express
|
||||
\item FFMPEG pour traitement vidéo
|
||||
\item NPM pour la gestion des dépendances
|
||||
\item Docker pour la conteneurisation
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Architecture :}
|
||||
\begin{itemize}
|
||||
\item Architecture MVC
|
||||
\item API RESTful
|
||||
\item Traitement asynchrone
|
||||
\item Gestion des erreurs robuste
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.5\textwidth]{out/diagrams/backend/backend2/Architecture MVC.png}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Backend - Modèles de données et traitement}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth]{out/diagrams/backend/backend1/Modèles de données.png}
|
||||
\end{center}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth]{out/diagrams/backend/backend3/Création de vidéo.png}
|
||||
\end{center}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Modèles structurés pour stockage et traitement efficaces
|
||||
\item Algorithme optimisé pour la création de vidéos timelapse
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Frontend Web}
|
||||
\begin{columns}
|
||||
\begin{column}{0.6\textwidth}
|
||||
\textbf{Technologies et organisation :}
|
||||
\begin{itemize}
|
||||
\item Javascript (jQuery) + HTML + CSS
|
||||
\item Organisation modulaire du code
|
||||
\item Style universel pour confort utilisateur
|
||||
\item Interface responsive et intuitive
|
||||
\end{itemize}
|
||||
\vspace{0.5em}
|
||||
\textbf{Fonctionnalités principales :}
|
||||
\begin{itemize}
|
||||
\item Gestion des projets timelapse
|
||||
\item Visualisation des images et vidéos
|
||||
\item Configuration des paramètres
|
||||
\item Carousel 3D animé et modulable
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.4\textwidth}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth]{out/diagrams/frontend/frontend3/frontend3.png}
|
||||
\end{center}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Application Mobile Android}
|
||||
\begin{columns}
|
||||
\begin{column}{0.6\textwidth}
|
||||
\textbf{Technologies :}
|
||||
\begin{itemize}
|
||||
\item Kotlin avec Retrofit et Glide
|
||||
\item XML pour layouts
|
||||
\item Android API native
|
||||
\end{itemize}
|
||||
\vspace{0.5em}
|
||||
\textbf{Fonctionnalités :}
|
||||
\begin{itemize}
|
||||
\item Visualisation des projets et timelapses
|
||||
\item Configuration à distance des caméras
|
||||
\item Mode hors-ligne avec synchronisation
|
||||
\item Notifications en temps réel
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.4\textwidth}
|
||||
\begin{center}
|
||||
\includegraphics[width=\textwidth]{UML Schematique android.png}
|
||||
\end{center}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Intégration et flux de données}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/global_interspec_lite/global_interspec_lite.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Communication fluide entre tous les composants
|
||||
\item Interfaces standardisées pour l'échange de données
|
||||
\item Gestion des erreurs et reprise sur incident
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Sécurité et optimisation}
|
||||
\begin{itemize}
|
||||
\item \textbf{Sécurité :}
|
||||
\begin{itemize}
|
||||
\item Authentification sécurisée
|
||||
\item Exposition sécurisée via reverse proxy
|
||||
\item Chiffrement des communications
|
||||
\item VPN et re-routage d'adresses IP
|
||||
\end{itemize}
|
||||
\item \textbf{Optimisation :}
|
||||
\begin{itemize}
|
||||
\item Adaptation de la qualité selon la connexion
|
||||
\item Mise en cache des données pour fonctionnement hors-ligne
|
||||
\item Traitement asynchrone des tâches lourdes
|
||||
\item Compression adaptative des images et vidéos
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
111
diapos/meca.tex
Normal file
111
diapos/meca.tex
Normal file
@@ -0,0 +1,111 @@
|
||||
\begin{frame}{Partie mécanique}
|
||||
\begin{itemize}
|
||||
\item Conception d'un boîtier robuste et adapté
|
||||
\item Choix des matériaux pour environnement extérieur
|
||||
\item Système de fixation modulaire et ajustable
|
||||
\item Protection des composants électroniques
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Conception mécanique}
|
||||
\begin{columns}
|
||||
\begin{column}{0.6\textwidth}
|
||||
\textbf{Caractéristiques principales :}
|
||||
\begin{itemize}
|
||||
\item Boîtier étanche IP65 (résistant aux intempéries)
|
||||
\item Support orientable pour cadrage optimal
|
||||
\item Fixation universelle (trépied, rail, mur)
|
||||
\item Accès facile aux composants pour maintenance
|
||||
\item Ventilation passive pour éviter la surchauffe
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.4\textwidth}
|
||||
\centering
|
||||
% Image du prototype électromécanique
|
||||
[Image du prototype boîtier]
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Méthodologie de conception}
|
||||
\begin{itemize}
|
||||
\item \textbf{Approche par cycle en V avec itérations}
|
||||
\begin{itemize}
|
||||
\item Phase d'analyse des besoins
|
||||
\item Spécifications techniques détaillées
|
||||
\item Conception générale et détaillée
|
||||
\item Prototypages successifs et tests
|
||||
\end{itemize}
|
||||
\item \textbf{Intégration avec la partie électronique}
|
||||
\begin{itemize}
|
||||
\item Communication constante entre équipes mécanique et électronique
|
||||
\item Conception adaptée aux contraintes d'assemblage
|
||||
\item Marges de sécurité pour ajustements finaux
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Processus de fabrication}
|
||||
\begin{itemize}
|
||||
\item \textbf{Prototypage :}
|
||||
\begin{itemize}
|
||||
\item Conception 3D sur Solidworks
|
||||
\item Impression 3D avec Bambu Lab X1S (PLA)
|
||||
\item Tests d'étanchéité et de résistance
|
||||
\item Organisation de répertoires "RELEASE" pour archiver chaque prototype
|
||||
\end{itemize}
|
||||
\item \textbf{Optimisations :}
|
||||
\begin{itemize}
|
||||
\item Réduction du poids tout en maintenant la solidité
|
||||
\item Amélioration de la ventilation interne
|
||||
\item Simplification du montage/démontage
|
||||
\item Passages de câbles optimisés
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Choix des matériaux}
|
||||
\begin{itemize}
|
||||
\item \textbf{Matériau principal : PLA}
|
||||
\begin{itemize}
|
||||
\item Facilité d'impression et précision dimensionnelle
|
||||
\item Coût raisonnable (20€/kg)
|
||||
\item Rigidité adaptée aux contraintes mécaniques
|
||||
\end{itemize}
|
||||
\item \textbf{Analyse et sélection}
|
||||
\begin{itemize}
|
||||
\item Utilisation du logiciel CES pour le choix du matériau
|
||||
\item Calculs de contraintes avec RDM6
|
||||
\item Compromis entre légèreté, résistance et coût
|
||||
\end{itemize}
|
||||
\item \textbf{Éléments complémentaires}
|
||||
\begin{itemize}
|
||||
\item Visserie standard pour faciliter maintenance
|
||||
\item Joints d'étanchéité sur mesure
|
||||
\item Supports anti-vibration pour la caméra
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Défis mécaniques rencontrés}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Défis}
|
||||
\begin{itemize}
|
||||
\item Intégration mécatronique complexe
|
||||
\item Étanchéité vs ventilation
|
||||
\item Poids vs rigidité
|
||||
\item Tolérance dimensionnelle de l'impression 3D
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Solutions}
|
||||
\begin{itemize}
|
||||
\item Communication renforcée entre équipes
|
||||
\item Systèmes d'aération avec filtres
|
||||
\item Nervures de renfort dans la conception
|
||||
\item Tests et itérations multiples
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
130
diapos/multi.tex
Normal file
130
diapos/multi.tex
Normal file
@@ -0,0 +1,130 @@
|
||||
\begin{frame}{Traitement multimédia}
|
||||
\begin{itemize}
|
||||
\item Acquisition et traitement des images
|
||||
\item Génération automatisée des timelapses
|
||||
\item Optimisation des processus de traitement
|
||||
\item Compatibilité avec différents formats et résolutions
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Acquisition d'images}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Paramètres de capture :}
|
||||
\begin{itemize}
|
||||
\item Résolution : jusqu'à HD (1920×1080)
|
||||
\item Format : JPEG optimisé
|
||||
\item Intervalles configurables via l'interface
|
||||
\item Exposition automatique adaptative
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Optimisations :}
|
||||
\begin{itemize}
|
||||
\item Adaptation auto selon les conditions
|
||||
\item Balance des blancs automatique
|
||||
\item Compression intelligente
|
||||
\item Stockage efficient des métadonnées
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Processus de capture et traitement}
|
||||
\begin{center}
|
||||
\includegraphics[width=0.8\textwidth]{out/diagrams/backend/backend3/Création de vidéo.png}
|
||||
\end{center}
|
||||
\vspace{0.3em}
|
||||
\begin{itemize}
|
||||
\item Acquisition planifiée des images
|
||||
\item Prétraitement sur la Raspberry Pi
|
||||
\item Transmission sécurisée vers le serveur
|
||||
\item Assemblage en vidéo via FFMPEG
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Traitement des images}
|
||||
\begin{itemize}
|
||||
\item \textbf{Pré-traitement sur la Raspberry Pi :}
|
||||
\begin{itemize}
|
||||
\item Validation de la qualité de l'image
|
||||
\item Compression adaptative selon la connexion
|
||||
\item Stockage temporaire sécurisé
|
||||
\item Préparation pour transmission
|
||||
\end{itemize}
|
||||
\item \textbf{Traitement sur le serveur :}
|
||||
\begin{itemize}
|
||||
\item Normalisation des images
|
||||
\item Correction de luminosité entre les prises
|
||||
\item Algorithme anti-scintillement (deflicker)
|
||||
\item Détection et élimination des images défectueuses
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Génération de timelapses}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Pipeline de traitement :}
|
||||
\begin{enumerate}
|
||||
\item Importation et vérification des images
|
||||
\item Traitement par lot avec FFMPEG
|
||||
\item Ajout d'effets et transitions
|
||||
\item Encodage optimisé (H.264/H.265)
|
||||
\item Génération de vignettes pour les interfaces
|
||||
\end{enumerate}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Options de personnalisation :}
|
||||
\begin{itemize}
|
||||
\item Vitesse de lecture ajustable
|
||||
\item Résolution de sortie configurable
|
||||
\item Options de qualité/compression
|
||||
\item Possibilité d'ajouter des titres
|
||||
\item Formats de sortie multiples
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Optimisations du traitement}
|
||||
\begin{itemize}
|
||||
\item \textbf{Performance serveur :}
|
||||
\begin{itemize}
|
||||
\item Traitement asynchrone des requêtes
|
||||
\item File d'attente pour les tâches intensives
|
||||
\item Parallélisation des opérations quand possible
|
||||
\item Cache intelligent des ressources
|
||||
\end{itemize}
|
||||
\item \textbf{Optimisation bande passante :}
|
||||
\begin{itemize}
|
||||
\item Compression adaptative selon la qualité du réseau
|
||||
\item Transfert par lots d'images
|
||||
\item Reprise automatique des transferts interrompus
|
||||
\item Priorisation des données essentielles
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Défis et solutions techniques}
|
||||
\begin{columns}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Défis :}
|
||||
\begin{itemize}
|
||||
\item Variations de luminosité entre prises
|
||||
\item Connexion réseau intermittente
|
||||
\item Ressources limitées sur la Raspberry Pi
|
||||
\item Conservation de la qualité d'image
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\begin{column}{0.5\textwidth}
|
||||
\textbf{Solutions :}
|
||||
\begin{itemize}
|
||||
\item Algorithmes de normalisation
|
||||
\item Système de mise en cache et synchronisation
|
||||
\item Optimisation du code pour faible consommation
|
||||
\item Paramètres de compression intelligents
|
||||
\end{itemize}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
Reference in New Issue
Block a user