Files
portfolio-django/data/projects.json

984 lines
70 KiB
JSON
Raw Normal View History

2026-03-31 13:10:16 +02:00
{
"projects": [
{
"title": "Beyon Motion — Contrôle de Moteur Pas-à-Pas Industriel",
"short_description": "Développement autonome d'un système complet de contrôle de moteurs pas-à-pas avec encodeur magnétique, retour de position en boucle fermée et profils d'accélération, sur Raspberry Pi Pico.",
"full_description": "Projet personnel ambitieux visant à concevoir un système de contrôle de moteur pas-à-pas de qualité industrielle, entièrement développé en autonomie.\n\nLe driver TMC2209 est piloté en UART avec manipulation directe des registres bit à bit pour configurer le courant, le microstepping et les protections thermiques. L'encodeur magnétique AS5600L (I2C) assure un retour de position haute résolution avec gestion du dépassement de plage (wraparound 4096 points). Une classe SmartMotor implémente un algorithme PID de suivi de position avec profils d'accélération/décélération configurables.\n\nLe projet est développé sur Raspberry Pi Pico avec le SDK officiel C/C++ et un système de build CMake, ainsi qu'en MicroPython pour le prototypage rapide. L'architecture logicielle multicouche (HAL → Driver → SmartMotor) garantit la maintenabilité et la réutilisabilité du code.",
"problem": "Concevoir un système de contrôle de mouvement précis et autonome, capable de piloter un moteur pas-à-pas industriel avec retour de position, sans dépendance à des bibliothèques tierces.",
"solution": "Architecture logicielle en couches : couche HAL bas niveau, driver TMC2209 sur mesure avec contrôle des registres UART, et classe SmartMotor avec PID intégré pour le suivi de trajectoire.",
"outcome": "Système fonctionnel avec précision de positionnement < 1° et profils d'accélération configurables, réutilisable sur tout projet de robotique ou d'automatisme.",
"technologies": [
"C / C++",
"MicroPython",
"Raspberry Pi Pico",
"CMake",
"Capteurs",
"I2C",
"UART"
],
"highlights": [
"Pilotage bas niveau du driver TMC2209 par manipulation directe des registres UART",
"Implémentation d'un algorithme PID de contrôle de position avec profils d'accélération",
"Gestion de l'encodeur magnétique AS5600L avec détection du wraparound de position",
"Architecture logicielle multicouche : HAL → Driver → SmartMotor",
"Projet entièrement réalisé en autonomie, de la conception à l'implémentation"
],
"images": [
"/static/images/Smartmotor.jpg",
"/static/images/Smartmotor2.jpg",
"/static/images/Smartmotor3.jpg"
],
"category": "Systèmes Embarqués",
"context": "Projet personnel",
"period": "2023 2024",
"complexity": "Avancé",
"role": "Concepteur & Développeur principal",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": true
},
{
"title": "Safran — Interface de Contrôle Siège Motorisé (SHIFT_UI)",
"short_description": "Application Qt multi-threadée développée chez Safran pour le contrôle temps réel d'un siège motorisé connecté, intégrant CAN bus, vision par ordinateur et retour vocal.",
"full_description": "Dans le cadre d'une mission chez Safran, groupe industriel de premier plan dans l'aéronautique et la défense, j'ai participé au développement d'une application de contrôle complexe pour un siège motorisé connecté.\n\nL'application Qt C++ intègre plusieurs sous-systèmes critiques : le contrôle d'un moteur EPOS4 via une interface dédiée, une couche de communication CAN bus pour les actionneurs du siège, un module de détection de gestes par OpenCV (reconnaissance faciale et gestuelle), un système de retour vocal (SpeakPhone), et une couche base de données pour la persistance des états.\n\nL'architecture multi-threadée garantit la réactivité de l'interface (signal/slot Qt) pendant les opérations hardware longues. Ce projet m'a exposé aux contraintes réelles du développement industriel : timing critique, robustesse aux pannes matérielles et intégration de multiples systèmes hétérogènes.",
"problem": "Développer une interface de contrôle unifiée capable de piloter simultanément des actionneurs mécaniques, de traiter des données vidéo en temps réel et de maintenir une interface utilisateur réactive.",
"solution": "Architecture Qt multi-threadée avec séparation claire des responsabilités : thread UI, thread CAN bus, thread vision, thread audio. Communication inter-threads via signaux/slots Qt.",
"outcome": "Application desktop industrielle stable, déployée et testée en conditions réelles chez Safran, capable de gérer plusieurs flux de données simultanés sans perte de réactivité.",
"technologies": [
"C / C++",
"Qt Framework",
"CAN Bus",
"OpenCV",
"SQLite"
],
"highlights": [
"Intégration multi-systèmes : contrôle moteur + CAN bus + vision par ordinateur + audio",
"Architecture Qt signal/slot pour une interface réactive même sous charge hardware",
"Communication CAN bus pour le pilotage d'actionneurs en temps réel",
"Module OpenCV de détection de gestes intégré dans une application desktop industrielle",
"Expérience professionnelle réelle au sein d'un grand groupe industriel (Safran)"
],
"images": [
"/static/images/Shift_ui.jpeg"
],
"category": "Informatique Industrielle",
"context": "Mission professionnelle — Safran",
"period": "2023 2024",
"complexity": "Expert",
"role": "Développeur logiciel embarqué",
"github_url": "",
"demo_url": "",
"featured": true
},
{
"title": "Safran — Supervision Industrielle Temps Réel (IAMS)",
"short_description": "Serveur de supervision industrielle développé chez Safran avec Flask et SocketIO, diffusant des données capteurs en temps réel vers plusieurs clients simultanément via WebSocket.",
"full_description": "Dans le cadre de ma mission chez Safran, j'ai développé le backend d'un système de supervision industrielle (IAMS — Intelligent Application Management System).\n\nLe serveur Flask + SocketIO gère la diffusion temps réel de données vers plusieurs clients connectés simultanément, grâce à un système de rooms SocketIO permettant un routage fin des informations. Des threads d'acquisition en arrière-plan collectent et traitent les données de capteurs sans bloquer le serveur principal.\n\nL'architecture prévoit une montée en charge fluide et une gestion robuste des déconnexions clients. Ce projet illustre ma capacité à concevoir des architectures backend orientées industrie, avec les contraintes de fiabilité et de temps réel que cela implique.",
"problem": "Centraliser et diffuser en temps réel des données issues de plusieurs sources industrielles vers des interfaces de supervision multiples, sans latence et avec haute disponibilité.",
"solution": "Serveur Flask + SocketIO avec rooms de broadcast, threads d'acquisition découplés et gestion robuste des connexions/déconnexions clients.",
"outcome": "Infrastructure de supervision opérationnelle, déployée chez Safran, capable de servir plusieurs opérateurs simultanément avec une latence inférieure à la seconde.",
"technologies": [
"Python",
"Flask",
"SocketIO",
"WebSocket",
"REST API"
],
"highlights": [
"Diffusion temps réel vers plusieurs clients simultanés via WebSocket (SocketIO rooms)",
"Architecture robuste avec gestion des déconnexions et reconnexions clients",
"Threads d'acquisition découplés du serveur principal pour éviter les blocages",
"Déployé en environnement industriel réel chez Safran",
"Conception orientée scalabilité et fiabilité industrielle"
],
"images": [
"/static/images/IAMS.jpeg",
"/static/images/IAMS2.jpeg",
"/static/images/IAMS3.jpeg",
"/static/images/IAMS4.jpeg"
],
"category": "Informatique Industrielle",
"context": "Mission professionnelle — Safran",
"period": "2023 2024",
"complexity": "Avancé",
"role": "Développeur backend",
"github_url": "",
"demo_url": "",
"featured": true
},
{
"title": "Primadiag — Firmware Embarqué Raspberry Pi Pico",
"short_description": "Développement et portage de firmware MicroPython sur Raspberry Pi Pico pour Primadiag, avec couches d'abstraction hardware (HAL) personnalisées et outils de monitoring terrain.",
"full_description": "Lors de ma mission chez Primadiag, entreprise spécialisée dans le diagnostic électronique, j'ai travaillé au portage et au développement de firmware embarqué sur Raspberry Pi Pico.\n\nLe projet inclut la création de couches d'abstraction hardware (HAL) multi-version pour garantir la compatibilité avec différentes révisions de cartes, la définition de configurations de cartes personnalisées (board.json, pins.csv), et l'implémentation de modules de communication série avancés. Un outil de monitoring temps réel permet l'analyse des données de capteurs directement sur le terrain.\n\nLe build system CMake permet la compilation croisée pour différentes variantes de cartes. Ce projet m'a donné une maîtrise approfondie du cycle complet de développement firmware : de la définition hardware jusqu'au déploiement terrain.",
"problem": "Porter MicroPython sur une carte Raspberry Pi Pico personnalisée tout en maintenant la compatibilité entre plusieurs révisions hardware, avec un outillage de monitoring terrain.",
"solution": "Couches HAL versionnées, configurations de cartes externalisées (board.json), build CMake cross-compilation et module de diagnostic série dédié au débogage terrain.",
"outcome": "Firmware stable déployé en production, avec réduction significative du temps de mise à jour entre révisions de cartes grâce aux HAL versionnées.",
"technologies": [
"MicroPython",
"C / C++",
"CMake",
"Raspberry Pi Pico",
"UART",
"I2C",
"SPI",
"Wi-Fi"
],
"highlights": [
"Portage MicroPython avec création de couches HAL multi-version pour compatibilité cartes",
"Système de build CMake avec compilation croisée pour variantes hardware",
"Modules de communication série UART pour diagnostic terrain",
"Monitoring temps réel de capteurs en environnement de production",
"Cycle complet firmware : spécifications → développement → tests → déploiement terrain"
],
"images": [
"/static/images/ACSIA.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Mission professionnelle — Primadiag",
"period": "2022 2023",
"complexity": "Avancé",
"role": "Développeur firmware",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Primadiag — développement dune nouvelle architecture machine",
"short_description": "Développement dune nouvelle architecture machine (Debbie V3) avec protocole de communication custom (Dilbert) et modules moteurs intelligents pilotés en MicroPython.",
"problem": "Concevoir une nouvelle génération de machine modulaire avec communication fiable entre microcontrôleurs, contrôle moteur précis et compatibilité avec plusieurs modules embarqués.",
"solution": "Mise en place dune architecture logicielle (HAL V3), développement dun protocole UART custom (Dilbert), création de SmartMotors pilotés via UART avec SoftUART et PIO, et intégration dencodeurs pour gestion de position.",
"outcome": "Système fonctionnel avec communication fiable (≈100% des messages), moteurs contrôlés avec précision et architecture modulaire prête pour la production.",
"impact": [
"Amélioration de la fiabilité des communications embarquées",
"Standardisation des modules via protocole Dilbert",
"Réduction des erreurs moteurs grâce aux encodeurs et sécurités"
],
"challenges": [
"Gestion des pertes de messages en UART",
"Limitation hardware du Raspberry Pi Pico (UART disponibles)",
"Synchronisation communication et traitement temps réel",
"Gestion thermique et stabilité des drivers moteurs"
],
"architecture": [
"Protocole Dilbert (UART RS232 custom)",
"HAL V3 pour pilotage global machine",
"SmartMotor avec RP2040 + TMC2209",
"SoftUART basé sur PIO",
"Encodeurs (optique et magnétique I2C)",
"Organisation projet via Azure DevOps (repos + branches)"
],
"technologies": [
"MicroPython",
"C / C++",
"Raspberry Pi Pico",
"UART",
"PlatformIO",
"I2C",
"Capteurs"
],
"highlights": [
"Développement dun protocole de communication custom (Dilbert)",
"Implémentation dun SoftUART via PIO pour contourner les limites hardware",
"Contrôle moteur avancé avec gestion vitesse + position (boucle ouverte/fermée)",
"Intégration dencodeurs haute précision (optique et magnétique)",
"Tests intensifs de robustesse (plusieurs heures en conditions réelles)",
"Sécurisation hardware avec capteurs de fin de course et logique de protection"
],
"images": [
"/static/images/Debbie.jpeg",
"/static/images/Debbie2.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Projet R&D — Primadiag",
"complexity": "Avancé",
"role": "Développeur systèmes embarqués"
},
{
"title": "Primadiag — Programme Prodigy",
"short_description": "Conception dune architecture embarquée complète avec protocole de communication custom (Dilbert) et modules moteurs intelligents pour une machine industrielle modulaire.",
"problem": "Développer une nouvelle génération de machine capable de gérer plusieurs modules (moteurs, capteurs, pompe) avec une communication fiable, une architecture scalable et un contrôle moteur précis en environnement embarqué.",
"solution": "Mise en place dune architecture globale (HAL V3), développement du protocole UART custom Dilbert avec gestion des collisions et priorités via PIO, création de SmartMotors pilotés en UART (SoftUART), intégration dencodeurs pour contrôle de position et sécurisation via capteurs physiques.",
"outcome": "Communication fiable proche de 100%, contrôle moteur précis (vitesse + position), système modulaire opérationnel validé par tests longue durée en conditions réelles.",
"impact": [
"Fiabilisation des communications entre modules embarqués",
"Architecture modulaire facilitant lévolution de la machine",
"Amélioration de la précision et sécurité des mouvements moteurs"
],
"challenges": [
"Pertes de messages en communication UART (≈50% initialement)",
"Limitation matérielle des UART sur RP2040",
"Gestion temps réel entre traitement et réception de données",
"Stabilité thermique des drivers moteurs"
],
"architecture": [
"Protocole Dilbert (UART RS232 full duplex)",
"HAL V3 pour pilotage global",
"SmartMotor (RP2040 + TMC2209)",
"SoftUART via PIO et state machines",
"Encodeurs optiques et magnétiques (I2C)",
"Organisation projet via Azure DevOps (repos, branches, CI)"
],
"technologies": [
"MicroPython",
"C / C++",
"Raspberry Pi Pico",
"UART",
"PlatformIO",
"I2C",
"Capteurs"
],
"highlights": [
"Développement dun protocole de communication embarqué (Dilbert)",
"Implémentation dinterruptions PIO pour fiabilité temps réel",
"Création dun SoftUART pour contourner les limites hardware",
"Contrôle moteur avancé (vitesse, position, accélération)",
"Intégration dencodeurs pour boucle fermée",
"Tests de robustesse sur plusieurs heures en conditions réelles",
"Mise en place de sécurités hardware (fin de course, home)"
],
"images": [
"/static/images/Prodigy.jpeg",
"/static/images/Prodigy2.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Projet R&D — Primadiag",
"period": "2022 2023",
"complexity": "Avancé",
"role": "Développeur systèmes embarqués"
},
{
"title": "Stitch — Environnement de déploiement & production embarquée",
"short_description": "Développement dun environnement complet de production et maintenance pour modules embarqués, incluant programmation automatique, tests, calibration et SAV.",
"problem": "Industrialiser le déploiement et la maintenance des modules embarqués en garantissant rapidité, automatisation et fiabilité pour la production et le support technique.",
"solution": "Création dun environnement centralisé permettant la programmation automatique via USB, lexécution de tests et diagnostics via Dilbert, lautomatisation de la calibration (pipettes) et une interface web connectée aux ports COM.",
"outcome": "Outil unifié facilitant la production, réduisant le temps de déploiement et permettant une maintenance rapide et efficace des modules et machines.",
"impact": [
"Réduction du temps de programmation et de calibration",
"Centralisation des outils de production et de maintenance",
"Amélioration de la fiabilité des tests et du diagnostic SAV"
],
"challenges": [
"Automatisation complète du flash firmware sur microcontrôleurs",
"Connexion des ports COM à une interface web",
"Standardisation des tests pour différents modules",
"Intégration production + SAV dans un seul outil"
],
"architecture": [
"Programmation firmware via USB (RP2040)",
"Communication Dilbert pour tests et diagnostics",
"Interface web connectée au hardware (Chrome + COM)",
"Système de calibration automatisé (balance + série)",
"Mallette physique intégrée (Raspberry Pi + écran + alimentation)"
],
"technologies": [
"MicroPython",
"Python",
"UART",
"JavaScript",
"Raspberry Pi",
"Raspberry Pi Pico"
],
"highlights": [
"Programmation automatique des microcontrôleurs via USB",
"Développement dune interface web connectée au hardware",
"Automatisation de la calibration gravimétrique des pipettes",
"Centralisation des outils de test, production et SAV",
"Création dune mallette portable pour déploiement terrain"
],
"images": [
"/static/images/Stitch.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Projet R&D — Primadiag",
"complexity": "Avancé",
"role": "Développeur systèmes embarqués"
},
{
"title": "Pélican — Système de certification et contrôle de pipettes connectées",
"short_description": "Développement dun système connecté pour le contrôle, la certification et la traçabilité de pipettes de laboratoire via interface web et microcontrôleur ESP32.",
"problem": "Permettre la certification externe (COFRAC) de pipettes sans machine propriétaire, avec un outil portable, précis et connecté pour contrôler, suivre et enregistrer les tests.",
"solution": "Création dun système complet combinant une poignée ergonomique pilotée par ESP32, une interface web connectée à un serveur distant, une base de données de suivi et un contrôle moteur précis via driver stepper.",
"outcome": "Prototype fonctionnel permettant le pilotage des pipettes, la traçabilité des tests et lautomatisation des processus de certification, utilisé en interne pour validation avant déploiement.",
"impact": [
"Ouverture à la certification externe des pipettes (COFRAC)",
"Centralisation des données de test et de traçabilité",
"Amélioration de lergonomie et de lutilisation terrain"
],
"challenges": [
"Connexion temps réel entre microcontrôleur, interface web et base de données",
"Conception dune interface utilisateur adaptée aux besoins métier",
"Pilotage précis de moteurs via microcontrôleur limité",
"Adaptation aux contraintes des laboratoires externes"
],
"architecture": [
"ESP32 (WiFi + Bluetooth) pour contrôle embarqué",
"Driver moteur DRV8834 pour pilotage des pipettes",
"Serveur distant avec base SQLite3",
"Interface web (HTML/CSS/JS + Bootstrap)",
"API PHP pour communication front/back",
"Communication WiFi entre tablette et microcontrôleur"
],
"technologies": [
"C / C++",
"ESP32",
"HTML / CSS / JS",
"CSS",
"SQLite",
"Wi-Fi"
],
"highlights": [
"Développement dun système complet IoT (hardware + web + backend)",
"Création dune interface web interactive pour pilotage et suivi",
"Implémentation dune base de données pour traçabilité des pipettes",
"Conception dune poignée ergonomique avec prototypes 3D",
"Pilotage moteur et gestion des capteurs embarqués",
"Communication temps réel entre tablette, serveur et microcontrôleur"
],
"images": [
"/static/images/Pélican2.jpeg",
"/static/images/Pélican.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Projet R&D — Primadiag",
"period": "2021 2022",
"complexity": "Avancé",
"role": "Développeur embarqué & full-stack IoT"
},
{
"title": "Imprimante 3D — Reprise, configuration et optimisation système",
"short_description": "Mise en service, configuration et optimisation dune imprimante 3D open-source basée sur Raspberry Pi et Smoothieboard, incluant hardware, software et calibration.",
"problem": "Reprendre un système dimprimante 3D existant non fonctionnel et assurer sa mise à jour, sa configuration réseau, la gestion des composants matériels et loptimisation des impressions.",
"solution": "Configuration complète du système (Raspberry Pi + OctoPrint + Smoothieboard), mise en place du réseau, paramétrage des GPIO, intégration des capteurs et périphériques, et optimisation des impressions via calibration et tuning logiciel.",
"outcome": "Imprimante fonctionnelle capable de réaliser des impressions stables, avec monitoring à distance, gestion des capteurs et contrôle des éléments chauffants et moteurs.",
"impact": [
"Mise en service dun système complet dimpression 3D",
"Accès à distance via interface web (OctoPrint)",
"Amélioration de la qualité et stabilité des impressions",
"Automatisation des contrôles (température, filament, etc.)"
],
"challenges": [
"Reprise dun système existant partiellement configuré",
"Configuration réseau et accès distant sécurisé",
"Synchronisation Raspberry Pi ↔ Smoothieboard",
"Gestion des GPIO et des périphériques (relais, capteurs, caméra)",
"Optimisation des impressions (offset, extrusion, plugins)"
],
"architecture": [
"Raspberry Pi 3 avec OctoPrint (interface web)",
"Smoothieboard pour contrôle moteurs et capteurs",
"Communication entre Raspberry Pi et carte de contrôle",
"Gestion via GPIO (relais, LED, capteurs filament)",
"Webcam pour monitoring et timelapse",
"Alimentations 12V et 24V avec carte relais"
],
"technologies": [
"Linux",
"Python",
"Raspberry Pi"
],
"highlights": [
"Configuration réseau avec IP fixe et accès distant via SSH",
"Mise à jour complète du système (OS, OctoPrint, firmware)",
"Configuration avancée des GPIO pour contrôle des périphériques",
"Gestion des capteurs de rupture de filament avec arrêt automatique",
"Intégration dune webcam pour supervision en temps réel",
"Calibration et optimisation des impressions 3D",
"Analyse des problèmes dextrusion et amélioration qualité",
"Gestion de la puissance via carte relais et alimentation multi-voltages"
],
"images": [
"/static/images/Imprimante.jpeg",
"/static/images/Imprimante2.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Projet tutoré",
"period": "Formation",
"complexity": "Intermédiaire à avancé",
"role": "Intégration système & configuration embarquée"
},
{
"title": "Primadiag — HAL v3 Web Interface (Serveur de contrôle machine)",
"short_description": "Serveur web FastAPI pilotant une machine de laboratoire via le protocole Dilbert, avec interface de calibration, gestion des plateaux (Debbie/Zelda) et communication temps réel WebSocket.",
"full_description": "Développement d'un serveur web de contrôle complet pour les machines de laboratoire Primadiag, constituant la couche logicielle HAL v3 (Hardware Abstraction Layer).\n\nL'architecture FastAPI gère la communication avec la machine via le protocole Dilbert (UART custom), les sessions de contrôle, et expose une API REST + WebSocket à l'interface web. Le module Protocol traduit les commandes haut niveau (move, home, dispense) en séquences Dilbert pour les actionneurs (moteurs Z1/Z2/XY, pompes, capteurs).\n\nLes sessions utilisent un FakeBlueboxTerminal pour le développement offline et un Terminal série réel en production. L'architecture permet de contrôler différents types de machines (Debbie, Zelda) en changeant simplement la configuration dans setenv.py.",
"problem": "Créer une interface logicielle unifiée pour contrôler plusieurs modèles de machines de laboratoire via le même serveur web, avec abstraction des différences hardware.",
"solution": "Serveur FastAPI avec WebSocket, couche Protocol de traduction commandes → Dilbert UART, et architecture configurable (setenv.py) pour multi-modèles machines.",
"outcome": "Interface de contrôle web unifiée pour les machines Primadiag, utilisée en développement et production pour le pilotage des automates.",
"technologies": [
"Python",
"FastAPI",
"WebSocket",
"RS485",
"UART",
"HTML / CSS / JS"
],
"highlights": [
"Serveur FastAPI avec API REST + WebSocket pour contrôle machine temps réel",
"Couche Protocol de traduction commandes haut niveau → Dilbert UART",
"Architecture multi-modèles (Debbie, Zelda) via configuration centralisée",
"Mode offline (FakeBlueboxTerminal) pour développement sans hardware",
"Interface web embarquée avec templates Jinja2"
],
"images": [],
"category": "Informatique Industrielle",
"context": "Projet R&D — Primadiag",
"period": "2023",
"complexity": "Avancé",
"role": "Développeur full-stack embarqué",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Primadiag — ELSA (Logiciel de Fin de Production)",
"short_description": "Application Windows VB.NET de fin de production pour les machines Primadiag : configuration machine via port série, lecture des encodeurs XYZ, paramétrage et validation avant expédition.",
"full_description": "Développement d'un logiciel Windows desktop utilisé en fin de ligne de production chez Primadiag pour configurer, tester et valider chaque machine avant expédition client.\n\nL'application VB.NET gère la connexion port série avec les machines (Raspberry Pi Pico), la configuration des paramètres machine (type de machine, numéro de série, opérateur), la lecture et la configuration des encodeurs XYZ (optiques et magnétiques), et les tests de validation finale. L'interface multi-formulaires permet de naviguer entre les différentes étapes de configuration.\n\nCe logiciel est directement utilisé sur la chaîne de production, ce qui implique des contraintes fortes de robustesse, de clarté d'interface et de fiabilité des communications série.",
"problem": "Fournir aux techniciens de production un outil unique pour configurer, paramétrer et valider chaque machine avant expédition, avec traçabilité des réglages.",
"solution": "Application Windows VB.NET multi-formulaires avec communication série robuste, configuration des encodeurs et paramètres machine, et interface guidée pour les opérateurs.",
"outcome": "Logiciel déployé en production chez Primadiag, réduisant les erreurs de configuration et standardisant le processus de fin de production.",
"technologies": [
"C / C++",
"VB.NET",
"UART"
],
"highlights": [
"Application desktop VB.NET déployée en production réelle",
"Communication série robuste avec les cartes Raspberry Pi Pico",
"Configuration et lecture des encodeurs XYZ (optique et magnétique)",
"Interface multi-formulaires guidée pour les opérateurs de production",
"Traçabilité des configurations machine (type, numéro série, opérateur)"
],
"images": [
"/static/images/Elsa.jpeg"
],
"category": "Informatique Industrielle",
"context": "Projet R&D — Primadiag",
"period": "2022 2023",
"complexity": "Intermédiaire",
"role": "Développeur logiciel industriel",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Primadiag — ACSIA Monitor (Monitoring Série Temps Réel)",
"short_description": "Logiciel Windows VB.NET de monitoring temps réel des machines Primadiag via port série : visualisation des messages Dilbert, statistiques de fiabilité, arrêt d'urgence et analyse des communications.",
"full_description": "Développement d'un outil de monitoring desktop permettant aux équipes R&D de Primadiag d'analyser en temps réel les communications série entre les modules d'une machine.\n\nL'application VB.NET multi-threadée gère deux threads d'acquisition série simultanés pour surveiller différents canaux de communication. Elle affiche les messages reçus (protocole Dilbert) avec statistiques de fiabilité (comptage des messages valides/invalides), et offre des fonctions d'arrêt d'urgence. Un système de filtrage permet d'isoler les messages spécifiques pour le debug.\n\nCet outil a été essentiel pour mettre au point et optimiser le protocole Dilbert, passer de ~50% à ~100% de fiabilité des communications entre modules embarqués.",
"problem": "Analyser en temps réel les communications série entre modules embarqués pour identifier et corriger les pertes de messages dans le protocole Dilbert.",
"solution": "Application VB.NET multi-threadée avec double acquisition série simultanée, statistiques de fiabilité, filtrage des messages et visualisation temps réel.",
"outcome": "Outil de debug ayant permis d'optimiser le protocole Dilbert et d'atteindre ~100% de fiabilité des communications entre modules.",
"technologies": [
"C / C++",
"VB.NET",
"UART"
],
"highlights": [
"Double acquisition série simultanée via multi-threading VB.NET",
"Statistiques temps réel de fiabilité des communications Dilbert",
"Outil clé dans l'optimisation du protocole (50% → 100% fiabilité)",
"Visualisation et filtrage des messages pour debug embarqué",
"Utilisé quotidiennement par l'équipe R&D Primadiag"
],
"images": [
"/static/images/ACSIA.jpeg"
],
"category": "Informatique Industrielle",
"context": "Projet R&D — Primadiag",
"period": "2022 2023",
"complexity": "Intermédiaire",
"role": "Développeur logiciel industriel",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Primadiag — Vial Finder (Localisation de flacons par code-barres)",
"short_description": "Application web PHP/JavaScript pour localiser visuellement des flacons dans un automate de laboratoire Primadiag par scan de code-barres, avec représentation SVG du plateau.",
"full_description": "Développement d'une application web interne pour les opérateurs de laboratoire permettant de localiser instantanément un flacon dans un automate Primadiag en scannant son code-barres.\n\nL'interface Bootstrap affiche un formulaire de recherche et, après requête API PHP vers la base SQLite, génère dynamiquement une représentation SVG du plateau avec la position du flacon mise en évidence. La librairie Tabulator affiche les données tabulaires avec tri et filtrage.\n\nCette application simplifie considérablement le travail des opérateurs en supprimant la recherche manuelle des flacons dans les automates multi-positions.",
"problem": "Permettre aux opérateurs de localiser rapidement un flacon spécifique dans un automate de laboratoire contenant des centaines de positions, sans chercher manuellement.",
"solution": "Application web Bootstrap avec formulaire de recherche par code-barres, API PHP/SQLite pour la requête de position, et représentation SVG dynamique du plateau.",
"outcome": "Outil opérationnel réduisant significativement le temps de localisation des flacons, adopté par les opérateurs de laboratoire Primadiag.",
"technologies": [
"JavaScript",
"CSS",
"SQLite"
],
"highlights": [
"Visualisation SVG dynamique de la position du flacon dans le plateau",
"Recherche par code-barres avec API PHP/SQLite",
"Interface Bootstrap responsive utilisée par les opérateurs en production",
"Intégration de la librairie Tabulator pour affichage des données tabulaires",
"Application interne Primadiag adoptée en environnement de production"
],
"images": [
"/static/images/VialFinder.jpeg"
],
"category": "Informatique Industrielle",
"context": "Projet R&D — Primadiag",
"period": "2022 2023",
"complexity": "Intermédiaire",
"role": "Développeur full-stack web",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Primadiag — Zelda (Calibrateur web d'automate de laboratoire)",
"short_description": "Interface web de calibration manuelle et automatique des positions des outils (Z1, Z2, XY) d'un automate de laboratoire Primadiag, avec représentation visuelle du plateau et communication WebSocket.",
"full_description": "Développement d'une interface web de calibration pour les automates de laboratoire Primadiag, permettant aux techniciens de définir et valider les positions précises de chaque outil (bras Z1, Z2, plateau XY).\n\nL'interface HTML/JavaScript/Bootstrap affiche une représentation visuelle du plateau avec ses puits et positions. Deux modes sont disponibles : calibration automatique (séquence automatisée) et calibration manuelle (contrôle pas-à-pas de chaque axe). La communication avec la machine se fait via WebSocket vers le serveur HAL v3.\n\nCe type d'outil est critique pour garantir la précision des opérations de l'automate (pipetage, transport de flacons), avec des tolérances de l'ordre du dixième de millimètre.",
"problem": "Permettre aux techniciens de calibrer précisément les positions des outils d'un automate de laboratoire, avec un retour visuel en temps réel et des modes automatique et manuel.",
"solution": "Interface web Bootstrap + JavaScript avec représentation SVG du plateau, communication WebSocket vers HAL v3, et modes de calibration automatique/manuelle des axes.",
"outcome": "Outil de calibration web utilisé par les techniciens Primadiag pour garantir la précision des automates, avec réduction du temps de calibration.",
"technologies": [
"HTML / CSS / JS",
"CSS",
"JavaScript",
"WebSocket",
"Python"
],
"highlights": [
"Représentation visuelle SVG interactive du plateau et des positions",
"Modes calibration automatique et manuelle des axes (Z1, Z2, XY)",
"Communication temps réel via WebSocket vers le serveur HAL v3",
"Précision sub-millimétrique pour les opérations de pipetage",
"Interface web sans installation, accessible depuis n'importe quel navigateur"
],
"images": [
"/static/images/Zelda.jpeg",
"/static/images/Zelda2.jpeg"
],
"category": "Informatique Industrielle",
"context": "Projet R&D — Primadiag",
"period": "2023",
"complexity": "Avancé",
"role": "Développeur full-stack web",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Primadiag — PyBash (Terminal Python pour microcontrôleur)",
"short_description": "Outil REPL Python permettant d'interagir en temps réel avec le firmware MicroPython d'un Raspberry Pi Pico via port série : flash OTA, exécution de scripts, monitoring et debug avancé.",
"full_description": "Développement d'un outil de développement avancé permettant d'interagir en temps réel avec les modules embarqués Primadiag (Raspberry Pi Pico MicroPython) depuis un terminal PC.\n\nPyBash émule un REPL (Read-Eval-Print Loop) via port série, avec des fonctionnalités avancées : envoi de scripts Python compilés (mpy-cross), flash OTA des modules sans câble USB de reprogrammation, monitoring des sorties série, et gestion des sessions avec historique des commandes (readline). L'affichage tabulate permet une visualisation claire des données.\n\nCet outil a transformé le workflow de développement chez Primadiag en permettant de tester et mettre à jour les modules sans démonter les machines.",
"problem": "Accélérer le développement firmware en permettant le test, le debug et la mise à jour OTA des modules MicroPython Pico sans démontage ni câblage USB répété.",
"solution": "Terminal Python avec REPL série, compilation mpy-cross intégrée, flash OTA des scripts et monitoring en temps réel des sorties des modules.",
"outcome": "Réduction drastique du temps de développement et de debug firmware, avec mise à jour OTA des modules Pico depuis le PC sans intervention physique.",
"technologies": [
"Python",
"MicroPython",
"UART",
"Raspberry Pi Pico"
],
"highlights": [
"REPL Python via port série pour interaction temps réel avec le firmware Pico",
"Compilation et envoi OTA de scripts MicroPython compilés (mpy-cross)",
"Flash firmware à distance sans démontage ni câble USB de reprogrammation",
"Historique des commandes et affichage tabulaire des données",
"Outil développé en interne, adopté par toute l'équipe R&D"
],
"images": [
"/static/images/pybash.jpeg"
],
"category": "Systèmes Embarqués",
"context": "Projet R&D — Primadiag",
"period": "2023",
"complexity": "Avancé",
"role": "Développeur outils & firmware",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Déshumidificateur Connecté (LP MRIT — Projet IoT Android + ESP8266)",
"short_description": "Système IoT complet développé en Licence Professionnelle : ESP8266 avec capteurs BME280 et ultrason, serveur web asynchrone embarqué, et application Android de monitoring et contrôle.",
"full_description": "Projet de Licence Professionnelle MRIT consistant à développer un système de déshumidification connecté complet, de l'électronique à l'application mobile.\n\nLe firmware ESP8266 (C/Arduino) embarque un serveur web asynchrone (ESPAsyncWebServer + LittleFS) servant une interface HTML. Il gère les capteurs BME280 (température, humidité, pression) et HC-SR04 (niveau d'eau par ultrasons), avec calcul de moyennes glissantes pour lisser les mesures. La connexion Wi-Fi est automatiquement configurée via une interface portail captif.\n\nL'application Android Java (Gradle) permet de monitorer les données des capteurs et de contrôler la ventilation via un Seek Bar. La communication entre l'app et l'ESP8266 se fait via requêtes HTTP/REST. Ce projet couvre l'ensemble de la chaîne IoT : capteurs → firmware → réseau → application mobile.",
"problem": "Surveiller et contrôler automatiquement un système de déshumidification depuis un smartphone, avec acquisition multi-capteurs et interface mobile intuitive.",
"solution": "Firmware ESP8266 avec serveur web asynchrone + capteurs BME280/HC-SR04, portail captif Wi-Fi, et application Android Java communicant via REST HTTP.",
"outcome": "Système IoT complet et fonctionnel : monitoring température/humidité/niveau d'eau en temps réel depuis l'application Android, contrôle de la ventilation.",
"technologies": [
"C / C++",
"ESP32",
"Capteurs",
"MicroPython",
"Java",
"Wi-Fi"
],
"highlights": [
"Chaîne IoT complète : capteurs → ESP8266 → Wi-Fi → application Android",
"Serveur web asynchrone embarqué sur ESP8266 avec LittleFS",
"Portail captif Wi-Fi pour configuration automatique de la connexion réseau",
"Application Android Java avec contrôle de la ventilation via Seek Bar",
"Capteurs BME280 (T°/humidité/pression) et HC-SR04 (niveau eau ultrason)"
],
"images": [
"/static/images/Deshumidificateur.jpeg",
"/static/images/Deshumidificateur2.jpeg",
"/static/images/Deshumidificateur3.jpeg"
],
"category": "IoT & Domotique",
"context": "Projet académique — Licence Professionnelle MRIT",
"period": "2021 2022",
"complexity": "Intermédiaire",
"role": "Développeur IoT & Mobile",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "HSBG AI — Assistant IA Temps Réel pour Hearthstone Battlegrounds",
"short_description": "Assistant IA hybride pour Hearthstone Battlegrounds : capture d'écran automatique, OCR en temps réel, moteur de décision combinant heuristiques et LLM local (Ollama), interface React moderne.",
"full_description": "Projet personnel ambitieux combinant vision par ordinateur, intelligence artificielle et développement full-stack pour assister un joueur de Hearthstone Battlegrounds en temps réel.\n\nLe système capture automatiquement l'état du jeu via des screenshots ciblés (librairie mss) de zones spécifiques de l'écran (or disponible, tier de taverne, HP du héros, serviteurs). Un moteur OCR (Tesseract + Pillow) extrait le texte et reconstruit un GameState structuré.\n\nLe moteur de décision fonctionne en mode hybride : un HeuristicEngine basé sur des règles métier codées (tripler des serviteurs, gestion de l'or, positionnement) fournit des décisions rapides et déterministes, tandis qu'un LLMAdvisor utilise un modèle local Ollama (qwen2.5-coder) pour des conseils contextuels enrichis. Les deux sorties sont fusionnées en un FullAdvice priorisé.\n\nL'architecture backend FastAPI gère plusieurs routes (game state, advice, learning, websocket) et un système de feedback permet à l'IA d'apprendre des parties. Le frontend React/Vite/Tailwind CSS affiche les conseils en temps réel via WebSocket.",
"problem": "Analyser en temps réel l'état d'une partie de jeu complexe et fournir des conseils stratégiques pertinents, sans accès à l'API du jeu, uniquement par analyse visuelle de l'écran.",
"solution": "Pipeline vision → OCR → analyse d'état → moteur de décision hybride (heuristiques + LLM local) → interface WebSocket temps réel. Chaque couche est découplée et indépendante.",
"outcome": "Assistant fonctionnel capable d'analyser l'état du jeu en moins d'une seconde, de proposer des décisions priorisées avec justification, et d'apprendre des retours utilisateur.",
"technologies": [
"Python",
"FastAPI",
"WebSocket",
"Ollama",
"OCR (Tesseract)",
"React",
"JavaScript",
"CSS",
"SQLite"
],
"highlights": [
"Capture et analyse visuelle automatique de l'écran du jeu via OCR (Tesseract + mss)",
"Moteur de décision hybride : heuristiques déterministes + LLM local Ollama",
"Architecture FastAPI multi-routes avec WebSocket pour retour temps réel",
"Système de feedback et d'apprentissage pour améliorer les décisions au fil des parties",
"Frontend React/Vite/Tailwind CSS avec affichage des conseils en temps réel",
"Projet entièrement conçu et développé en autonomie"
],
"images": [],
"category": "Intelligence Artificielle",
"context": "Projet personnel",
"period": "2025 2026",
"complexity": "Avancé",
"role": "Concepteur & Développeur principal",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": true
},
{
"title": "AI Code Assistant — Interface Web IA Locale Style Claude",
"short_description": "Interface web locale complète pour l'assistance au développement : chat IA en temps réel via WebSocket, éditeur de code avec exécution Python, streaming de réponses et support multi-modèles Ollama.",
"full_description": "Projet personnel visant à créer une alternative locale à Claude.ai pour l'assistance au développement, tournant entièrement sur ma machine sans envoyer de données à des serveurs externes.\n\nLe backend FastAPI gère deux canaux de communication : une API REST pour les requêtes simples et un WebSocket pour le streaming des réponses en temps réel. L'intégration Ollama permet de sélectionner différents modèles (qwen2.5-coder:7b, code-expert) selon les besoins. Un sandbox d'exécution Python permet de lancer du code directement depuis l'interface et d'en voir les résultats.\n\nLe frontend est une SPA (Single Page Application) React 18 avec hooks, incluant un historique de conversations, une coloration syntaxique du code et une interface soignée inspirée du design Claude. L'ensemble est déployé sur WSL2 avec NVIDIA GPU pour accélérer l'inférence des modèles.",
"problem": "Disposer d'un assistant IA de développement local, privé, rapide et personnalisable, sans dépendance à un service cloud ou exposition de code source.",
"solution": "Backend FastAPI + Ollama avec streaming WebSocket, sandbox d'exécution Python sécurisé et frontend React inspiré du design de Claude, tournant entièrement en local sur GPU NVIDIA.",
"outcome": "Assistant de développement local fonctionnel avec latence faible (GPU local), support de plusieurs modèles, exécution de code intégrée et interface moderne.",
"technologies": [
"Python",
"FastAPI",
"WebSocket",
"Ollama",
"React",
"JavaScript",
"HTML / CSS / JS",
"NVIDIA CUDA"
],
"highlights": [
"Streaming des réponses IA en temps réel via WebSocket",
"Sandbox d'exécution Python intégré dans l'interface web",
"Support multi-modèles Ollama (qwen2.5-coder, code-expert)",
"Interface SPA React 18 avec historique de conversations et coloration syntaxique",
"Inférence locale GPU via WSL2 + CUDA — zéro donnée envoyée en externe",
"Architecture modulaire backend/frontend facilement extensible"
],
"images": [
"/static/images/assistant5.png",
"/static/images/assistant2.png",
"/static/images/assistant3.png",
"/static/images/assistant4.png",
"/static/images/assistant.png"
],
"category": "Intelligence Artificielle",
"context": "Projet personnel",
"period": "2025",
"complexity": "Avancé",
"role": "Concepteur & Développeur principal",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": true
},
{
"title": "LilyGo T-RGB — Affichage distant d'images sur écran TFT via Wi-Fi",
"short_description": "Système embarqué ESP32-S3 permettant l'envoi et l'affichage d'images à distance sur un écran TFT circulaire LilyGo T-RGB, via interface web et protocole SPIFFS.",
"full_description": "Projet d'exploration hardware visant à piloter un écran TFT circulaire LilyGo T-RGB depuis un navigateur web, sans câble, en Wi-Fi.\n\nL'ESP32-S3 embarque un serveur web asynchrone (AsyncWebServer) qui sert une interface HTML stockée en SPIFFS. L'utilisateur peut envoyer une image depuis son navigateur : le serveur la réceptionne, la sauvegarde en SPIFFS sous le nom new_img.h, puis redémarre l'ESP32 pour charger et afficher la nouvelle image sur l'écran TFT.\n\nUn outil Python (PNG-to-h.py) convertit les images PNG en tableaux C++ (.h) compatibles avec l'affichage TFT. Le projet inclut la gestion complète du cycle de vie fichier : réception → renommage → rechargement à chaud. Ce projet m'a permis d'explorer la gestion de fichiers embarquée, les serveurs web asynchrones sur microcontrôleur et l'interface hardware/software.",
"problem": "Afficher dynamiquement des images personnalisées sur un écran TFT circulaire embarqué, à distance via Wi-Fi, sans connexion physique à l'appareil.",
"solution": "Serveur web asynchrone sur ESP32-S3 avec SPIFFS pour stockage persistant, interface HTML pour upload d'image, conversion PNG→.h et rechargement automatique via redémarrage contrôlé.",
"outcome": "Système fonctionnel permettant de mettre à jour l'affichage de l'écran en quelques secondes depuis n'importe quel appareil sur le réseau local.",
"technologies": [
"C / C++",
"ESP32",
"MicroPython",
"Wi-Fi",
"Python",
"Afficheurs",
"HTML / CSS / JS"
],
"highlights": [
"Serveur web embarqué asynchrone sur ESP32-S3 (AsyncWebServer)",
"Gestion SPIFFS pour stockage et mise à jour de fichiers sans câble",
"Outil Python de conversion PNG → tableau C++ pour affichage TFT",
"Rechargement à chaud de l'image via redémarrage contrôlé de l'ESP32",
"Interface web complète accessible depuis n'importe quel navigateur sur le réseau"
],
"images": [],
"category": "Systèmes Embarqués",
"context": "Projet personnel",
"period": "2024",
"complexity": "Intermédiaire",
"role": "Développeur embarqué & Web",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": false
},
{
"title": "Home Automation ESP32 Matter — Domotique standard ouvert",
"short_description": "Exploration et intégration du protocole Matter sur ESP32 pour la domotique locale, compatible nativement avec Apple Home, Google Home et Amazon Alexa sans cloud propriétaire.",
"full_description": "Projet de recherche et développement autour du protocole Matter, le nouveau standard unifié de la domotique soutenu par Apple, Google, Amazon et Samsung.\n\nMatter permet à des objets connectés de fonctionner nativement avec tous les grands écosystèmes domotiques sans dépendre d'un cloud propriétaire. Sur ESP32, l'intégration utilise le SDK esp-matter compilé pour Arduino IDE et PlatformIO avec support C++17.\n\nLe projet explore les exemples officiels (contrôle de lumière, capteurs) et l'intégration dans un réseau domotique local (Thread/IP). L'accent est mis sur la compréhension de l'architecture Matter (fabric, commissioning, clusters) et la capacité à créer des objets connectés interopérables sans dépendance propriétaire.",
"problem": "Créer des objets connectés capables de communiquer avec plusieurs écosystèmes domotiques (Apple, Google, Amazon) sans cloud propriétaire ni dépendance à un seul fabricant.",
"solution": "Utilisation du protocole Matter sur ESP32 avec SDK esp-matter précompilé pour Arduino/PlatformIO, permettant l'intégration native dans tout hub Matter compatible.",
"outcome": "Prototype ESP32 Matter fonctionnel intégrable nativement dans Apple Home et Google Home, base solide pour des projets domotiques ouverts et pérennes.",
"technologies": [
"C / C++",
"ESP32",
"Wi-Fi",
"PlatformIO"
],
"highlights": [
"Intégration du protocole Matter sur ESP32 avec SDK Espressif précompilé",
"Compatibilité native Apple Home, Google Home, Amazon Alexa, SmartThings",
"Développement sans cloud propriétaire — communication locale via Thread/IP",
"Configuration PlatformIO avec C++17 et partitionnement étendu (SPIFFS)",
"Compréhension de l'architecture Matter : fabric, commissioning, clusters"
],
"images": [],
"category": "IoT & Domotique",
"context": "Projet personnel",
"period": "2024",
"complexity": "Avancé",
"role": "Développeur IoT",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": false
},
{
"title": "InstaCook — Extraction de Recettes Instagram via LLM Local",
"short_description": "Application FastAPI qui extrait automatiquement la description d'un Reel Instagram, la nettoie et la transforme en recette JSON structurée via un LLM local Ollama (gemma3:4b) — 100% offline sur Raspberry Pi 5.",
"full_description": "Projet personnel combinant scraping web, traitement LLM et interface web pour automatiser l'extraction de recettes depuis des Reels Instagram.\n\nLe pipeline complet : scraping de la description Instagram (BeautifulSoup + requests), nettoyage du texte (suppression emojis, bruit), construction d'un prompt RAG (Retrieval Augmented Generation) basé sur des exemples JSON préexistants, envoi au modèle Ollama local (gemma3:4b), et stockage en SQLite. L'interface FastAPI/Jinja2 affiche les recettes sous forme de cartes avec ingrédients et étapes.\n\nL'architecture est optimisée pour fonctionner 100% en local sur un Raspberry Pi 5 (ARM64) sans GPU, avec un modèle quantisé 4B paramètres. La technique RAG améliore la cohérence du format JSON de sortie en montrant des exemples au LLM.",
"problem": "Automatiser la conversion de descriptions textuelles de Reels Instagram en recettes structurées (JSON) utilisables, sans service cloud ni API payante.",
"solution": "Pipeline Python : scraping BeautifulSoup → nettoyage texte → prompt RAG avec exemples JSON → LLM local Ollama gemma3:4b → SQLite → interface web FastAPI.",
"outcome": "Application fonctionnelle sur Raspberry Pi 5, convertissant des descriptions Instagram en recettes JSON structurées et consultables depuis un navigateur.",
"technologies": [
"Python",
"FastAPI",
"Ollama",
"SQLite",
"RAG",
"Raspberry Pi"
],
"highlights": [
"Pipeline complet scraping → LLM local → JSON structuré → interface web",
"Technique RAG pour forcer un format JSON cohérent en sortie du LLM",
"100% offline, déployé sur Raspberry Pi 5 sans GPU (ARM64 optimisé)",
"Modèle Ollama gemma3:4b quantisé pour fonctionnement CPU uniquement",
"Stockage et consultation des recettes via interface web FastAPI/SQLite"
],
"images": [
"/static/images/Instacook.png",
"/static/images/Instacook.png2"
],
"category": "Intelligence Artificielle",
"context": "Projet personnel",
"period": "2025 2026",
"complexity": "Avancé",
"role": "Concepteur & Développeur principal",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": true
},
{
"title": "Beone — Firmware C++ Raspberry Pi Pico avec Ethernet W5500",
"short_description": "Firmware C++ bare-metal pour Raspberry Pi Pico intégrant Ethernet W5500 (SPI), serveur HTTP embarqué, contrôle moteur TMC2209, encodeur AS5600L et communication RS422 — version C++ du projet Beyon Motion.",
"full_description": "Version C++ avancée du projet Beyon Motion, développée pour explorer les capacités réseau du Raspberry Pi Pico avec le module Ethernet W5500.\n\nLe firmware C++ (CMake + pico-sdk) gère plusieurs sous-systèmes simultanément : communication RS422 (UART full duplex) pour les ordres de contrôle, pilotage du moteur pas-à-pas TMC2209 via UART avec microstepping 256, encodeur magnétique AS5600L (I2C) pour le retour de position, interface SPI avec le module Ethernet W5500, et serveur HTTP embarqué servant des pages web stockées en flash.\n\nL'algorithme de contrôle moteur implémente des profils d'accélération avec fonctions d'easing (Linear, SineIn, SineOut, SineInOut) pour des mouvements fluides. Le serveur HTTP embarqué permet la supervision et le contrôle à distance depuis un navigateur.",
"problem": "Ajouter une connectivité réseau Ethernet à un système de contrôle de moteur pas-à-pas sur Raspberry Pi Pico, pour permettre le contrôle et la supervision à distance.",
"solution": "Firmware C++ multi-périphériques : W5500 SPI pour Ethernet, serveur HTTP embarqué, TMC2209 UART, AS5600L I2C, RS422 full-duplex, avec profils d'easing pour mouvements fluides.",
"outcome": "Système de contrôle moteur connecté en réseau, avec serveur HTTP embarqué et interface web de supervision, fonctionnel sur Raspberry Pi Pico.",
"technologies": [
"C / C++",
"Raspberry Pi Pico",
"CMake",
"WebSocket",
"REST API",
"Capteurs",
"RS485"
],
"highlights": [
"Serveur HTTP embarqué sur microcontrôleur RP2040 via W5500 SPI",
"Profils d'accélération avec fonctions d'easing (SineIn/Out/InOut)",
"Multi-communication simultanée : RS422 + TMC2209 UART + I2C + SPI Ethernet",
"Pages web servies depuis la flash du Pico (htdocs embarqué)",
"Architecture C++ orientée objet avec classes dédiées par périphérique"
],
"images": [],
"category": "Systèmes Embarqués",
"context": "Projet personnel",
"period": "2024",
"complexity": "Expert",
"role": "Concepteur & Développeur principal",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": true
},
{
"title": "Module de Détection de Liquide (Arduino + RS485 Dilbert)",
"short_description": "Module Arduino embarqué de détection de liquide par double méthode (conductance analogique + capteur de pression LPS33 I2C), intégré dans l'architecture RS485 Dilbert de Primadiag.",
"full_description": "Développement d'un module de détection de présence de liquide pour les machines Primadiag, utilisant deux méthodes de mesure complémentaires.\n\nLa première méthode mesure la conductance électrique via une entrée analogique avec calcul d'offset automatique (moyennage sur 10 secondes) et seuillage avec hystérésis pour éviter les oscillations. La deuxième méthode utilise le capteur de pression LPS33HW (I2C) pour détecter la présence de liquide par variation de pression.\n\nLe module s'intègre dans l'architecture Dilbert via RS485 (demi-duplex, pins DE/RE), répondant aux commandes #7V (version), #7CO (calibration offset), #7C (conductance), #7S (état), #7P (pression) et #7RS (reboot). La mise à jour du capteur toutes les 8ms priorise la réactivité de la communication RS485.",
"problem": "Détecter fiablement la présence de liquide dans une machine Primadiag, avec deux méthodes redondantes et intégration dans le bus de communication RS485 Dilbert.",
"solution": "Module Arduino avec double détection (conductance analogique + pression LPS33), hystérésis anti-oscillation, calibration automatique de l'offset et API RS485 Dilbert.",
"outcome": "Module de détection fiable intégré dans les machines Primadiag, avec communication RS485 robuste et double validation par conductance et pression.",
"technologies": [
"C / C++",
"Capteurs",
"RS485"
],
"highlights": [
"Double méthode de détection : conductance analogique + pression LPS33 I2C",
"Calibration automatique de l'offset par moyennage (10 secondes)",
"Hystérésis logicielle pour éviter les faux positifs",
"Intégration complète dans le protocole RS485 Dilbert de Primadiag",
"Cycle de mise à jour 8ms pour prioriser la communication RS485"
],
"images": [],
"category": "Systèmes Embarqués",
"context": "Projet R&D — Primadiag",
"period": "2023",
"complexity": "Intermédiaire",
"role": "Développeur firmware embarqué",
"github_url": "",
"demo_url": "",
"featured": false
},
{
"title": "Contrôle de Bande LED DotStar via MQTT (ESP32 + Adafruit.io)",
"short_description": "Système de contrôle connecté d'une bande de 90 LEDs DotStar SPI via protocole MQTT (Adafruit.io), avec gestion des modes (couleur, dégradé, animation) depuis un dashboard cloud.",
"full_description": "Projet personnel de domotique lumineuse : contrôle d'une bande de 90 LEDs DotStar (protocole SPI) depuis Internet via le broker MQTT d'Adafruit.io.\n\nL'ESP32 se connecte au réseau Wi-Fi et s'abonne au feed MQTT 'mode' d'Adafruit.io. Selon le message reçu, il configure la bande LED (couleur RGB, luminosité, animation) en utilisant la bibliothèque Adafruit_DotStar. La configuration est persistée en EEPROM pour survivre aux redémarrages. Une animation de démarrage (allumage progressif LED par LED) est jouée à chaque boot.\n\nCe projet m'a permis de maîtriser le protocole MQTT pour l'IoT, la gestion des LEDs adressables SPI, et la persistance de configuration sur microcontrôleur.",
"problem": "Contrôler une bande de LEDs DotStar depuis n'importe où dans le monde, avec persistance des réglages et plusieurs modes d'animation.",
"solution": "ESP32 connecté à Adafruit.io via MQTT, pilotant 90 LEDs DotStar SPI avec gestion des modes/couleurs/luminosité et persistance EEPROM.",
"outcome": "Système domotique fonctionnel contrôlable depuis n'importe quel dashboard MQTT, avec animations fluides et persistence des réglages.",
"technologies": [
"C / C++",
"ESP32",
"MQTT",
"Afficheurs",
"Wi-Fi"
],
"highlights": [
"Contrôle de 90 LEDs DotStar SPI via protocole MQTT depuis Internet",
"Abonnement MQTT en temps réel aux feeds Adafruit.io",
"Persistance des réglages (couleur, luminosité, mode) en EEPROM",
"Animation de démarrage progressif LED par LED",
"Architecture IoT complète : cloud MQTT → ESP32 → LEDs SPI"
],
"images": [],
"category": "IoT & Domotique",
"context": "Projet personnel",
"period": "2021 2022",
"complexity": "Intermédiaire",
"role": "Développeur IoT",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": false
},
{
"title": "Affichage LCD Connecté via MQTT (ESP8266 + Adafruit.io)",
"short_description": "Affichage LCD I2C 16x2 connecté via ESP8266 et protocole MQTT (Adafruit.io), permettant d'envoyer des messages à distance depuis un dashboard cloud vers l'écran physique.",
"full_description": "Projet d'objet connecté permettant de piloter un afficheur LCD 16 caractères × 2 lignes (I2C, adresse 0x27) à distance via Internet, grâce au protocole MQTT et la plateforme Adafruit.io.\n\nL'ESP8266 se connecte au Wi-Fi et au broker MQTT Adafruit.io, s'abonne au feed 'lcdwrite' et affiche en temps réel les messages reçus sur l'écran LCD. La bibliothèque LiquidCrystal_I2C gère l'affichage. Ce projet illustre le concept d'objet connecté IoT simple : cloud → MQTT → microcontrôleur → actionneur physique.",
"problem": "Afficher des messages à distance sur un écran physique depuis n'importe où dans le monde, sans interface locale.",
"solution": "ESP8266 abonné au broker MQTT Adafruit.io, transférant les messages reçus vers un afficheur LCD I2C 16x2 en temps réel.",
"outcome": "Afficheur LCD connecté fonctionnel, pilotable depuis le dashboard Adafruit.io ou tout client MQTT.",
"technologies": [
"C / C++",
"ESP32",
"MQTT",
"Afficheurs",
"Wi-Fi"
],
"highlights": [
"Communication MQTT cloud → ESP8266 → LCD physique en temps réel",
"Abonnement au feed Adafruit.io pour réception des messages distants",
"Affichage LCD I2C 16x2 pilotable depuis n'importe quel client MQTT",
"Premier projet IoT cloud personnel, base des projets connectés suivants"
],
"images": [],
"category": "IoT & Domotique",
"context": "Projet personnel",
"period": "2021",
"complexity": "Débutant",
"role": "Développeur IoT",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": false
},
{
"title": "W5500 — Client WebSocket Ethernet Filaire sur Microcontrôleur",
"short_description": "Prototype de communication WebSocket via Ethernet filaire sur microcontrôleur avec le module W5500, explorant la connectivité réseau câblée sans Wi-Fi pour des applications embarquées critiques.",
"full_description": "Projet d'exploration de la connectivité Ethernet filaire sur microcontrôleur (PlatformIO), utilisant le module W5500 (chipset Wiznet) via SPI pour établir une connexion WebSocket vers un serveur distant.\n\nLe code C++ initialise la pile Ethernet via le W5500, établit une connexion réseau filaire et se connecte à un serveur WebSocket. Ce projet est la base de la connectivité réseau intégrée dans le firmware Beone (C++ Raspberry Pi Pico), et explore les alternatives Ethernet filaire au Wi-Fi pour des environnements industriels requérant fiabilité et déterminisme réseau.",
"problem": "Explorer la connectivité réseau câblée sur microcontrôleur comme alternative au Wi-Fi pour des applications embarquées industrielles nécessitant fiabilité et déterminisme.",
"solution": "Module W5500 (Wiznet) via SPI avec bibliothèque Ethernet2 et client WebSocket, permettant une connexion réseau filaire stable depuis un microcontrôleur.",
"outcome": "Prototype fonctionnel de client WebSocket Ethernet filaire sur microcontrôleur, réutilisé dans le projet Beone C++ Pico.",
"technologies": [
"C / C++",
"WebSocket",
"SPI"
],
"highlights": [
"Connectivité Ethernet filaire W5500 SPI sur microcontrôleur",
"Client WebSocket embarqué pour communication temps réel",
"Alternative au Wi-Fi pour environnements industriels (fiabilité, déterminisme)",
"Base technologique réutilisée dans le firmware Beone C++ Pico",
"Développement sous PlatformIO pour portabilité multi-cibles"
],
"images": [],
"category": "Systèmes Embarqués",
"context": "Projet personnel",
"period": "2024",
"complexity": "Intermédiaire",
"role": "Développeur embarqué",
"github_url": "https://github.com/GutAlexandre",
"demo_url": "",
"featured": false
},
{
"title": "Serre Intelligente Automatisée",
"short_description": "Système embarqué Arduino de gestion automatique d'une serre : acquisition multi-capteurs (température, humidité, luminosité) et contrôle autonome d'actionneurs selon des seuils configurables.",
"full_description": "Projet de fin de DUT consistant à automatiser la gestion d'une serre en concevant un système embarqué complet basé sur Arduino.\n\nLe système intègre plusieurs capteurs : DHT22 pour la température et l'humidité, APDS-9002 pour la luminosité ambiante, et TMP36 comme capteur de température de secours. Un moteur pas-à-pas gère l'ouverture et la fermeture automatique des aérations selon les conditions ambiantes mesurées.\n\nLa logique décisionnelle compare les mesures aux seuils définis et déclenche les actionneurs correspondants de façon autonome. Ce projet a nécessité la maîtrise simultanée de l'acquisition de données capteurs, du pilotage d'actionneurs et de la conception de l'algorithme de contrôle.",
"problem": "Automatiser le contrôle environnemental d'une serre pour maintenir des conditions optimales de culture (température, humidité, luminosité) sans intervention humaine constante.",
"solution": "Microcontrôleur Arduino centralisé avec lecture périodique de 4 capteurs, logique de décision par comparaison aux seuils et pilotage d'actionneurs (moteur, ventilation).",
"outcome": "Serre autonome fonctionnelle maintenant les conditions de culture dans les plages définies, avec log série des mesures pour analyse a posteriori.",
"technologies": [
"Arduino",
"C / C++",
"Capteurs",
"I2C"
],
"highlights": [
"Système embarqué complet : acquisition multi-capteurs + décision + pilotage actionneurs",
"Intégration de 4 types de capteurs différents sur un même microcontrôleur",
"Algorithme de contrôle autonome basé sur des seuils configurables",
"Projet réalisé dans un contexte académique avec contraintes de livraison",
"Base concrète des compétences en automatisation industrielle"
],
"images": [],
"category": "Systèmes Embarqués",
"context": "Projet académique — DUT GEII",
"period": "2021",
"complexity": "Intermédiaire",
"role": "Développeur & <20>peur & Électronicien",
"github_url": "",
"demo_url": "",
"featured": false
}
]
}