# 📟 MU5MN038 - Projets prototypage



# Couvercle température EJKR

*Un modèle de documentation <span style="background-color: #fbeeb8;">**minimal**</span> pour tous les types de projets. **Toutes** les catégories ci-dessous doivent être renseignées, même de façon succincte.  
<span style="background-color: #fbeeb8;">**IMPORTANT** </span>: Merci de sélectionner le / les tags adéquats dans le menu de droite, et de ne pas créer de nouveau tag.  
Les <span style="background-color: #fbeeb8;">**fichiers sources**</span> doivent idéalement être joints à cette page grâce à l'icône trombone du menu de droite.  
Des hésitations sur comment bien documenter et utiliser l'interface ? Consultez le tutoriel <span style="background-color: #fbeeb8;">[**"Comment documenter"**](https://wiki.fablab.sorbonne-universite.fr/BookStack/books/utilisation-du-wiki-IRi/page/comment-documenter)</span>*

#### Informations

- Ketsia LOE NANGA
- Emma FLEURIEL
- Juliette CAFFA BEAUJEU
- Rabah HAMITECHE
- Adresse mail
- Cursus / Laboratoire / Association
- Date de début - Date de fin estimée (ou réelle)

#### Contexte

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec et mauris non ipsum tincidunt euismod. Donec sed accumsan sem. Proin odio sem, vehicula a suscipit et, efficitur quis diam. Nam in enim a ex bibendum ultricies. Suspendisse in mauris sit amet felis cursus condimentum.

#### Objectifs

Nulla imperdiet mattis neque non vehicula. Aliquam aliquam ac lectus non euismod. Nulla facilisi. Fusce fermentum enim magna, vel consectetur sem malesuada eu. Integer ac iaculis magna, dictum posuere neque. Sed pretium dignissim arcu, vel maximus felis cursus in.

