diff --git a/README.md b/README.md
index b80368ae2a00870a6c7b8942bf92b56c2ce39825..a40e97161cb630d5cbbbadeca5c4268a7d36d946 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,94 @@
 # Projet semestriel du cours de programmation des microcontrôleurs
 
+- [Projet semestriel du cours de programmation des microcontrôleurs](#projet-semestriel-du-cours-de-programmation-des-microcontrôleurs)
+  - [Résumé du projet](#résumé-du-projet)
+    - [L'idée initiale](#lidée-initiale)
+    - [Implémentation sur la carte](#implémentation-sur-la-carte)
+  - [Structure du projet](#structure-du-projet)
+  - [Conclusion](#conclusion)
+  - [Roadmap](#roadmap)
+
+
+## Résumé du projet
+
+Dans le cadre du projet semestriel en programmation des microcontrôleurs (PMC), j'ai décidé d'implémenter sur la carte `myLab2`, un labyrinthe interactif à l'aide de l'accéléromètre.
+
+### L'idée initiale
+Le principe du jeu est très simple et l'idée est basée sur un souvenir lointain de mon enfance. A la crèche nous avions un petit plateau recouvert par une vitre dans lequel il y'avait un labyrinthe et une bille. Il fallait tout simplement déplacer la bille d'un point de départ vers un point d'arrivée en inclinant/penchant le plateau dans toutes les directions possibles.
+
+### Implémentation sur la carte
+J'ai par conséquent décidé de tenter d'implémenter ce "souvenir" sur la carte `myLab2` afin d'avoir une version "_récente_" du jeu. 
+
+Mon jeu est basé sur les fonctionnalités suivantes:
+- Récupération des données de l'accéléromètre
+- Traitement des données afin de les rendre cohérentes par rapport à une valeur de calibrage de $\pm 2g$
+- Fonctionnement correct de l'accéléromètre (mise à jour cohérente de la position de la bille en fonction de l'accélération sur les axes $x$ et $y$)
+- Gestion du temps par interruption à l'aide du Systick Timer
+- Affichage du temps écoulé sur les 8 petites LEDs
+- Redémarrage du jeu par interruption sur le bouton A (interruption GPIO)
+
+## Structure du projet
+
+Sur l'affichage ci-dessous, le lecteur peut voir la manière dont j'ai structuré ce projet.
+
+```
+.
+└── src
+    ├── main.c
+    ├── hdrs
+    │   ├── accel.h
+    │   ├── config_LPC1769.h
+    │   ├── font.h
+    │   ├── gpio.h
+    │   ├── init_clk.h
+    │   ├── lcd_spi.h
+    │   ├── logic.h
+    │   └── systick.h
+    └── impls
+        ├── accel.c
+        ├── font.c
+        ├── gpio.c
+        ├── init_clk.c
+        ├── lcd_spi.c
+        ├── logic.c
+        └── systick.c
+```
+
+- `main.c`
+  - C'est le fichier qui contiendra le point d'entrée du programme (c-à-d la fonction `int main(void)`). Cette fonction englobera la logique principal du jeu, en tous cas en ce qui concerne la mise à jour de la position de la bille en fonction des données récoltées par l'accéléromètre
+- `/hdrs/*.h`
+  - Le dossier `/hdrs/` contiendra tous les entêtes de fichier nécéssaire pour les implémentations. Les divers fichiers dans ce dossier contiendront les prototypes des fonctions pour l'initialisation des divers parties du microcontrôleur ainsi que la manipulation de ceux-ci.
+- `impls/*.c`
+  - Le dossier `/impls/` contiendra contiendra toutes les implémentations des fonctions déclarées dans les différents fichier d'entête.
+  - Un point central de mon projet était l'utilisation correcte de l'accéléromètre. Dans le fichier `accel.c`, le lecteur trouvera la fonction d'initialisation mais surtout la fonction de récupération des données `void get_raw_data(int16_t *raw_data, uint8_t len)` (la valeur de l'argument `len` devra être strictement égal à 3 car il n'y a que $3$ axes). Le tableau `*raw_data` sera un tableau de longueur $3$ qui sera populé par les valeurs d'accélération sur les axes $x$, $y$, $z$.
+  - La fonction `void get_float_data(float *float_data, int16_t *raw_data, uint8_t len)` s'occupera de populer le tableau `*float_data` avec les données stockées dans `*raw_data`. Le paramètre `len` devra aussi être strictement égal à $3$. Cette fonction convertira les données "brutes" vers des données décimales bornées entre $[-2g; +2g]$. Le calcul effectué est basé sur une macro `SCALE_FACTOR` dont la valeur correspond à $61[\mu g]$. Cette valeur est basé sur la valeur de calibrage choisie à l'initialisation de ce périphérique (dans notre cas le calibrage est de $\pm 2g$). En ayant choisi une valeur de calibrage, le `SCALE_FACTOR` peut-être calculé à l'aide du calcul ci-dessous
+
+$$
+\frac{val. calibrage}{MAXINT16} = SCALEFACTOR
+$$
+
+où la valeur maximale d'un entier sur 16 bits est égale à $32767$
+
+
+
+## Conclusion
+En conclusion, j'aimerai dire que j'ai su terminer ce projet et que l'implémentation et le travail en générale m'a beaucoup plu. Malheureusement la partie de l'accéléromètre m'a pris pas mal de temps sur la totalité du projet par conséquent je n'ai pas pu utiliser un second périphérique cependant le reste du projet correspond complètement au cahier des charges initial.
+
+
+
 ## Roadmap
 
 - ✅ Création du labyrinthe avec GIMP
 - ✅ Définition de la zone virtuelle de l'écran pour la bille
 - ✅ / 🚧 Documentation sur l'accéléromètre de la carte MyLab
 - ✅ Récupération des données de l'accéléromètre
-- 🔴 Calculs mathématiques sur l'orientation de la carte en
+- ✅ Calculs mathématiques sur l'orientation de la carte en
   fonction des données récoltées
-- 🔴 Logique du jeu
+- ✅ Logique du jeu
 - 🥇 Travail sur les bonus
+
+
+
+
+
+