Compétences techniques

Étendue de compétences couvrant du matériel électronique à l’orchestration d’agents IA en production.

IA / LLM & Orchestration

LLM (Groq, Ollama, OpenRouter) Claude API Llama 3.2 / 3.3 Multi-agents Mémoire persistante Edge AI YOLO

Vision par Ordinateur

OpenCV Picamera3 Détection de contours Reconnaissance faciale Inspection qualité temps réel Analyse optique

Embarqué & Linux

Raspberry Pi 5 STM32 ESP32 MicroPython Firmware C/C++ Linux GPIO RS485 / CAN / SPI

Software & Architecture

Python C/C++ PyQt5 Multithreading Architecture modulaire Pytest Git PyYAML

Hardware & Électronique

Conception circuits CNC & automatisme Moteurs NEMA23 / TB6600 IoT industriel Génération G-code Systèmes de sécurité

Cloud & APIs

Groq API OpenRouter PySerial Supervision à distance Passerelles IoT Interfaces HMI

Projets professionnels

Trois projets illustrant ma maîtrise de la chaîne complète : électronique, embarqué, vision et IA.

Illustration du design cible ROBOT-AI

ROBOT-AI v2.0

Assistant industriel multi-agents piloté par LLM hybride cloud/local.

Python LLM Raspberry Pi Multi-agents
Voir le détail
Conception PCB — Altium Designer

Smart Viewer v4.2

Système d’inspection et correction couleur temps réel embarqué sur Raspberry Pi 5.

OpenCV RS485 PyQt5 Vision
Voir le détail
Interface OptiQt — framework vision et CNC

OptiQt v1.0

Framework modulaire open-source pour la vision industrielle et le pilotage CNC.

Python OpenCV G-code CNC
Voir le détail

Robot-ai — v2.0

ROBOT-AI — Assistant industriel multi-agents

Robot intelligent autonome conçu comme une entreprise virtuelle pilotée par IA. Le système analyse un besoin industriel, mobilise plusieurs agents spécialisés et produit une recommandation structurée, exploitable et orientée projet réel.

GitHub (h-marouan)
Schéma d’architecture globale de ROBOT-AI

Vue d’ensemble

ROBOT-AI est un chef d’orchestre intelligent : il perçoit (voix, clavier, vision), raisonne (architecture multi-agents), retient (mémoire long terme), et agit sur des systèmes externes (APIs, outils logiciels). Je conserve le rôle de CEO et administrateur principal, avec validation finale des décisions sensibles.

  • Analyser les besoins du marché local (notamment en France)
  • Évaluer la faisabilité technique et économique d’un projet
  • Définir les ressources nécessaires et produire une vision industrielle complète de bout en bout
  • Servir d’outil d’aide à la décision pour des projets réels

Architecture multi-agents

Chaque agent occupe un rôle métier précis : direction, coordination, ingénierie, développement logiciel, analyse marché, finance, qualité et industrialisation. La valeur du projet réside dans l’orchestration de ces agents, la mémoire persistante et la sécurité des actions sensibles.

Équipe multi-agents de ROBOT-AI
Équipe d’agents métier — chaque agent est spécialisé dans un domaine précis

Technologies

Python Groq API Ollama / Llama 3.2 Claude API OpenRouter Raspberry Pi 5 NVIDIA Jetson (migration) Reconnaissance faciale Bus d’événements Mémoire persistante YAML PyYAML GPIO / LED RGB OpenCV

Stratégie d’adaptation par modèle : certains agents utilisent Groq pour la rapidité, l’agent logiciel utilise Claude pour le raisonnement avancé, le directeur peut s’appuyer sur OpenRouter pour accéder à plusieurs modèles selon le contexte. Cette approche optimise qualité, vitesse et coût simultanément.

Sécurité (biométrie vocale) : j’ai intégré un algorithme de reconnaissance vocale par empreinte vocale afin d’authentifier l’administrateur  ; lors des actions sensibles (exécution, accès cloud, modifications), le robot exige une validation par signature vocale en plus des confirmations classiques.

Mode vocal — capture du robot en fonctionnement
Capture du mode vocal — perception par voix et clavier

Résilience & Sécurité

Le robot est conçu pour rester opérationnel en toute circonstance :

  • Coupure Internet → basculement automatique sur LLM locale (Llama 3.2 via Ollama)
  • Expiration de tokens API → fallback automatique vers une autre API cloud disponible
  • Actions sensibles → validation multi-niveaux : reconnaissance faciale + commande valide + confirmation écran + bouton physique
