- Développement logiciel embarqué pour récepteur GPS civil aéronautique, contraint par la norme DO-178C DAL B.
Rédaction d’exigences (HLR, LLR), de tests (HLT, LLT), codage en ADA 2012, architecture UML, environnement de test FitNesse, xUnit, intégration continue Jenkins, gestion de configuration Git.
- Développement d’un logiciel embarqué pour les tests après production du récepteur GPS (développement non contraint par la norme DO-178C).
Maintenance logicielle et gestion d’obsolescence électronique d’une gamme d’imprimante industrielle de type « print and apply » (impression thermique sur étiquette et application sur emballage).
Investigation sur l’origine d’une variance de latence (jitter) sur un logiciel embarqué sous linux. Tuning du noyau linux pour tenter d’identifier sa cause et le réduire.
Conception d’une architecture logicielle embarquée commune pour plusieurs périphériques sans-fil de la gamme Schneider Electric : sonde de température/hygrométrie, sonde de CO2, télécommande de climatisation/volets/lumière, capteur de présence de bureau.
Conception et développement d’outils de configuration, tests et mise au point pour la gamme de capteur sans-fil de Schneider Electric. Conception d’une architecture modulaire, basé sur des plugins, en C#.NET.
Développement d’un sketch ARDUINO pour réaliser un prototype de capteur de présence de bureau avec transmission LoRaWAN.
Conception et développement du logiciel embarqué pour carte d’asservissment de tête de périscope gyrostabilisée.
Développement suivant cahier des charges.
Étude du système complet du client final.
Développement des drivers bas niveau et de l'applicatif sur cible dsPIC (SPI, I2C, RS232), sous environnement MPLAB X.
Développement d'une interface graphique en Qt (Windows Qt Creator) pour le diagnostic, le paramétrage et le débogage de la carte.
Définition du protocole de communication de la liaison Debug.
Rédaction de la documentation avec Doxygen.
Gestion de configuration sous SVN.
Installation, mise en route et mise au point dans le sous-marin.
Développement et mise au point d'une tourelle pour tracking de leurres pyrotechniques.
Arrivé en cours de développement, j'ai intégré l'équipe pour finaliser la conception d'une tourelle 2 axes (Pan et Tilt), servant à faire un suivi de leurres pyrotechniques par traitement vidéo. Le contrôleur est un PC embarquant un système Linux RTAI, un serveur web pour le pilotage à distance du système, et 2 variateurs pour le pilotage des moteurs.
Écriture d'un ensemble de classe C++ pour la gestion de la vidéo : capture des images brutes, compression FLV pour enregistrement sur disque dur et streaming en direct, relecture des fichiers enregistrés. Utilisation des librairies « libav » (ffmpeg).
Modifications et mise au point du traitement d'image (openCV).
Développement sur plateforme Linux, eclipse, gcc, gdb.
Gestion de configuration sous SVN.
Conception et développement du logiciel embarqué d'un variateur électronique
Développement du soft embarqué et de l'interface graphique de contrôle d'un variateur pour différents types de moteur.
Architecture, conception et développement sur cible DSP Texas Instrument C2000.
Développement sous Code Composer Studio en C/C++.
Pilotage de moteurs synchrone à courant sinusoïdal (Field Oriented Control).
Pilotage de moteurs synchrones à courant trapézoïdal.
Pilotage de moteurs à courant continu.
Pilotage de moteurs biphasés.
Ecriture des drivers bas-niveau en C/C++ (SPI, liaison série, PWM, EEPROM, bus parallèle, CAN/CanOpen).
Conception et développement de l'interface graphique de contrôle sous environnement Qt.
Définition du protocole de communication avec l'interface graphique.
Développement de logiciel embarqué d'une carte d'asservissement pour positionneur
Reprise d'un code existant d'une carte contrôleur pour positionneur 2 axes avec gyrostabilisation.
Débogage et développement de nouvelles fonctionnalités sur cible DSP Texas Instrument C2000 et sous environnement Code Composer Studio.
Tests sur matériel final.
Génération de code C depuis planche algorithmique d'asservissement Matlab/Simulink, produite par un automaticien.
Ajout de fonctionnalités sur l'IHM de pilotage développée en VB.NET.
Développement et mise au point du logiciel embarqué pour une tourelle 2 axes destinée à faire du suivi de cible par vidéo.
Reprise d'un système existant et adaptation de la partie traitement d'image.
Développement sur plateforme Linux, eclipse, gcc, gdb, ffmpeg.
Modifications et ajout de fonctionnalités pour le traitement d'image : détection de plusieurs cibles, puis suivi de celle choisie par l'utilisateur.
Installation et mise en route de la machine chez le client final (Inde).
Enregistrement de 4 flux vidéo de façon synchronisée, sur disque dur, avec fonction de playback avancé, création d'archives basse résolution avec envoi automatique sur serveur FTP, intégration de fonction de création de DVD.
Elaboration du cahier des charges.
Etude de faisabilité.
Conception et développement.
Tests, débogage, amélioration de fonctionnalités.
Développement sur plateforme Windows, avec Delphi et architecture DirectShow, pour la version SD (Standard Définition).
Développement sur plateforme Linux pour la version HD (Haute Définition), avec architecture Qt, ffmpeg et API DeckLink de BlackMagic Design.
Gestion de configuration sous CVS.
Réalisation d'une mosaïque vidéo.
Création d'une mosaïque vidéo contenant 8 flux, crée à partir de vidéo basse résolution stockées dans des fichiers « avi », compressés en H264.
Conception et développement.
Tests, débogage.
Développement sur plateforme Linux, avec architecture Qt, ffmpeg et API DeckLink de BlackMagic Design.
Réalisation de différents projets autour de la vidéo numérique, dans le domaine des courses hippiques.
Développement sur plateforme cible windows et linux
Elaboration de cahier des charges.
Etude de faisabilité
Conception et développement.
Tests, débogage, amélioration de fonctionnalités.
Portage applicatif sur « Set Top Box »
Réalisation du portage d'un applicatif de gestion de « set top box » sur une plateforme hardware embarquant un circuit de marque Broadcom.
Compilation croisée sous linux.
Participation aux réunions techniques avec le fabriquant.
Conception de tests unitaires sur les drivers fournis par Broadcom.
Portage de l'applicatif, détection des bugs au niveau drivers, ...
Utilisation du gestionnaire de configuration Perforce.
HDE
Développement d'une carte électronique d'acquisition et de rejeu vidéo Haute Définition, sur port PCI express, embarquée dans un PC linux. Cette carte à la particularité d'avoir 8 entrées vidéo et 9 sorties vidéo. Il est possible d'acquérir et de rejouer plusieurs flux simultanément.
Réponse à l'appel d'offre sur la partie logicielle (IHM + driver).
Participation aux réunions techniques avec le client.
Etude de la conception préliminaire (documentation sur les drivers linux).
Rédaction de la documentation de conception préliminaire logicielle, en partenariat avec l'équipe hardware. Définition des interfaces soft/hard, du mapping mémoire, du système de transfert de données (DMA).
Mise en place d'une base CVS pour la gestion de configuration des fichiers sources (logiciel et FPGA).
Développement du driver.
IBIS1 / IBIS2
Développement de fonctionnalités et débogage de l’applicatif client, fonctionnant sur une plateforme propriétaire (IBIS) à base d’ARM9 et de linux temps réel.
Intégration de données dans des trames RS485 existantes, avec une forte contrainte temporelle. Les données sont envoyées dans la bande passante restante.
Intégration d’un protocole de communication par liaison bluetooth, gestion d’appairage bluetooth.
Débogage de driver de port série sous linux embarqué temps réel.
Développement de banc de test pour tester et valider les corrections et modifications de l’applicatif.
Corrections de bogues dans le logiciel applicatif du client (RTLinux embarqué).
Ajouts de diverses fonctionnalités dans le logiciel applicatif du client (RTLinux embarqué).
Utilisation des outils de compilation croisée gcc.
Utilisation de gestion de configuration (CVS).
CATI
Conception d’un logiciel sous LabWindows/CVI (langage C), permettant de récupérer des données envoyées par un microcontrôleur, intégré à un FPGA Spartan3 (μBlaze), en temps réel, par liaison RS485.
Intégration de fonctions d’écriture, de lecture et de vérification de la mémoire FLASH du FPGA, dans le but de le reprogrammer d...