[![image-1653061695508.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2022-05/scaled-1680-/image-1653061695508.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2022-05/image-1653061695508.jpeg)

*Ajouter au moins une image de votre projet*

#### Matériel

- 1 planche de CP peuplier 3mm (dimensions 300\*600mm)
- scotch de peintre
- colle à bois
- cutter
- papier de verre grain moyen (80-100)

#### Machines utilisées

Trotec Speedy 100

#### Construction

*(Fichiers, photos, code, explications, paramètres d'usinage, photos, captures d'écran...)*

##### Étape 1

\----

##### Étape 2

\----

##### Étape 3

\----

#### Journal de bord

*Avancée du projet à chaque étape, difficultés rencontrées, modifications et adaptations (facultatif pour les petits projets)*

##### 03/04/2022

Duis tincidunt mattis sollicitudin. Aenean posuere sapien a metus consectetur, ut blandit tellus finibus. Vivamus convallis tincidunt metus, ut fringilla eros gravida nec. Cras dignissim urna et vestibulum feugiat. Phasellus tempor, nunc quis lobortis volutpat, dolor arcu fermentum elit, in eleifend enim sem fringilla metus. 🚨 Donec quis libero vehicula, varius tortor quis, vehicula libero !!! Cras ultricies tempus ante gravida hendrerit.

##### 11/04/2022

Phasellus in purus quis justo feugiat vestibulum quis eu lacus. 😎 Etiam maximus metus vel massa pharetra convallis. Curabitur vel nunc orci. Praesent dolor dui, laoreet non massa non, pellentesque vestibulum quam. Sed posuere, dui quis semper pulvinar, eros nibh commodo elit, nec auctor arcu est et purus.

##### 18/04/2022

Maecenas interdum turpis sit amet rutrum elementum. Aenean eget accumsan ligula. Phasellus et scelerisque lectus. Cras vel venenatis nulla. Integer tristique non diam et molestie. Pellentesque condimentum enim arcu, in commodo nunc commodo vel. Integer vitae neque facilisis, mattis elit sit amet, gravida turpis. Maecenas lectus mauris, fringilla ut lectus eu, condimentum finibus tortor 🤩🤩🤩

# New Page



# New Page



# New Page



# New Page



# New Page



# New Page



# _Consignes du projet

<p class="callout success">Faire une preuve de concept ou une maquette d’un projet que vous définirez vous-mêmes (choix du projet et thème : libres). Vous documenterez l'ensemble du processus.</p>

<p class="callout success">Inclure toutes les technologies vues en atelier : conception et impression 3D / conception 2D et découpe laser / électronique numérique </p>

<p class="callout success">Deux approches possibles : concevoir un objet qui ressemble à l’objet final (éventuellement à l'échelle) ou bien un système électronique qui simule le comportement de l’objet final (mais ça peut être les deux à la fois)</p>

### Attendus de la documentation

Les éléments suivants doivent apparaître dans la documentation de votre projet :

- définition du projet (besoin, utilisateurs, fonctionnalité principale, fonctionnalités secondaires)
- réflexions sur la problématique et veille sur l'existant
- explications des choix techniques
- gestion de projet : "minimum viable product", planification et répartition des taches
- croquis, dimensions
- liste du matériel
- fichiers de conception et étapes de création des fichiers (captures d'écran) / code
- photos/vidéos et analyse des tests, essais, erreurs
- photos/vidéos des étapes de réalisation du prototype, paramètres des machines
- photos/vidéos de l'objet final
- réflexions de pistes d'amélioration ou d'évolution du projet
- sources des tutoriels, inspirations, ressources utilisées (à insérer au fil de la documentation)

Les projets des années précédentes :

[https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2023-2024/chapter/mu5mn045-projets-prototypage](https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2023-2024/chapter/mu5mn045-projets-prototypage)  
[https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2022-2023/chapter/mu5mn045-projets-prototypage](https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2022-2023/chapter/mu5mn045-projets-prototypage)

# _Projet CleanVibes

<div id="bkmrk-https%3A%2F%2Fespressif.gi"><div>  
</div><div>Créer un bot Telegram</div><div>  
1. **Créer le Bot :**  
   
 - Chercher l'utilisateur **@BotFather** dans Telegram.  
 - Lui envoyer la commande `/newbot`.  
 - Donner un nom (ex: `FabLabProtoBot`) et un nom d'utilisateur (doit finir par `bot`, ex: `MonProjet_bot`).  
 - **IMPORTANT :** BotFather va donner un **API Token** (une longue chaîne de caractères). _Il faut le copier._  
   
2. **Trouver son propre ID (Chat ID) :**  
   
 - Le bot doit savoir à _qui_ envoyer le message.  
 - Chercher l'utilisateur **@userinfobot** (ou `@myidbot`).  
 - Lui envoyer n'importe quel message.  
 - Il répond avec l'ID (une suite de chiffres, ex: `123456789`). _Il faut le copier._  
   
3. **Initialiser la conversation :**  
   
 - **Vital :** Chercher _son_ nouveau bot (celui créé à l'étape 1) et cliquer sur **DÉMARRER** (ou envoyer `/start`).  
 - _Si on ne fait pas ça, le bot n'a pas le droit d'envoyer le premier message (anti-spam)._</div><div>  
</div></div><div id="bkmrk-%60%60%60">```</div><div id="bkmrk-%23include-%3Cwifi.h%3E-%23i"><div><div>\#include &lt;WiFi.h&gt;</div><div>\#include &lt;WiFiClientSecure.h&gt;</div><div>\#include &lt;UniversalTelegramBot.h&gt;</div><div>\#include &lt;ArduinoJson.h&gt;</div>  
<div>// --- Configuration ---</div><div>const char* ssid = "NOM_DU_WIFI";</div><div>const char* password = "MOT_DE_PASSE";</div>  
<div>// Infos Telegram</div><div>\#define BOTtoken "XXXXXXXXX:AAHdqTcvCH1vGWJxf..." // Token donné par BotFather</div><div>\#define CHAT_ID "123456789" // ID donné par userinfobot</div>  
<div>// --- Objets ---</div><div>WiFiClientSecure client;</div><div>UniversalTelegramBot bot(BOTtoken, client);</div>  
<div>void setup() {</div><div>Serial.begin(115200);</div>  
<div>// 1. Connexion WiFi</div><div>WiFi.begin(ssid, password);</div><div>while (WiFi.status() != WL_CONNECTED) {</div><div>delay(500);</div><div>Serial.print(".");</div><div>}</div><div>Serial.println("\nWiFi connecté !");</div>  
<div>// 2. Configuration Sécurité (L'ASTUCE EST ICI)</div><div>client.setInsecure(); // &lt;--- Ignore la vérification du certificat SSL</div><div>// Si on voulait faire propre, il faudrait setCACert() et avoir l'heure précise.</div>  
<div>// 3. Test d'envoi au démarrage</div><div>bot.sendMessage(CHAT_ID, "Salut ! Le prototype est allumé.", "");</div><div>}</div>  
<div>void loop() {</div><div>// Ici, tu mets ta condition (ex: si vibration détectée)</div><div>// if (vibration) {</div><div>// bot.sendMessage(CHAT_ID, "Alerte ! Mouvement détecté !", "");</div><div>// delay(5000); // Anti-spam</div><div>// }</div><div>}</div><div>```</div><div></div></div></div><div id="bkmrk-https%3A%2F%2Fespressif.gi-1"><div>  
</div><div>  
</div><div>https://espressif.github.io/arduino-esp32/package_esp32_index.json</div></div>

#### https://randomnerdtutorials.com/esp32-useful-wi-fi-functions-arduino/


#### Prompt à utiliser pour avoir du code propre :

```
Tu vas agir comme un expert en systèmes embarqués et un mentor pédagogique au sein d'un FabLab. Je suis étudiant et je réalise un prototype.

Voici ma configuration matérielle (Hardware) :
1. Carte de développement : Adafruit Feather ESP32-S2.
2. Capteurs : BME280 (Température/Pression/Humidité) et ADXL345 (Accéléromètre), branchés en I2C.
3. Actionneur : Une LED RGB Neopixel intégrée à la carte.

Voici tes contraintes de programmation (Software) :
1. Langage : C++ pour l'IDE Arduino.
2. Vitesse Série : Toujours utiliser Serial.begin(115200);
3. Bibliothèques : Privilégie les bibliothèques officielles "Adafruit" (Adafruit_NeoPixel, Adafruit_BME280, Adafruit_ADXL345).
4. Structure :
   - Découpe ton code en fonctions claires (ne mets pas tout dans le loop).
   - Ajoute des commentaires expliquant la logique pour que je puisse apprendre.
   - Au début du code, définis les broches (PINS) avec des #define.
5. Sécurité : Ajoute toujours dans le "setup" une vérification que le capteur est bien détecté (avec un while(1) ou un message d'erreur si la connexion échoue).

Mon objectif est de comprendre ce que je fais. Si je te demande un code, ne me donne pas juste la solution : explique brièvement les fonctions clés utilisées.

Si tu as compris, réponds juste par : "Prêt à coder avec le Feather ESP32 ! Qu'est-ce qu'on fait ?"
```

<div id="bkmrk-%2F%2F-neopixel-ring-sim"><div>// NeoPixel Ring simple sketch (c) 2013 Shae Erisson</div><div>// Released under the GPLv3 license to match the rest of the</div><div>// Adafruit NeoPixel library</div>  
<div>\#include &lt;Adafruit_NeoPixel.h&gt;</div>  
<div>// Which pin on the Arduino is connected to the NeoPixels?</div><div>\#define PIN 6 // On Trinket or Gemma, suggest changing this to 1</div>  
<div>// How many NeoPixels are attached to the Arduino?</div><div>\#define NUMPIXELS 1 // Popular NeoPixel ring size</div>  
<div>// When setting up the NeoPixel library, we tell it how many pixels,</div><div>// and which pin to use to send signals. Note that for older NeoPixel</div><div>// strips you might need to change the third parameter -- see the</div><div>// strandtest example for more information on possible values.</div><div>Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);</div>  
<div>\#define DELAYVAL 500 // Time (in milliseconds) to pause between pixels</div>  
<div>void setup() {</div>  
<div> pixels.begin(); // INITIALIZE NeoPixel strip object (REQUIRED)</div><div>}</div>  
<div>void loop() {</div><div> pixels.clear(); // Set all pixel colors to 'off'</div>  
<div> // pixels.Color() takes RGB values, from 0,0,0 up to 255,255,255</div><div> // Here we're using a moderately bright green color:</div><div> pixels.setPixelColor(0, pixels.Color(150, 0, 0));</div>  
<div> pixels.show(); // Send the updated pixel colors to the hardware.</div>  
<div> delay(DELAYVAL); // Pause before next pass through loop</div>  
<div> pixels.clear();</div><div> pixels.show();</div><div> delay(DELAYVAL);</div><div> }</div>  
</div><div id="bkmrk-%23include-%3Cwire.h%3E-%23i"><div>\#include &lt;Wire.h&gt;</div><div>\#include &lt;SPI.h&gt;</div><div>\#include &lt;Adafruit_Sensor.h&gt;</div><div>\#include &lt;Adafruit_BME280.h&gt;</div><div>\#include &lt;Adafruit_NeoPixel.h&gt;</div>  
  
<div>\#define BME_SCK 13</div><div>\#define BME_MISO 12</div><div>\#define BME_MOSI 11</div><div>\#define BME_CS 10</div><div>\#define NUMPIXELS 1</div>  
<div>\#define SEALEVELPRESSURE_HPA (1013.25)</div><div>Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);</div><div>\#define DELAYVAL 500</div>  
<div>Adafruit_BME280 bme; // I2C</div><div>//Adafruit_BME280 bme(BME_CS); // hardware SPI</div><div>//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI</div>  
<div>unsigned long delayTime;</div>  
<div>void pixel_on (int r, int g, int b) {</div><div>pixels.clear();</div><div>pixels.setPixelColor(0,pixels.Color(r, g, b));</div><div>pixels.show();</div><div>}</div>  
<div>void pixel_off(){</div><div>pixels.clear();</div><div>pixels.show();</div><div>}</div>  
<div>void setup() {</div><div>  
</div><div>Serial.begin(9600);</div><div>while(!Serial); // time to get serial running</div><div>Serial.println(F("BME280 test"));</div>  
<div>unsigned status;</div><div>  
</div><div>// default settings</div><div>status = bme.begin();</div><div>// You can also pass in a Wire library object like &amp;Wire2</div><div>// status = bme.begin(0x76, &amp;Wire2)</div><div>if (!status) {</div><div>Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");</div><div>Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(),16);</div><div>Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");</div><div>Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");</div><div>Serial.print(" ID of 0x60 represents a BME 280.\n");</div><div>Serial.print(" ID of 0x61 represents a BME 680.\n");</div><div>while (1) delay(10);</div><div>}</div><div>  
</div><div>Serial.println("-- Default Test --");</div><div>delayTime = 1000;</div>  
<div>Serial.println();</div><div>}</div>  
  
<div>void loop() {</div><div>printValues();</div>  
<div>if(bme.readTemperature()&lt;30){</div><div>pixel_on(0, 150, 0);</div><div>}</div><div>else {</div><div>pixel_on(150, 0, 0);</div><div>}</div><div>delay(delayTime);</div><div>}</div>  
  
<div>void printValues() {</div><div>Serial.print("Temperature = ");</div><div>Serial.print(bme.readTemperature());</div><div>Serial.println(" °C");</div>  
<div>Serial.print("Pressure = ");</div>  
<div>Serial.print(bme.readPressure() / 100.0F);</div><div>Serial.println(" hPa");</div>  
<div>Serial.print("Approx. Altitude = ");</div><div>Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));</div><div>Serial.println(" m");</div>  
<div>Serial.print("Humidity = ");</div><div>Serial.print(bme.readHumidity());</div><div>Serial.println(" %");</div>  
<div>Serial.println();</div><div>}</div>  
</div>

# Le OG presse citron

#### Souad Saleh, Irine Atashian, Gilles Savignac

#### 1. Introduction

Dans le cadre de l’Unité d’Enseignement de prototypage, nous avons réalisé un projet de conception assistée par ordinateur visant à modéliser un objet du quotidien : un presse-citron.

L’objectif de ce projet était de mobiliser les compétences acquises en modélisation 3D, notamment la création d’esquisses paramétriques, l’extrusion de volumes, l’enlèvement de matière ainsi que l’utilisation d’outils de répétition géométrique. Le modèle a été conçu à l’aide du logiciel **Autodesk Fusion**.

#### 2. Analyse fonctionnelle du produit

Le presse-citron conçu doit répondre aux fonctions principales suivantes :

- Extraire efficacement le jus d’un agrume
- Permettre la récupération du jus dans un récipient intégré
- Être stable et ergonomique
- Être compatible avec une fabrication par impression 3D

Le produit se compose de deux parties principales :

1. Un récipient cylindrique servant de collecteur de jus
2. Un presseur central permettant l’extraction

#### 3. Démarche de conception et modélisation

##### 3.1 Création du récipient

La première étape a consisté à modéliser le corps principal du presse-citron.

- Création d’une esquisse circulaire sur un plan horizontal
- Diamètre défini : **100 mm (10 cm)**
- Extrusion sur une hauteur de **20 mm (2 cm)**

Cette opération a permis d’obtenir un cylindre plein constituant la base du récipient.

Dans un second temps :

- Une opération d’enlèvement de matière a été réalisée afin de creuser l’intérieur du cylindre et former le contenant
- Les arêtes supérieures ont été adoucies afin d’améliorer l’ergonomie et l’esthétique du produit

##### 3.2 Conception du presseur central

Le presseur a été modélisé au centre du récipient.

- Création d’un cylindre centré
- Hauteur approximative : **40 mm (4 cm)**

Ce volume constitue la base du cône d’extraction.

##### 3.3 Création des rainures d’extraction

Afin de permettre l’écoulement du jus et d’améliorer l’efficacité du pressage, des rainures ont été intégrées au presseur.

Étapes réalisées :

1. Création d’une esquisse en forme d’arc sur la surface du presseur
2. Extrusion en enlèvement de matière pour creuser la forme
3. Utilisation de l’outil **Réseau circulaire**
4. Répétition du motif **6 fois autour de l’axe central**

Cette opération assure une répartition homogène des rainures autour du presseur.

##### 3.4 Ajout de la pointe supérieure

Pour finaliser la géométrie :

- Une petite esquisse a été créée au sommet du presseur
- Une extrusion a permis d’obtenir une pointe centrale

Cette pointe améliore la pénétration dans l’agrume et optimise l’extraction du jus.

#### 4. Résultat final

Le modèle final comprend :

- Un récipient cylindrique creusé
- Un presseur central rainuré
- Une pointe supérieure
- Des arêtes arrondies pour un rendu plus ergonomique

[![press.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/press.PNG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/press.PNG)

<div class="flex flex-col text-sm pb-25" id="bkmrk-8.-fabrication-par-i"><article class="text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&:has([data-writing-block])>*]:pointer-events-auto scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-scroll-anchor="true" data-testid="conversation-turn-6" data-turn="assistant" data-turn-id="request-WEB:502e8cfe-e897-4ee3-83a5-7d2239f816fd-2" dir="auto" tabindex="-1">#### 8. Fabrication par impression 3D

Notre modèle a été fabriqué à l’aide de l’imprimante 3D **Raise3D**. Après exportation du fichier au format STL, celui-ci a été préparé dans le logiciel de tranchage (slicing) afin de définir les paramètres d’impression tels que la hauteur de couche, le taux de remplissage et la génération éventuelle de supports. L’utilisation de l’imprimante Raise3D nous a permis d’obtenir un prototype physique fidèle au modèle numérique, facilitant ainsi la vérification des dimensions, de la stabilité et de l’ergonomie du presse-citron. Cette étape a été essentielle pour valider la conception et identifier d’éventuelles améliorations avant une production finale.

</article></div>

# Projet final TipTop (Emma, Rabah, Ketsia, Juliette)

<span style="color: rgb(34, 34, 34); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 1.666em; font-weight: 400;">Informations</span>

- Ketsia LOE NANGA, Emma FLEURIEL, Rabah HAMITECHE, Juliette CAFFA-BEAUJEU
- [ketsia.loe\_nanga@etu.sorbonne-universite.fr](mailto:ketsia.loe_nanga@etu.sorbonne-universite.fr), <emma.fleuriel@etu.sorbonne-universite.fr>, <rabah.hamiteche@etu.sorbonne-universite.fr>, [juliette.caffa\_beaujeu@etu.sorbonne-universite.fr](mailto:juliette.caffa_beaujeu@etu.sorbonne-universite.fr)
- M2 Management de l'Innovation, Parcours EPI Sciences
- 2025/2026


# <span role="text">**Projet TipTop – Dessous de tasse intelligent anti-brûlure**</span>

<span role="text">**TipTop - Le dessous de tasse intelligent qui veille sur votre pause café.**</span>

<span role="text">**Allier sécurité, précision et connectivité pour une expérience de dégustation optimale.**</span>

###  I) La Genèse et le Problème

Boire une boisson chaude comme du thé ou du café peut rapidement devenir une mauvaise expérience. Une boisson trop chaude peut provoquer des brûlures de la langue, ce qui est à la fois douloureux et désagréable.

Aujourd’hui, les utilisateurs doivent estimer eux-mêmes la température, souvent en soufflant sur la boisson ou en prenant le risque de goûter trop tôt.

**La problématique :** L'incapacité humaine à évaluer précisément la température d'un liquide sans risque.

Cela entraîne plusieurs conséquences :

- **Risque de brûlure** : mauvaise estimation de la température (palais, langue)
- **Perte de temps** : attendre sans savoir quand la boisson est prête, goûter trop tôt par impatience
- **Manque de précision** : chaque personne a une tolérance différente à la chaleur
- **Expérience utilisateur dégradée** : frustration liée à l’attente ou à l’erreur

### II) Étude de marché et Veille

**Actuellement, il existe peu de solutions équivalentes directement intégrées à un objet du quotidien comme une tasse.**

**L'existant :**

- *Thermomètres de cuisine :* Précis mais encombrants et peu hygiéniques pour un usage nomade.
- *Mugs connectés (type Ember) :* Très chers (150€+), imposent d'utiliser sa propre tasse.

### Positionnement de TipTop

- **Plus accessible** qu’une tasse connectée : s'adapte à notre tasse préférée et nous prévient à distance
- Accessoire universel, abordable et intelligent
- **Plus pratique** qu’un thermomètre externe
- **Plus innovant** grâce à la notification intelligente

###  III) Notre Solution : 

**Mission :** "Rendre la température parlante pour garantir le confort."

<span style="background-color: rgb(241, 196, 15);">**PREMIERE EBAUCHE --&gt;** </span>

**Le concept :** Un semi-couvercle (format ergonomique) intégrant un système de monitoring thermique en temps réel. **TipTop** est un **semi-couvercle intelligent** qui se fixe sur une tasse et permet de savoir précisément quand une boisson chaude est prête à être consommée.

Le système repose sur un capteur thermique qui mesure la température du liquide. Lorsque celle-ci atteint un seuil défini (considéré comme non dangereux pour la consommation), deux actions sont déclenchées :

- Une **LED passe au vert** pour indiquer visuellement que la boisson est prête
- Une **notification est envoyée via Telegram** pour prévenir l’utilisateur à distance

👉 L’objectif est d’améliorer le confort d’usage et d’éviter les brûlures, tout en apportant une dimension connectée et moderne à un objet du quotidien.

**Fonctionnalité principale :** Alerte de "Prêt à boire" (Ready-to-drink).

**Fonctionnalités secondaires :**

- Double retour : Visuel (LED RGB) et Distanciel (Bot Telegram)

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/ryximage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/ryximage.png)

<span style="background-color: rgb(224, 62, 45);">**PROBLEME** </span>

**L'Inertie Thermique de l'Air** : Lors de nos premiers tests, nous avons remarqué un décalage important entre la température réelle du liquide et celle captée par le capteur situé à l'intérieur du couvercle.

- **Constat :** L'air situé entre le liquide et le couvercle agit comme un isolant.
- **Risque :** Le système pourrait indiquer que la boisson est "consommable" alors qu'elle est encore brûlante en profondeur, ou inversement, envoyer la notification trop tard à cause du temps que met la chaleur à monter jusqu'au boîtier.

**<span style="background-color: rgb(241, 196, 15);">SOLUTION FINALE --&gt; </span>**

**La Solution : L'Immersion de la Sonde** Pour garantir une sécurité maximale (anti-brûlure), nous avons pivoté vers une solution de **sonde déportée**.

- **Choix technique :** Au lieu de mesurer la température ambiante sous le couvercle, nous utilisons une sonde étanche (type DS18B20) qui plonge directement dans la boisson.
- **Avantage :** La mesure est instantanée et reflète la température réelle au cœur du liquide.
- **Défi de prototypage :** Cela a nécessité de repenser le design 3D pour intégrer un passage de câble étanche et s'assurer que la sonde ne gêne pas le passage du liquide lorsque l'utilisateur boit.

### IV) Public Cible et Personas

- **Les Étudiants &amp; Jeunes Actifs :** Souvent multitâches, ils oublient leur thé sur le bureau. TipTop les rappelle à l'ordre avant que ce ne soit froid.
- **Les Amateurs de Tech (Early Adopters) :** Cherchent à domotiser chaque aspect de leur vie.
- **Les Personnes Sensibles :** Enfants ou seniors pour qui une brûlure est plus grave.
- **Les Amateurs de thé et café**

### V) Fonctionnement Technique et Conception

**1. Réflexion et croquis :**

Avant toute modélisation, nous avons défini les bases du produit sur papier :

- Définition des **dimensions de la tasse** (diamètre, hauteur)
- Réflexion sur la **forme du semi-couvercle**
- Intégration des contraintes : 
    - emplacement du capteur thermique
    - logement de la batterie
    - passage des câbles
- Choix d’un design simple pour un premier prototype

👉 Objectif : éviter de perdre du temps sur Fusion avec des idées floues

[![image.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/3lCimage.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/3lCimage.jpeg)

[ ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/2dbaea32-8b11-4cd4-b9e6-19bc4434569d.jpg)[![Untitled.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/untitled.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/untitled.png)[ ![Untitled 3.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/untitled-3.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/untitled-3.png)

**2. Modélisation Impression 3D :**

Le modèle a ensuite été réalisé sur Fusion 360, où nous avons conçu la forme de l’objet, ajouté des parois légères et prévu des emplacements pour les composants électroniques comme la LED, tout en ajustant le design pour qu’il puisse être facilement imprimé en 3D.

**[![Screen Couvercle température V1.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/screen-couvercle-temperature-v1.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/screen-couvercle-temperature-v1.png)**

**[![Screen Couvercle température V2.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/screen-couvercle-temperature-v2.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/screen-couvercle-temperature-v2.png)**

**3. Design industriel (PrusaSlicer) :**

- **Contraintes :** Étanchéité de la partie électronique, isolation thermique du capteur
- **Choix du PLA :** Matériau léger, permettant des parois fines pour loger la batterie, pas de risque de fonte lié à la chaleur lorsque la tasse est posé dessus.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/Bk7image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/Bk7image.png)

**4. Impression 3D :**

- **Paramètres :**
- 
- Remplissage interne à 15% pour l'isolation, couche de 0.2mm pour la finition.
- Matériau: PLA
- Support: Full

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/7diimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/7diimage.png)

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/D7zimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/D7zimage.png)

**5. Composants matériels du prototype :**

<table class="MuiTable-root css-1d01jl9" id="bkmrk-composant-r%C3%B4le-esp32"><thead class="MuiTableHead-root css-1e8vh09"><tr class="MuiTableRow-root MuiTableRow-head css-jp5iub"><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-1c5cjpk" scope="col">Composant</th><th class="MuiTableCell-root MuiTableCell-head MuiTableCell-sizeMedium css-1c5cjpk" scope="col">Rôle</th></tr></thead><tbody class="MuiTableBody-root css-jphwqk"><tr class="MuiTableRow-root css-jp5iub"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">**ESP32** [![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/GsJimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/GsJimage.png)

</td><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">Microcontrôleur Wi-Fi gérant la logique et l'envoi des messages.</td></tr><tr class="MuiTableRow-root css-jp5iub"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">**Sonde température**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/hCAimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/hCAimage.png)

<div>  
</div></td><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">Sonde qui mesure précisement la température par contact avec le liquide</td></tr><tr class="MuiTableRow-root css-jp5iub"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">**LED RGB**</td><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">**Rouge** (&gt; 65°C : Danger) / **Vert** (50-60°C : Parfait).</td></tr><tr class="MuiTableRow-root css-jp5iub"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">**Batterie Li-Po**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/csYimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/csYimage.png)

</td><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">Autonomie et portabilité.</td></tr><tr class="MuiTableRow-root css-jp5iub"><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">**Bot Telegram**</td><td class="MuiTableCell-root MuiTableCell-body MuiTableCell-sizeMedium css-x4y7wc">Interface de notification push "Votre thé est à 58°C, dégustez !".</td></tr></tbody></table>

### VI) Expérience Utilisateur (UX)

**<span style="background-color: rgb(241, 196, 15);">--&gt; PREMIERE EBAUCHE : </span>**

- **Étape 1 &amp; 2 : La phase d'alerte (Danger) :** Tout commence au moment où l'utilisateur prépare sa boisson. L'eau sort de la bouilloire à environ 90°C. Dès que l'on pose le couvercle TipTop sur la tasse, le système entre en Phase d'alerte. La LED intégrée se met à clignoter en rouge : c'est un signal visuel immédiat qui indique que la boisson est encore trop chaude et présente un risque de brûlure.
- **Étape 3 : La phase de repos (Liberté) :** C’est ici que résidait la valeur ajoutée de notre produit. Une fois le couvercle en place, l'utilisateur n’a plus besoin de surveiller sa tasse ou de 'tester' la chaleur au risque de se blesser. Il peut s’éloigner et vaquer à ses occupations. Pendant ce temps, le capteur effectue une mesure en continu, traitée en temps réel par notre carte ESP32.
- **Étape 4 &amp; 5 : La phase de confort (Dégustation):** Dès que la température descend sous le seuil de 60°C, nous entrons dans la Phase de confort. À cet instant précis, deux actions se déclenchent : la LED devient verte fixe pour un retour visuel direct, et notre bot Telegram envoie instantanément une notification push sur le smartphone de l'utilisateur.

Cependant, cette première ébauche nous a permis d'identifier un défi technique majeur : l'inertie thermique de l'air.

Nous avons constaté que l'air emprisonné entre le liquide et le couvercle agit comme un isolant. Résultat : le capteur mettait beaucoup trop de temps à chauffer par rapport à la boisson. Il y avait un risque réel : que le système indique que la boisson est prête alors qu'elle est encore brûlante en profondeur.

C’est ce constat physique qui nous a poussés à pivoter vers notre solution finale, que nous allons vous présenter maintenant

**<span style="background-color: rgb(241, 196, 15);">--&gt; SOLUTION FINALE </span>**

Pour corriger ce problème d'inertie, nous avons pivoté vers une solution beaucoup plus fiable. Nous avons abandonné le couvercle pour un format 'dessous de tasse' équipé d'une sonde plongeante."

- **Étape 1 &amp; 2 : Précision chirurgicale --&gt;** Désormais, l’utilisateur place sa tasse sur la base TipTop et insère la sonde directement dans le liquide. En plongeant le capteur au cœur de la boisson, on élimine la barrière de l’air : la mesure de la température est instantanée et 100% réelle.
- **Étape 3 : Une surveillance active --&gt;** La phase de repos reste la même, mais avec une précision accrue. L'ESP32, logé dans la base, analyse les variations thermiques sans aucun délai.
- **Étape 4, 5 &amp; 6 : La sécurité garantie --&gt;** Dès que le seuil de 60°C est atteint, le verdict tombe : la LED passe au vert et la notification Telegram part. Grâce à ce contact direct avec le liquide, nous avons la certitude que l'utilisateur peut boire immédiatement sans aucun risque de brûlure. Notre promesse de sécurité est enfin techniquement validée.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/d6Ximage.png)Notification Telegram obtenu sur le téléphone](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/d6Ximage.png)

### VII) Gestion de Projet &amp; MVP

**Répartition des tâches :**

- **Design 3D :** Ketsia (Fusion 360, PrusaSlicer).
- **Électronique :** Juliette, Rabah, Emma et Ketsia (Câblage, soudure, gestion de la batterie).
- **Code &amp; IoT :** Juliette (Arduino IDE, API Telegram, calibration du capteur).
- **Documentation &amp; Tests :** Rabah, Emma, Ketsia et Juliette (Analyse des erreurs de mesure).

**Minimum Viable Product (MVP) :**<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;"> Une sonde capable de lire une température. </span>

Voici l'état actuel de notre projet : notre MVP. L'objectif de cette étape était de prouver que notre concept est viable et que la technologie répond bien à notre promesse de départ : supprimer le risque de brûlure.

Comme vous pouvez le voir sur ce prototype interne, notre MVP s'articule autour de quatre briques essentielles :

- **La Structure :** Nous avons conçu une base imprimée en 3D. C’est un format fonctionnel qui nous permet de loger en toute sécurité l'électronique sous la tasse.
- **Le Capteur :** C'est le cœur du système. Il effectue une lecture thermique en temps réel. Grâce à notre pivot technique, ce capteur plonge directement dans le liquide pour une précision maximale.
- **L'Interface visuelle :** Nous avons intégré une LED RGB. C'est le retour d'information le plus simple et le plus direct pour l'utilisateur. Rouge : on attend. Vert : on peut boire.
- **La Connectivité :** Pour valider l'aspect 'objet connecté', nous avons développé un Bot Telegram. C’est une solution agile qui permet d'envoyer des notifications push sans avoir besoin de développer une application mobile lourde à ce stade du projet.

**En résumé :** Ce MVP n'est pas encore miniaturisé, mais il valide 100% de nos fonctionnalités critiques. C'est la base solide sur laquelle nous pouvons désormais construire une version industrielle plus fine.

### VIII) Pistes d’amélioration et Évolution (post-MVP)

- **Design --&gt; Miniaturisation :** Boîtier ultra-fin et miniaturisé.
- **Application Mobile et Permettre de régler sa température préférée** (ex: 55°C pour un thé vert, 65°C pour un café).
- **Charge par induction :** Pour supprimer le port USB et rendre l'objet totalement étanche au lavage.
- **Mode "Maintien au chaud" :** Couvercle intégral pour limiter la déperdition thermique
- **Matériaux :** Silicone alimentaire certifié.

# Wendy LIN, Luc LIN, Meriem Guner, Mathias Guilleret

## Documentation Projet Impression 3D : Porte-lunettes Mouse 🐭

Logiciels utilisés : Fusion 360, PrusaSlicer

Machine utilisée : Original Prusa MK4

#### Introduction

Le frère de Wendy avait besoin d'un endroit précis pour poser ses lunettes sur mon bureau sans les rayer, tout en ayant un petit espace pour vider ses poches. Je suis parti sur un design de petite souris, car c'est son signe astrologique chinois et j'aime bien les souris.

#### Étape 1 : Conception sur Fusion 360

Nous avons cherché à faire des formes simples mais efficaces :

- Le bac : J'ai dessiné un rectangle, j'ai arrondi les coins pour que ce soit plus joli, et j'ai "creusé" l'intérieur (avec l'outil Coque/Shell).
- La tête de souris : J'ai ajouté deux grands cercles pour les oreilles sur le bord arrière.
- Le petit nez : J'ai utilisé forme conique pour faire son nez

Nous avons donné un peu de "profondeur" pour faire des petits détails.

Nous avons utilisé des "paramètres". C'est un tableau où on change un chiffre (comme l'épaisseur du plastique) et tout le dessin s'ajuste automatiquement.

#### Étape 2 : Préparation à l'impression (PrusaSlicer)

- Paramètres d’impression
    
    
    - Échelle : 100%
    - Buse : 225°C
    - Plateau : 60°C
    - Filament : Prusa PLA, 1,75 mm de diamètre
    - Supports : non nécessaire
    - Remplissage : 5%
    - Réglages d’impression : paramètres par défaut de PrusaSlicer (sur l'ordinateur du FabLab) 
        - Hauteur de couche : 0,4

- - - [![Capture d’écran 2026-03-06 à 09.31.45.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/capture-decran-2026-03-06-a-09-31-45.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/capture-decran-2026-03-06-a-09-31-45.png)

#### Résultats et Conclusion

L'objet final remplit parfaitement ses deux fonctions :

1. Permet de déposer des clés ou des accessoires de bureau.
2. Les lunettes rentrent dans le porte lunettes.

Améliorations possibles : Pour une version V2, j'envisage d'intégrer une pause à l'impression pour changer de couleur pour faire les détails

[![IMG_8771.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-8771.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-8771.jpeg)[![IMG_8773.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-8773.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-8773.jpeg)

.

# Projet Impression - Support de chargeur

#### Informations

- Emma Fleuriel / Rabah Hamiteche / Alyssa Oueriemmi / Ketsia Loe Nanga / Maxime Mangin / Juliette Caffa-Beaujeu
- <emma.fleuriel@etu.sorbonne-universite.fr> / <rabah.hamiteche@etu.sorobonne-universite.fr> / [ketsia.loe\_nanga@etu.sorobonne-universite.fr](mailto:ketsia.loe_nanga@etu.sorobonne-universite.fr) / <maxime.mangin@etu.sorbonne-universite.fr> / <juliette.caffa-beaujeu@etu.sorbonne-universite.fr> /
- Master 2 management de l'Innovation
- Jeudi 5 mars 2026

#### Contexte

Dans le cadre de notre UE prototypage, nous avons été amenés à prototyper un objet.

#### Objectifs

L' objectif était de prototyper un objet utile du quotidien, avec le logiciel auto desk, puis de l'imprimer en 3D.

<span style="background-color: rgb(241, 196, 15);">METTRE IMAGE PROJET IMPRIME</span>

#### Matériel

- <span style="background-color: rgb(241, 196, 15);">1 planche de CP peuplier 3mm (dimensions 300\*600mm)</span>
- <span style="background-color: rgb(241, 196, 15);">scotch de peintre</span>
- <span style="background-color: rgb(241, 196, 15);">colle à bois</span>
- <span style="background-color: rgb(241, 196, 15);">cutter</span>
- <span style="background-color: rgb(241, 196, 15);">papier de verre grain moyen (80-100)</span>

#### Machines utilisées

<span style="background-color: rgb(241, 196, 15);">Trotec Speedy 100</span>

#### Construction

*(Fichiers, photos, code, explications, paramètres d'usinage, photos, captures d'écran...)*

##### Étape 1: auto desk fusion (modélisation)  


base rectangle de 5cm sur 3 cm

angle arrondi a 0.3mm puis 0.1 sur les bords au niveau des perforations

perforation en cylindre de 0.5 cm : 4 trous d'espacement égal

initiales gravées sur le côté droit avec profondeur de 0.1mm

##### Étape 2 : prusa slicer (pour impression)  


importation du fichier puis mise en place des couches pour impression

exportation en stl pour impression

##### Étape 3 : impression  


impression sur une imprimante 3d ref .........

4h d'impression au fil ref....... rouge

#### Journal de bord

*Nous avons eu du mal avec les echelles : nous avons confondu mm et cm mais l'erreur a été corrigée.*

*Tout a été géré à la perfection for sure*

# Pot à Pinceaux

#### **Elisa Wang et Seema Baig Dusmee**

#### **Description de l'objet :**

**Objet en deux parties : 1 support à peintures et 1 pot à pinceaux**

**Modèle utilisé :**

[![IMG_E9485[1].JPG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-e94851.JPG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-e94851.JPG)

#### **Logiciels utilisés pour les impressions 3D :**

<div aria-label="Options de section de page" class="pointer-container" id="bkmrk-%C2%A0" refs="pointer@pointer" tabindex="-1"><div class="pointer flex-container-row items-center justify-space-between p-s anim "><div class="flex-container-row items-center gap-s" refs="pointer@mode-section"><button class="text-button icon px-xs" title="Mode Lien Permanent, Cliquer pour afficher la balise d'inclusion"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="input-group"> <button class="button outline icon" title="Copier le lien" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div></div></div></div>- **Modélisation** : Fusion 360
- **Slicing** : PrusaSlicer

#### **Paramètres d'impression utilisés pour toutes les impressions 3D :**

- **Buse** : 225°C
- **Plateau** : 60°C
- **Diamètre du filament** : Prusa PLA, 1,75 mm
- **Remplissage** : 20 %
- **Paramètres d'impression** : paramètres par défaut de PrusaSlicer (qualité standard, épaisseur de couche classique)

#### **Partie 1 :**

**Support à peintures sur Fusion 360 :**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/ANdimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/ANdimage.png)

**Avec les pieds qui s'emboite au support :**

**[![xpfimage.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/Rmnxpfimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/Rmnxpfimage.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/3TOimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/3TOimage.png)**

**Support à peintures sur PrusaSlicer :**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/JqDimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/JqDimage.png)

**Impression ratée :**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/bseimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/bseimage.png)

#### **Partie 2 :**

**Pot à pinceaux sur Fusion 360 :**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/XIPimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/XIPimage.png)

**Pot à pinceaux sur PrusaSlicer :**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/Qbnimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/Qbnimage.png)

**Impression ratée :**

[![QJRF6749[1].JPG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/qjrf67491.JPG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/qjrf67491.JPG)

#### **Objet final :**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/iucimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/iucimage.png)

# Can GENIS

#### **Objet 1**

J'ai commencé par créer un anneau vertical que j'ai dupliqué 7 fois autour. Ensuite, j'ai ajouté un anneau plus petit juste au-dessus de la cage créée. Après un premier essai d'impression, j'ai remarqué que, pour conserver la forme stable, je devais ajouter un autre anneau horizontal et des supports tout autour de l'objet (sauf à l'intérieur). Ainsi, j'ai réussi à imprimer correctement la cage.

[![Ekran Resmi 2024-12-15 22.57.07.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/scaled-1680-/ekran-resmi-2024-12-15-22-57-07.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/ekran-resmi-2024-12-15-22-57-07.png)

[![IMG_1217.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/scaled-1680-/OMsimg-1217.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/OMsimg-1217.jpeg)

[![0493A017-0E3E-4B93-9BD1-32AF204A1241.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/scaled-1680-/D5V0493a017-0e3e-4b93-9bd1-32af204a1241.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/D5V0493a017-0e3e-4b93-9bd1-32af204a1241.jpeg)

**Pour imprimer :**

- Importer le fichier .stl dans PrusaSlicer (ou télécharger directement le fichier .bgcode)
- Ajouter des supports (partout sauf l'intérieur)
- Exporter le fichier dans une clé USB
- Après l'impression de l'anneau au milieu ajouter le petit objet (une boule dans ce cas) au milieu du cage
- Attendre ~1h10 mn

#### **Objet 2**

J'ai commencé avec l'idée de créer un objet monolithique contenant une boule capable de tourner librement à l'intérieur. Pour cela, j'ai d'abord créé un cube, puis j'y ai formé un trou traversant dans lequel j'ai placé un cylindre d'un côté à l'autre. Ensuite, j'ai positionné une sphère autour du cylindre sans qu'elle le touche. Pour l'impression, j'ai ajouté des supports partout sauf à l'intérieur de la sphère, afin qu'elle ne touche jamais le cylindre et puisse tourner librement

[![Ekran Resmi 2024-12-12 21.41.36.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/scaled-1680-/ekran-resmi-2024-12-12-21-41-36.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/ekran-resmi-2024-12-12-21-41-36.png)

[![Ekran Resmi 2024-12-13 14.19.32.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/scaled-1680-/ekran-resmi-2024-12-13-14-19-32.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2024-12/ekran-resmi-2024-12-13-14-19-32.png)

**Pour imprimer :**

<div aria-label="Page Section Options" class="pointer-container" id="bkmrk-" refs="pointer@pointer" tabindex="-1"><div class="pointer flex-container-row items-center justify-space-between p-s anim is-page-editable"><div class="flex-container-row items-center gap-s" refs="pointer@mode-section"><button class="text-button icon px-xs" title="Permalink mode, Press to show include tag"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button><div class="input-group"> <button class="button outline icon" title="Copy Link" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>- Importer le fichier .stl dans PrusaSlicer (ou télécharger directement le fichier .bgcode)
- Ajouter des supports (option partout)
- Exporter le fichier dans une clé USB
- Attendre ~2h30 mn

# Soumaila BARA, Polina BUNTURI

## <span style="color: rgb(22, 145, 121);">**Support IPad pour Plaque de bienvenue**</span>

[![Capture d’écran 2026-03-06 à 09.27.31.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/capture-decran-2026-03-06-a-09-27-31.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/capture-decran-2026-03-06-a-09-27-31.png)

[![Capture d’écran 2026-03-06 à 09.30.37.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/capture-decran-2026-03-06-a-09-30-37.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/capture-decran-2026-03-06-a-09-30-37.png)

---

## Introduction

Dans le cadre de l’amélioration de l’accueil des visiteurs au laboratoire, un iPad avait été installé à l’entrée afin de permettre aux visiteurs de s’enregistrer en indiquant leurs coordonnées ainsi que le motif de leur venue. Cependant, malgré son utilité, cet outil n’était pas toujours utilisé.

Pour répondre à ce problème, nous avons travaillé sur la **conception et la réalisation d’un support dédié pour l’iPad**, dans le but d’améliorer sa visibilité et d’inciter les visiteurs à l’utiliser dès leur arrivée.

---

## Conception avec Fusion

Pour concevoir ce support, nous avons utilisé le logiciel **Fusion** afin de modéliser la structure en 3D.

Cette étape nous a permis de :

- définir les **dimensions adaptées à l’iPad**,
- concevoir une **structure stable et ergonomique**,
- intégrer un emplacement pour une **plaque de bienvenue rouge**, destinée à attirer l’attention des visiteurs.

La modélisation 3D m’a permis de visualiser le support avant sa fabrication et d’effectuer les ajustements nécessaires afin d’obtenir un design fonctionnel et esthétique.

---

## Impression 3D

Une fois la conception terminée, le support a été fabriqué grâce à **l’impression 3D**.

Pour la réalisation, j’ai utilisé du **PLA (acide polylactique)**, un matériau couramment utilisé en impression 3D car il est :

- **facile à imprimer**,
- **rigide et suffisamment résistant** pour ce type d’application,
- **respectueux de l’environnement**, car il est issu de ressources renouvelables.

L’impression 3D a permis de produire le support de manière précise et rapide, tout en respectant les dimensions définies lors de la modélisation.

---

## Problématique

Un iPad avait été installé à l’entrée du laboratoire afin que les visiteurs puissent s’y enregistrer en indiquant leurs coordonnées et le motif de leur venue. Cependant, cet outil était souvent ignoré.

La tablette, peu visible, n’attirait pas suffisamment l’attention et l’enregistrement n’était donc pas systématiquement effectué. Cela rendait la collecte d’informations moins efficace et compliquait la gestion de l’accueil des visiteurs.

---

## Idée

L’idée était de **concevoir un support spécifique pour mettre en valeur l’iPad** et d’y intégrer une **plaque de bienvenue rouge** afin de capter immédiatement l’attention des visiteurs.

L’objectif était de :

- rendre l’iPad **plus visible**,
- **inciter les visiteurs à s’enregistrer de manière autonome**,
- **faciliter la collecte des informations utiles** pour le laboratoire.

---

## Résultat

Le support ainsi que la plaque de bienvenue ont été réalisés et installés à l’entrée du laboratoire.

Grâce à cette solution, l’iPad est devenu **plus attractif et plus visible**, ce qui a encouragé davantage de visiteurs à s’enregistrer. Le processus d’accueil a ainsi été amélioré, avec une **collecte de données plus complète et structurée**.

---

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/EOFimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/EOFimage.png)

# Defne Su KURTOGLU / Meritxell ALIE FABREGAS / Toufic BATACHE

## Introduction

### Définition du projet

Le projet consiste à fabriquer une **épée rétractable imprimée en 3D**, composée de plusieurs segments imbriqués qui se déploient et se rétractent à l’intérieur d’une poignée.

Ce type d’objet est souvent utilisé comme **objet démonstratif pour l’impression 3D**, car il met en valeur la précision des imprimantes et la possibilité de créer des mécanismes fonctionnels en une seule pièce.

#### Besoin

L’objectif du projet était de comprendre et expérimenter :

- les **contraintes de l’impression 3D**
- la **conception d’objets articulés**
- les **paramètres d’impression influençant le fonctionnement des mécanismes**

#### Utilisateurs

Les utilisateurs potentiels sont nous juste pour le fun.

#### Fonctionnalité principale

Déploiement et rétraction de la lame en tirant sur la pointe.

#### Fonctionnalités secondaires

- Objet compact lorsqu’il est fermé
- Objet entièrement imprimé en une seule pièce
- Objet pédagogique démontrant un mécanisme intégré

[![Screenshot 2026-03-06 at 10.12.56 AM.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/screenshot-2026-03-06-at-10-12-56-am.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/screenshot-2026-03-06-at-10-12-56-am.png)

# Conception sur Fusion 360

Même si le modèle provenait d’un fichier disponible en ligne, nous avons choisi de l’ouvrir et de l’étudier dans **Fusion 360** afin de :

- comprendre la **structure du mécanisme**
- vérifier les **dimensions**
- analyser les **tolérances entre les segments**
- adapter certains paramètres si nécessaire

Cela nous a permis de mieux comprendre comment sont conçus les objets mécaniques imprimés en 3D.

### Croquis et dimensions

Le modèle est composé de :

- une **poignée**
- plusieurs **segments de lame télescopiques**
- une **pointe**

Chaque segment possède :

- une forme légèrement **conique**
- un **jeu mécanique** permettant le glissement

### Étapes dans Fusion 360

1. Importation du modèle
2. Analyse des composants
3. Vérification des tolérances
4. Export du fichier en **STL**

### Choix techniques

Plusieurs choix techniques ont été faits :

- impression **en une seule pièce**
- tolérance entre segments permettant le mouvement
- orientation verticale pour limiter les supports

Ces choix visent à permettre au mécanisme de fonctionner immédiatement après impression.

[![Image 06-03-2026 à 10.17.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/image-06-03-2026-a-10-17.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/image-06-03-2026-a-10-17.png)

# Préparation à l'impression (PrusaSlicer)

Le fichier STL a été importé dans **PrusaSlicer** pour préparer l'impression.

### Paramètres utilisés

Paramètres principaux :

- hauteur de couche : 0.2 mm
- remplissage : 15 %
- matériau : PLA
- supports : **peu de supports**

Nous avons conservé les paramètres recommandés par le modèle trouvé en ligne.

### Orientation

L'objet a été imprimé **verticalement**, ce qui permet :

- de conserver la précision des segments
- de limiter les supports

[![Screenshot 2026-03-06 at 10.15.27 AM.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/screenshot-2026-03-06-at-10-15-27-am.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/screenshot-2026-03-06-at-10-15-27-am.png)

# Résultats

Après l'impression, l'objet a été retiré du plateau.

Malheureusement, l'épée **ne se rétractait pas correctement**.

Les segments semblaient :

- bloqués
- difficiles à faire glisser

Nous avons essayé de tirer doucement sur la pointe et faire bouger les segments mais le mécanisme restait bloqué

[![IMG_3478.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-3478.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-3478.jpg)

[![IMG_3477.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-3477.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-3477.jpg)

[![IMG_3476.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-3476.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-3476.jpg)

### Analyse des problèmes

Plusieurs hypothèses ont été identifiées :

1. **Surface trop rugueuse :** Les couches d'impression peuvent créer des irrégularités empêchant les segments de glisser.

2. **Supports gênants :** Certains supports peuvent avoir laissé des résidus dans les interstices.

3. **Tolérances insuffisantes :** Le jeu entre les segments peut être trop faible pour compenser les imperfections d'impression.

# Conclusion

Ce projet nous a permis de découvrir :

- la conception d'objets mécaniques imprimés en 3D
- les contraintes de tolérance
- l'importance des paramètres d'impression

Même si l'épée ne fonctionne pas parfaitement, l'expérience reste très instructive.

# Améliorations possibles

Plusieurs pistes d'amélioration existent :

- augmenter les **tolérances entre les segments**
- réduire les **supports**
- utiliser une **hauteur de couche plus fine**
- utiliser un **filament plus précis**
- poncer légèrement les surfaces

Il serait également possible de modifier le modèle dans Fusion 360 afin d'améliorer la fluidité du mécanisme.

# Lisa Goulvestre et Joaquin Austin

**<span style="text-decoration: underline;">Documentation : Le vase</span>**

**Etape 1 : La modélisation 3D**

Par autodesk Fusion 360

Réalisé par : POT = esquisse &gt; révolution

\+ POIGNEE = esquisse &gt; révolution &gt; congé &gt; réseau circulaire (x2)

[![vase 3D.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/vase-3d.PNG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/vase-3d.PNG)

**Etape 2 : Préparation à l'impression**

Température de la buse : 200-230°C

Température de la plaque : 60°C

Matériaux : PLA blanc

Temps : 9h40min

**Etape 3 : L'impression**

[![IMG_7843.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/iKsimg-7843.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/iKsimg-7843.jpeg)

<span style="text-decoration: underline;">Point fort </span>: Pas de problème à l'impression, resistance (peut contenir de l'eau), utile et esthétique.

<span style="text-decoration: underline;">Axe d'amélioration :</span> angle à retravailler (congé de 30 mm à réaliser sur Autodesk), plus lisse, problème d'esquisse rencontré pour réaliser un fond

**<span style="text-decoration: underline;">Documentation : Le trophée</span>**

**Etape 1 : La modélisation 3D**

Nous avons repris le modèle du vase, mais nous avons modifié l'esquisse pour affiner ce qui sera le corps du trophée, l'épaisseur pour diminuer le temps d'impression et un socle pour le trophée a été ajouté.

[![trophée.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/trophee.PNG)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/trophee.PNG)

**Etape 2 : Préparation à l'impression**

Température de la buse : 200-230°C

Température de la plaque : 60°C

Matériaux : PLA

Temps : 4h20min

**Etape 3 : L'impression**

Essai N°1:

Echec car sur Prusa Slicer le modèle n'était pas à plat sur la base (décalage de 1°C)

Essai N°2 :

Echec car manque d'alimentation du fil PLA au milieu de l'impression

[![IMG_7844.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/scaled-1680-/img-7844.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-03/img-7844.jpeg)

Essai N°3 :

<span style="text-decoration: underline;">Point fort </span>: ...

<span style="text-decoration: underline;">Axe d'amélioration :</span> ...

# Projet Final - Rééducation Ludique

## <span style="color: rgb(0, 0, 0);">**FlexMouv - Dispositif Robotisé de Rééducation des Membres Supérieurs**</span>

##### **Équipe projet**

- <span style="color: rgb(0, 0, 0);"> ATASHIAN Irine</span>
- <span style="color: rgb(0, 0, 0);"> BAIG Seema</span>
- <span style="color: rgb(0, 0, 0);"> Wang Elisa </span>

<span style="color: rgb(0, 0, 0);">FlexMouv est un dispositif robotisé conçu dans le cadre de l'UE MU5MN045. </span>

<span style="color: rgb(0, 0, 0);">Il vise à accompagner la rééducation des membres supérieurs, poignet, avant‑bras, coude et bras, grâce à un système interactif où le patient pilote un petit véhicule via une télécommande.  
Le mouvement du véhicule dans un parcours dédié sollicite différents axes de mobilité, permettant une rééducation progressive, ludique, sécurisée et accessible.</span>

#### <span style="text-decoration: underline; color: rgb(0, 0, 0);">**Contexte**</span>

<span style="color: rgb(0, 0, 0);">La rééducation des membres supérieurs est essentielle pour les patients souffrant de :</span>

- <span style="color: rgb(0, 0, 0);">**Arthrose** (dégradation articulaire limitant les amplitudes)</span>
- <span style="color: rgb(0, 0, 0);">**Polyarthrite rhumatoïde** (inflammation chronique des articulations)</span>
- <span style="color: rgb(0, 0, 0);">**Tendinites chroniques** (épicondylite, tendinite du poignet)</span>
- <span style="color: rgb(0, 0, 0);">**Séquelles d’AVC** (perte de mobilité fine)</span>
- <span style="color: rgb(0, 0, 0);">**Traumatismes** (fractures, entorses, immobilisation prolongée)</span>
- <span style="color: rgb(0, 0, 0);">**Maladies neuromusculaires** (Parkinson, myopathies)</span>

<span style="color: rgb(0, 0, 0);">Les dispositifs actuels sont souvent :</span>

- <span style="color: rgb(0, 0, 0);">coûteux,</span>
- <span style="color: rgb(0, 0, 0);">peu ludiques,</span>
- <span style="color: rgb(0, 0, 0);">non modulables,</span>
- <span style="color: rgb(0, 0, 0);">ou nécessitent une supervision constante.</span>

<span style="color: rgb(0, 0, 0);">**FlexMouv** répond à ces limites en proposant un système robotisé simple, motivant et adaptable.</span>

##### <span style="color: rgb(0, 0, 0);">**Réflexion sur la problématique &amp; veille sur l’existant**</span>

<span style="color: rgb(0, 0, 0);">La rééducation du membre supérieur repose sur un ensemble d’exercices destinés à restaurer la mobilité, la force et la coordination après une pathologie ou un traumatisme. Pourtant, malgré l’importance de ces séances, de nombreux patients peinent à maintenir une pratique régulière : les exercices sont souvent répétitifs, peu stimulants, et parfois douloureux. Cette réalité crée un véritable enjeu pour les kinésithérapeutes, qui cherchent des outils capables de soutenir l’engagement du patient tout en garantissant une progression sécurisée.</span>

<span style="color: rgb(0, 0, 0);">Dans ce contexte, nous avons étudié différents dispositifs existants afin de comprendre leurs apports, leurs limites et les raisons pour lesquelles un système comme **FlexMouv** peut trouver sa place.</span>

##### <span style="color: rgb(0, 0, 0);">**Les exosquelettes et dispositifs robotisés lourds**</span>

<span style="color: rgb(0, 0, 0);">Les exosquelettes de rééducation (Armeo®, HAL®, ReWalk®, etc.) représentent aujourd’hui l’une des solutions les plus avancées technologiquement. Ils permettent un accompagnement motorisé très précis, une mesure fine des mouvements et une adaptation au niveau du patient. Cependant, ces systèmes présentent plusieurs limites majeures :</span>

- <span style="color: rgb(0, 0, 0);">un coût très élevé, très coûtant pour la majorité des cabinets ou structures de petite taille ;</span>
- <span style="color: rgb(0, 0, 0);">une installation complexe, nécessitant du personnel formé ;</span>
- <span style="color: rgb(0, 0, 0);">une utilisation fatigante pour certains patients, notamment les personnes âgées ;</span>
- <span style="color: rgb(0, 0, 0);">une faible dimension ludique, alors que la motivation est un facteur clé de réussite.</span>

<span style="color: rgb(0, 0, 0);">[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/t0nimage.png) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/t0nimage.png)<span style="text-decoration: underline;">*Dispositif Armeo*</span></span>

<span style="color: rgb(0, 0, 0);">Ces dispositifs sont donc performants, mais peu adaptés à une utilisation simple, régulière et accessible. FlexMouv se positionne volontairement à l’opposé : un outil léger, peu coûteux, facile à mettre en place et utilisable dans des séances courtes.</span>

##### <span style="color: rgb(0, 0, 0);">**Les dispositifs mécaniques traditionnels**</span>

<span style="color: rgb(0, 0, 0);">Les outils classiques de rééducation — roues de mobilisation, poignées, balles, élastiques, tables de mobilisation — sont largement utilisés car ils sont simples, robustes et économiques. Ils permettent de travailler efficacement certaines amplitudes, mais ils souffrent de plusieurs limites :</span>

- <span style="color: rgb(0, 0, 0);">des exercices souvent répétitifs et monotones, qui réduisent l’adhésion du patient ;</span>
- <span style="color: rgb(0, 0, 0);">une mobilisation parfois trop ciblée, ne sollicitant pas la coordination globale bras‑main ;</span>
- <span style="color: rgb(0, 0, 0);">une absence de retour ludique, ce qui peut décourager les patients souffrant de douleurs chroniques.</span>

<span style="color: rgb(0, 0, 0);">FlexMouv apporte ici une réponse intéressante : il transforme un exercice mécanique en une activité engageante, où le patient se concentre sur un objectif (piloter un véhicule) plutôt que sur la douleur ou la difficulté du mouvement.</span>

##### <span style="color: rgb(0, 0, 0);">**Les jeux thérapeutiques et dispositifs ludiques**</span>

<span style="color: rgb(0, 0, 0);">Ces dernières années, plusieurs approches ludiques ont émergé : jeux vidéo adaptés, réalité virtuelle, parcours moteurs, plateformes interactives. Elles ont démontré leur capacité à augmenter la motivation et la répétition des mouvements, deux éléments essentiels en rééducation.</span>

<span style="color: rgb(0, 0, 0);">Cependant, ces solutions présentent elles aussi des limites :</span>

- <span style="color: rgb(0, 0, 0);">un coût matériel important (casques VR, consoles, capteurs) ;</span>
- <span style="color: rgb(0, 0, 0);">des mouvements parfois trop globaux, peu adaptés à un travail fin du poignet ou de l’avant‑bras ;</span>
- <span style="color: rgb(0, 0, 0);">une complexité d’installation dans un cabinet de kinésithérapie classique ;</span>
- <span style="color: rgb(0, 0, 0);">une fatigue visuelle ou cognitive pour certains patients.</span>

<span style="color: rgb(0, 0, 0);">FlexMouv reprend l’idée de jeu , mais dans une version beaucoup plus simple, accessible et centrée sur les articulations du membre supérieur.</span>

##### <span style="color: rgb(0, 0, 0);">**Le modèle de référence étudié**</span>

<span style="color: rgb(0, 0, 0);">Le dispositif présenté dans la vidéo de référence ([https://www.youtube.com/watch?v=Pz2hE\_\_z57c](https://www.youtube.com/watch?v=Pz2hE__z57c)) propose un concept intéressant : un petit véhicule piloté par le patient, évoluant dans un parcours. Ce modèle met en avant :</span>

- <span style="color: rgb(0, 0, 0);">la dimension ludique,</span>
- <span style="color: rgb(0, 0, 0);">la mobilisation naturelle du bras,</span>
- <span style="color: rgb(0, 0, 0);">la possibilité de varier les parcours.</span>

<span style="color: rgb(0, 0, 0);">Cependant, il reste limité sur plusieurs aspects :</span>

- <span style="color: rgb(0, 0, 0);">la télécommande n’est pas pensée pour la rééducation du poignet ;</span>
- <span style="color: rgb(0, 0, 0);">les mouvements sollicités sont peu variés ;</span>
- <span style="color: rgb(0, 0, 0);">la difficulté n’est pas modulable ;</span>
- <span style="color: rgb(0, 0, 0);">aucun capteur ne permet de suivre la posture ou l’inclinaison.</span>

<span style="color: rgb(0, 0, 0);">**FlexMouv** reprend cette idée, mais l’adapte à un cadre thérapeutique : télécommande ergonomique, parcours modulable, sollicitation de plusieurs articulations, possibilité d’intégrer des capteurs, et approche plus sécurisée.</span>

##### <span style="color: rgb(0, 0, 0);">**Conclusion de la veille**</span>

<span style="color: rgb(0, 0, 0);">L’analyse des dispositifs existants montre un paysage contrasté : d’un côté, des solutions très avancées mais coûteuses et complexes ; de l’autre, des outils simples mais peu engageants. FlexMouv se situe volontairement entre ces deux extrêmes. Il propose :</span>

- <span style="color: rgb(0, 0, 0);">une solution accessible,</span>
- <span style="color: rgb(0, 0, 0);">simple à utiliser,</span>
- <span style="color: rgb(0, 0, 0);">ludique,</span>
- <span style="color: rgb(0, 0, 0);">adaptée à différents profils de patients,</span>
- <span style="color: rgb(0, 0, 0);">et capable de solliciter plusieurs articulations du membre supérieur.</span>

<span style="color: rgb(0, 0, 0);">C’est précisément cette combinaison de simplicité et d'efficacité qui fait l’originalité et la pertinence du projet.</span>

#### <span style="color: rgb(0, 0, 0);">**<span style="text-decoration: underline;">Description du dispositif</span>** </span>

<span style="color: rgb(0, 0, 0);">Le dispositif repose sur un principe simple : le patient tient une télécommande et dirige un petit véhicule dans un parcours, ce qui l’amène à mobiliser différentes articulations selon les mouvements nécessaires.   
</span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/81Vimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/81Vimage.png)

##### **<span style="color: rgb(0, 0, 0);">Objectifs principaux</span>**

- <span style="color: rgb(0, 0, 0);">améliorer la mobilité du poignet (flexion, extension, pronation, supination)</span>
- <span style="color: rgb(0, 0, 0);">renforcer les muscles de l’avant‑bras</span>
- <span style="color: rgb(0, 0, 0);">encourager la coordination bras‑main</span>
- <span style="color: rgb(0, 0, 0);">proposer une rééducation progressive et sécurisée</span>
- <span style="color: rgb(0, 0, 0);">offrir un appareil peu coûteux, robuste et accessible</span>

##### **<span style="color: rgb(0, 0, 0);">Inspirations</span>**

<span style="color: rgb(0, 0, 0);">Le concept s’inspire de dispositifs ludiques de rééducation, notamment le modèle présenté dans la vidéo suivante : https://www.youtube.com/watch?v=Pz2hE\_\_z57c . Nous reprenons l’idée du parcours et du contrôle manuel, mais en l’intégrant dans un système robotisé plus complet.</span>

##### **<span style="color: rgb(0, 0, 0);">Définition du projet</span>**

<span style="color: rgb(0, 0, 0);">La conception de FlexMouv part d’un constat simple : la rééducation du membre supérieur nécessite des exercices réguliers, variés et adaptés, mais les outils disponibles sont souvent soit trop basiques, soit trop coûteux, soit trop peu engageants pour maintenir la motivation du patient. Notre projet vise donc à proposer un dispositif robotisé accessible, ludique et suffisamment polyvalent pour être utilisé dans différents contextes thérapeutiques.</span>

##### **<span style="color: rgb(0, 0, 0);">Besoins utilisateurs</span>**

<span style="color: rgb(0, 0, 0);">a) Les patients en rééducation (atteints d’arthrose, de tendinites, de séquelles d’AVC ou de maladies neuromusculaires) ont besoin :</span>

- <span style="color: rgb(0, 0, 0);">d’un outil simple à prendre en main, même en cas de faiblesse musculaire ;</span>
- <span style="color: rgb(0, 0, 0);">d’exercices progressifs, qui respectent leurs limites ;</span>
- <span style="color: rgb(0, 0, 0);">d’un dispositif motivant, qui détourne l’attention de la douleur ;</span>
- <span style="color: rgb(0, 0, 0);">d’un environnement sécurisé, sans risque de chute ou de surcharge articulaire.</span>

<span style="color: rgb(0, 0, 0);">b) Kinésithérapeutes, les professionnels recherchent : </span>

- <span style="color: rgb(0, 0, 0);">un outil **polyvalent**, capable de solliciter plusieurs articulations ;</span>
- <span style="color: rgb(0, 0, 0);">un dispositif **rapide à installer**, utilisable en séance courte ;</span>
- <span style="color: rgb(0, 0, 0);">un support permettant d’**observer la qualité du mouvement** (fluidité, amplitude, précision) ;</span>
- <span style="color: rgb(0, 0, 0);">un matériel **fiable et robuste**, facile à intégrer dans une séance classique.</span>

<span style="color: rgb(0, 0, 0);">c) Centres de rééducation --&gt; les structures ont besoin :</span>

- <span style="color: rgb(0, 0, 0);">d’un dispositif peu coûteux, compatible avec des budgets limités ;</span>
- <span style="color: rgb(0, 0, 0);">d’un matériel transportable, utilisable dans différentes salles ;</span>
- <span style="color: rgb(0, 0, 0);">d’un système modulable, adaptable à différents profils de patients ;</span>
- <span style="color: rgb(0, 0, 0);">d’un outil sans maintenance complexe, contrairement aux exosquelettes ou systèmes motorisés lourds.</span>

##### <span style="color: rgb(0, 0, 0);">**Description technique** </span>

<span style="color: rgb(0, 0, 0);">**MVP (Minimum Viable Product) :** Le robot avance, recule et tourne en réponse à l'inclinaison de la main, via une communication sans fil et avec support pour la main et un parcours.</span>

Ce dispositif permet de travailler :

<div id="bkmrk-articulation-mouveme"><div><div aria-label="Table défilante" role="region" tabindex="0"><table><thead><tr><th><span style="color: rgb(0, 0, 0);">Articulation</span></th><th><span style="color: rgb(0, 0, 0);">Mouvement sollicité</span></th></tr></thead><tbody><tr><td><span style="color: rgb(0, 0, 0);">Poignet</span></td><td><span style="color: rgb(0, 0, 0);">Flexion / extension</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Poignet</span></td><td><span style="color: rgb(0, 0, 0);">Pronation / supination</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Coude</span></td><td><span style="color: rgb(0, 0, 0);">Flexion</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Épaule</span></td><td><span style="color: rgb(0, 0, 0);">Élévation du bras</span></td></tr><tr><td><span style="color: rgb(0, 0, 0);">Avant‑bras</span></td><td><span style="color: rgb(0, 0, 0);">Travail des tendons et muscles stabilisateurs</span></td></tr></tbody></table>

</div></div></div><span style="color: rgb(0, 0, 0);">**Contraintes Techniques** </span>

- <span style="color: rgb(0, 0, 0);">sécurité du patient</span>
- <span style="color: rgb(0, 0, 0);">ergonomie de la prise en main</span>
- <span style="color: rgb(0, 0, 0);">résistance mécanique</span>
- <span style="color: rgb(0, 0, 0);">coût réduit</span>
- <span style="color: rgb(0, 0, 0);">facilité de nettoyage</span>
- <span style="color: rgb(0, 0, 0);">modularité du parcours</span>

<span style="color: rgb(0, 0, 0);">**Choix techniques**</span>

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-composant-choix-rete"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal" style="width: 100%; height: 460.422px;"><thead class="text-left"><tr style="height: 29.7969px;"><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 28.4203%; height: 29.7969px;"><span style="color: rgb(0, 0, 0);">Composant</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 24.2209%; height: 29.7969px;"><span style="color: rgb(0, 0, 0);">Choix retenu</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 47.2278%; height: 29.7969px;"><span style="color: rgb(0, 0, 0);">Justification</span></th></tr></thead><tbody><tr style="height: 46.25px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Microcontrôleur télécommande</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Adafruit Feather ESP32-S2</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Compact, WiFi intégré, compatible accéléromètre Grove</span></td></tr><tr style="height: 46.25px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Microcontrôleur robot</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Arduino Uno</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Compatible direct avec le shield moteur, fiable</span></td></tr><tr style="height: 46.25px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Accéléromètre</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Grove ADXL345 ±16g</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Interface I2C simple, plage suffisante, librairie disponible</span></td></tr><tr style="height: 46.5938px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Communication sans fil</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">nRF24L01+ GT020</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Portée 50m, faible coût, simple d'utilisation, Fréquence 2.4GHz</span></td></tr><tr style="height: 46.5938px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Driver moteur</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">DFRobot DRI0009 (puce L298P)</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Emboîtement direct sur l'Uno, pas de câblage complexe</span></td></tr><tr style="height: 46.25px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Châssis</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">DG007</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Compact, 2 roues motrices + roue libre, stable</span></td></tr><tr style="height: 46.5938px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Parcours</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Découpe laser Peuplier 6mm</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.5938px;"><span style="color: rgb(0, 0, 0);">Modulaire, rapide à modifier, léger</span></td></tr><tr style="height: 46.25px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 28.4203%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Support main</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 24.2209%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Impression 3D PLA </span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 47.2278%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Forme ergonomique personnalisable</span></td></tr></tbody></table>

</div>#### **Cas d'usage**  


<span style="color: rgb(0, 0, 0);">Mme L., 62 ans, est suivie en kinésithérapie pour une **arthrose sévère du poignet droit**, aggravée par plusieurs années de douleurs chroniques et une perte progressive de mobilité. Elle présente :</span>

- <span style="color: rgb(0, 0, 0);">raideur matinale importante</span>
- <span style="color: rgb(0, 0, 0);">douleur à la flexion et à l’extension</span>
- <span style="color: rgb(0, 0, 0);">faiblesse musculaire de l’avant‑bras</span>
- <span style="color: rgb(0, 0, 0);">difficulté à effectuer des gestes du quotidien (ouvrir un bocal, tourner une clé, porter un sac)</span>

<span style="color: rgb(0, 0, 0);">Son kinésithérapeute souhaite introduire un outil **ludique**, **progressif** et **sécurisé** pour compléter les exercices classiques.</span>

#### <span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">**Scénario d'utilisation**</span></span>

- La patiente s’installe.
- Le kiné choisit un **parcours simple**, avec quelques virages et une petite rampe.
- Elle saisit la télécommande, et dirige le véhicule : 
    - tourner → pronation / supination
    - avancer → extension du bras
    - franchir un obstacle → flexion du poignet
- Pour une séance de 20 min, 5 min de jeu sont suffisants.
- Le thérapeute observe la fluidité, l’amplitude et la précision des mouvements.
- Le patient repose la télécommande à la fin de l'exercice.

#### <span style="text-decoration: underline;">**Analyse du modèle de référence**</span>

Le modèle de la vidéo propose un parcours simple avec un véhicule contrôlé manuellement. Nous reprenons :

- l’aspect ludique
- la stimulation motrice par le pilotage
- la modularité du parcours

Nous améliorons :

- l’ergonomie de la télécommande
- la variété des mouvements sollicités
- la possibilité d’adapter la difficulté
- la sécurité et la stabilité du bras

#### <span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">**Gestion de projet**</span></span>

<span style="color: rgb(0, 0, 0);">**Répartition des rôles :**</span>

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-membre-r%C3%B4le-principa"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col"><span style="color: rgb(0, 0, 0);">Membre</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col"><span style="color: rgb(0, 0, 0);">Rôle principal</span></th></tr></thead><tbody><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><span style="color: rgb(0, 0, 0);">Elisa Wang</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><span style="color: rgb(0, 0, 0);">Électronique &amp; code</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><span style="color: rgb(0, 0, 0);">Irine Atashian</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><span style="color: rgb(0, 0, 0);">Modélisation 3D</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><span style="color: rgb(0, 0, 0);">Seema Baig</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top"><span style="color: rgb(0, 0, 0);">Découpe laser</span></td></tr></tbody></table>

</div><span style="color: rgb(0, 0, 0);"> **Planning :**</span>

<div class="overflow-x-auto w-full px-2 mb-6" id="bkmrk-semaine-t%C3%A2che-respon"><table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal" style="width: 63.4568%; height: 344.167px;"><thead class="text-left"><tr style="height: 29.7917px;"><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Semaine</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Tâche</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Responsable</span></th></tr></thead><tbody><tr style="height: 29.7917px;"><td style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S1</span></td><td style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Assemblage châssis</span></td><td style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Tous</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S2</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Test accéléromètre + vérification des données</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Elisa</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S3</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Code communication sans fil émetteur</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Elisa</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S3</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Code communication sans fil récepteur</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Elisa</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S4</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Test moteurs + ajustement du prototype</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Elisa</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S4</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Modélisation 3D support main</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Irine</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S4</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Fichiers découpe laser parcours</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Seema</span></td></tr><tr style="height: 46.25px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">S5</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Impression 3D + découpe laser</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 46.25px;"><span style="color: rgb(0, 0, 0);">Irine +Seema</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S5</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Intégration complète + tests</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Tous</span></td></tr><tr style="height: 29.7917px;"><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 17.3389%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">S5</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 63.1156%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Documentation + photos/vidéos</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 19.6753%; height: 29.7917px;"><span style="color: rgb(0, 0, 0);">Tous</span></td></tr></tbody></table>

</div>#### <span style="text-decoration: underline;">**Electronique**</span>

<span style="color: rgb(0, 0, 0);">**Liste du matériel avec coût :**</span>

<table class="min-w-full border-collapse text-sm leading-[1.7] whitespace-normal" id="bkmrk-composant-quantit%C3%A9-r" style="width: 77.5309%;"><thead class="text-left"><tr><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Composant</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">Quantité</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Rôle</span></th><th class="text-text-100 border-b-0.5 border-border-300/60 py-2 pr-4 align-top font-bold" scope="col" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">Coût estimé</span></th></tr></thead><tbody><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Adafruit Feather ESP32-S2</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">1</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Microcontrôleur télécommande</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~20€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Arduino Uno</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">1</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Microcontrôleur robot</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~10€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Grove ADXL345 ±16g</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">1</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Accéléromètre (détection inclinaison)</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~8€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Module nRF24L01+ GT020</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">2</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Communication sans fil 2.4GHz</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~3€ x2</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">DFRobot DRI0009 Shield</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">1</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Driver moteur</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~17€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Châssis DG007</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">1</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Base mobile du robot</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~10€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Moteurs DC</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">2</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Propulsion</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">inclus châssis</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Batterie LiPo 3.7V</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">1</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Alimentation Feather</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~5€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Piles AA x4</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">4</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Alimentation moteurs</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~2€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Peuplier 6mm</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">~50x80cm</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Parcours découpe laser</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~3€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Filament PLA</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">~50g</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Support main (3D)</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~2€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">Fils Dupont</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"><span style="color: rgb(0, 0, 0);">~20</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"><span style="color: rgb(0, 0, 0);">Connexions</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">~1€</span></td></tr><tr><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 29.8516%;"><span style="color: rgb(0, 0, 0);">**TOTAL**</span></td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 13.359%;"> </td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 40.5717%;"> </td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="width: 16.1627%;"><span style="color: rgb(0, 0, 0);">**~84€**</span></td></tr></tbody></table>

##### <span style="color: rgb(224, 62, 45);">**<span style="color: rgb(0, 0, 0);">  
Montage</span>**</span>

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/QG7image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/QG7image.png)[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/rQaimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/rQaimage.png)

##### <span style="color: rgb(224, 62, 45);">**<span style="color: rgb(0, 0, 0);">Code </span>**</span>

<span style="color: rgb(0, 0, 0);">**Emetteur** </span>

```c++
#include <SPI.h>
#include <RF24.h>
#include <Wire.h>
#include <ADXL345.h>

#define PIN_I2C_POWER 6
RF24 radio(9, 10);
const byte address[6] = "00001";

ADXL345 adxl;
#define SEUIL    0.25
#define DEADZONE 0.10
#define NB_SAMPLES 8
float ax_buf[NB_SAMPLES] = {0};
float ay_buf[NB_SAMPLES] = {0};
float ax_offset = 0;
float ay_offset = 0;
int buf_index = 0;
String lastCommand = "";

float moyenne(float* buf) {
  float sum = 0;
  for (int i = 0; i < NB_SAMPLES; i++) sum += buf[i];
  return sum / NB_SAMPLES;
}

String getCommand(float ax, float ay) {
  if (abs(ax) < DEADZONE && abs(ay) < DEADZONE) return "STOP";
  if (abs(ax) >= abs(ay)) {
    if (ax < -SEUIL) return "AVANCE";
    if (ax >  SEUIL) return "RECULE";
  } else {
    if (ay >  SEUIL) return "DROITE";
    if (ay < -SEUIL) return "GAUCHE";
  }
  return "STOP";
}

void setup() {
  Serial.begin(115200);
  pinMode(PIN_I2C_POWER, OUTPUT);
  digitalWrite(PIN_I2C_POWER, HIGH);
  delay(300);
  Wire.begin();
  adxl.powerOn();
  adxl.setRangeSetting(4);
  adxl.setSpiBit(0);
  if (!radio.begin()) {
    Serial.println("❌ nRF24L01 non détecté !");
    while(1);
  }
  radio.setChannel(108);
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_LOW);
  radio.stopListening();
  Serial.println("✅ Émetteur nRF24 prêt !");
  // Calibration : moyenne sur 50 échantillons au repos
  Serial.println("Calibration en cours, ne bougez pas...");
  float sum_x = 0, sum_y = 0;
  for (int i = 0; i < 50; i++) {
    double xyz[3];
    adxl.getAcceleration(xyz);
    sum_x += (float)xyz[0];
    sum_y += (float)xyz[1];
    delay(20);
  }
  ax_offset = sum_x / 50.0;
  ay_offset = sum_y / 50.0;
  Serial.print("Offset ax="); Serial.print(ax_offset);
  Serial.print(" ay="); Serial.println(ay_offset);
  Serial.println("✅ Calibration terminée !");
}

void loop() {
  double xyz[3];
  adxl.getAcceleration(xyz);
  ax_buf[buf_index] = (float)xyz[0] - ax_offset;
  ay_buf[buf_index] = (float)xyz[1] - ay_offset;
  float ax = moyenne(ax_buf);
  float ay = moyenne(ay_buf);
  String cmd = getCommand(ax, ay);
  if (cmd != lastCommand) {
    char msg[10];
    memset(msg, 0, sizeof(msg));
    cmd.toCharArray(msg, sizeof(msg));
    bool ok = radio.write(msg, sizeof(msg));
    Serial.println("→ Envoyé : " + cmd + (ok ? " ✅" : " ❌"));
    lastCommand = cmd;
  }
  delay(20);
}
```

<span style="color: rgb(224, 62, 45);">**<span style="color: rgb(0, 0, 0);">Récepteur   
</span>**</span>

```c++
#include <SPI.h>
#include <RF24.h>

RF24 radio(9, 10);
const byte address[6] = "00001";

#define E1 5
#define M1 4
#define E2 6
#define M2 7

String lastCommand = "";

void stopAll() {
  analogWrite(E1, 0); analogWrite(E2, 0);
  digitalWrite(M1, LOW); digitalWrite(M2, LOW);
}
void avance() {
  digitalWrite(M1, LOW);  digitalWrite(M2, LOW);
  analogWrite(E1, 200); analogWrite(E2, 205);
}
void recule() {
  digitalWrite(M1, HIGH); digitalWrite(M2, HIGH);
  analogWrite(E1, 200); analogWrite(E2, 205);
}
void tourne_droite() {
  digitalWrite(M1, LOW);  digitalWrite(M2, HIGH);
  analogWrite(E1, 130); analogWrite(E2, 130);
}
void tourne_gauche() {
  digitalWrite(M1, HIGH); digitalWrite(M2, LOW);
  analogWrite(E1, 130); analogWrite(E2, 130);
}

void setup() {
  Serial.begin(9600);
  pinMode(E1, OUTPUT); pinMode(M1, OUTPUT);
  pinMode(E2, OUTPUT); pinMode(M2, OUTPUT);
  stopAll();
// Tentatives multiples de démarrage
  int tentatives = 0;
  while (!radio.begin()) {
    Serial.println("Tentative " + String(++tentatives) + "...");
    delay(500);
    if (tentatives > 10) {
      Serial.println("❌ nRF24L01 non détecté !");
      while(1);
    }
  }

  radio.setChannel(108);
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_LOW);
  radio.startListening();
  Serial.println("✅ Récepteur nRF24 prêt !");
}

void loop() {
  if (radio.available()) {
    char msg[10] = "";
    radio.read(&msg, sizeof(msg));
    String cmd = String(msg);
    cmd.trim();
    if (cmd.length() == 0) return; 
    if (cmd != lastCommand) {
      Serial.println("← Reçu : " + cmd);
      if      (cmd == "AVANCE") avance();
      else if (cmd == "RECULE") recule();
      else if (cmd == "DROITE") tourne_droite();
      else if (cmd == "GAUCHE") tourne_gauche();
      else if (cmd == "STOP")   stopAll();
      lastCommand = cmd;
    }
  }
}
```

#### <span style="text-decoration: underline;">**Impression 3D**</span>

##### <span style="color: rgb(0, 0, 0);">**CAO** </span>

<span style="color: rgb(0, 0, 0);">Logiciels utilisés : Fusion 360 + PrusaSlicer</span>

<span style="color: rgb(0, 0, 0);">Boîte pour les composants suivants : batterie et microcontrôleurs esp32 s2 et nRF24L01  
Dimension : largeur 10cm, hauteur 5cm, profondeur 3cm  
Fentes sur les côtés pour faire passer les sangles qui permettent le maintient de la boîte sur l'avant bras  
Trou à l'avant pour faire passer les câbles qui se connectent au capteur</span>

[![boite.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/boite.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/boite.png)

Plaque simple pour positionner de manière stable le capteur sur le dos de la main. Fentes des deux côtés pour fixation.

[![plaque.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/plaque.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/plaque.png)[![IMG_9364.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-9364.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/img-9364.jpg)

<span style="color: rgb(0, 0, 0);">PrusaSlicer : sans support, remplissage à 10%, filament : generic PLA</span>

<span style="color: rgb(0, 0, 0);">L'ensemble des composants sont fixés à l'aide d'un ruban adhésif double face. </span>



#### <span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">**Problèmes rencontrés et solutions apportées**</span></span>

<span style="color: rgb(0, 0, 0);">**Problème 1 - ESP32-S2 défectueux (port I2C inutilisable)**</span>

<span style="color: rgb(0, 0, 0);">Lors des premiers tests, le scanner I2C ne détectait pas l'accéléromètre ADXL345 malgré un câblage correct. Après de nombreux essais de pins et de configurations, nous avons remplacé la carte par un autre Feather ESP32-S2, à ce moment là, l'accéléromètre a été immédiatement détecté. La première carte avait le port I2C interne défaillant (une branche du port I2C manquait).</span>

<span style="color: rgb(0, 0, 0);">**Problème 2 - Bluetooth inexistant sur l'ESP32-S2** </span>

<span style="color: rgb(0, 0, 0);">Notre première approche utilisait deux Feather ESP32-S2, un pour l'émetteur et un pour le récepteur, avec une communication Bluetooth. Nous avons découvert que l'ESP32-S2 ne dispose d'aucun Bluetooth (ni Classic ni BLE). Nous avons d'abord basculé sur WiFi UDP entre les deux ESP32-S2, solution qui fonctionnait correctement.</span>

<span style="color: rgb(0, 0, 0);">**Problème 3 - Incompatibilité entre l'ESP32-S2 et le Shield**</span>

<span style="color: rgb(0, 0, 0);">L'ESP32-S2 prévu pour le récepteur s'est révélé incompatible avec le shield DFRobot L298P, même après de nombreuses tentatives, les moteurs ne répondaient pas. Nous avons donc remplacé l'ESP32-S2 récepteur par un Arduino Uno sur lequel le shield s'emboîte directement, et adopté 2 nRF24L01 pour la communication sans fil entre les deux cartes.</span>

<span style="color: rgb(0, 0, 0);">**Problème 4 - Valeurs accéléromètre incorrectes au repos**</span>

<span style="color: rgb(0, 0, 0);">L'accéléromètre présentait un offset (ax = -0.35 au repos au lieu de 0). Solution : calibration automatique au démarrage sur 50 échantillons, calcul d'offset soustrait en temps réel.</span>

<span style="color: rgb(0, 0, 0);">**Problème 5 - nRF24L01 récepteur non fonctionnel en 3.3V**</span>

<span style="color: rgb(0, 0, 0);">Malgré les caractéristiques du module indiquant une alimentation de 3.3V, le module côté récepteur ne fonctionnait pas de façon stable à cette tension sur l'Arduino Uno. En branchant le VCC sur le 5V de l'Arduino Uno, le module a fonctionné correctement. Explication probable : le régulateur 3.3V de l'Arduino Uno ne fournit pas suffisamment de courant lors des pics de transmission radio, ce qui entraîne des chutes de tension et des dysfonctionnements.</span>

<span style="color: rgb(0, 0, 0);">**Problèmes 6 - Problème d'impression**</span>

<span style="color: rgb(0, 0, 0);">Manque d'adhérence à la surface de l'imprimante, problème de filament. Problèmes réglés en diminuant un peu la taille de la boîte et en retirant les supports.</span>

#### <span style="text-decoration: underline;">**Prototype final**</span>

[Vidéo test prototype](https://wiki.fablab.sorbonne-universite.fr/BookStack/attachments/1772)

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/Cvvimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/Cvvimage.png)**[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/BZpimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/BZpimage.png)**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/fu3image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/fu3image.png)

#### **<span style="text-decoration: underline;">Analyse critique du prototype</span>** 

##### **Limites du dispositif**

- Absence de retour de force (pas de résistance réelle)
- Pas de suivi des performances
- Précision dépendante de la stabilité du capteur ADXL345

##### **Pistes d’amélioration**

- Utilisation d’un capteur IMU (gyro + accéléromètre) comme le MPU6050, pour améliorer la précision et la stabilité des mouvements
- Ajouter une résistance physique à la télécommande (exemple élastique)
- Parcours gamifié avec en plusieurs niveaux de difficulté progressif et un système de score
- Application mobile simple de pour visualiser les progrès avec l'historique des séances

#### <span style="text-decoration: underline;">**Sources &amp; ressources**</span>

- Vidéo d'inspiration : [https://www.youtube.com/watch?v=Pz2hE\_\_z57c](https://www.youtube.com/watch?v=Pz2hE__z57c)
- Documentation Adafruit Feather ESP32-S2 : [https://learn.adafruit.com/adafruit-esp32-s2-feather](https://learn.adafruit.com/adafruit-esp32-s2-feather)
- Librairie ADXL345 Seeed Studio : [https://github.com/Seeed-Studio/Accelerometer\_ADXL345](https://github.com/Seeed-Studio/Accelerometer_ADXL345)
- Librairie RF24 : [https://docs.arduino.cc/libraries/rf24/](https://docs.arduino.cc/libraries/rf24/)
- Documentation DFRobot L298P Shield : [https://www.alldatasheet.fr/html-pdf/2214539/DFROBOT/DRI0009/342/1/DRI0009.html](https://www.alldatasheet.fr/html-pdf/2214539/DFROBOT/DRI0009/342/1/DRI0009.html)

# Projet Final - AERIS

Meriem - Mathias - Wendy - Luc - Maxime - Alyssa

---

## **<span style="color: rgb(35, 111, 161);">AERIS </span>**

#### <span style="color: rgb(35, 111, 161);">Rendre l'invisible visible pour améliorer le bien-être intérieur</span>

---

### 1. Introduction

#### 1.1. La Genèse et Le Problème

**Notre constat de départ :** Tout est partie d'un constat simple : lorsqu'on reçoit des amis dans son chez soi, on se laisse facilement emporter par le moment. On parle fort, on rit, la musique monte - on passe simplement du bon temps finalement. Mais on en oublie parfois ses voisins.

L'idée initiale était de concevoir un détecteur sonore connecté design capable d'envoyer une notification sur smartphone dès qu'un seuil de décibels est dépassé. Un rappel bienveillant, discret, permettant ainsi de respecter son voisinage (ou de surveiller le bruit chez soi en notre absence).

**Notre pivot :** Au fil de nos recherches, nous avons réalisé que le son n'était qu'une dimension parmi d'autres des dégradations invisibles de notre environnement intérieur. Nous avons donc élargi notre vision pour concevoir **AERIS**.

**Notre mission** : Rendre visibles les dégradations invisibles de notre environnement intérieur (bruit, qualité de l'air, température) avant qu'elles n'impactent notre santé.

#### 1.2. L'objectif du projet

AERIS - du latin *aer*, l'air. Le nom reflète la mission centrale du produit : rendre visible ce qu'on voit pas (l'air et le son).

AERIS a pour objectif de permettre à tout utilisateur, même sans aucune connaissance technique, de surveiller en temps réel son environnement intérieur.

L'objet se veut à la fois fonctionnel, profondément esthétique et discret. Posé sur un bureau ou une étagère, il s'intègre naturellement dans l'espace tout en informant les occupants en permanence via des jauges lumineuses (LEDs) intégrées en façade. En combinant 2 canaux complémentaires : retours visuelles douces et notifications mobiles précises, AERIS incite à l'action immédiate (aérer la pièce, baisser le volume) pour un meilleur confort de vie.

#### 1.3. Public Cible et Cas d'Usage

- **Bureaux partagés et Coworking :** L'accumulation de personnes en espace fermé fait grimper le taux de composés organiques Volatils et le niveau sonore, causant fatigue et baisse de concentration. AERIS rend ces données visibles pour agir avant que la productivité et le bien-être n'en pâtissent.
- **Écoles et Salles de classe :** Les enfants et adolescents sont plus sensibles à la pollution intérieure. Un taux de VOC élevé en classe est directement corrélé à une baisse des capacités d'attention et d'apprentissage. Le niveau sonore excessif nuit aux élèves comme aux enseignements. AERIS offre ainsi, aux professeurs une lecture en temps réel des conditions ambiantes.
- **Usage Domestique :** Nous passons 80% de notre temps en intérieur, où l'air est souvent 2 à 5 fois plus pollué qu'à l'extérieur. AERIS s'adresse aux familles (notamment avec de jeunes enfants ou des personnes asthmatiques) cherchant un outil fiable et élégant pour veiller sur leur foyer. Enfin, cet objet du quotidien se gardera de surveiller les nuisances sonores lors de soirées mouvementés.

#### 1.4. Fonctionnalités Clés

- **Monitoring en temps réel :** Suivi constant de la température, de la qualité de l'air (VOC) et du niveau sonore (dB).
- **Double Interface :** Jauges lumineuses intuitives directement sur l'objet physique + Application web détaillée pour consulter l'historique des données.
- **Alertes Intelligentes :** Envoi de notifications push sur smartphone lorsqu'un seuil critique est dépassé.
- **Seuils Personnalisables :** L'utilisateur reste maître de son environnement en définissant ses propres limites de tolérance depuis l'application.

#### 1.5. Notre Équipe et Notre Organisation

Être une équipe de 6 personnes (alors que la moyenne est de 4 ou 5) nous a naturellement poussés à viser plus haut (et également dû aux attentes pédagogiques). Au lieu de voir cette taille de groupe comme une difficulté de coordination, nous avons choisi d'exploiter nos différentes compétences pour repousser les limites de notre prototype. Nous nous sommes divisés en trois grands pôles :

- **Le Design et l'Expérience Utilisateur** : Alyssa et Meriem imaginent l'objet physique (conception du boîtier, style épuré et intégration des LEDs), tandis que Mathias pense l'application et le parcours utilisateur UX/UI pour que l'utilisation soit la plus intuitive possible.
- **Le Matériel (Hardware) sur-mesure** : Maxime s'occupe de l'électronique. Notre grand défi matériel est de refuser l'assemblage facile de modules standards. Nous concevons notre propre circuit imprimé (PCB personnalisé avec USB-C) pour qu'il s'emboîte parfaitement dans les contraintes de notre design industriel.
- **Le Logiciel (Software &amp; Cloud) poussé à fond et application** : Luc et Wendy font le lien entre l'objet physique et le web. L'objectif est d'exploiter notre microcontrôleur (ESP32) à son plein potentiel : il doit gérer simultanément tous les capteurs, l'animation des LEDs, la connexion Wi-Fi, et les envois sécurisés (HTTPS) vers notre base de données Supabase pour déclencher les notifications sur l'application.

**Méthode de travail :** Pour que l'électronique, le code et le boîtier s'assemblent parfaitement à la fin, nous avons adopté une organisation Agile. Nous organisons des réunions hebdomadaires "Weeklies". Cela nous permet d'aligner nos avancées chaque semaine et d'assurer une progression fluide jusqu'au rendu final début mai.

[![Capture d’écran 2026-04-27 à 15.24.20.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/capture-decran-2026-04-27-a-15-24-20.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/capture-decran-2026-04-27-a-15-24-20.png)

---

### 2. Expérience Utilisateur (UX) &amp; Interface (UI)

Dès les premières réunions d'équipe, une conviction s'est imposée : AERIS devait être autant un objet du quotidien qu'un outil de mesure. Fonctionnel, esthétique et immédiatement compréhensible - sans notice, sans apprentissage. Un objet qu'on pose, qui surveille, et qui alerte au bon moment.

#### 2.1. Logique d'alerte

AERIS repose sur un système de seuils à trois niveaux, applicable à chaque grandeur mesurée. Les seuils par défaut sont définis sur la base de normes sanitaires reconnus mais restent entièrement personnalisables par l'utilisateur selon ses objectifs.

<table border="1" id="bkmrk-grandeur-optimal-%28bl" style="border-collapse: collapse; width: 99.9373%; height: 124.781px;"><colgroup><col style="width: 25.0471%;"></col><col style="width: 25.0471%;"></col><col style="width: 25.0471%;"></col><col style="width: 25.0471%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Grandeur**</td><td class="align-center" style="height: 29.7969px;">**Optimal (Blanc)**</td><td class="align-center" style="height: 29.7969px;">**Attention (Orange)**</td><td class="align-center" style="height: 29.7969px;">**Critique (Rouge)**</td></tr><tr style="height: 35.3906px;"><td class="align-center" style="height: 35.3906px;">**COV (mg/m3)**

</td><td class="align-center" style="height: 35.3906px;">100-150</td><td class="align-center" style="height: 35.3906px;">150-250</td><td class="align-center" style="height: 35.3906px;">&gt; 250

</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Niveau sonore (dB)**</td><td class="align-center" style="height: 29.7969px;">30 - 50</td><td class="align-center" style="height: 29.7969px;">50 - 70</td><td class="align-center" style="height: 29.7969px;">&gt; 70</td></tr><tr style="height: 29.7969px;"><td class="align-center" style="height: 29.7969px;">**Température (°C)**</td><td class="align-center" style="height: 29.7969px;">18 - 22</td><td class="align-center" style="height: 29.7969px;">&lt;18 - &gt;22</td><td class="align-center" style="height: 29.7969px;">&lt; 15 ou &gt; 28</td></tr><tr><td class="align-center">**Humidité (%)**</td><td class="align-center">40 - 60</td><td class="align-center">&lt;40 - &gt;60</td><td class="align-center">&lt;30 - &gt;70</td></tr></tbody></table>

**Exemples de notifications push :**

- COV &gt; x --&gt; "Qualité de l'air dégradée - Pensez à aérer la pièce !".
- Son &gt; 70 dB --&gt; "Niveau sonore élevé - Réduisez le bruit ambiant !".

#### 2.2. Parcours utilisateurs

L'utilisateur dispose de deux points de lecture :

- **Sur l'objet directement** : les LEDs de jauges en façade celles de score permettent une lecture instantanée sans interaction. Le code couleur (blanc / orange / rouge) et (Vert, orange, rouge) pour le score est suffisamment intuitif pour ne nécessiter aucune notice.
- **Sur l'application** : l'interface offre trois écrans principaux 
    - **Dashboard** : vue en temps réel de toutes les mesures avec indicateurs.
    - **Historiques et suivis** : graphiques d'évolution des données dans le temps, permettant d'identifier des patterns.
    - **Paramètres** : définition des seuils personnalisées et gestion des notifications.

#### 2.3. Principes UX

- Lisibilité immédiate sans expertise technique requise.
- Redondance intentionnelle : objet + application pour ne jamais rater une alerte.
- Notifications contextualisées avec une suggestion d'action concrète.
- Interface épurée, cohérente avec l'esthétique de l'objet physique.

---

### 3. Design 

#### 3.1. Démarche de conception

La conception physique d'AERIS a débuté par une phase d'exploration et de veille de références : différents types de boîtiers ont été étudiés pour identifier la forme la plus adaptée à nos contraintes (intégration électronique, diffusion lumineuse, lisibilité des jauges).

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/xovimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/xovimage.png)

[![Capture d’écran 2026-04-27 à 15.21.15.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/capture-decran-2026-04-27-a-15-21-15.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/capture-decran-2026-04-27-a-15-21-15.png)

#### 3.2. Contraintes de modélisation

La modélisation 3D sur Fusion 360 a intégré dès le départ l'ensemble des contraintes suivantes :

- **Espace interne** suffisant pour accueillir la carte ESP32-C3, les capteurs (SHT40, SGP40, microphone), le PCB et le câblage.
- **Ouvertures de ventilation** pour garantir une circulation d'air libre vers les capteurs de qualité de l'air.
- **Fenêtre frontale** en PLA transparent pour les jauges visibles depuis l'extérieur.
- **Passage câble** à l'arrière du boîtier pour le port USB-C d'alimentation.

#### 3.3. Identité visuelle de l'objet

L'objet adopte un design épuré et minimaliste. La face avant laisse apparaître les jauges avec les LEDs RGB WS2812B à travers le PLA transparent pour la qualité de l'air, le niveau sonore, la température et l'humidité - dont la couleur reflète le niveau de criticité global :

- **Blanc :** environnement normal, tout va bien.
- **Orange :** seuil d'attention, vigilance recommandée.
- **Rouge :** seuil critique atteint, action requise.

---

### 4. Architecture du Système

#### 4.1. Vue d'ensemble

AERIS repose sur un microcontrôleur ESP32-C3 qui centralise la lecture des capteurs, pilote les LEDs et assure la communication avec l'application via Wi-Fi. Les données sont transmises en temps réel vers une interface web et stockées pour consultation historique.

#### 4.2. Composants principaux

<table border="1" id="bkmrk-fonction-composant%C2%A0-" style="border-collapse: collapse; width: 99.9373%; height: 243.969px;"><colgroup><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col><col style="width: 33.3333%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Fonction</td><td style="height: 29.7969px;">Composant </td><td style="height: 29.7969px;">Référence</td></tr><tr style="height: 35.3906px;"><td style="height: 35.3906px;">MCU

</td><td style="height: 35.3906px;">Espressif Systems</td><td style="height: 35.3906px;">ESP32-C3-MINI-1-N4</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Température &amp; Humidité </td><td style="height: 29.7969px;">Sensirion</td><td style="height: 29.7969px;">SHT40-AD1B-R3</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Qualité de l'air (COV) </td><td style="height: 29.7969px;">Sensirion</td><td style="height: 29.7969px;">SGP40</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">LEDs RGB </td><td style="height: 29.7969px;">Worldsemi</td><td style="height: 29.7969px;">WS2812B-2020</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Mesure sonore (dB)</td><td style="height: 29.7969px;">TDK InvenSense </td><td style="height: 29.7969px;"><span class="a_GcMg font-feature-liga-off font-feature-clig-off font-feature-calt-off text-decoration-none text-strikethrough-none">ICS-43434</span></td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Régulateur de tension (5V --&gt; 3,3 V)</td><td style="height: 29.7969px;">Diodes Incorporated </td><td style="height: 29.7969px;">AP2112K-3.3TRG1</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Connecteur d'alimentation</td><td style="height: 29.7969px;">Molex</td><td style="height: 29.7969px;">1054500101 (USB-C)</td></tr></tbody></table>

#### 4.3. Flux de données

L'ESP32-C3 lit les capteurs à intervalle régulier, compare les valeurs aux seuils définis, pilote les LEDs en conséquence et envoie les données vers le serveur pour affichage et stockage. En cas de dépassement de seuil, une notification push est déclenchée vers l'application.

#### 4.4. Choix du microcontrôleur

L'ESP32-C3-MINI-1-N4 a été retenu pour sa connectivité Wi-Fi et Bluetooth intégrée, son faible encombrement et sa compatibilité avec l'ensemble des capteurs Sensirion via I²C. Le circuit électronique est entièrement personnalisé (PCB sur mesure), ce qui nous a permis d'optimiser l'intégration dans le boîtier et d'exploiter le plein potentiel de la plateforme.

---

### 5. Création du produit

#### 5.1 Plateforme web

##### 5.1.a. Aperçu

La plateforme web Aeris est l'application en ligne qui accompagne le capteur. Elle permet à l'utilisateur de consulter ses mesures (bruit, température, humidité, qualité de l'air) en direct depuis n'importe quel navigateur — sans avoir à installer d'application sur son téléphone. Le site est accessible à l'adresse `https://aeris.azagelapp.com` depuis le 27 avril 2026.

Le service est conçu pour un usage individuel : un utilisateur, un appareil. Il couvre toutes les étapes de la vie du produit : création du compte, jumelage du capteur, consultation des données en temps réel, historique des dernières 24 heures et personnalisation des seuils d'alerte.

##### 5.1.b. Briques techniques utilisées

Le site web repose sur **Next.js**, un cadre de développement moderne maintenu par Vercel et utilisé par TikTok ou Notion. Il s'appuie lui-même sur **React**, la bibliothèque de composants graphiques de Facebook. La mise en forme est gérée par **Tailwind CSS**, qui assure un rendu cohérent sur l'ensemble du site. Les éléments interactifs (cases à cocher, menus) utilisent **Radix UI**, qui garantit l'accessibilité aux personnes en situation de handicap (lecteurs d'écran, navigation clavier).

Côté serveur, **Supabase** centralise plusieurs services en une seule plateforme : authentification, base de données, mises à jour en temps réel et petites fonctions sur mesure. Les emails (lien de connexion, invitations) sont envoyés via **Resend**, avec des modèles graphiques aux couleurs d'Aeris. L'hébergement est assuré par **Vercel**, qui publie automatiquement chaque mise à jour du code dès qu'elle est validée. Le nom de domaine est géré chez Hostinger.

<div id="bkmrk--11">  
</div>##### 5.1.c. Architecture et sécurité

La sécurité est intégrée dès la base de données. Chaque mesure est rattachée à un appareil, lui-même rattaché à un utilisateur. Une règle automatique appliquée par PostgreSQL empêche un utilisateur de consulter les données d'un autre, même en cas de tentative directe sur l'API. Cette protection vit dans la base elle-même, pas dans le code applicatif — ce qui rend toute fuite extrêmement difficile.

Les inscriptions ne sont **pas ouvertes au public** : seul un administrateur peut envoyer une invitation par email. Ce filtre permet de maîtriser la base d'utilisateurs en phase de lancement. La connexion se fait via un **lien magique** reçu par email, sans mot de passe à mémoriser.

Enfin, contrat fondamental du produit : aucun extrait audio brut ne quitte jamais le capteur — seule la valeur en décibels est transmise (détaillé dans la partie firmware).

##### 5.1.d. Évolution du produit

Le projet a connu trois noms successifs (PASCHUT, Silent-Check, puis **Aeris**) avant de stabiliser son identité. Le développement de la plateforme web s'est étalé sur le mois d'avril 2026 en quatre vagues :

1. **Documentation et publication du code source** sur GitHub (repository public)
2. **Architecture multi-utilisateur** : refonte de la base de données, mise en place des cloisonnements de sécurité, paramétrage des emails brandés
3. **Parcours d'inscription** : création d'un assistant de mise en route en cinq étapes
4. **Mise en production** : déploiement sur Vercel, configuration du nom de domaine et du certificat HTTPS

Une fois en ligne, plusieurs ajustements ont été apportés : affichage immédiat des dernières mesures à l'ouverture du tableau de bord, sauvegarde automatique des seuils personnalisés. Enfin, un mécanisme de **jumelage par code** a été conçu pour permettre à n'importe quel acheteur de connecter son capteur sans aucune manipulation technique. Au total : 15 mises à jour publiées, 5 versions successives de la base de données, 2 fonctions serveur en production.

##### 5.1.e. Fonctionnalités livrées

La plateforme offre aujourd'hui :

- **Affichage en direct** des quatre mesures avec mise à jour automatique sans recharger la page
- **Historique des dernières 24 heures** sous forme de courbes
- **Réglage des seuils d'alerte** (ex : bruit limite la nuit), sauvegardés automatiquement
- **Jumelage simplifié** entre l'appareil et le compte utilisateur via un code à 6 caractères
- **Assistant de mise en route** en cinq étapes pour les nouveaux utilisateurs
- **Espace administrateur** pour gérer les invitations
- **Emails personnalisés** au branding Aeris (lien de connexion, récupération, confirmation)
- **Cloisonnement strict des données** entre utilisateurs

Reste à finaliser : le premier jumelage avec un capteur physique réel (en attente de la livraison de la carte électronique par le fabricant).

#### 5.2. Programme embarqué (firmware)

##### 5.2.a. Aperçu

Le firmware est le programme installé directement à l'intérieur du capteur Aeris. C'est lui qui pilote la lecture des capteurs, l'affichage des LEDs et l'envoi des mesures vers Internet. Sa particularité : il fonctionne de manière **complètement autonome**. L'appareil affiche correctement son état même en cas de coupure Internet ; le cloud n'est utilisé qu'en complément (historique, courbes consultables sur le site).

Le programme tourne sur une puce **ESP32-C3-MINI** d'Espressif, un micro-contrôleur avec Wi-Fi intégré, de la taille d'une pièce de monnaie. Le code est organisé en **9 modules indépendants**, chacun responsable d'une fonction précise (audio, capteurs, LEDs, réseau, etc.), pour un total d'environ 700 lignes de code. Le firmware en est à sa version 1.0.0, prêt pour la production. Il sera installé (« flashé ») sur les cartes électroniques dès leur réception du fabricant JLCPCB.

##### 5.2.b. Architecture modulaire

Le programme est découpé en briques bien séparées, chacune avec un rôle unique :

<table id="bkmrk-module-r%C3%B4le-main-che"><thead><tr><th>Module</th><th>Rôle</th></tr></thead><tbody><tr><td>`main`</td><td>Chef d'orchestre — coordonne les autres modules</td></tr><tr><td>`audio`</td><td>Calcule le niveau sonore en décibels (sans jamais enregistrer le son)</td></tr><tr><td>`sensors`</td><td>Lit les capteurs de température, humidité et qualité de l'air</td></tr><tr><td>`leds`</td><td>Pilote l'affichage des 45 LEDs en façade</td></tr><tr><td>`network`</td><td>Gère la connexion Wi-Fi et l'envoi des mesures au serveur</td></tr><tr><td>`portal`</td><td>Crée le mini-réseau de configuration lors du premier branchement</td></tr><tr><td>`mode_manager`</td><td>Bascule entre mode jour, mode nuit et mode appairage</td></tr><tr><td>`board_config`</td><td>Centralise tous les réglages (broches électroniques, seuils, fréquences)</td></tr></tbody></table>

Cette séparation permet d'intervenir sur un comportement sans risquer de casser un autre. Par exemple, ajuster la luminosité nocturne se fait dans un seul fichier.

##### 5.2.c. Composants matériels

Le matériel embarqué a été choisi pour sa fiabilité et son coût (environ 15 à 20 € de composants par appareil) :

<table id="bkmrk-composant-r%C3%B4le-puce-"><thead><tr><th>Composant</th><th>Rôle</th></tr></thead><tbody><tr><td>Puce ESP32-C3-MINI (Espressif)</td><td>Cerveau de l'appareil + Wi-Fi</td></tr><tr><td>Régulateur AP2112K</td><td>Stabilise l'alimentation à 3,3 volts</td></tr><tr><td>Connecteur USB-C</td><td>Alimentation et programmation</td></tr><tr><td>Capteur SHT40 (Sensirion)</td><td>Mesure température et humidité</td></tr><tr><td>Capteur SGP40 (Sensirion)</td><td>Mesure qualité de l'air</td></tr><tr><td>Microphone ICS-43434 (TDK)</td><td>Microphone numérique miniaturisé pour le bruit</td></tr><tr><td>45 LEDs WS2812B</td><td>Affichage en bargraphes colorés sur la façade</td></tr></tbody></table>

La carte électronique a été dessinée sur **KiCad** (logiciel libre de conception électronique) et fabriquée par **JLCPCB**, un fabricant reconnu pour le prototypage à coût maîtrisé.

##### 5.2.d. Outils de développement

Le code est écrit en **C++**, langage standard de l'embarqué. L'environnement **PlatformIO** facilite la compilation et l'installation du programme sur la puce. Plusieurs bibliothèques éprouvées sont utilisées :

- **Adafruit NeoPixel** pour piloter les LEDs
- **Adafruit SHT4x / SGP40** pour les capteurs de température et qualité de l'air
- **ArduinoJson** pour formater les messages envoyés au serveur

Pour le microphone, le pilote bas niveau fourni par le fabricant de la puce (ESP-IDF) est utilisé directement, ce qui permet un meilleur contrôle et une consommation mémoire plus faible qu'avec une bibliothèque externe.

##### 5.2.e. Connexion et appairage

Le capteur n'a **aucun bouton physique** — un choix à la fois esthétique et économique. La configuration du Wi-Fi se fait via un mini-réseau temporaire que le capteur crée lui-même au premier branchement (nommé `Aeris-XXXX`). L'utilisateur s'y connecte depuis son téléphone, saisit le nom de son réseau Wi-Fi domestique, son mot de passe et un **code de jumelage à 6 caractères** récupéré sur son compte sur le site.

Si le Wi-Fi tombe pendant plus de 10 minutes (par exemple lors d'un déménagement), le capteur efface automatiquement les anciens identifiants et relance le mode configuration — aucune intervention technique de l'utilisateur n'est requise. En fonctionnement normal, l'appareil tente automatiquement de se reconnecter toutes les 10 secondes en arrière-plan, sans bloquer les mesures ni l'affichage.

##### 5.2.f. Engagement vie privée

C'est le pilier philosophique d'Aeris : **aucun extrait audio brut n'est jamais enregistré ni transmis**. Le microphone capte le son uniquement pour calculer le niveau sonore en décibels (le « volume »), et seul ce chiffre est envoyé au serveur. Concrètement :

- Le tampon audio en mémoire est limité à environ 30 millisecondes (juste le temps de calculer le niveau)
- Aucun fichier sonore n'est jamais sauvegardé dans la mémoire de l'appareil
- Aucun envoi audio brut n'est techniquement possible : le code ne contient pas la fonction qui le permettrait

Un commentaire d'engagement est inscrit en tête du fichier source dédié à l'audio, pour rappeler cette règle à toute personne qui consulterait ou modifierait le code à l'avenir.

##### 5.2.g. Fonctionnalités embarquées

- **Affichage en bargraphes** sur 45 LEDs (36 pour les jauges+ 9 LEDs d'état général)
- **Mode jour / mode nuit automatique** synchronisé via Internet : luminosité réduite à 5 % entre 22h et 7h, masquage des indicateurs verts pour ne pas gêner le sommeil
- **Détection de pic sonore** avec remontée immédiate au serveur (utile pour identifier des nuisances)
- **Cadence d'envoi adaptative** : un envoi de fond toutes les 5 secondes en routine, immédiat en cas de pic
- **Seuils ajustables à distance** : l'utilisateur change ses seuils sur le site, le capteur les reçoit en temps réel sans redémarrer
- **Reconnexion Wi-Fi automatique** sans intervention manuelle

À calibrer une fois la carte électronique fabriquée : le décalage de référence du microphone, à comparer avec un sonomètre étalon.

##### 5.2.h. Évolution du firmware

- **Version initiale** (époque PASCHUT) : un seul gros fichier de 633 lignes, difficile à maintenir
- **Refonte modulaire** (avril 2026) : découpage en 9 modules indépendants, environ 700 lignes au total mais bien plus lisibles
- **Verrou vie privée** : ajout du commentaire contractuel en tête du module audio
- **Appairage v1** : configuration Wi-Fi simple via mini-réseau
- **Appairage v2** (avril 2026) : ajout du jumelage par code à 6 caractères et identifiant unique sécurisé
- **Version 1.0.0** : prête à être installée sur les premières cartes électroniques

#### 5.3. Annexes

- **Code source public** : `github.com/Azagel/Aeris`
- **Site en production** : `https://aeris.azagelapp.com`
- **Adresse d'envoi des emails** : `noreply@aeris.azagelapp.com` (avec authentification SPF / DKIM)
- 8 fiches techniques de référence indexées (datasheets de chaque composant utilisé)

---

### 6. Hardware électronique

#### 6.1. Logiciels utilisés

La conception électronique d’AERIS a été réalisée à l’aide du logiciel <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Autodesk EAGLE</span></span>, un outil de référence pour la création de schémas électroniques et de circuits imprimés.

Ce choix s’explique par plusieurs avantages :

- Une prise en main rapide pour la conception de schémas et de PCB
- Une bonne compatibilité avec les outils de fabrication (export Gerber)
- Une intégration fluide avec <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Autodesk Fusion 360</span></span> pour assurer la cohérence entre la carte électronique et le design mécanique

Pour la gestion des composants, nous nous sommes appuyés sur des bibliothèques professionnelles issues de :

- <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">SnapEDA</span></span>
- <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Ultra Librarian</span></span>

Ces plateformes nous ont permis de récupérer rapidement :

- Les symboles électroniques
- Les empreintes PCB (footprints)
- Les modèles 3D compatibles avec Fusion 360

L’utilisation de ces bibliothèques a fortement accéléré le développement tout en réduisant les risques d’erreurs d’empreinte ou de dimensionnement.

Enfin, les datasheets des composants ont été systématiquement utilisées pour garantir :

- Le respect des contraintes électriques (tensions, courants, résistances)
- Le bon câblage des interfaces (I²C, I²S, alimentation)
- L’implantation correcte des composants sur le PCB

#### 6.2. Conception schéma

La phase de schématique a consisté à définir l’ensemble des connexions entre les différents composants du système.

Les principaux blocs conçus sont :

- **Alimentation** : 
    - Entrée USB-C (5V)
    - Régulation en 3,3V via le régulateur AP2112
- **Microcontrôleur** : 
    - ESP32-C3-MINI au cœur du système
- **Capteurs** : 
    - SHT40 (température et humidité) en I²C
    - SGP40 (qualité de l’air) en I²C
    - ICS-43434 (microphone numérique en I²S)
- **Affichage** : 
    - Chaîne de LEDs WS2812B pilotées par un seul GPIO

Une attention particulière a été portée à :

- La stabilité de l’alimentation (condensateurs de découplage)
- La gestion des lignes de communication (pull-up pour le bus I²C)
- La réduction du bruit électrique, notamment pour le microphone

#### 6.3. Conception Layout

Après validation du schéma, la phase de layout a permis de transformer le circuit théorique en carte physique.

Les objectifs principaux étaient :

- **Compacité** : intégrer tous les composants dans un volume réduit
- **Lisibilité** : organiser les composants par blocs fonctionnels
- **Compatibilité mécanique** : adapter la carte au design du boîtier

Le routage a été réalisé en respectant plusieurs bonnes pratiques :

- Utilisation d’un plan de masse continu pour améliorer la stabilité
- Dimensionnement adapté des pistes d’alimentation
- Réduction de la longueur des pistes critiques
- Séparation des zones sensibles (notamment autour du microphone)

Une attention particulière a été portée à l’intégration des LEDs en façade afin d’assurer un alignement précis avec les zones transparentes du boîtier.

Une fois finalisé, le PCB a été intégré dans le modèle 3D via Fusion 360 valider les alignements et l'encombrement il a ensuite été exporté en fichiers Gerber puis envoyé en fabrication par JLC PCB.

#### 6.4. Firmware

Le développement du firmware a été réalisé en parallèle de la conception électronique afin d’assurer une parfaite cohérence entre matériel et logiciel.

Chaque broche du microcontrôleur utilisée dans le code correspond exactement au routage du PCB, défini dans un fichier de configuration centralisé.

Cette approche permet :

- Une initialisation fiable des capteurs
- Une communication stable (I²C et I²S)
- Un pilotage précis des LEDs

Des tests préliminaires ont été réalisés sur la plaque de prototypage Light-Dec avant validation du PCB final, afin de sécuriser le fonctionnement global du système.

#### 6.5. Problèmes rencontrés

##### Erreur de dimensionnement d’une résistance

Lors de la conception du schéma, une erreur a été commise sur la valeur d’une résistance (4.7k au lieu de 4.7 sur la Datasheet), entraînant un dysfonctionnement du circuit.

Cette erreur a eu pour conséquences :

- Un comportement instable sur la ligne d'alimentation du sgp40, causant son redémarrage lors de sa chauffe.

Rectification de l'erreur :

Dessoudage de la résistance et soudure d'une patte métallique pour faire contact.

### 7. Hardware CAO

#### 7.1. Logiciels utilisés

La conception mécanique du boîtier AERIS a été réalisée à l’aide du logiciel <span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Autodesk Fusion 360</span></span>.

Ce logiciel a permis :

- Une modélisation 3D précise et paramétrique
- Une intégration directe du PCB conçu sur EAGLE
- L’import de modèles 3D des composants électroniques
- Une validation complète du produit avant fabrication

Cette approche a permis de travailler en parallèle avec la partie électronique, garantissant une parfaite cohérence entre le boîtier et la carte PCB.

#### 7.2. Conception 3D

La conception du boîtier AERIS a été guidée par un objectif clair : créer un objet à la fois **fonctionnel, esthétique et intuitif**.

Le design repose sur une forme épurée, pensée pour s’intégrer naturellement dans un environnement intérieur (bureau, salon, salle de classe).

Le boîtier est structuré autour de plusieurs éléments :

- Une **coque principale** contenant l’ensemble des composants
- Une **face avant dédiée à l’affichage lumineux**
- Une **ouverture arrière** pour le câble USB-C
- Des **zones de ventilation** pour les capteurs environnementaux

#### 7.3. Intégration PCB

L’intégration du PCB a été une étape clé de la conception.

Grâce à Fusion 360, le modèle 3D de la carte électronique a été importé afin de :

- Vérifier l’encombrement exact
- Positionner précisément les composants
- Aligner les éléments fonctionnels avec le design externe

Une attention particulière a été portée à :

- L’alignement du port USB-C
- Le positionnement des capteurs pour garantir des mesures fiables
- L’organisation interne pour éviter tout conflit mécanique

Cette démarche a permis d’assurer une intégration propre et fonctionnelle du système électronique dans le boîtier.

#### 7.4. Système de diffusion lumineuse

Un élément central du design d’AERIS réside dans son système d’affichage.

Contrairement à une simple façade lumineuse, le choix a été fait d’intégrer **des diffuseurs uniques pour chaque jauge et chaque indicateur**.

Chaque grandeur mesurée (qualité de l’air, bruit, température, humidité) possède ainsi :

- Son **propre canal lumineux**
- Son **diffuseur dédié**
- Une **zone d’affichage clairement séparée**

Ce choix présente plusieurs avantages :

- **Lisibilité améliorée** : chaque information est immédiatement identifiable
- **Réduction des interférences lumineuses** entre les différentes jauges
- **Meilleure homogénéité visuelle** de la lumière
- **Rendu plus qualitatif et produit fini plus professionnel**

Les diffuseurs ont été conçus pour :

- Atténuer la luminosité directe des LEDs
- Répartir uniformément la lumière
- Éviter les points lumineux visibles (effet “LED brute”)

#### 7.5. Impression 3D

La fabrication du boîtier AERIS a été réalisée par impression 3D à l’aide de l’imprimante Creality K1.

Deux types de filament PLA ont été utilisés afin de répondre aux contraintes esthétiques et fonctionnelles du produit :

- **PLA noir** pour la structure principale du boîtier
- **PLA transparent** pour les éléments de diffusion lumineuse (diffuseurs et façade)

#### Paramètres d’impression

Les paramètres ont été adaptés en fonction du type de pièce :

**Pièces en PLA noir (structure)**

- Hauteur de couche : **0,8 mm**
- Taux de remplissage : **15 %**
- Objectif : 
    - Réduire le temps d’impression
    - Conserver une rigidité suffisante
    - Optimiser la consommation de matériau

**Pièces en PLA transparent (diffuseurs)**

- Hauteur de couche : **0,2 mm**
- Taux de remplissage : **100 %**
- Objectif : 
    - Améliorer la diffusion de la lumière
    - Éviter les zones d’ombre ou les irrégularités
    - Obtenir un rendu visuel homogène

### 8.Software

---

### 9. Conclusion

Pour notre équipe, AERIS a été bien plus qu'un simple exercice : c'est la création d'un vrai produit fonctionnel. Au départ, nous voulions juste faire un détecteur de bruit pour les soirées. Mais nous avons vite compris que notre santé dépendait de plein de facteurs invisibles. AERIS est donc devenue une station environnementale complète.

Être 6 dans l'équipe a été notre plus grande force : au lieu d'assembler des modules standards, nous avons créé notre propre carte électronique (PCB) et programmé notre puce pour tout gérer (capteurs, LEDs, envoi web). Surtout, nous sommes fiers d'avoir créé un objet qui respecte la vie privée : le code mesure le bruit, mais n'enregistre aucune conversation. AERIS a réussi son pari : **rendre visible ce qu'on ne voit pas** pour nous aider à vivre dans un environnement plus sain.

# Projet Final - Minuteur lumineux

BARA Soumaila   
BUNTURI Polina   
SALEH Souad

#### **L'Idée** 

Pour notre projet final de prototypage, nous avons choisi de concevoir un minuteur. Un outil tout simple qu'on a choisit d'innover de notre manière.

Comme tout minuteur, notre dispositif répond à un besoin simple mais essentiel : la gestion du temps. Il permet à l’utilisateur de visualiser une durée donnée afin de ne pas oublier une tâche ou de mieux organiser son activité.

Cependant, ce qui distingue notre minuteur des modèles classiques est son approche visuelle et sensorielle. Au lieu d’un affichage numérique, le temps est matérialisé par une illumination progressive de segments lumineux. Plus le temps s’écoule, plus le minuteur s’illumine, offrant ainsi une lecture intuitive, immédiate et esthétique du temps restant.

---

#### <span role="text">**Concept général du dispositif**</span>

Le minuteur repose sur une logique simple :

- Le temps total est divisé en **10 segments**
- Chaque segment correspond à un temps en fonction de la durée définie.
- À mesure que le temps passe, les segments s’allument progressivement

Visuellement, cela se traduit par une montée en lumière à travers des tiges en plexiglas, comme on peut l’observer sur les photos. Ce choix rend l’objet à la fois fonctionnel et décoratif.  
  
Pour mettre ce concept a vie Nous avons commencer par un simple croquis lors d'un brainstorming qui nous a permis d'aller plus loin que notre imagination

[![whatsapp-image-2026-04-29-at-23-44-35.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/whatsapp-image-2026-04-29-at-23-44-35.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/whatsapp-image-2026-04-29-at-23-44-35.jpg)

ci-dessous, nous décrivons la conception de l'outil en trois parties.

#### **1- Partie 3D - La base :**   


Nous avons concever la base grace à Fusion 3D.

La base du minuteur a été conçue comme une structure rectangulaire creuse assurant à la fois stabilité et légèreté.

  
**Mesures :** 215 mm de longueur, 40 mm de profondeur et 110 cm de largeur.

Elle se présente sous la forme d’un cadre allongé, avec une ouverture centrale qui permet d’intégrer les autres composants du dispositif.

La partie supérieure et la partie inférieure de la base comportent une série d’encoches régulièrement espacées (environ 1.5 cm ). Ces ouvertures ont un double rôle : elles permettent de laisser passer la lumière (notamment celle des LED), et servent également de repères visuels pour matérialiser l’écoulement du temps.

Sur les côtés, des ouvertures verticales ont été intégrées afin de faciliter l’insertion des éléments internes, comme le plexiglas ou les composants électroniques. Ces découpes permettent aussi d’accéder plus facilement à l’intérieur de la structure lors de l’assemblage ou de la maintenance.

Enfin, la géométrie globale a été pensée pour être facilement fabriquée, notamment via impression 3D, tout en garantissant une bonne rigidité de l’ensemble. Le design est volontairement épuré et fonctionnel, en cohérence avec l’objectif du minuteur : être à la fois pratique et esthétique.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/3XZimage.png)  ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/3XZimage.png)

### Impression 3D

La base du minuteur a été réalisée par impression 3D à l’aide d’une imprimante Bambu Lab, en utilisant le logiciel Bambu Studio pour la préparation du fichier.

Le modèle 3D a d’abord été exporté depuis Fusion 3D au format STL, puis importé dans Bambu Studio afin de configurer les paramètres d’impression et générer le fichier G-code.

Nous avons utilisé des paramètres standards par défaut, adaptés à une impression de bonne qualité tout en limitant le temps d’impression. Le matériau utilisé est du PLA, un plastique couramment employé en impression 3D pour sa facilité d’utilisation et sa bonne rigidité.

Les principaux paramètres sont les suivants :

- Hauteur de couche : 0,2 mm, permettant un bon compromis entre précision et rapidité
- Taux de remplissage (infill) : environ 15 à 20 %, suffisant pour assurer la solidité de la structure tout en réduisant la consommation de matière
- Vitesse d’impression : réglage standard du logiciel
- Température d’extrusion : environ 200 °C (adaptée au PLA)
- Température du plateau : environ 60 °C pour assurer une bonne adhérence

Concernant l’orientation de la pièce, la base a été positionnée de manière à minimiser l’utilisation de supports et à garantir une bonne qualité des surfaces visibles. Grâce à sa forme simple et ouverte, peu de supports ont été nécessaires.

Une fois l’impression terminée, un post-traitement léger a été effectué : retrait des éventuels supports, nettoyage des surfaces et vérification des dimensions pour s’assurer de la bonne insertion des composants.

Ce procédé de fabrication permet d’obtenir une pièce précise, légère et suffisamment résistante pour accueillir les différents éléments du minuteur.

#### **2- Partie 2D- Les Plexiglass :** 

Les éléments en plexiglas constituent la partie visible du minuteur et jouent un rôle essentiel dans la restitution visuelle du temps.

Nous avons conçu ces éléments sous forme de tiges rectangulaires à l’aide du logiciel Inkscape, puis nous les avons découpés au laser dans des plaques de plexiglas.

<span role="text">Caractéristiques :</span>

- Nombre : 10 tiges
- Dimensions : 
    - Longueur : 15 cm
    - Largeur : 4 cm
    - Épaisseur : 5 mm

[![WhatsApp Image 2026-04-30 at 11.10.33.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/whatsapp-image-2026-04-30-at-11-10-33.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/whatsapp-image-2026-04-30-at-11-10-33.jpeg)

Grâce à la transparence du matériau, la lumière émise par les LED situées en dessous se diffuse à l’intérieur de chaque tige.

Le plexiglas agit ainsi comme un guide de lumière, permettant de transformer une source lumineuse ponctuelle en une surface éclairée homogène. Cela crée un effet visuel progressif : à mesure que les LED s’allument, les tiges s’illuminent les unes après les autres, matérialisant l’écoulement du temps.

Enfin, le choix du plexiglas répond à plusieurs critères : il est à la fois **léger, résistant, facile à usiner et permet une diffusion lumineuse.** Il contribue ainsi à l’aspect esthétique et fonctionnel du minuteur.

**Découpe 2D Laser Trotec :**

La découpe des tiges en plexiglas a été réalisée à l’aide d’une machine de découpe laser Trotec.

Après leur conception sur Inkscape, les fichiers ont été exportés en format vectoriel (SVG ou PDF), puis importés dans le logiciel de la machine pour lancer la découpe.

Le plexiglas utilisé a une épaisseur de 5 mm. La plaque a été placée sur le plateau, puis les paramètres ont été réglés de manière standard : une puissance élevée et une vitesse modérée pour obtenir une découpe propre et précise.

Le laser permet de découper la matière avec une grande précision en la chauffant localement. Cela donne des bords nets et légèrement lisses, ce qui améliore la diffusion de la lumière dans les tiges.

Après la découpe, les pièces ont été récupérées et nettoyées, puis le film de protection a été retiré.

Cette technique permet d’obtenir des pièces précises, propres et adaptées au fonctionnement du minuteur.

**les Deux parties ensemble donne ce résultats**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/Macimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/Macimage.png)

#### **3- Partie Arduino - Programmation du code :**   


Le fonctionnement du minuteur repose sur un système électronique permettant de contrôler l’allumage progressif des LED en fonction du temps.

Nous avons utilisé une carte Arduino (UnoR3) afin de programmer et piloter le dispositif. Celle-ci est reliée à un ruban de **LED adressables de type WS2812B (NeoPixel)**, qui permet de contrôler individuellement chaque LED.  
  
[![WhatsApp Image 2026-04-27 at 12.20.21.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/whatsapp-image-2026-04-27-at-12-20-21.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/whatsapp-image-2026-04-27-at-12-20-21.jpeg)

Le programme utilise la fonction **`millis()`** de l’Arduino, qui permet de mesurer le temps écoulé depuis le démarrage. À chaque intervalle de temps atteint, un nouveau segment de LED est activé.  
Les LED correspondantes s’allument alors progressivement, ce qui crée une visualisation directe de l’avancement du temps.  
  
Le principe de fonctionnement est basé sur **une division du temps** en segments.  
  
<span style="text-decoration: underline;">Exemple : </span>

Pour 10 minutes → 10 segments s’allument progressivement  
donc **1 segment = 1 minute**

- Temps total = **10 min = 600 000 ms**
- Nombre de segments = **10**
- Intervalle = **600 000 / 10 = 60 000 ms (1 min)**

Les LED sont positionnées sous les tiges en plexiglas, ce qui permet une diffusion verticale de la lumière. Ce positionnement a été pensé pour maximiser l’effet visuel et assurer une bonne répartition lumineuse.

Le code repose sur une boucle principale qui vérifie en continu le temps écoulé et met à jour l’affichage en conséquence. Une structure conditionnelle permet de déclencher l’allumage des segments au bon moment, tandis qu’une boucle interne active les LED correspondant à chaque segment.

Enfin, plusieurs choix techniques ont été faits pour garantir la fiabilité du système. L’utilisation d’une alimentation externe permet **d’éviter toute surcharge de l’Arduino.** De plus, la librairie Adafruit NeoPixel **simplifie** la gestion des LED et assure un **contrôle précis** de leur comportement.

L’ensemble du système permet ainsi d’obtenir un minuteur fonctionnel, évolutif et facilement paramétrable selon la durée souhaitée.

**Problèmes rencontrés**

Nous avons rencontré un problème lié aux dimensions des LED.  
En effet, l’espacement entre les LED était inférieur à la distance entre deux plaques de plexiglas.

Pour résoudre ce problème, nous avons coupé la bande LED puis soudé certaines parties afin d’adapter leur position à la structure du minuteur.

Cependant, cette modification a entraîné des difficultés au niveau du branchement avec l’Arduino. Certaines connexions n’étaient pas stables, ce qui empêchait le code de fonctionner correctement.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/110image.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/110image.png)

**Axes d’amélioration**

Pour améliorer le projet, il serait important de :

- Bien calculer l’espacement des LED en amont
- Adapter le design de la base 3D en fonction des dimensions réelles de la bande LED

Avec les LED modifiées et la base imprimée en 3D, nous avons obtenu un résultat fonctionnel, bien que perfectible.

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/wgVimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/wgVimage.png)

Le système est ensuite connecté à l’Arduino pour piloter l’allumage progressif des LED.

**Résultat final**

[![image.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/pisimage.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/pisimage.png)

#### **Aller plus loin**

Bien que le projet repose sur une base simple, plusieurs axes d’évolution peuvent être envisagés afin d’enrichir l’expérience utilisateur et les fonctionnalités :

- **Signal de fin visuel** : mise en place d’un système de clignotement des LED à la fin du temps écoulé pour capter immédiatement l’attention de l’utilisateur.
- **Personnalisation** : possibilité pour l’utilisateur de personnaliser les éléments physiques (ex : plaques en plexiglas), afin d’adapter le dispositif à ses préférences ou à son environnement.
- **Retour sonore** : ajout d’un signal sonore en fin de cycle, avec un volume réglable. Cette fonctionnalité permet également d’améliorer l’accessibilité, notamment pour les personnes malvoyantes.
- **Réglage du temps** : intégration d’un potentiomètre permettant à l’utilisateur de définir facilement la durée souhaitée, rendant le système plus flexible et autonome.
- **Connectivité** : connexion à un smartphone pour l’envoi de notifications ou le pilotage à distance, ouvrant la voie à des usages plus avancés (suivi, rappels, etc.).
- **Modèle fluide :** Utilisation d'un USB afin de l'intégrer dans le modèle.

# Projet Final - Joaquin Austin/Gilles Sevignac/Lisa Goulvestre VALISEOUTE

### **Projet : Valiseouté - Mécanisme sur valise pour le suivi intelligent**

##### **<span style="text-decoration: underline;">Objectif : </span>**

L'objectif de ce projet est de créer un système se fixant à différentes tailles de valises permettant le suivi du propriétaire de la valise. Cela permet de ne pas perdre la valise qui nous suit, ainsi que de moins se fatiguer a la porter. Ce système est adapté aux gens nomades, les personnes à mobilité réduite, les personnes âgées ou encore les personnes souhaitant les dernières innovations ou plus de confort.

Inspiration : Nous sommes 3 jeunes voyageant régulièrement et aillant déjà voulu avoir ce confort.

##### **<span style="text-decoration: underline;">Fonctionnalité clés :</span>**

- Suivi fiable de l'utilisateur
- Bonne puissance pour porter une valise
- Bonne autonomie

##### **<span style="text-decoration: underline;">Veille sur l'existant :</span>**

- **<span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Travelmate Robotics</span></span> – modèle *Travelmate***
    - Valise robotisée qui suit son propriétaire grâce à des capteurs et une application mobile
    - Vitesse d’environ 6 km/h, évitement d’obstacles
- **<span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Cowarobot</span></span> – modèle *Cowarobot R1***
    - Suit l’utilisateur via un bracelet connecté
    - Équipée de GPS, capteurs (sonar, profondeur) et détection d’obstacles
- **<span class="hover:entity-accent entity-underline inline cursor-pointer align-baseline"><span class="whitespace-normal">Airwheel</span></span> – modèles *SR3* et *SR5***
    - Suivi automatique grâce à la reconnaissance visuelle
    - Maintien d’une distance avec l’utilisateur + évitement intelligent d’obstacles

Ce qu'il faut retenir,

Le marché existe déjà avec quelques startups et marques tech, mais reste encore limité. Ce sont souvent des prototypes ou produits peu diffusés, encore en phase d’innovation. Leurs principaux défauts sont : l'autonomie limité avec la batterie, des échecs en environnement réel avec des obstacles type trottoirs, une vitesse limitée, une dépendance a un système de suivi, un poids plus élevé s'il faut la porter, un prix élevé et des contraintes règlementaires si la valise possède une batterie en lithium par exemple.

##### <span style="text-decoration: underline;">**Cible d'usage :**</span>

- <span style="text-decoration: underline;">Gens nomades :</span> voyageant régulièrement et nécessitant confort
- <span style="text-decoration: underline;">Les personnes à mobilité réduite</span> : nécessitant praticité et mains libres
- <span style="text-decoration: underline;">Les personnes âgées </span>: nécessitant praticité et allègement de poids
- <span style="text-decoration: underline;">Les personnes souhaitant les dernières innovations ou plus de confort</span>

##### <span style="text-decoration: underline;">**Gestion de projet :**</span>

<table border="1" id="bkmrk-nom-pr%C3%A9nom-r%C3%B4le-savi" style="border-collapse: collapse; width: 70.9877%; height: 124.789px;"><colgroup><col style="width: 50.0412%;"></col><col style="width: 50.0412%;"></col></colgroup><tbody><tr style="height: 35.3984px;"><td style="height: 35.3984px;">**Nom Prénom**

</td><td style="height: 35.3984px;">**Rôle**

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">*Savignac Gilles*</td><td style="height: 29.7969px;">Modélisation 3D + éléctronique</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">*Austin Joaquin*</td><td style="height: 29.7969px;">Découpe laser + éléctronique</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">*Goulvestre Lisa*</td><td style="height: 29.7969px;">Modélisation 3D + Rédaction</td></tr></tbody></table>

Planning -&gt;

<table border="1" id="bkmrk-s1-cr%C3%A9ation-du-code%C2%A0" style="border-collapse: collapse; width: 66.7901%;"><colgroup><col style="width: 30.5606%;"></col><col style="width: 69.3777%;"></col></colgroup><tbody><tr><td>**S1**</td><td>Création du code </td></tr><tr><td>**S2**</td><td>Amélioration du code en testant avec les capteurs reçu</td></tr><tr><td>**S3**</td><td>Premières modélisation 3D</td></tr><tr><td>**S4**</td><td>Impression 3D</td></tr><tr><td>**S4**</td><td>Connexion fils et premiers tests sans valise</td></tr><tr><td>**S5**</td><td>Assemblage final</td></tr></tbody></table>

<span style="text-decoration: underline;">Matériel utilisé :</span>

Pour ce projet, nous avons utilisé les composants suivants :

<table border="1" id="bkmrk-nom-quantit%C3%A9-prix-es" style="border-collapse: collapse; width: 82.0988%; height: 403.875px;"><colgroup><col style="width: 70.5971%;"></col><col style="width: 13.8495%;"></col><col style="width: 15.5032%;"></col></colgroup><tbody><tr style="height: 35.0625px;"><td style="height: 35.0625px;">**Nom**

</td><td style="height: 35.0625px;">**Quantité**

</td><td style="height: 35.0625px;">Prix estimé</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Carte Arduino Uno</td><td style="height: 29.4583px;">1</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="height: 29.4583px;">~10€</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Capteur de distance Ultrasonic Distance Sensor level 3</td><td style="height: 29.4583px;">3</td><td style="height: 29.4583px;">-</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">PLA pour la réalisation 3D</td><td style="height: 29.4583px;">-</td><td style="height: 29.4583px;">~2€</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Moteur DAGU robot</td><td style="height: 29.4583px;">2</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="height: 29.4583px;">~15€</td></tr><tr style="height: 57.4375px;"><td style="height: 57.4375px;">Fils de connexion pour connecter les composants entre eux

</td><td style="height: 57.4375px;">12</td><td style="height: 57.4375px;">~1€</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Piles AA 1.5 volt</td><td style="height: 29.4583px;">4</td><td style="height: 29.4583px;">~2€</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Sangle</td><td style="height: 29.4583px;">2</td><td style="height: 29.4583px;">~2€</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Valise</td><td style="height: 29.4583px;">1</td><td style="height: 29.4583px;">-</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">La board</td><td style="height: 29.4583px;">1</td><td style="height: 29.4583px;">-</td></tr><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Driver DR10009 DFROBOT 2A Motor shield for Arduino</td><td style="height: 29.4583px;">1</td><td class="border-b-0.5 border-border-300/30 py-2 pr-4 align-top" style="height: 29.4583px;">~10€</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">Roue</td><td style="height: 46.25px;">2</td><td style="height: 46.25px;">inclue dans prix moteur</td></tr></tbody></table>


<span style="text-decoration: underline;">Le circuit :</span>

<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;">Base iniatiale : V3 </span><span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400;"> </span>![IMG_8997.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-8997.jpeg)place pour 2 moteurs et 2 roues

Base améliorée V4 : ![base V4.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/base-v4.PNG) place pour 4 moteurs et 4 roues

Amélioration possible -&gt; prendre une plaque de plexiglass de 6mm pour rendre la base plus rigide.

<span style="text-decoration: underline;">Le code : </span>

```
// === MOTEURS ===
int E1 = 5, M1 = 4;
int E2 = 6, M2 = 7;

// === CAPTEURS ===
int TRIG_C = 8,  ECHO_C = 9;
int TRIG_G = 10, ECHO_G = 11;
int TRIG_D = 12, ECHO_D = 13;

// === PARAMETRES ===
int DIST_MIN  = 30;
int DIST_MAX  = 70;
int DIST_LAT  = 60;
int VITESSE   = 255;

// =============================================
long mesurerDistance(int trig, int echo) {
  digitalWrite(trig, LOW);  delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
  long d = pulseIn(echo, HIGH, 30000);
  return (d == 0) ? 999 : d * 0.034 / 2;
}

void avancer() {
  digitalWrite(M1, LOW);
  digitalWrite(M2, HIGH);
  analogWrite(E1, VITESSE);
  analogWrite(E2, VITESSE);
}

void reculer() {
  digitalWrite(M1, HIGH);
  digitalWrite(M2, LOW);
  analogWrite(E1, VITESSE);
  analogWrite(E2, VITESSE);
}

void arreter() {
  analogWrite(E1, 0);
  analogWrite(E2, 0);
}

// Virage gauche : gauche recule, droit avance
void vireGauche() {
  digitalWrite(M1, HIGH);  // gauche recule
  digitalWrite(M2, HIGH);  // droit avance (inversé)
  analogWrite(E1, VITESSE);
  analogWrite(E2, VITESSE);
}

// Virage droite : droit recule, gauche avance
void vireDroite() {
  digitalWrite(M1, LOW);   // gauche avance
  digitalWrite(M2, LOW);   // droit recule (inversé)
  analogWrite(E1, VITESSE);
  analogWrite(E2, VITESSE);
}

// =============================================
void setup() {
  pinMode(M1, OUTPUT); pinMode(M2, OUTPUT);
  pinMode(TRIG_C, OUTPUT); pinMode(ECHO_C, INPUT);
  pinMode(TRIG_G, OUTPUT); pinMode(ECHO_G, INPUT);
  pinMode(TRIG_D, OUTPUT); pinMode(ECHO_D, INPUT);
  Serial.begin(9600);
}

void loop() {
  long dC = mesurerDistance(TRIG_C, ECHO_C); delay(25);
  long dG = mesurerDistance(TRIG_G, ECHO_G); delay(25);
  long dD = mesurerDistance(TRIG_D, ECHO_D); delay(25);

  Serial.print("G:"); Serial.print(dG);
  Serial.print(" C:"); Serial.print(dC);
  Serial.print(" D:"); Serial.println(dD);

  // Rien détecté nulle part → stop
  if (dC == 999 && dG == 999 && dD == 999) {
    arreter();
    return;
  }

  bool centreOK = (dC < 999);
  bool sigG     = (dG < DIST_LAT);
  bool sigD     = (dD < DIST_LAT);

  if (centreOK) {

    if (dC < DIST_MIN) {
      // Trop proche → stop
      arreter();

    } else if (dC <= DIST_MAX) {
      // Dans la zone → avance
      avancer();

    } else {
      // dC > DIST_MAX → trop loin, rattrape
      reculer();
    }

  // Centre ne voit rien → latéraux seuls
  } else if (!centreOK && !sigG && !sigD) {
    reculer();

  } else if (sigG && !sigD) {
    vireGauche();

  } else if (sigD && !sigG) {
    vireDroite();

  } else {
    arreter();
  }

  delay(40);
}
```

<span style="text-decoration: underline;">La modélisation 3D :</span>

Nous avons utilisé AutoDesk Fusion 360. 2 éléments on été réalisé par impression 3D : Le boitier contenant les capteurs de distances a l'avant de la valise et 2 L étants les sabots permettant le maintient autour de la valise ainsi que l'adaptation aux différentes tailles de valise. Toutes les impressions 3D ont été réalisées en PLA.

Pour le boitier à capteur :

![Capture modelisation 3D essai n°1 boitier a capteur.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/capture-modelisation-3d-essai-n1-boitier-a-capteur.PNG)n°1 ![Capture modelisation 3D essai n°2 boitier a capteur.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/capture-modelisation-3d-essai-n2-boitier-a-capteur.PNG) n°2

Le boitier n°1 était inutilement trop grand donc nous avons décidé de réduire celui-ci pour obtenir le modèle n°2. Nous en avons profité pour ajouter des trous sur les cotés pour attacher une seconde sangle et améliorer le maintien ainsi que réduire les épaisseurs pour diminuer le temps d'impression. Les étapes éffectuée ont été le dessins de l'esquisse &gt; extrusion &gt; perçage x6 &gt; contraindre les cercles pour avoir le bon espacement &gt; esquisse d'un couvercle &gt; extrusion du couvercle.

Résultat final :

[![IMG_8996.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-8996.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/img-8996.jpeg)

Les sabots :

[![IMG_8993.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-8993.jpeg) ](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/img-8993.jpeg)[![IMG_9004.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-9004.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/img-9004.jpeg) Ils ne seront finalement pas utilisé sur le prototype car l'espacement est insuffisant pour ne pas abimer le matériel (photo 2) et le système tient correctement sans.

Le cache de pile :

![Modélisation cache.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/modelisation-cache.PNG)![Modélisation cache 2.PNG](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/modelisation-cache-2.PNG) ![](https://mail.google.com/mail/u/0?ui=2&ik=9ee81690c8&attid=0.1&permmsgid=msg-f%3A1863882061640840059&th=19ddd6dc1b53337b&view=fimg&disp=thd&attbid=ANGjdJ9wKe3r8yTx7LrIIPTPOi3nrgjfytdrNaI3-KvIoSbf-uXlV2G9xgvyZ1ZYDA4zfGOqF8jcXswVMnJA5GdQXAv3hggwCY95nLIYlEZFlvUOt4Er9dYab6NhZpI&ats=2524608000000&sz=w360-h240-p-nu) Réalisé en dessinant la forme &gt; ajouter les cotes &gt; ajouter des ronds &gt; extruder &gt; extruder dans l'autre sens les ronds pour former des trous

<div aria-hidden="true" id="bkmrk-le-design-%3A%C2%A0"><div class="aSG">  
</div><div class="aVY aZn"><div class="aZm">  
</div></div><div class="aSH"><div class="aYv" id="bkmrk--4">![](https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif)</div><div class="aYy " id="bkmrk-le-design-%3A%C2%A0-1"><div class="aYA"><span style="text-decoration-line: underline;">Le design : </span></div></div></div></div>[![IMG_9007.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/img-9007.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/img-9007.jpeg)

Nous avons décidé de graver "VALISOUTE" suivi de nos prénoms à la découpeuse laser pour personnaliser notre objet.

##### **<span style="text-decoration: underline;">Difficultés rencontrées :</span>**

La création du code nécessitait plusieurs rectifications car initialement il évitait la personnes devant au lieu de la suivre. Les branchements présentaient des problèmes pour relier les piles au moteur et avoir assez de puissance. Le model 3D à été modifié pour adapter sa taille. La découpe au laser et l'impression 3D a aussi nécessité plusieurs essais et nous a permis d'apprendre beaucoup sur la manipulation des logiciels et les techniques de découpe ou d'impression.

ESSAI N°1 : Lors du premier test, la valise n'avançait pas par manque de puissance (les roues ne tournent pas). Voici une image du premier essai avec le produit fini :

[<span class="a3I" id="bkmrk-pr%C3%A9visualiser-la-pi%C3%A8-1">Prévisualiser la pièce jointe IMG\_9002.PNG</span><span class="a3I" id="bkmrk-pr%C3%A9visualiser-la-pi%C3%A8-2">Prévisualiser la pièce jointe IMG\_9002.PNG</span>](https://mail.google.com/mail/u/0?ui=2&ik=9ee81690c8&attid=0.1&permmsgid=msg-f:1863812748825552045&th=19dd97d1f59764ad&view=att&zw&disp=safe)

<div aria-hidden="true" id="bkmrk--7"><div class="aSG">  
</div><div class="aVY aZn"><div class="aZm">  
</div></div><div class="aSH">![](https://mail.google.com/mail/u/0?ui=2&ik=9ee81690c8&attid=0.1&permmsgid=msg-f%3A1863812748825552045&th=19dd97d1f59764ad&view=fimg&disp=thd&attbid=ANGjdJ8UlLd1cT6DzGzZB9GxAOClc3Iy7abkLHCskbGry8FDUsnXk2yGC98LdP9TYOn9RpoGAjUqIAgvKGQt_Zsrv4i-0GemS4Y94tiV5d3PcHKeWM3WjMnzjMo1dAo&ats=2524608000000&sz=w360-h240-p-nu)<div class="aYv" id="bkmrk--9">![](https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif)</div><div class="aYy " id="bkmrk--10"><div class="aYA">  
</div></div></div><div class="aSI"><div class="aSJ" id="bkmrk--11"></div></div></div>ESSAI N°2 : Une pile de 9V à remplacé les 4 piles de 1.5V et la puissance a été nettement améliorée mais la valise n'avance toujours pas. Les roues tournent maintenant mais dans le vide.

ESSAI N°3 : Une deuxième pile de 9V a été ajoutée et 2 autres moteurs associés à 2 roues sont aussi ajoutées. La valise roulent correctement mais le code n'est pas le bon, la valise recule lorsqu'elle nous détecte.

ESSAI N°4 (final) : Le code a été modifié plusieurs fois et plusieurs tests ont été fait. La valise avance lorsqu'elle nous détecte mais sa vitesse et sa précision reste limitée. Vidéo du dernier essai :

[<span class="a3I" id="bkmrk-pr%C3%A9visualiser-la-pi%C3%A8-4">Prévisualiser la pièce jointe IMG\_9013.mov</span><span class="a3I" id="bkmrk-pr%C3%A9visualiser-la-pi%C3%A8-5">Prévisualiser la pièce jointe IMG\_9013.mov</span>](https://mail.google.com/mail/u/0?ui=2&ik=9ee81690c8&attid=0.1&permmsgid=msg-f:1863894292425319788&th=19dde1fbcee3a56c&view=att&zw&disp=safe)

<div aria-hidden="true" id="bkmrk-img_9013.mov-17-mb"><div class="aSH">  
<div class="aYv" id="bkmrk--12">![](https://ssl.gstatic.com/ui/v1/icons/mail/images/cleardot.gif)</div><div class="aYy " id="bkmrk-img_9013.mov-17-mb-1"><div class="aYA">![](https://ssl.gstatic.com/docs/doclist/images/mediatype/icon_1_video_x32.png "Vidéo")</div><div class="aYz " id="bkmrk-img_9013.mov-17-mb-2"><div class="a12"><div class="aQA"><span class="aV3" id="bkmrk-img_9013.mov">IMG\_9013.mov</span></div><div class="aYp"><span id="bkmrk-17-mb">17 MB</span></div></div></div></div></div><div class="aSI"><div class="aSJ" id="bkmrk--14"></div></div></div>##### <span style="text-decoration: underline;">**Les améliorations possibles :**</span>

- <span class="a_GcMg font-feature-liga-off font-feature-clig-off font-feature-calt-off text-decoration-none text-strikethrough-none">Système d’alerte en temps réel si la valise est perdue</span>
- <span class="a_GcMg font-feature-liga-off font-feature-clig-off font-feature-calt-off text-decoration-none text-strikethrough-none">Design</span>
- <span class="a_GcMg font-feature-liga-off font-feature-clig-off font-feature-calt-off text-decoration-none text-strikethrough-none">Application connectée au téléphone mais garde le fonctionnement pile</span>
- <span class="a_GcMg font-feature-liga-off font-feature-clig-off font-feature-calt-off text-decoration-none text-strikethrough-none">Le perfectionnement du suivi</span>

# PROJET FINAL_RESQ_Defne, Meritxell, Can, Yorgo, Toufic

<span style="font-size: 26pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DOCUMENTATION DE PROTOTYPAGE</span>

<span style="font-size: 36pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ResQ Emergency</span>

<span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dispositif de détection d'accident et d'alerte d'urgence automatique</span>

<span style="font-size: 13pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Équipe ResQ</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Defne Su KURTOGLU • Yorgo EL HADDAD • Can GENIS • Meritxell ALIÈ FÀBREGAS • Toufic BATACHE</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sorbonne Université — Cours de Prototypage — 2025-2026</span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1. Définition du projet</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1.1 Besoin identifié</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les accidents de la route constituent l'une des principales causes de mortalité dans le monde. Chaque année, 1,35 million de personnes perdent la vie sur les routes, soit plus de 3 600 décès par jour. Une part significative de ces décès, estimée à 13,2 %, pourrait être évitée si les secours intervenaient plus rapidement.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Des études montrent que lorsque les secours arrivent en moins de 7 minutes, le taux de mortalité est de 4,9. En revanche, lorsqu'il faut plus de 12 minutes, ce taux augmente à 11,9. La rapidité d'intervention est donc un facteur déterminant.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le besoin central de ResQ naît d'une double contrainte :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les systèmes existants, notamment le système eCall obligatoire dans les véhicules européens depuis 2018, reposent sur les réseaux 3G et 4G, qui sont en cours de décommissionnement au profit du 5G. Cette migration rend progressivement eCall obsolète d'ici 2026, créant un vide critique dans la sécurité routière automatisée.</span>

<div align="left" dir="ltr" id="bkmrk-probl%C3%A9matique-centra" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Problématique centrale</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Comment garantir une alerte rapide et automatique des secours, quel que soit le type de véhicule</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">et quel que soit l'endroit (y compris sans couverture réseau mobile), afin de réduire les décès liés</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">aux délais d'intervention après un accident de la route ?</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1.2 Utilisateurs cibles</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ResQ est conçu pour être adapté à tout véhicule motorisé ou non motorisé, c’est à dire: </span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les automobiles (voitures particulières, utilitaires)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Motos, scooters</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les vélos </span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cette cible représente 70 millions de véhicules en circulation. </span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1.3 Fonctionnalité principale</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La fonctionnalité principale de ResQ est la suivante :</span>

<div align="left" dir="ltr" id="bkmrk-fonctionnalit%C3%A9-princ" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fonctionnalité principale</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Détecter automatiquement un accident de la route grâce aux capteurs embarqués (accéléromètre,</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroscope), puis alerter automatiquement les services d'urgence (SAMU, pompiers) ET les contacts</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">d'urgence préalablement configurés par l'utilisateur, en transmettant la localisation GPS précise</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">via LTE ou satellite Swarm </span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1.4 Fonctionnalités secondaires</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fonctionnalités secondaires implémentées dans le prototype</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Géolocalisation GPS/GNSS : Le module SIM7670G intègre un récepteur GNSS permettant de déterminer les coordonnées précises du dispositif en temps réel, transmises avec chaque alerte.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Détection d'incendie ou d'anomalie thermique : Le capteur infrarouge MLX90614 mesure la température ambiante sans contact. Une élévation anormale déclenche une alerte secondaire indépendante de la détection de choc.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connectivité satellite via Swarm (SpaceX) : En l'absence de couverture mobile, le module satellite Swarm prend le relais. Les messages d'urgence sont transmis en 30 à 60 secondes via la constellation de satellites basse orbite de SpaceX, sans frais mensuels supplémentaires.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Buzzer piézoélectrique, LEDs RGB (4×4) et écran OLED informent l'utilisateur de l'état du dispositif et du déclenchement d'une alerte.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fenêtre d'annulation : Lors d'une fausse alarme, l'utilisateur dispose d'une fenêtre de 10 secondes pour annuler l'alerte manuellement via le bouton dédié.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Déclenchement manuel d'urgence : L'utilisateur peut déclencher manuellement une alerte en maintenant le bouton d'urgence appuyé, même si aucun accident n'a été détecté automatiquement.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connectivité Wi-Fi et Bluetooth (BLE) : Permet la synchronisation avec l'application mobile et les mises à jour du firmware.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fonctionnalités à envisager: </span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">On a essayé d'implémenter: </span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Module caméra OV2640 : qui nous permettrai de prendre une photographie de l’intérieur de la voiture pour savoir combien de personnes il y a dans le véhicule. Aussi, l’image sera envoyée aux secours pour leur donner encore plus d'informations sur l’accident pour qu’ils soient le mieux préparés. </span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">On a réussi à l’intégrer dans le prototype mais elle n’est pas fonctionnelle. </span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2. Réflexions sur la problématique et veille sur l'existant</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2.1 Analyse de la problématique</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La réflexion à l'origine de ResQ repose sur un constat paradoxal : malgré les progrès considérables réalisés dans la prévention routière (ceintures de sécurité, airbags, systèmes ABS, contrôle de stabilité), la gestion de l'après-accident reste insuffisamment outillée, en particulier pour les véhicules qui ne disposent pas de systèmes embarqués modernes.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Plusieurs facteurs aggravent ce problème :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Temps d'intervention trop long : Dans les zones rurales ou isolées, les secours peuvent mettre plus de 15 à 20 minutes à arriver, augmentant drastiquement le risque de décès.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Victimes incapables d'alerter les secours : Après un impact violent, la victime peut être inconsciente, désorientée ou physiquement incapable d'utiliser son téléphone.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Absence de solutions universelles et accessibles : Les systèmes de sécurité avancés sont souvent réservés aux véhicules haut de gamme récents, ou nécessitent un abonnement mensuel.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Multiplication des usages : L'essor des deux-roues, des vélos électriques et des trottinettes crée de nouveaux besoins non couverts par les solutions existantes.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Déploiement du réseau 5G : La migration vers la 5G conduit les opérateurs à décommissionner progressivement les réseaux 3G et 4G utilisés par le système eCall, le rendant obsolète d'ici 2026.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2.2 Benchmark des solutions concurrentes</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Plusieurs solutions existent sur le marché pour pallier le problème de l'alerte d'urgence après un accident. Cependant, chacune présente des limites significatives qui ont motivé la conception de ResQ.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le système eCall</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Obligatoire dans tous les véhicules neufs vendus dans l'Union européenne depuis le 31 mars 2018, eCall est un système intégré qui déclenche automatiquement un appel au numéro d'urgence 112 en cas d'accident grave détecté par les airbags ou d'autres capteurs embarqués.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Limites principales :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Il repose exclusivement sur les réseaux 2G, 3G et 4G. La migration vers la 5G entraîne le décommissionnement progressif de ces réseaux, ce qui rendra eCall non fonctionnel d'ici 2026 sans mise à jour matérielle des véhicules.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Il n'est disponible que dans les véhicules neufs équipés dès la fabrication, les véhicules anciens, motos, vélos et scooters en sont exclus.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Il ne dispose pas de connectivité satellite, en zone sans couverture mobile, il est inopérant.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Il ne permet pas de notifier les proches ou les contacts d'urgence personnels.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">L'Apple Watch (Emergency SOS et Crash Detection)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">L'Apple Watch Ultra 2 et certains modèles récents disposent d'une fonction de détection de chute et de détection d'accident, ainsi que d'une connectivité satellite via GlobalStar pour envoyer des alertes en zones sans réseau.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Limites principales :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tarif prohibitif : Entre 400 € et 800 € selon le modèle, ce qui la rend inaccessible à une large partie de la population.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La connectivité satellite gratuite est limitée à 2 ans puis facturée environ 69 €/an, sans garantie de service.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le réseau GlobalStar utilisé peut prendre jusqu'à 2 minutes pour transmettre un message d'urgence, contre 30 secondes pour Swarm (technologie intégrée à ResQ).</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elle ne détecte pas les incendies ni les anomalies de température.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elle est fixée au poignet de l'utilisateur, dans un choc violent, elle peut se désolidariser ou être projetée.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les dashcams intelligentes</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les caméras de tableau de bord modernes peuvent détecter des événements sur la route et enregistrer les images. Certaines disposent d'une connectivité mobile pour envoyer des notifications.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Limites principales :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elles ne déclenchent pas d'alerte automatique aux services d'urgence, elles enregistrent mais n'apportent pas.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elles sont exclusivement réservées aux véhicules à quatre roues avec un tableau de bord, et ne sont pas adaptées aux deux-roues ou aux vélos.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elles ne disposent pas de connectivité satellite.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Leur batterie interne est généralement insuffisante pour fonctionner indépendamment du véhicule.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les applications mobiles d'urgence (ex. : iSOS, bSafe, Life360)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ces applications utilisent le GPS du smartphone et permettent de partager sa position avec des proches ou de déclencher une alerte manuelle.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Limites principales :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elles nécessitent que l'utilisateur soit conscient et capable d'utiliser son téléphone après l'accident.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elles dépendent entièrement de la couverture réseau mobile du smartphone.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elles ne peuvent pas détecter automatiquement un accident, elles sont purement réactives.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le smartphone peut être endommagé, éjecté ou hors de portée après un choc violent.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les casques connectés pour motards (ex. : MET Helmet, Abus)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Certains casques de motocycliste intègrent des capteurs d'impact et une connectivité mobile pour alerter les secours en cas d'accident.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Limites principales :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ils sont exclusivement réservés aux motards et ne couvrent pas les autres types de véhicules.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Leur fonctionnement est conditionné au port du casque, aucun bénéfice pour les conducteurs de voitures ou de vélos sans casque.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ils ne disposent pas de connectivité satellite.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le coût d'un casque connecté est élevé.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le tableau comparatif suivant synthétise les forces et faiblesses de chaque solution par rapport à ResQ :</span>

<div align="left" dir="ltr" id="bkmrk-crit%C3%A8re-ecall-apple-" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col><col width="100"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 5pt 4pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Critère</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 5pt 4pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">eCall</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 5pt 4pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Apple Watch</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 5pt 4pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dashcam</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 5pt 4pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Casque MET</span>

</td><td style="vertical-align: top; background-color: #e74c3c; padding: 4pt 5pt 4pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ResQ</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Haute précision de détection</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Alerte automatique</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connectivité satellite</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓ (limité)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Compatibilité tous véhicules</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Détection incendie</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sans frais mensuels satellite</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✗</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">N/A</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">N/A</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">✓</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Délai d'alerte satellite</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">N/A</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~2 min</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">N/A</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">N/A</span>

</td><td style="vertical-align: top; background-color: #fff0f0; padding: 3pt 5pt 3pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~30 sec</span>

</td></tr></tbody></table>

</div><div align="left" dir="ltr" id="bkmrk-conclusion-de-la-vei" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conclusion de la veille</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Aucune solution existante ne combine à la fois : détection automatique d'accident, connectivité satellite</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">sans frais récurrents, compatibilité universelle tous véhicules, détection d'incendie, et prix accessible.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ResQ se positionne précisément sur ce créneau inexploité.</span>

</td></tr></tbody></table>

</div># <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3. Explication des choix techniques</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Chaque composant de ResQ a été sélectionné après une analyse comparative rigoureuse des alternatives disponibles sur le marché, en tenant compte de critères de performance, de coût, de taille et d'intégration dans l'écosystème du prototype.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.1 Microcontrôleur principal : ESP32-S3</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le microcontrôleur ESP32-S3 (sous la forme du module Waveshare ESP32-S3-SIM7670G-4G) constitue le cerveau du dispositif. Ce choix repose sur plusieurs arguments :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connectivité intégrée : L'ESP32-S3 embarque nativement le Wi-Fi 802.11 b/g/n et le Bluetooth 5.0 (BLE), éliminant le besoin de modules séparés et réduisant la surface de la carte.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Puissance de calcul : Avec deux cœurs Xtensa LX7 cadencés à 240 MHz et 512 Ko de RAM interne (extensible), il gère simultanément la lecture des capteurs, le traitement des données, la communication réseau et le contrôle de l'interface utilisateur.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Accélération neuronale : L'ESP 32-S3 intègre des instructions d'accélération pour les réseaux de neurones, ouvrant la voie à une détection d'accident plus intelligente dans les versions futures.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Compatibilité : Il supporte nativement le protocole I²C (pour le MPU-6050, le MLX90614 et l'écran), SPI, UART et l'interface caméra DVP (pour l'OV2640), simplifiant considérablement le câblage.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Écosystème Arduino/ESP-IDF : La disponibilité de bibliothèques matures (Arduino Json, Adafruit NeoPixel, Adafruit GFX) a accéléré le développement du prototype.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Rapport qualité/prix : À environ 49 $, il offre un rapport performance/coût imbattable pour ce type d'application.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Alternative considérée : Le Raspberry Pi Pico W a été écarté en raison de son absence de support natif BLE 5.0 et de sa RAM limitée. L'Arduino Mega a été exclu car il ne dispose ni de Wi-Fi ni de Bluetooth intégrés.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.2 Module LTE et GPS : SIM7670G</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le module SIM7670G est intégré directement sur la carte Waveshare, couplée avec l'ESP 32-S3. Il assure deux fonctions critiques :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Connectivité cellulaire LTE Cat-1 : Permet l'envoi de données (position GPS, heure, image) via le réseau mobile 4G en zone couverte. Le Cat-1 a été choisi car il offre un excellent équilibre entre débit (10 Mbps en downlink), consommation énergétique et coût, comparé au Cat-4 (plus gourmand) ou au NB-IoT (trop lent pour transmettre des images).</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Récepteur GNSS intégré : Le SIM7670G embarque un récepteur GPS/GNSS multi-constellation (GPS, GLONASS, BeiDou) qui fournit les coordonnées géographiques précises transmises avec chaque alerte. L'intégration du GPS dans le même module que le LTE évite le recours à un module GPS séparé, simplifiant le câblage et réduisant les coûts.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Justification du choix : L'alternative d'un module SIM800L (2G) a été écartée en raison de l'obsolescence programmée des réseaux 2G en France. Un module SIM 7600 (LTE Cat-4) a été considéré mais son coût plus élevé n'était pas justifié pour les besoins de ce prototype.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.3 Capteur de mouvement : MPU-6050</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le MPU-6050 est le capteur central de détection d'accident. Il combine sur une seule puce :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un accéléromètre 3 axes (plage configurable : ±2g, ±4g, ±8g, ±16g)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un gyroscope 3 axes (plage configurable : ±250, ±500, ±1000, ±2000 °/s)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un processeur de mouvement numérique (DMP) permettant le calcul de la fusion des données capteurs directement sur la puce</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Son interface I²C simplifie le câblage (seulement 2 fils SDA/SCL en plus de l'alimentation). Il est connecté sur les GPIO 42 (SDA) et 1 (SCL) de l'ESP 32-S3, avec une fréquence de bus I²C de 100 kHz (paramétrable à 400 kHz).</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La détection d'accident repose sur l'analyse en temps réel des valeurs d'accélération et de rotation. Un seuil de détection de choc (shock threshold) est défini dans le firmware : si les valeurs mesurées dépassent ce seuil sur une ou plusieurs axes, la procédure d'alerte est déclenchée.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Justification : Le MPU-6050 est très répandu, bien documenté, et ses bibliothèques Arduino sont matures. Son coût (environ 2 €) le rend idéal pour un prototype. Pour la version de production, un capteur industriel comme le LSM6DSO32 (STMicroelectronics) pourrait offrir de meilleures performances en termes de robustesse et de précision.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.4 Capteur de température infrarouge : MLX90614</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le MLX90614 est un thermomètre infrarouge sans contact. Il mesure la température ambiante et la température de l'objet visé dans une plage de -70°C à +380°C avec une précision de ±0,5°C.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dans ResQ, il est utilisé pour détecter les anomalies thermiques qui pourraient indiquer un début d'incendie dans ou autour du véhicule. Son interface I²C lui permet de partager le bus avec le MPU-6050.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Justification : Aucun contact physique n'est nécessaire pour la mesure, ce qui le rend robuste aux vibrations et aux contaminations. Son faible coût (environ 5 €) et sa disponibilité immédiate en ont fait le choix naturel pour ce prototype.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.5 Module satellite : Swarm (SpaceX)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le module Swarm est la composante la plus innovante de ResQ. Il permet de transmettre des messages d'urgence via la constellation de 150 nano-satellites en orbite basse (LEO) exploitée par Swarm Technologies, filiale de SpaceX.</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Couverture globale : Les satellites Swarm couvrent l'intégralité de la surface terrestre, permettant l'envoi de messages depuis n'importe quel endroit du globe, y compris en montagne, en mer ou dans des zones rurales sans couverture mobile.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Délai de transmission : En moyenne 30 à 60 secondes, nettement inférieur aux 2 minutes du réseau GlobalStar utilisé par Apple Watch.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Coût inclus : Contrairement aux systèmes concurrents qui facturent un abonnement mensuel, le coût de la connectivité satellite est inclus dans le prix d'achat du dispositif ResQ.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Basse consommation : Le module Swarm est conçu pour les applications IoT basse consommation, compatible avec une alimentation sur batterie.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.6 Interface utilisateur</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">LEDs RGB NeoPixel (4×4 = 16 LEDs)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La grille de 16 LEDs RGB adressables (type WS2812B, connectées sur le GPIO 41) constitue l'indicateur visuel principal. Les couleurs et animations sont programmées pour signaler différents états : veille, alerte en cours, envoi du message, confirmation. La bibliothèque Adafruit NeoPixel (version 1.12.5) est utilisée pour le contrôle.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Buzzer piézoélectrique</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le buzzer produit des signaux sonores d'alerte lors du déclenchement de la procédure d'urgence. La bibliothèque Non-Blocking Melody (version 1.0.4) permet de jouer des mélodies sans bloquer la boucle principale du programme.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Écran OLED SSD1306</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un écran OLED (piloté via I²C, bibliothèque Adafruit GFX version 1.12.0) affiche en temps réel l'état du dispositif : mode veille, données capteurs (accélération X/Y/Z, température), état de connexion (LTE/satellite), et messages de statut. À l'initialisation, l'écran affiche successivement les confirmations de démarrage de chaque module.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Boutons physiques</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Trois boutons sont intégrés au dispositif :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton d'annulation (Cancel) : permet d'annuler une alerte dans la fenêtre de 10 secondes.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton menu : permet de naviguer dans l'interface de l'écran.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton multifonction : déclenche manuellement une alerte d'urgence.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.7 Module caméra : OV2640</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le module caméra OV2640 (résolution 2 mégapixels) est connecté à l'interface DVP de l'ESP32-S3. Il peut capturer une image au moment de l'incident pour la transmettre avec le message d'alerte. La bibliothèque base64\_encode (version 2.0.4) est utilisée pour encoder l'image avant transmission via MQTT.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Remarque : Dans la version actuelle du prototype, la transmission de l'image est fonctionnelle via Wi-Fi/MQTT mais pas encore intégrée à la transmission satellite (contrainte de taille du message).</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.8 Alimentation : batterie 18650 Li-ion</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le prototype est alimenté par une batterie rechargeable 18650 (3.7 V, 6 800 mAh). Le circuit de gestion de charge (TP4056 ou MAX17048G) assure la supervision de la charge et décharge, ainsi que la protection contre les surcharges. La capacité choisie garantit une autonomie suffisante pour une utilisation continue.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.9 Architecture logicielle</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le firmware est développé en C++ sous l'environnement Arduino IDE pour ESP32. L'architecture modulaire repose sur des fichiers header séparés pour chaque fonctionnalité :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">at lte.h : Gestion du modem SIM7670G (connexion réseau, envoi de données, lecture GPS)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">at wlan client.h : Gestion de la connexion Wi-Fi</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">at\_mqtt.h : Communication cloud via le protocole MQTT</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">at camh : Contrôle du module caméra</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">at MLX90614.h : Lecture du capteur de température</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">src/imu.h : Lecture et traitement des données du MPU-6050</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">src/display.h : Contrôle de l'écran OLED</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">src/flow.h : Machine à états principale (logique de détection et d'alerte)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">src/buttonDsk.h : Gestion des interruptions des boutons</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La boucle principale (loop()) s'exécute en continu et appelle la fonction flow() qui implémente la machine à états : surveillance → détection de choc → fenêtre d'annulation → envoi d'alerte → retour en veille.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3.10 Détail de la machine à états : </span><span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #188038; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">src/flow.h</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le fichier </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">src/flow.h</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> constitue le cœur logique du firmware. Il implémente la fonction </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">flowadnan()</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, appelée en boucle continue dans </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">loop()</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, qui gère l'ensemble des transitions entre les différents états du système via une machine à états finis.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les états définis (</span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">STATE</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) sont les suivants :</span>

- <span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">OPERATE</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - Mode surveillance normale : les valeurs des 6 axes (gyroX, gyroY, gyroZ, accelX, accelY, accelZ) sont lues en continu et affichées sur l'écran OLED. Si </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs(valeur) &gt; 4</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> sur l'un des axes, la variable </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">kaza </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(kaza signifie « accident » en turc) passe à </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> et le système bascule en </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">WAIT\_ACC</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span>
- <span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">WAIT\_ACC</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - Choc détecté automatiquement : un compte à rebours de </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10 secondes</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (</span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO.set(10)</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) est lancé. L'utilisateur peut annuler via le bouton CANCEL. Sans réaction, la fonction </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ACCIDENT()</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> est appelée et l'écran affiche </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"Sending Message"</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span>
- <span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">WAIT\_SOS</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - Déclenchement manuel via le bouton SOS : compte à rebours de </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1 seconde</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> avant envoi de l'alerte via la fonction </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SOS()</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span>
- <span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ACCIDENT</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> / </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SOS</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - Alerte envoyée : le système attend </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">300 secondes</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> avant de retourner en mode </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">OPERATE</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. L'utilisateur peut également annuler via CANCEL, ce qui déclenche la fonction </span><span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">NOPROBLEM()</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span>
- <span style="font-size: 11pt; font-family: 'Roboto Mono',monospace; color: #188038; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MENU</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - Menu de configuration du mode véhicule, avec timeout automatique de </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">15 secondes</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Trois modes sont disponibles : </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Car</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (voiture), </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Scooter</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, et </span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Kid</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> (enfant). Ce dernier mode illustre la polyvalence du dispositif, qui peut être adapté à des usages spécifiques avec des seuils de détection différents selon le type de véhicule.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Diagramme de transitions :</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">OPERATE</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ├─ choc détecté (kaza=true) ──► WAIT\_ACC ──► (10s sans annulation) ──► ACCIDENT</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ├─ bouton SOS pressé ──► WAIT\_SOS ──► (1s sans annulation) ──► SOS</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> └─ bouton MENU pressé ──► MENU ──► (sélection mode véhicule) ──► OPERATE</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">WAIT\_ACC / WAIT\_SOS</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> └─ bouton CANCEL ──► OPERATE (alerte annulée)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ACCIDENT / SOS</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ├─ timeout 300s ──► OPERATE</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> └─ bouton CANCEL ──► OPERATE + NOPROBLEM()</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MENU</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ├─ timeout 15s ──► OPERATE</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ├─ bouton CANCEL ──► OPERATE</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #14181f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> └─ bouton MENU (confirmer) ──► OPERATE (workMode mis à jour)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cette architecture garantit qu'aucune action humaine n'est requise pour déclencher l'alerte d'urgence : si l'utilisateur est inconscient après un choc, le système procède automatiquement à l'envoi du message au terme du compte à rebours. </span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le Code: </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #00979d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">void</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">flowadnan</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #00979d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">int</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> bts = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #00979d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">bool</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">false</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">buttonDsk</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> bts = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">checkBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> //if (bts==1) alert.accepted();</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> //if (bts==2) alert.refused();</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> //if (bts==3) alert.done();</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#define</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_SOS</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">checkBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#define</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_CANCEL</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">checkBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#define</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_MENU</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">checkBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> //display\_show();</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">LOGI</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"\\nFLOW ---- LOOP\\n"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state == STATE::OPERATE</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearDisplay</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setTextSize</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"State="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">println</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #00979d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">int</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">))</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">45</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"bts="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">println</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">bts</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">85</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">workMode == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"CAR"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">workMode == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"SCTOR"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">workMode == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"KID"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMU\_SENS</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #00979d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">int</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dumm = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroData</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroX</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"x="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMU\_SENS</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dumm = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroData</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroY</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">55</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">" Y="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMU\_SENS</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dumm = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroData</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gyroZ</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">80</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">" Z="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMU\_SENS</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dumm = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">accelData</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">accelX</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">20</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">" Ax="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMU\_SENS</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dumm = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">accelData</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">accelY</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">55</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">20</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">" Ay="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IMU\_SENS</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dumm = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">accelData</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">accelZ</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">abs</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> kaza = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">80</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">20</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">" Az="</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dumm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> bts = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">checkBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">kaza == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">true</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> zaman = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">millis</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">wait</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">set</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state == STATE::WAIT\_ACC;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_SOS</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> zaman = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">millis</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">wait</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">set</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state == STATE::WAIT\_SOS;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_MENU</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::MENU;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menuzaman = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">millis</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menusecim = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menusecimold = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state == STATE::WAIT\_ACC</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">())</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ACCIDENT</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearDisplay</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setTextSize</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"Sending"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">40</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"Message"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alarm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::ACCIDENT;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">set</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">300</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> // 300 second wait in alarm state</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_CANCEL</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stop</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state == STATE::WAIT\_SOS</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">())</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SOS</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearDisplay</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setTextSize</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"Sending"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">40</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"Message"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alarm</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::ACCIDENT;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">set</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">300</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> // 300 second wait in alarm state</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_CANCEL</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stop</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state == STATE::ACCIDENT || state == STATE::SOS</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stateTO</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">())</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stop</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_CANCEL</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">alert</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">stop</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">NOPROBLEM</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #95a5a6; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">else</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state == STATE::MENU</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">((</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">millis</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> - menuzaman</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">15000</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> bts = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">checkBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">menusecimold != menusecim</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">menusecim == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearDisplay</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setTextSize</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">60</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"MENU"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"-&gt;Car"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">20</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"--Scooter"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">30</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"--Kid"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menusecimold = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">menusecim == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearDisplay</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setTextSize</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">60</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"MENU"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"--Car"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">20</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"-&gt;Scooter"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">30</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"--Kid"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menusecimold = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">menusecim == </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#ifdef</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">DSP</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearDisplay</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setTextSize</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">60</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"MENU"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"--Car"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">20</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"--Scooter"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCursor</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">30</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">print</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">"-&gt;Kid"</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">\#endif</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menusecimold = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_SOS</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menusecim = menusecim + </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> menuzaman = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">millis</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">menusecim &gt; </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">menusecim = </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #005c5f; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_CANCEL</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #728e00; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">BTN\_MENU</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> workMode = menusecim;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state = STATE::OPERATE;</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> }</span>

<span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #d35400; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">clearBtnState</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #434f54; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span><span style="font-size: 9pt; font-family: 'Courier New',monospace; color: #4e5b61; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4. Gestion de projet</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4.1 Minimum Viable Product (MVP)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le concept de Minimum Viable Product (MVP) désigne la version la plus réduite du produit qui permet de valider les hypothèses fondamentales du projet et de tester la réponse des utilisateurs. Pour ResQ, le MVP a été défini comme suit :</span>

<div align="left" dir="ltr" id="bkmrk-d%C3%A9finition-du-mvp-re" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Définition du MVP ResQ</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un dispositif capable de :</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1. Détecter un impact violent via le MPU-6050 (accéléromètre + gyroscope)</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2. Déclencher une alerte visuelle (LEDs) et sonore (buzzer) pendant 10 secondes</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3. Si non annulée, envoyer un message d'urgence avec les coordonnées GPS via LTE</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4. Permettre l'annulation manuelle via un bouton physique</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5. Afficher l'état du système sur un écran OLED</span>

</td></tr></tbody></table>

</div><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ce MVP exclut délibérément les fonctionnalités secondaires complexes (connectivité satellite, transmission d'image, détection de passagers) pour se concentrer sur la validation du concept core : détection → alerte → transmission.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4.2 Planification du projet</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le projet a été développé en plusieurs phases successives, depuis la conception jusqu'au prototype final :</span>

<div align="left" dir="ltr" id="bkmrk-phase-description-et" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="200"></col><col width="402"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Phase</span>

</td><td style="vertical-align: top; background-color: #2e75b6; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Description et objectifs</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Phase 1 — Recherche &amp; Conception</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Analyse du problème, benchmark des solutions existantes, définition des spécifications techniques, sélection des composants. Durée : 3 semaines.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Phase 2 — Prototype fonctionnel</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assemblage du premier prototype sur breadboard, développement du firmware de base (lecture MPU-6050, affichage OLED), tests de détection de choc. Durée : 4 semaines.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Phase 3 — Intégration LTE/GPS</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Intégration du module SIM7670G, développement de la communication LTE, envoi des premières alertes avec coordonnées GPS. Durée : 3 semaines.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Phase 4 — Intégration complète</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ajout des LEDs NeoPixel, buzzer, module caméra, capteur MLX90614. Développement de la machine à états (flow.h). Tests d'intégration. Durée : 3 semaines.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Phase 5 — Boîtier &amp; Finalisation</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conception et impression 3D du boîtier, intégration sur PCB, tests en conditions réelles, rédaction de la documentation. Durée : 3 semaines.</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4.3 Répartition des tâches</span>

<div align="left" dir="ltr" id="bkmrk-membre-responsabilit" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="200"></col><col width="402"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Membre</span>

</td><td style="vertical-align: top; background-color: #2e75b6; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Responsabilités principales</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Defne Su KURTOĞLU — Product Manager</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Coordination du développement technique, spécifications fonctionnelles du firmware, intégration des composants, tests.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Toufic BATACHE — Chef de projet</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Coordination générale, suivi de planification, gestion des risques, rédaction de la documentation.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Can GENIS — CSO</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Stratégie technique, recherche sur les solutions de connectivité satellite, benchmark concurrentiel.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Yorgo EL HADDAD — CFO</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Suivi budgétaire des composants, analyse des coûts de production, modélisation financière.</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Meritxell ALLIÉ FÀBREGAS — CMO</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Design du boîtier, conception de l'interface utilisateur, identité visuelle du produit.</span>

</td></tr></tbody></table>

</div># <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5. Croquis et dimensions</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cette section présente les croquis conceptuels du dispositif ResQ et les dimensions clés retenues pour la conception du boîtier. Les visuels détaillés (photos, plans cotés) sont disponibles dans les diapositives de présentation accompagnant cette documentation.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5.1 Dimensions du boîtier</span>

<div align="left" dir="ltr" id="bkmrk-dimension-valeur-lon" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="200"></col><col width="402"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dimension</span>

</td><td style="vertical-align: top; background-color: #2e75b6; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Valeur</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Longueur</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~145 mm</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Largeur</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~65 mm</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hauteur</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~60 mm</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Matériau du boîtier</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Polycarbonate (PC) — résistant aux chocs et aux UV</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indice de protection visé</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IP67 (étanche à la poussière et à l'eau jusqu'à 1 m)</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Masse approximative</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~150 g (avec batterie)</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fixation</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Système de montage magnétique + visserie universelle</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5.2 Principes de design</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dès la conception, la priorité a été donnée à la compacité et à la discrétion. Le boîtier a été pensé pour s'intégrer harmonieusement dans n'importe quel habitacle ou cadre de vélo, sans encombrer l'espace de conduite.</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Face avant : écran OLED (1,83 pouces), grille de LEDs RGB 4×4, buzzer</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Face latérale gauche : bouton d'annulation (rouge, bien visible)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Face latérale droite : bouton multifonction / déclenchement manuel</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Face inférieure : connecteur USB-C pour la charge, antenne externe pour le LTE et le GPS</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Face arrière : interface de fixation (système magnétique ou vis)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le choix du polycarbonate (PC) pour le boîtier est motivé par ses propriétés mécaniques exceptionnelles : résistance aux chocs équivalente aux casques de moto, légèreté, stabilité thermique entre -40°C et +120°C, et bonne résistance aux UV pour un usage en extérieur prolongé.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Note : Les croquis cotés et les fichiers de conception 3D (format STL/STEP) sont présentés dans les diapositives de la section 7.</span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6. Liste du matériel</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le tableau suivant recense l'ensemble des composants utilisés dans le prototype ResQ, avec leurs références, coûts estimés unitaires et quantités. Les prix sont donnés à titre indicatif pour une production unitaire (prototype) — les coûts de série sont significativement inférieurs.</span>

<div align="left" dir="ltr" id="bkmrk-composant-r%C3%A9f%C3%A9rence-" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="233"></col><col width="200"></col><col width="102"></col><col width="67"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Composant</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Référence / Modèle</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Prix estimé</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Qté</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Microcontrôleur + LTE + GPS</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Waveshare ESP32-S3-SIM7670G-4G</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~49 $</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Capteur IMU (accéléro + gyro)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MPU-6050 (GY-521)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~2 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Capteur température IR</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MLX90614ESF</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~5 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Module caméra</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">OV2640 (2MP, interface DVP)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~1 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">LEDs RGB adressables</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">WS2812B NeoPixel 4×4 (16 LEDs)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~3 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Buzzer piézoélectrique</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Buzzer actif 5V</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~0,5 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Écran OLED</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SSD1306 0.96" I²C 128×64</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~4 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton d'annulation</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton poussoir momentané (rouge)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~0,5 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton menu</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton poussoir momentané (gris)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~0,5 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton multifonction</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bouton poussoir momentané (vert)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~0,5 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Batterie</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">18650 Li-ion 3,7V 6800 mAh</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~8 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gestion de charge batterie</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">TP4056 + MAX17048G (ou CN 3791)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~2 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Module satellite Swarm</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Swarm M138 (SpaceX)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~20 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Boîtier</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Polycarbonate PC (impression 3D)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~10 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Système de fixation</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Montage magnétique universel</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~5 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">PCB personnalisé</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fabrication Next PCB / Vision</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~15 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Câbles et connecteurs</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Divers (JST, dupont, USB-C)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~3 €</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Composants passifs</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Résistances, condensateurs, divers</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">~2 €</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6.1 Bibliothèques logicielles utilisées</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les bibliothèques suivantes ont été utilisées dans le développement du firmware :</span>

<div align="left" dir="ltr" id="bkmrk-composant-r%C3%A9f%C3%A9rence--1" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="233"></col><col width="200"></col><col width="102"></col><col width="67"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Composant</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Référence / Modèle</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Prix estimé</span>

</td><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Qté</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ArduinoJson</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">v7.3.1 — Benoît Blanchon</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gratuite (MIT)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Non-Blocking Melody</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">v1.0.4 — Divers</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gratuite</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Adafruit NeoPixel</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">v1.12.5 — Adafruit Industries</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gratuite (LGPL)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Adafruit BusIO</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">v1.17.0 — Adafruit Industries</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gratuite (MIT)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Adafruit GFX Library</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">v1.12.0 — Adafruit Industries</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gratuite (BSD)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">base64\_encode</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">v2.0.4 — Densaugeo</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gratuite (MIT)</span>

</td><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">—</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6.2 Coût total du prototype (unité)</span>

<div align="left" dir="ltr" id="bkmrk-r%C3%A9capitulatif-des-co" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Récapitulatif des coûts — Prototype unitaire</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Composants électroniques (hors module Swarm) : ~100 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Module satellite Swarm : ~20 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Boîtier polycarbonate (impression 3D) : ~10 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Système de fixation : ~5 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Assemblage et tests : ~3 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Emballage : ~2 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">──────────────────────────────────────────────────</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Total production série (objectif) : ~120 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Prix de vente conseillé (TTC) : 249,99 €</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Marge brute unitaire : ~44 %</span>

</td></tr></tbody></table>

</div># <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7. Fichiers de conception et étapes de création</span>

<div align="left" dir="ltr" id="bkmrk-note-conform%C3%A9ment-au" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Note</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conformément aux instructions du cours, les captures d'écran, fichiers de conception 3D (STL/STEP),</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">schémas électroniques (KiCad/Eagle) et extraits de code détaillés sont présentés dans les diapositives</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">de présentation accompagnant cette documentation. Cette section décrit les outils utilisés et les</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">principales étapes de création.</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.1 Conception du boîtier — CAO 3D</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le boîtier de ResQ a été conçu sous Fusion 360 (D'autodesk), un logiciel de CAO paramétrique accessible gratuitement pour les étudiants. Les étapes de conception ont été les suivantes :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Étape 1 — Modélisation des contraintes : mesure de tous les composants internes (PCB, batterie, écran, LEDs) pour définir les dimensions minimales du boîtier.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Étape 2 — Conception de la coque inférieure : modélisation de la base avec les supports de visserie pour le PCB, les passages pour les câbles et le connecteur USB-C.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Étape 3 — Conception du couvercle supérieur : intégration des ouvertures pour l'écran OLED, la grille de LEDs, le buzzer et les trois boutons.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Étape 4 — Système de fixation : conception d'une interface de montage compatible avec une fixation magnétique et une fixation par vis M3 pour différents types de supports.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Étape 5 — Impression 3D : fabrication du boîtier sur imprimante FDM (PLA dans un premier temps pour le prototype, polycarbonate prévu pour la version finale) avec des paramètres de remplissage à 30 % et une épaisseur de paroi de 2 mm.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.2 Conception du PCB</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le schéma électronique et le routage du PCB ont été réalisés sous KiCad (logiciel libre). La fabrication a été confiée à NextPCB (Shenzhen, Chine), partenaire sélectionné pour ses délais compétitifs et son interface de devis en ligne.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les principales étapes de conception du PCB :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Schéma électronique : définition de toutes les connexions entre l'ESP 32-S3, le MPU6050, le MLX90614, les LEDs, le buzzer, l'écran et les boutons.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Attribution des empreintes (footprints) : chaque composant a été associé à son empreinte physique dans la bibliothèque KiCad.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Routage des pistes : définition des largeurs de pistes (0,25 mm minimum pour les signaux, 0,8 mm pour les alimentations), respect des règles de design (DRC).</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Génération des fichiers Gerber : exportation des fichiers de fabrication (couches cuivre, masque de soudure, sérigraphie, perçages)</span>

<span id="bkmrk--75" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 444px; height: 378px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-alyierlx.jpeg)</span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 1 - Schéma électronique du dispositif ResQ (KiCad)</span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span id="bkmrk--77" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 260px; height: 464px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-jgjvmpqo.jpeg)</span></span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 2 - Routage du PCB ResQ (KiCad)</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">7.3 Structure du firmware</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le firmware est organisé en modules indépendants, chacun responsable d'une fonctionnalité spécifique. Le fichier principal (ResQ dsk copy.ino) initialise tous les modules dans setup() et appelle la fonction flow() dans loop() :</span>

<div align="left" dir="ltr" id="bkmrk-architecture-du-firm" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Architecture du firmware</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setup() — Initialisation séquentielle de tous les modules</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">loop() — Boucle principale appelant flow() en continu</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">flow() — Machine à états : IDLE → DETECTING → ALERTING → SENDING → IDLE</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">imu loop() — Lecture et traitement des données MPU-6050</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">display loop() — Mise à jour de l'affichage OLED</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">mqtt.loop() — Maintien de la connexion cloud MQTT</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">onMessageReceived() — Callback pour les messages MQTT entrants</span>

</td></tr></tbody></table>

</div># <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8. Analyse des tests</span>

<div align="left" dir="ltr" id="bkmrk-note-conform%C3%A9ment-au-1" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Note</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conformément aux instructions du cours, les photos et vidéos des tests, essais et erreurs sont</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">présentées dans les diapositives de présentation. Cette section décrit les principaux tests</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">effectués et les résultats observés.</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">8.1 Tests du prototype - Accéléromètre et gyroscope (MPU-6050)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les tests ont porté sur la vérification du bon fonctionnement du capteur MPU-6050, qui constitue le cœur de la détection d'accident. Le module combine un accéléromètre 3 axes et un gyroscope 3 axes, dont les valeurs sont lues en temps réel par l'ESP32-S3 et affichées en continu sur l'écran OLED du prototype (axes gyroX, gyroY, gyroZ et accelX, accelY, accelZ).</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span id="bkmrk--83" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 190px; height: 282px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-pjnu5bmj.png)</span></span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 3 - Prototype en mode veille : écran OLED affichant "ResQ"</span>

<span id="bkmrk--85" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 158px; height: 287px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-fs5andbg.png)</span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 4 - Prototype en mode alerte : LEDs RGB allumées en rouge, écran affichant "Sending message"</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Vérification du fonctionnement de l'accéléromètre et du gyroscope</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En position de repos, les six valeurs affichées sur l'écran se stabilisent autour de zéro, ce qui confirme la bonne initialisation et la calibration correcte du capteur. Lors de mouvements brusques appliqués manuellement au prototype (secousses, chocs sur la table, rotations rapides), les valeurs sur les axes concernés réagissent de façon immédiate et cohérente, validant la sensibilité et la réactivité du MPU-6050.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Seuil de détection et logique d'alerte</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dans le firmware du prototype, la détection d'un accident est déclenchée dès que la valeur absolue de l'un des six axes (gyroX, gyroY, gyroZ, accelX, accelY, accelZ) dépasse le seuil de 4 :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">if (abs(valeur) &gt; 4) → kaza = true (kaza signifie « accident » en turc)</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La condition est évaluée indépendamment sur chacun des six axes — un seul axe suffisant à déclencher l'alerte.</span>

<div align="left" dir="ltr" id="bkmrk-note-importante-sur-" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Note importante sur le calibrage du prototype</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les seuils de détection ont été volontairement fixés à des valeurs basses (seuil = 4) pour les besoins</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">du prototype, afin de pouvoir simuler un accident avec de simples chocs manuels sur le dispositif.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En conditions réelles, les accélérations générées par une collision automobile sont bien supérieures</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">à celles qu'il nous était possible de reproduire en laboratoire. Pour un produit commercial, ces seuils</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">devront être recalibrés à partir de données d'accidents réels, en utilisant des unités physiques</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">précises (g ou m/s²) plutôt que des valeurs brutes du capteur.</span>

</td></tr></tbody></table>

</div>### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Test de détection de choc et envoi du message d'urgence</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Une fois le bon fonctionnement des capteurs confirmé, des tests de détection ont été réalisés en appliquant des impacts physiques sur le prototype. Lorsqu'un choc dépassant le seuil est détecté sur au moins un axe :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le dispositif bascule immédiatement en état d'alerte — les LEDs RGB s'allument et le buzzer retentit.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Une fenêtre de 10 secondes s'ouvre pour permettre l'annulation manuelle.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En l'absence d'annulation, le message d'urgence (contenant les coordonnées GPS et un horodatage) est envoyé automatiquement via LTE.</span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9. Conception et impression 3D du boitier</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La conception et la fabrication du boîtier ont constitué une étape centrale du prototypage. Le boîtier doit protéger l'électronique, accueillir tous les composants, et offrir un accès ergonomique aux boutons, à l'écran et aux connecteurs.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9.1 Logiciel de tranchage : Prusa Slicer</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le fichier de conception CAO a été importé dans Prusa Slicer pour générer le code envoyé à l'imprimante Prusa MK4S.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9.2 Paramètres d'impression</span>

<div align="left" dir="ltr" id="bkmrk-param%C3%A8tre-valeur-imp" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="200"></col><col width="402"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #1a3a6e; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Paramètre</span>

</td><td style="vertical-align: top; background-color: #2e75b6; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #ffffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Valeur</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Imprimante</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Prusa MK4S</span>

</td></tr><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Matériau (filament)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">PLA</span>

</td></tr><tr style="height: 19.1240234375pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Epaisseur de couche</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0.15 mm</span>

</td></tr><tr style="height: 19.1240234375pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Taux de remplissage (infill)</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">15%</span>

</td></tr><tr style="height: 19.1240234375pt;"><td style="vertical-align: top; background-color: #f5f7fa; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Type de support</span>

</td><td style="vertical-align: top; background-color: #ffffff; padding: 4pt 6pt 4pt 6pt; overflow: hidden; overflow-wrap: break-word; border: solid #cccccc 0.5pt;"><span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Support organique et Snug pour tester</span>

</td></tr></tbody></table>

</div><span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span id="bkmrk--98" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 259px; height: 309px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-jxphsa2y.jpeg)</span></span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 5 - Impression 3D du boitier sur imprimante Prusa MK4S</span>

<div align="left" dir="ltr" id="bkmrk-pourquoi-le-support-" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pourquoi le support organique ?</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le support organique de Prusa Slicer génère des structures en forme d'arbre qui prennent appui</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">uniquement sur les zones nécessaires. Avantages : moins de matière utilisée, retrait plus facile</span>

<span style="font-size: 10pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">sans laisser de traces, meilleure qualité de surface sur les zones supportées.</span>

</td></tr></tbody></table>

</div>## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9.3 Evolution du boîtier - 3 versions</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Trois versions du boîtier ont été conçues et imprimées successivement. Chaque itération a permis de corriger les problèmes identifiés lors de l'assemblage de la version précédente.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Version 1 - Premier boitier</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le premier boîtier a été conçu à partir des dimensions théoriques des composants. Lors de l'assemblage, il s'est avéré trop petit pour accueillir l'ensemble des composants avec les câbles de connexion.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span id="bkmrk--103" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 268px; height: 320px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-yzlotvqi.jpeg)</span></span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 6 - Version 1 du boîtier (PLA noir)</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Version 2 - Boîtier agrandi (PLA rouge)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Contrairement à la première version réalisée de manière amateur, cette itération s'est concentrée sur une méthodologie rigoureuse. Grâce à un accompagnement technique ponctuel du Fablab de Dassault Systèmes, nous avons pu clarifier les étapes de conception nécessaires avant de passer à la modélisation 3D.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les modifications majeures apportées sont les suivantes :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Optimisation de l'espace interne</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Création d'une zone libre plus spacieuse pour permettre aux câbles de se loger librement sans contrainte mécanique.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Interface utilisateur</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Intégration de découpes hexagonales pour les boutons afin d'assurer une meilleure compatibilité ergonomique et esthétique.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Positionnement du buzzer</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Réajustement des dimensions pour un placement optimal et une meilleure diffusion sonore.</span>

  
  
<span id="bkmrk--106" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 337px; height: 326px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-90had4rq.jpeg)</span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 7 - Version 2 du boîtier (PLA rouge) avec les composants électroniques</span>

<div align="left" dir="ltr" id="bkmrk-problemes-identifi%C3%A9e" style="margin-left: 0pt;"><table style="border: none; border-collapse: collapse;"><colgroup><col width="602"></col></colgroup><tbody><tr style="height: 0pt;"><td style="vertical-align: top; background-color: #d6e4f0; padding: 6pt 10pt 6pt 10pt; overflow: hidden; overflow-wrap: break-word;"><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Problemes identifiées - Version 2</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Esthétique du panneau LED</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Malgré l'agrandissement, l'intégration visuelle de la grille LED RGB reste peu satisfaisante et manque de fluidité dans le design.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tolérances dimensionnelles</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Les dimensions des ouvertures hexagonales pour les boutons se sont révélées plus larges que prévu après l'impression, nécessitant un recalibrage des tolérances.</span>

</td></tr></tbody></table>

</div>### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Version 3 - Boitier final (en cours d'impression)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La version 3 constitue l'aboutissement du processus itératif, intégrant les corrections des versions précédentes pour un prototype fonctionnel complet.</span>

<span id="bkmrk--110" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 328px; height: 281px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-jhc9db5m.jpeg)</span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 8 - Version 3 du boîtier (PLA gris)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les améliorations clés incluent :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Design asymétrique et diagonal</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Introduction d'une ouverture diagonale sur la partie supérieure du boîtier. Cette modification permet une visibilité directe et optimale du panneau LED d'alerte tout en offrant un aspect plus technologique.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">  
      
    </span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Correction des ouvertures</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Réajustement précis du diamètre des découpes hexagonales et circulaires pour correspondre parfaitement aux composants réels.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">  
      
    </span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finalisation de la façade</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Préparation du design pour une couverture en PMMA transparent, validant l'alignement final entre l'électronique et la coque.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">9.4 Leçons apprises</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ce processus itératif, passant de la version 1 à la version 3, nous a permis de tirer des conclusions fondamentales pour le prototypage rapide d'un dispositif électronique embarqué :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gestion de l'encombrement réel</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Nous avons appris que les dimensions théoriques des composants ne suffisent pas à définir le volume interne du boîtier. Il est impératif de prendre en compte le volume occupé par le câblage, les connecteurs et les marges de manœuvre nécessaires à l'assemblage manuel.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">  
      
    </span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Importance des tolérances d'impression</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : La version 2 nous a montré que les diamètres des découpes (notamment hexagonales) doivent inclure une marge de tolérance (offset) pour compenser la rétraction du plastique ou l'imprécision de l'imprimante 3D.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">  
      
    </span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Optimisation de l'angle de vue</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : L'ajout de la découpe diagonale en version 3 a démontré que le design industriel ne doit pas être seulement protecteur, mais doit activement servir l'interface utilisateur (UI) en facilitant la lecture des signaux d'alerte (LED et OLED).</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">  
      
    </span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Anticipation de la fabrication multi-matériaux</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : Le passage d'un boîtier entièrement fermé à un système avec une couverture transparente en PMMA (découpe laser) nous a appris à gérer les interfaces entre deux méthodes de fabrication différentes (impression 3D et laser) pour obtenir un produit fini professionnel.</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">  
      
    </span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Méthodologie de conception (CAD)</span><span style="font-size: 11pt; font-family: Arial,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> : L'utilisation de la conception paramétrique sous Fusion 360 s'est avérée indispensable pour ajuster rapidement les dimensions globales sans avoir à reconstruire l'intégralité du modèle à chaque itération.</span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">10. Conception et découpe laser d’une couverture pour le boitier</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En parallèle de la conception du boîtier imprimé en 3D, nous avons exploré la possibilité de fabriquer une couverture transparente par découpe laser. Cette approche permet d’obtenir une couverture solide mais non opaque, à travers laquelle il est possible de voir le contenu du dispositif, en particulier l’écran et les LEDs, tout en apportant au produit une esthétique plus technologique et avancée.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Une première version de la façade a été conçue en parallèle de la version 2 du boîtier, qui ne comportait pas encore d’inclinaison sur sa partie supérieure. La couverture pouvait donc être réalisée sous forme d’une seule pièce plane. Afin de valider rapidement les dimensions et le positionnement des éléments, cette version a été prototypée en bois MDF 6mm par découpe laser.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cette première façade comprenait deux ouvertures hexagonales pour les boutons, correspondant à la configuration du boîtier V2 et le logo ResQ était gravé sur la surface afin de tester le rendu visuel de la gravure. Ce prototype rapide nous a permis de vérifier l’alignement des ouvertures et les proportions générales avant d’itérer sur le design.</span>

<span id="bkmrk--90" style="font-weight: normal;"><span style="font-size: 11pt; font-family: Arial, sans-serif; color: rgb(26, 26, 46); background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; white-space-collapse: preserve;"><span style="border-width: initial; border-style: none; display: inline-block; overflow: hidden; width: 269px; height: 371px;">![](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/embedded-image-mp74ex6w.png)</span></span></span>

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 9 - Prototype de couverture de la version 2 du boîtier (bois MDF 6mm)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Suite à cette première itération, la version 3 du boîtier a introduit une inclinaison sur la partie supérieure, ce qui ne permettait plus d’utiliser une seule plaque plane. La façade a donc été redessinée en deux pièces distinctes, chacune correspondant à une surface du boîtier. Comme précédemment, cette version a également été prototypée en bois MDF 6mm afin de valider la géométrie et l’ajustement des pièces avant la fabrication finale dans le matériau définitif.</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dans un premier temps, seule une des deux pièces de la façade a été réalisée pour ce test. Cette pièce ne constituait pas encore une version finale du prototype : elle comprenait uniquement les découpes principales (cutouts) nécessaires pour vérifier les dimensions et le positionnement des éléments. Les détails de finition, tels que le logo gravé, les rayons d’arrondi des coins ou les ajustements esthétiques, n’ont pas été intégrés à ce stade. L’objectif était simplement de valider rapidement les dimensions et l’alignement des ouvertures avant de produire une version complète.</span>

[![Screenshot 2026-04-30 at 10.53.20.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/screenshot-2026-04-30-at-10-53-20.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/screenshot-2026-04-30-at-10-53-20.png)

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 10 - Prototype de couverture en une seule pièce, pour version 3 du boitier (bois MDF 6mm)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dans un second temps, les deux pièces de la façade ont été réalisées correctement, en intégrant cette fois l’ensemble des éléments de la version finale. Cette nouvelle configuration comprend une seule ouverture pour le bouton situé sur la façade, ainsi que deux ouvertures circulaires destinées à la caméra et au microphone. Le logo ResQ a également été gravé, comme prévu dans le design final.</span>

[![Screenshot 2026-04-30 at 10.53.35.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/screenshot-2026-04-30-at-10-53-35.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/screenshot-2026-04-30-at-10-53-35.png)

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 11 - Prototype de couvertures de la version 3 du boîtier (bois MDF 6mm)</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Après validation du design, la version finale a été découpée au laser dans du PMMA extrudé transparent 3mm. Ce matériau a été choisi pour sa rigidité, sa transparence et la qualité de finition obtenue lors de la découpe laser. Cette couverture permet de voir les éléments internes du dispositif, notamment l’écran et les LEDs, tout en protégeant l’électronique. La pièce finale comprend les ouvertures précises pour le bouton, la caméra et le microphone, ainsi que le logo ResQ gravé, donnant au prototype un aspect plus propre et plus professionnel.</span>

[![Screenshot 2026-04-30 at 10.53.51.png](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/scaled-1680-/screenshot-2026-04-30-at-10-53-51.png)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2026-04/screenshot-2026-04-30-at-10-53-51.png)

<span style="font-size: 9pt; font-family: Arial,sans-serif; color: #666666; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figure 12 - Version finale de couvertures de la version 3 du boîtier (PMMA extrudé 6mm)</span>


# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">11. Réflexions sur les pistes d'amélioration et d'évolution</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">11.1 Améliorations techniques du prototype actuel</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">L'analyse des tests et du développement du prototype a mis en évidence plusieurs axes d'amélioration prioritaires :</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Amélioration de l'algorithme de détection d'accident</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">L'algorithme actuel repose sur un simple seuil des valeurs brutes de l'accéléromètre. Des approches plus sophistiquées seraient bénéfiques :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Fusion de capteurs (sensor fusion) : combiner les données de l'accéléromètre, du gyroscope et potentiellement d'un baromètre pour différencier plus précisément les types d'événements (chute, collision frontale, tonneau).</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Apprentissage automatique : l'ESP32-S3 dispose d'un accélérateur neuronal qui permettrait d'implémenter un modèle ML léger (TinyxML) entraîné sur des données d'accidents réels, réduisant ainsi les faux positifs.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Analyse temporelle : la détection ne doit pas se baser uniquement sur un instant, mais sur une séquence de valeurs pour distinguer un impact réel d'une vibration passagère.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Intégration de la transmission d'image via satellite</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La version actuelle peut transmettre une image via Wi-Fi/MQTT, mais pas encore via le module satellite Swarm (contrainte de taille des messages — Swarm est optimisé pour les petits paquets IoT). Des solutions envisagées :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Compression d'image agressive (JPEG basse résolution, ~20 Ko) pour réduire la taille en dessous du seuil Swarm.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Envoi différé : si LTE n'est pas disponible au moment de l'accident, mettre l'image en file d'attente et l'envoyer dès la reconnexion.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Optimisation de la consommation énergétique</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Pour les utilisateurs de vélos ou de scooters qui ne peuvent pas recharger le dispositif depuis le véhicule :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Implémentation des modes deep sleep de l'ESP 32-S3 entre les cycles de mesure.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Réveil sur interruption du MPU-6050 (motion interrupt) pour minimiser la consommation en veille.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Intégration d'un panneau solaire de petite taille (comme mentionné dans les spécifications initiales) pour l'autonomie en plein air.</span>

### <span style="font-size: 12pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Miniaturisation et robustesse mécanique</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Le prototype actuel reste volumineux. Pour la version commerciale :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conception d'un PCB personnalisé avec composants CMS (montage en surface) réduisant la taille de 60 à 70 %.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Certification IP67 réelle avec un boîtier étanche surmoulé.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tests de résistance aux vibrations selon les normes IEC 60068-2-6 pour valider la fiabilité en conditions d'utilisation prolongée.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">11.2 Évolutions fonctionnelles à moyen terme</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Application mobile complète : Le développement de l'application ResQ (iOS et Android) est prévu pour la phase suivante. Elle permet la configuration des contacts d'urgence, l'historique des alertes, les mises à jour OTA (Over The Air) et l'intégration de contenus éducatifs.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Intégration microphone : L'ajout d'un microphone MEMS permettrait une communication vocale bidirectionnelle avec les secours après le déclenchement d'une alerte, augmentant considérablement la valeur ajoutée pour les victimes conscientes mais immobilisées.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Détection du nombre de passagers : L'amélioration du traitement d'image (intégration d'un modèle de détection de personnes TinyxML) permettrait d'estimer le nombre d'occupants du véhicule, information précieuse pour les secours.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Partenariats B2B : L'intégration de ResQ dans les flottes de livraison (Uber Eats, Deliveroo, Stuart) représente une opportunité commerciale majeure, avec des volumes d'unités importants et une installation systématique sur tous les véhicules de la flotte.</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">11.3 Vision à long terme : du produit à la licence technologique</span>

<span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La feuille de route ResQ prévoit une évolution stratégique en 7 ans :</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Années N+2 : Partenariats avec des constructeurs automobiles (Peugeot, Citroën) pour la validation du produit en conditions industrielles.</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Années N+3 : Expansion européenne via le réseau de distribution ET Group (présent dans 25+ pays).</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Années N+5 : Entrée sur les marchés internationaux (Asie, Moyen-Orient, Amérique latine).</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Année N+7 : Transition vers un modèle de licence technologique — intégration de la technologie ResQ directement dans les véhicules à la fabrication, à l'image du GPS ou du Bluetooth aujourd'hui. Cette étape nécessite le dépôt d'un brevet sur l'algorithme de détection et le protocole de communication.</span>

# <span style="font-size: 18pt; font-family: Arial,sans-serif; color: #1a3a6e; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12. Sources, tutoriels et ressources utilisées</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12.1 Sources statistiques et problématique</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Organisation Mondiale de la Santé (OMS) — Rapport mondial sur la prévention des traumatismes dus aux accidents de la route : https://www.who.int/publications/i/item/9241562609</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Recherche sur les capteurs de choc et placement : https://www.researchgate.net/publication/286112060\_Preference\_and\_placement\_of\_vehicle\_crash\_sensors</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Statistiques des accidents de la route en France 2022 : https://www.lindependant.fr/2023/02/01/accidents-de-la-circulation-en-france-3541-morts-surles-routes-en-2022-plus-de-victimes-chez-les-hommes-et-les-cyclistes-10966912.php</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Statistiques du parc automobile français 2024 : https://www.statistiques.developpement-durable.gouv.fr/393-millions-de-voitures-en-circulation-en-france-au-1er-janvier2024</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12.2 Composants et datasheets techniques</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ESP32-S3-SIM7670G-4G (Waveshare) : https://www.waveshare.com/esp32-s3-sim7670g-4g.htm</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MPU-6050 datasheet (InvenSense/TDK) : https://invensense.tdk.com/products/motion-tracking/6-axis/mpu-6050/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MLX90614 datasheet (Melexis) : https://www.melexis.com/en/product/MLX90614/Digital-Plug-Play-Infrared-Thermometer-TO-Can</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SIM7670G AT Commands manual (SIMCOM) : https://www.simcom.com/product/SIM7670G.html</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">OV2640 datasheet (OmniVision) : https://www.uctronics.com/download/cam\_module/OV2640DS.pdf</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">18650 Li-ion battery specifications : https://www.18650batterystore.com/blogs/18650-battery-store-blog/what-is-an-18650-battery</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12.3 Bibliothèques et ressources de développement</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bibliothèque ArduinoJson (Benoît Blanchon) : https://arduinojson.org/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bibliothèque Adafruit NeoPixel : https://github.com/adafruit/Adafruit\_NeoPixel</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bibliothèque Adafruit GFX : https://github.com/adafruit/Adafruit-GFX-Library</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Documentation ESP32-S3 (Espressif) : https://docs.espressif.com/projects/esp-idf/en/latest/esp32s3/index.html</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tutoriel MPU-6050 avec ESP32 : https://randomnerdtutorials.com/esp32-mpu-6050-accelerometer-gyroscope-arduino/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Documentation MQTT (Eclipse Mosquitto) : https://mosquitto.org/documentation/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Protocole Swarm Technologies (SpaceX) : https://swarm.space/</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12.4 Sources de certification et réglementation</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CE Marking — Coûts et procédures : https://cemarking.net/what-are-the-costs-of-ce-certification/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">CE Marking — Commission européenne : https://europa.eu/youreurope/business/product-requirements/labels-markings/ce-marking/index\_en.htm</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Homologation UTAC (France) : https://www.utac.com/your-needs/type-approval/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">RED — Radio Equipment Directive (TÜV SÜD) : https://www.tuvsud.com/en/services/product-certification/radio-equipment-directive</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">RoHS Compliance testing : https://www.jjrlab.com/news/how-much-does-a-rohs-testing-report-cost.html</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IP Rating — Intertek : https://www.intertek.com/lighting/performance/ingress-protection/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">EMC/EMI Testing — Eurofins : https://www.eurofins.com/electrical-and-electronics/services/testing/electromagnetic-compatibility-emc/</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12.5 Outils de conception</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">KiCad (schéma électronique et PCB) : https://www.kicad.org/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Autodesk Fusion 360 (CAO 3D boîtier) : https://www.autodesk.com/products/fusion-360/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Arduino IDE (développement firmware) : https://www.arduino.cc/en/software</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">NextPCB (fabrication PCB) : https://www.nextpcb.com/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Viasion Technology (assemblage PCB) : https://viasion.com/</span>

## <span style="font-size: 13.999999999999998pt; font-family: Arial,sans-serif; color: #2e75b6; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">12.6 Ressources compétitives</span>

- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Système eCall européen : https://www.eecallrecast.eu/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Apple Watch — Emergency SOS via satellite : https://support.apple.com/en-us/111843</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">MET Helmet smart helmets : https://www.met-helmets.com/</span>
- <span style="font-size: 11pt; font-family: Arial,sans-serif; color: #1a1a2e; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">B01 sensor (Beltee) : https://www.beltee.com/</span>

<span style="font-weight: normal;">  
  
</span>