Stratégie de fallback Cloud / Local
Stratégie de fallback Cloud ↔ Local : continuité de service garantie

Problèmes rencontrés & Solutions

  1. Gestion de la mémoire contextuelle : les LLM n’ont pas de mémoire native. Solution : système de mémoire externe gérant mémoire entreprise, mémoire projet, historiques de décisions, résumés automatiques et contexte long terme — persistant et transférable entre machines.
  2. Disponibilité du service : dépendance aux APIs cloud (latences, pannes, limites de tokens). Solution : architecture de fallback à deux niveaux (cloud → local → autre cloud) avec basculement transparent.
  3. Sécurité des actions critiques : un agent IA ne doit pas exécuter des actions irréversibles sans contrôle humain. Solution : pipeline de validation multi-facteurs avec bouton physique comme dernier verrou.
  4. Performance embarquée : les LLM sont gourmands en ressources. Solution : modèles optimisés edge (3B–11B paramètres), avec migration planifiée vers NVIDIA Jetson pour l’inférence locale haute performance.

Résultats / Apprentissages

🤖

Auto-amélioration (inattendu)

Le robot a analysé son propre code source et identifié des pistes d’optimisation pertinentes — démontrant sa capacité d’assistant technique intelligent dès la v2.

🔒

Contribution à la sécurité cloud (prometteur)

Le robot a contribué à améliorer la sécurité des données cloud du projet lui-même, validant l’approche d’IA comme outil d’audit interne.

🧩

Modularité validée

L’architecture indépendante du matériel (développée d’abord sur PC) facilite la migration progressive vers Raspberry Pi puis Jetson sans refactorisation majeure.

🌐

Capacités réseau avancées

L’agent directeur navigue sur Internet, interagit avec d’autres agents IA et participe à un forum dédié (openclawai.io) pour enrichir ses décisions.

Le robot a contribué à sa propre amélioration
Capture illustrant l’auto-analyse du code source par le robot

Matériel cible

Raspberry Pi 5 Écran 5 pouces Caméra (reconnaissance faciale) Microphone Haut-parleur Bouton physique LED RGB SSD Migration Jetson (prévue)
Illustration du design cible du robot
Design cible du robot — version matérielle Raspberry Pi 5

Smart Viewer — v4.2

Smart Viewer — Inspection & Correction Couleur Temps Réel

Application embarquée de vision industrielle pour l’inspection et la correction automatique des défauts d’impression couleur, déployée sur Raspberry Pi 5 avec pilotage de moteurs NEMA23 via RS485.

Interface Smart Viewer — inspection couleur temps réel

Vue d’ensemble

Smart Viewer est un système d’inspection industrielle temps réel destiné à détecter et corriger les défauts couleur sur des pièces imprimées en sortie de ligne de production. L’architecture distribuée RPi5 + Pico W communique via RS485 pour piloter 4 moteurs NEMA23 (drivers TB6600) responsables de la correction physique des défauts. Une interface PyQt5 multithreading garantit la stabilité de l’UI même sous forte charge.

  • Inspection couleur temps réel par vision par ordinateur (OpenCV)
  • Pilotage de 4 moteurs NEMA23 via drivers TB6600 et protocole RS485
  • Interface opérateur PyQt5 réactive et intuitive
  • Architecture distribuée RPi5 (traitement) + Pico W (actionneurs)

Technologies

Python OpenCV PyQt5 Picamera3 RS485 Raspberry Pi 5 Raspberry Pi Pico W MicroPython GPIO Moteurs NEMA23 Drivers TB6600 Multithreading
Schéma d'architecture globale Smart Viewer — RPi5 ↔ RS485 ↔ Pico W ↔ NEMA23
Architecture distribuée : RPi5 (traitement + UI) ↔ RS485 câblé 8m ↔ Pico W (4× NEMA23 RVBY)

Problèmes rencontrés & Solutions

  1. Synchronisation vision / actionneurs : latence entre la détection d’un défaut et la correction physique. Solution : architecture multithreading avec bus de messages interne séparant le pipeline de traitement image du pipeline de commande moteur.
  2. Stabilité de l’interface sous charge : le traitement OpenCV en temps réel saturait l’UI thread. Solution : isolation stricte des threads UI et traitement, avec queue thread-safe pour la communication inter-threads.
  3. Fiabilité du lien RS485 : pertes de trames lors de rafales de commandes. Solution : protocole de communication avec acquittement et retry automatique implémenté côté MicroPython sur le Pico W.
  4. Calibration couleur : variabilité des conditions lumineuses affectant la détection. Solution : algorithme de calibration automatique au démarrage avec profil de référence réglable par l’opérateur.
