Programmation wallpaper

Mes projets

Informatique embarquée, électronique, GUI, web ...
Go down arrow

Pilotes informatiques - C embarqué

Device driver image

Les pilotes informatiques, généralement appelés "devices drivers" servent à établir un lien entre un programme et un périphérique. Ils sont aujourd'hui indispensables aux développements de solutions embarquées.

J'ai régulièrement été amené à développer des drivers dans le but de pouvoir utiliser des capteurs/composants au sein de systèmes électroniques.

Exemples de drivers développés :

  1. Driver LIS3DSH (accéléromètre) : langage C / µPython / SPI
  2. Driver MAX31875 (capteur température) : langage C / I²C
  3. Driver Moteurs (driver L6205D) : langage C / PWM
  4. Driver pour IHM d'une télécommande : langage C
  5. Analyse et modifications driver nRF24 : langage C / SPI
  6. Driver LCD I²C : langage C
  7. Driver LCD TFT & tactile SSD1963 : langage C (en cours)
Ces travaux m'ont permis d'approfondir mes connaissances en C embarqué ainsi que dans la lecture et compréhension de documentations techniques.

Vous trouverez certains des codes source sur mon gitHub.

Flappy-Thon

Menu Flappy-Thon. Déroulement partie Flappy-Thon

Développement d'une nouvelle version du célèbre jeu "FlappyBird", en microPython afin de l'embarquer sur cible.

Comme vous l'aurez peut-être compris avec son nom, celui-ci fait référence au langage utilisé durant ce projet, mais pas que ! Effectivement, cette version embarque également un nouveau personnage au jeu : le Thon.

Le contrôle de ce jeu se fait à l'aide d'un bouton-poussoir et d'un accéléromètre (dans le projet actuel : LIS3DSH) pour le menu et le choix du personnage. Ces deux composants sont déjà présents sur l'EvaBoard utilisée pour ce projet : STM32F407G-DISC1.

Langages et outils utilisés : OS Linux, VS Code, script bash, microPython, Git, GitHub, SPI, UART, Timer, STM32F407G-DISC1

Cookies Games

Menu CookiesGames

Pour rester dans le domaine du gaming, voici un projet de développement d'une plateforme de jeux.

Avec l'aide de 2 camarades, nous avons développé CookiesGames, une plateforme de jeux pour les enfants gourmands allant de 7 à 77 ans. Ce projet a été réalisé dans le cadre scolaire en guise d'évaluation des compétences pour un module de programmation en C++.

Je me suis occupé de la gestion de projet ainsi que du développement du jeu "FindTheCookie" présent dans cette plateforme. J'ai également servi d'appui technique sur les points bloquant que pouvaient rencontrer mes camarades dans le développement de leurs parties.

Logiciels et outils utilisés : C++, Qt, VSCode, Git, GitHub, Google Drive, Gantt, Trello.

Smart fridge

Smart Fridge

Participation au développement d'une box domotique et de ses outils dans le cadre des Y-days de mon école.

J'ai été attitré, avec 3 autres personnes à la réalisation d'un garde-manger connecté. Il a donc fallu dans un premier temps réaliser une étude des besoins clients, suivie d'un cahier des charges et d'une analyse fonctionnelle. Après cela, nous avons pu étudier les différents outils à notre disposition pour la réalisation de la base de données ainsi que l'IHM (site web).

Ayant des connaissances en développement web, je me suis proposé pour implémenter la maquette réalisée sur Adobe XD par d'autres membres du projet.

Langages et outils utilisés : HTML, CSS, JavaScript, PHP, Bootstrap, GitHub.

Cafetière connectée

Cafetière V1 - Câblages électronique avec modules RF. Cafetière V2 - Interface graphique de contrôle utilisateur.

Projet de modifications d'une cafetière : la Magimix M100.

Le but était de pouvoir la contrôler à distance, en répondant au cahier des charges suivant.

L'utilisateur doit avoir la possibilité de :

  • Allumer et éteindre la cafetière à distance.
  • Se faire un café de petite/grande taille.
  • Pouvoir régler la taille des deux possibilités précédente.

V1 : étudier le fonctionnement du système, souder des câbles afin de modifier l'état logique de certaines connexions. Ajout des modules radio-fréquences aux systèmes (émetteur & récepteur) avec l'utilisation du protocole ShockBurst.

V2 : utilisation d'un module Wifi (ESP32), cela me permettant de réaliser une réelle intégration du système avec une communication serveur-client, en plus de l'ajout d'une interface graphique en guise d'IHM (Interface Homme Machine).

Langage et matériels utilisés V1 : C embarqué, Cube IDE, STM32F407G-DISC1, Module nRF24L01+, Breadboard, Boutons poussoir, câbles.

Langages et matériels utilisés V2 : C++, HTML, CSS, JS, VS Code, ESP32, PlatformIO, Breadboard, composants.

Divers

Câblage électronique

Passionné par les nouvelles technologies et l'électronique, je réalise régulièrement de petits projets dans ces domaines-ci.

Voici certains projets sur lesquels j'ai travaillé :

  • Electronique embarqué
    • embedded C
    • microPython
    • OS embedded Linux (scripting, bootloader)
  • Développements d'interfaces graphiques
    • Qt (ex : cookiesGames)
    • PyQt (ex : ReadMeAreBoring)
  • Montages électroniques
  • Développement web (ex : hum, ce site !)
Curieux, je me renseigne régulièrement sur les nouveautés concernant les environnements unix.

Et pour demain ?

Logo Swift

Passionné par les nouvelles technologies

Avec toute cette curiosité, j'ai quotidiennement envie d'explorer de nouvelles branches des technologies !

C'est pour cela que je réalise régulièrement des projets personnels !

Voici les domaines que je souhaiterai travailler durant mes prochains projets :

  • Développement IOS : Swift / Objective-C
  • Notions de hachage : cybersécurité
  • IOT : Réseau de capteurs
  • OS temps réel : FreeRTOS