Protocole RS485 — trame 7 octets avec checksum et acquittement
Protocole RS485 — Trame binaire 7 octets · Checksum XOR · Acquittement ACK/NAK · Câble blindé 8m

Résultats / Apprentissages

📈

Impact production (prometteur)

Contribution directe à l’amélioration de l’efficacité de production de +15 à +27 % chez ROTOTECA, réduisant les rebuts liés aux défauts couleur.

🔄

Architecture distribuée (inattendu)

Le découpage RPi5 + Pico W s’est révélé plus robuste et maintenable qu’une solution monolithique, permettant la mise à jour de chaque nœud indépendamment.

Temps réel validé

Le multithreading Python, combiné à l’architecture distribuée, suffit pour atteindre les contraintes temps réel de l’application sans recourir au C++.

4 PCB conçus sous Altium Designer pour Smart Viewer
PCB sur mesure conçus sous Altium Designer : PCB-Camera, DC-Motor-Controller, Flex-Board, GPIO-Motor-Control

Démo en fonctionnement

Caméra impression
Smart Viewer UI

Cliquez sur une vidéo pour la lancer — Smart Viewer v4.2 sur Raspberry Pi 5

OptiQt — v1.0

OptiQt — Framework Modulaire Vision & CNC

Framework Python combinant vision par ordinateur et pilotage de machine CNC, avec une interface PyQt5 intuitive et une architecture en couches facilitant l’extension.

Interface OptiQt — framework vision et CNC

Vue d’ensemble

OptiQt est un framework modulaire structuré en quatre couches indépendantes : Core (moteur applicatif), Vision (traitement OpenCV), CNC (génération G-code et communication série) et UI (interface PyQt5). Cette architecture facilite la maintenance, les tests unitaires et l’extension vers de nouveaux types de machines ou d’algorithmes de vision.

  • Traitement d’image OpenCV : extraction de contours, analyse optique, segmentation
  • Génération automatique de G-code à partir des résultats de vision
  • Pilotage machine via communication série (PySerial)
  • Tests unitaires Pytest avec environnement virtualisé
  • Interface HMI PyQt5 pour supervision temps réel

Technologies

Python OpenCV PyQt5 PySerial C++ G-code Pytest Environnement virtualisé Architecture modulaire Détection de contours Analyse optique
Architecture en 4 couches d'OptiQt — Core, Vision, CNC, UI
Architecture modulaire en 4 couches indépendantes : Core → Vision → CNC → UI · Chaque couche évolutive indépendamment

Problèmes rencontrés & Solutions

  1. Couplage fort entre vision et CNC : les premières versions mélangeaient traitement image et génération G-code, rendant les tests difficiles. Solution : introduction de l’architecture en 4 couches avec interfaces bien définies entre chaque module.
  2. Précision de la génération G-code : les contours extraits par OpenCV contenaient du bruit entraînant des trajectoires imprécises. Solution : pipeline de post-traitement (lissage de courbe, simplification de polygone, filtrage adaptatif).
  3. Testabilité du code de pilotage machine : impossible de tester sans une machine physique connectée. Solution : couche d’abstraction de la communication série avec mock injectable pour les tests unitaires Pytest.
Pipeline OptiQt : image brute → contours détectés → G-code généré
Pipeline complet en 3 étapes : Image brute → Extraction contours OpenCV → Génération trajectoire G-code

Résultats / Apprentissages

🏗️

Architecture pérenne (prometteur)

La modularité en 4 couches facilite l’ajout de nouveaux algorithmes de vision et de nouveaux types de machines sans modifier le noyau applicatif.

🧪

Couverture de tests (inattendu)

L’introduction de Pytest et du mock série a révélé plusieurs bugs de précision dans la génération G-code, améliorant significativement la qualité des trajectoires.

🔌

Polyvalence industrielle

Le framework a servi de base pour d’autres solutions industrielles (prévention incendie, interfaces HMI), validant sa réutilisabilité.

Schéma de communication OptiQt — Application → PySerial → Arduino UNO → CNC
Communication série : Application OptiQt → PySerial → Arduino UNO → Machine CNC · 3 profils matériaux · Mock injectable Pytest

Travaillons ensemble

Ouvert aux opportunités en ingénierie embarquée, IA industrielle et vision par ordinateur.

N’hésitez pas à me contacter pour discuter d’un poste, d’une mission ou d’une collaboration. Je suis particulièrement intéressé par des projets mêlant IA, embarqué et vision dans un contexte industriel.