# Présentation du projet

[![cartoon-ai-robot-scene.jpg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/scaled-1680-/cartoon-ai-robot-scene.jpg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/cartoon-ai-robot-scene.jpg)

Et oui, on y est, l'ère où les robots remplacent les hommes. Les médiateurs du Fablab n'y coupent pas. Une petite télévision, venue tout droit de l'espace, débarque au Fablab et entend bien faire régner l'ordre. De l'espace ? L'allure de cosmonaute qu'elle affiche ne dupe personne et son look rétro a bien vite fait de nous renseigner sur sa véritable identité : ce n'est qu'un vieux téléviseur des années 70. Du moins, en apparence...

##### Objectif du projet : 

L'objectif du projet est de réaliser un petit robot pour l'accueil des visiteurs du Fablab.

Il assurerait différentes fonctions :

- Animation du FabLab
- Information des visiteurs
- Appel des Médiateurs

##### Cahier des charges : 

<table border="1" id="bkmrk-fonctions-d%C3%A9tecter-l" style="border-collapse: collapse; width: 100%; height: 630.49px;"><colgroup><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col><col style="width: 24.9383%;"></col></colgroup><tbody><tr style="height: 29.4583px;"><td style="height: 29.4583px;">Fonctions  
</td><td style="height: 29.4583px;">  
</td><td style="height: 29.4583px;">  
</td><td style="height: 29.4583px;">  
</td></tr><tr style="height: 46.2604px;"><td style="height: 46.2604px;">FP1</td><td style="height: 46.2604px;">Détecter l'arrivée de nouveaux visiteurs</td><td style="height: 46.2604px;">Reconnaissance faciale/forme humaine  
</td><td style="height: 46.2604px;">  
</td></tr><tr style="height: 96.625px;"><td style="height: 96.625px;">FP2</td><td style="height: 96.625px;">Interagir oralement avec un utilisateur sur la base de questions fermées =&gt; demander de répondre par oui ou non !  
</td><td style="height: 96.625px;">Reconnaissance vocale/micro</td><td style="height: 96.625px;">Oui/Non

Yes/No

</td></tr><tr style="height: 63.0417px;"><td style="height: 63.0417px;">FP3</td><td style="height: 63.0417px;">Effectuer des mouvements de rotation autour de sa base ( tête indépendante )  
</td><td style="height: 63.0417px;">Motorisation de la base  
</td><td style="height: 63.0417px;">Axe Z : 360°

</td></tr><tr style="height: 79.8542px;"><td style="height: 79.8542px;">FP4</td><td style="height: 79.8542px;">Avoir différents modes de fonctionnement   
</td><td style="height: 79.8542px;">Logiciel</td><td style="height: 79.8542px;">Actif

Pause

Gentil/méchant

</td></tr><tr style="height: 79.8333px;"><td style="height: 79.8333px;">FP5</td><td style="height: 79.8333px;">Emettre un signal sonore caractéristique audible dans tout le FabLab pour prévenir les médiateurs </td><td style="height: 79.8333px;">Système de haut-parleur</td><td style="height: 79.8333px;">Combien de DB ? </td></tr><tr style="height: 102.25px;"><td style="height: 102.25px;">FC1</td><td style="height: 102.25px;">Tenir sur le comptoir à l'accueil du FabLab</td><td style="height: 102.25px;">Dimensionnement</td><td style="height: 102.25px;">Longueur : 30 cm

Largueur : 30 cm

Hauteur : 50 cm

Taille de la télé ( 20x20x35)

</td></tr><tr><td>FC2</td><td>Être nomade, facilement déplaçable et transportable </td><td>Dimensionnement, </td><td></td></tr><tr style="height: 63.0417px;"><td style="height: 63.0417px;">FC3</td><td style="height: 63.0417px;">Être alimentée électriquement</td><td style="height: 63.0417px;">Branchement secteur ou batterie rechargeable ou charge induction</td><td style="height: 63.0417px;">Volt, Ampère ?

</td></tr><tr><td>FC4</td><td>Ne pas être trop énergivore</td><td>Consommation électrique/flux de données et Optimisation</td><td></td></tr><tr style="height: 35.0625px;"><td style="height: 35.0625px;">FC5</td><td style="height: 35.0625px;">Pouvoir être mis à jour et fonctionner de façon autonome</td><td style="height: 35.0625px;">Connecteur USB / Logiciel </td><td style="height: 35.0625px;"></td></tr></tbody></table>

Une idée : servir de moniteur "design" = mode de fonctionnement

En mode moniteur : un mode veille = il ferme les yeux et dors, ouvre parfois un œil, baille ... : si mouvement de souris détecté, sortie du mode veille.

Oui mais l'idée n'est pas vraiment de créer un Périphérique. C'est plutôt de créer un **système embarqué** AUTONOME qui pourra être facilement déployé dans les quatre coins du Fablab pour pouvoir servir, par exemple, de bornes d'information pour les utilisateurs.

Alors dans ce cas =&gt;affichage de l'écran stream ? Trop énergivore ...

Ou bien ! =&gt; modem ?

Modem-routeur : wifi ?

Mode robot activé

Si bornes d'information : connexion à un serveur et envoie de requêtes

=&gt; Base de données / ChatBot

##### Prototype 0

Scénario :

Les médiateurs Fablab ne sont pas présents à l’accueil, le mode "Actif" est activé.

Un visiteur entre au FabLab.

Le Robot :

-Bonjour, bienvenu(e) au FabLab, êtes-vous enregistré(e) ?

-Oui/Non

Si oui : demandera dans une version ultérieure si l'utilisateur a besoin d'information.

Si non : siffle pour appeler un médiateur FabLab

Comment mettre à jour un système embarqué

##### Plan d'action : 

- Définir le besoin du client et construire un cahier des charges.
- Valider le cahier des charges.
- Effectuer une recherche biblio, solution open source
- Déterminer le type de caméra à utiliser ( module intel kinect module 2 caméra : prétraitement du signal ? )
- Identifier les différentes composantes du système et leurs fonctions.
- Prévoir un dispositif de mises à jour du logiciel embarqué
- Demander des idées =&gt; faire une affiche !! ( QR code, questionnaire ) : recruter des talents

Matériel et pré-requis :

\- Hardware/Software ?

\- optimisation =&gt; Justification des choix !!!

\- **Python** ou C++ ?

langage assembleur ?

\- écran LCD couleur pour visage

\- motorisation : Arduino/raspberry ( latence ? )

\- intégration du wifi ? communication via le réseau ?

\- écran tactile =&gt; configuration/personnalité

\- système de chargement batterie ? secteur ?

\- système embarqué : raspberry pi

\- Le design : celui de la télé mais pas la télé !!!

GNU/linux ou Raspberry Pi OS ( ex-raspbian )

##### Inventaire et estimation des coûts

<table border="1" id="bkmrk-mat%C3%A9riel-fonction-di" style="border-collapse: collapse; width: 100%; height: 275.125px;"><colgroup><col style="width: 22.8734%;"></col><col style="width: 28.8081%;"></col><col style="width: 14.9604%;"></col><col style="width: 16.6914%;"></col><col style="width: 16.6914%;"></col></colgroup><tbody><tr style="height: 30.0417px;"><td style="height: 30.0417px;">Matériel  
</td><td style="height: 30.0417px;">Fonction  
</td><td style="height: 30.0417px;">Disponibilité  
</td><td style="height: 30.0417px;">Coût  
</td><td style="height: 30.0417px;">Autres infos  
</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">Arduino UNO  
</td><td style="height: 46.25px;">Motorisation  
</td><td style="height: 46.25px;">OUI? - Magasin Fablab  
</td><td style="height: 46.25px;">/  
</td><td style="height: 46.25px;">Rupture de stock ?  
</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">Raspberry Pi (Linux?)  
</td><td style="height: 46.25px;">Système embarqué  
</td><td style="height: 46.25px;">OUI  
</td><td style="height: 46.25px;">/</td><td style="height: 46.25px;">Quel modèle pour notre utilisation ?

Raspberry Pi 4 modèle B ?

</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">Caméra Module 2 8MP  
</td><td style="height: 46.25px;">Reconnaissance facial  
</td><td style="height: 46.25px;">OUI - Magasin Fablab  
</td><td style="height: 46.25px;">/  
</td><td style="height: 46.25px;">Fonctionne avec Raspberry Pi   
</td></tr><tr style="height: 30.0417px;"><td style="height: 30.0417px;">Écran LCD Couleur Tactile  
</td><td style="height: 30.0417px;">Visage, configuration/personnalité  
</td><td style="height: 30.0417px;">NON</td><td style="height: 30.0417px;">  
</td><td style="height: 30.0417px;">  
</td></tr><tr style="height: 46.25px;"><td style="height: 46.25px;">Moteur Pas à Pas</td><td style="height: 46.25px;">Motorisation</td><td style="height: 46.25px;">OUI</td><td style="height: 46.25px;">/</td><td style="height: 46.25px;">Fonctionne avec Arduino</td></tr><tr style="height: 30.0417px;"><td style="height: 30.0417px;">Batterie</td><td style="height: 30.0417px;">Energie électrique</td><td style="height: 30.0417px;">  
</td><td style="height: 30.0417px;"> </td><td style="height: 30.0417px;">  
</td></tr></tbody></table>

##### Budget prévisionnel 

##### Schéma de fonctionnement

[![IMG_0002.jpeg](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/scaled-1680-/img-0002.jpeg)](https://wiki.fablab.sorbonne-universite.fr/BookStack/uploads/images/gallery/2025-01/img-0002.jpeg)

Important ! Système de ventilation =&gt; éviter la surchauffe

-&gt; raspberry !

##### Le DESIGN :

Inspiration

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

Soit le design de la Télé mais comment faire ?

Soit, inventer un design : demander des idées

-&gt; Faire ce qui est possible au fabLab et qui rentre dans le budget

-&gt; Inclure tous les systèmes à l'intérieur

Schématiser les différents design et les assembler comme un puzzle

Possibilité de cacher des systèmes dans la base : attention aux dimensions !

Pour la base de données :

- conserver les questions posées sans réponse pour les ajouter à la base de données

est-ce que j'ai répondu à vos atteintes ? Non -&gt; appel des médiateurs

Carnet de bord :

- 04/12/2024 : Définition des objectifs et des limites du projet. Première ébauche du cahier des charges
- 18/12/2024 : Etude bibliographique
- 06/01/2025 : Etude bibliographique, inventaire du matériel nécessaire et disponible, diagramme.
- 08/01/2025 : Finalisation du cahier des charges.
- 13/01/2025 : Répartition des tâches et budgétisation.

Vers l'infini et au-delà

- afficher les utilisateurs dont le wiki n'est pas à jour
- Un système de badges des cartes étudiantes ? =&gt; problème concernant la confidentialité des données
- full système de communication ( GPT )
- serveur déporté/renvoie de requête
- système LoRaWAN ( antenne radio ) =&gt; biper les emplois étudiants ! Si un robot n'a pas réussi à répondre à la demande de l'utilisateur ( composante RF radiofréquence )

Spécificité plus techniques liées à l'optimisation :

\- temps d'exécution des tâches

Choix d'un nom ?

- Le FabBOT

Comments Alex:

Il faudrait commencer à réaliser des essais et tenter d'avoir un *Minimum Viable Product* afin d'avoir une 'base' sur laquelle itérée (il y aura d'autres problématiques que nous allons découvrir). Commencer avec quelque chose de très basique et ensuite itérer et améliorer, pas essayer d'avoir le produit final parfait au premier coup. Laisser l'esthétique et optimisation pour la fin, pas pour le début;

Il serait intéressant de commencer par exemple par tester **YOLO**, qui peut être utilisé localement (Python) et qui est utile pour la détection visuelle.

Ensuite il est possible d'interfacer avec une carte ESP32 via le port *serial* et on pourrait connecter des moteurs à une caméra et faire du *tracking* en temps réel. Cela peut être intéressant également pour la partie de reconnaissance vocal (on peut directionner le micro par exemple...).

L'ESP32 peut créer voir se connecter à un réseau wifi, donc pas besoin de LoRA. Les ESP-XIAO sont très petit, peut coûteux et peuvent être un choix sensé.

-&gt; les ESP peuvent être des clients dans le serveur et recevoir les fameux *pings* quand quelqu'un est à *l’accueil* par exemple.

Ensuite le code Python peut interfacer, une fois il détecte quelqu'un, avec un modèle entraîné pour la partie de reco. vocal, et l'activer...

<table border="1" id="bkmrk-une-fois-ceci-r%C3%A9alis" style="border-collapse: collapse; width: 100%; border-width: 3px;"><colgroup><col style="width: 99.8765%;"></col></colgroup><tbody><tr><td style="border-width: 3px;">Une fois ceci réalisé, il serait désormais, et pas avant (à mon avis), une bonne idée de s'interroger sur la partie esthétique du projet/ produit final...</td></tr></tbody></table>

Premier essais:

tracking avec YOLO et sortie avec serial connecté à un arduino uno.

code: https://github.com/alexcrrera/fablabBot/blob/main/fabu.py

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

Le centre relatif de la détéction (le point rouge) est envoyé à l'arduino pour centrer la caméra. Il faudrait trouver une webcam et faire un support avec les servomoteurs du fablab (ceux qui sont labellés "servo ++", les "bleus" ne sont pas du tout suffisament puissant.

##### Bibliographie 

Notion : informatique, électronique, système embarqué, système interactif, PSoC

**Système de motorisation**

**[https://arduino-france.site/moteur-pas-a-pas/](https://arduino-france.site/moteur-pas-a-pas/)**

**[https://www.aranacorp.com/fr/pilotez-un-moteur-cc-avec-arduino/amp/](https://www.aranacorp.com/fr/pilotez-un-moteur-cc-avec-arduino/amp/)**

**Système embarqué**

**[https://perso.univ-lyon1.fr/jean-patrick.gelas/doc/sle/embarque-support\_de\_cours-2020-a-distance.pdf](https://perso.univ-lyon1.fr/jean-patrick.gelas/doc/sle/embarque-support_de_cours-2020-a-distance.pdf)**

[https://test-logiciel.fr/article/logiciel-embarque-definition-exemples-avantages-et-inconvenients/](https://test-logiciel.fr/article/logiciel-embarque-definition-exemples-avantages-et-inconvenients/)

[https://fr.wikipedia.org/wiki/Modem](https://fr.wikipedia.org/wiki/Modem)

**[https://f2school.com/wp-content/uploads/2020/03/Syst%C3%A8mes-embarqu%C3%A9s-cours-01.pdf](https://f2school.com/wp-content/uploads/2020/03/Syst%C3%A8mes-embarqu%C3%A9s-cours-01.pdf)**

**[https://www.mcours.net/cours/pdf/leilclic3/leilclic667.pdf](https://www.mcours.net/cours/pdf/leilclic3/leilclic667.pdf)**

**[https://objets.ccdmd.qc.ca/manuel/1-5-presentation-darduino-et-de-son-environnement-de-developpement/](https://objets.ccdmd.qc.ca/manuel/1-5-presentation-darduino-et-de-son-environnement-de-developpement/)**

[Les Fondamentaux des Systèmes Embarqués : Un Guide pour les Débutants](https://www.parlezvoustech.com/systemes-embarques-guide-debutants/ "https://www.parlezvoustech.com/systemes-embarques-guide-debutants/")

[Différence entre Arduino et Raspberry pi](https://arduinofactory.fr/difference-entre-arduino-et-raspberry-pi/ "https://arduinofactory.fr/difference-entre-arduino-et-raspberry-pi/")

[Cours Systèmes Embarqués : Introduction](https://www.technologuepro.com/cours-systemes-embarques/cours-systemes-embarques-introduction.htm "https://www.technologuepro.com/cours-systemes-embarques/cours-systemes-embarques-introduction.htm")

ROS - Robot Operatin System

[ROS tutorial ](https://www.youtube.com/watch?v=ehtUb55Rmmg&list=PLk51HrKSBQ8-jTgD0qgRp1vmQeVSJ5SQC&index=1&ab_channel=ShawnC "https://www.youtube.com/watch?v=ehtUb55Rmmg&list=PLk51HrKSBQ8-jTgD0qgRp1vmQeVSJ5SQC&index=1&ab_channel=ShawnC")

[Rosserial](https://wiki.ros.org/rosserial "https://wiki.ros.org/rosserial")

[ROS and Arduino](https://www.youtube.com/watch?v=WLVfZXxpHYI&ab_channel=TizianoFiorenzani "https://www.youtube.com/watch?v=WLVfZXxpHYI&ab_channel=TizianoFiorenzani")

[ROS and Raspberry pi](https://www.youtube.com/watch?v=iLiI_IRedhI&ab_channel=TizianoFiorenzani "https://www.youtube.com/watch?v=iLiI_IRedhI&ab_channel=TizianoFiorenzani")

[What is ROS2 ?](https://www.youtube.com/watch?v=7TVWlADXwRw&ab_channel=RaymondAndrade "https://www.youtube.com/watch?v=7TVWlADXwRw&ab_channel=RaymondAndrade")

[Building a ROS Robot for Mapping and Navigation](https://www.youtube.com/watch?v=q1u_cC-5Sac&ab_channel=JamesBruton "https://www.youtube.com/watch?v=q1u_cC-5Sac&ab_channel=JamesBruton")

[The ROS Transform System](https://www.youtube.com/watch?v=QyvHhY4Y_Y8&ab_channel=ArticulatedRobotics "https://www.youtube.com/watch?v=QyvHhY4Y_Y8&ab_channel=ArticulatedRobotics")

[How to start making AUTONOMOUS ROBOT with the ATTLER](https://www.youtube.com/watch?v=jlrUUotkIlk&ab_channel=stepbystep-robotics "https://www.youtube.com/watch?v=jlrUUotkIlk&ab_channel=stepbystep-robotics")

Logiciel embarqué

[https://www.lifewire.com/hardware-vs-software-vs-firmware-whats-the-difference-2624567](https://www.lifewire.com/hardware-vs-software-vs-firmware-whats-the-difference-2624567)

[https://rtone.fr/blog/logiciel-embarque-firmware/](https://rtone.fr/blog/logiciel-embarque-firmware/)

Linux

[https://openest.io/linux-embarque/developpement-linux-embarque-5-etapes-pour-commencer/](https://openest.io/linux-embarque/developpement-linux-embarque-5-etapes-pour-commencer/)

Mise à jour du système embarqué

[https://openest.io/linux-embarque/comment-mettre-a-jour-un-systeme-embarque/](https://openest.io/linux-embarque/comment-mettre-a-jour-un-systeme-embarque/)

[https://github.com/sbabic/swupdate](https://github.com/sbabic/swupdate)

Rasberry pi

[https://blog.webnet.fr/comment-creer-un-assistant-daccueil-avec-raspberry-pi-reconnaissance-faciale-avec-opencv/](https://blog.webnet.fr/comment-creer-un-assistant-daccueil-avec-raspberry-pi-reconnaissance-faciale-avec-opencv/)

[https://blog.webnet.fr/comment-creer-un-assistant-daccueil-avec-raspberry-pi/](https://blog.webnet.fr/comment-creer-un-assistant-daccueil-avec-raspberry-pi/)

[https://www.youtube.com/watch?v=gU6gmrPHb1s](https://www.youtube.com/watch?v=gU6gmrPHb1s)

[https://www.raspberrypi-france.fr/10-projets-fascinants-a-realiser-avec-un-raspberry-pi/](https://www.raspberrypi-france.fr/10-projets-fascinants-a-realiser-avec-un-raspberry-pi/)

[https://fastercapital.com/fr/contenu/Domotique---Transformez-votre-maison-avec-RPi.html](https://fastercapital.com/fr/contenu/Domotique---Transformez-votre-maison-avec-RPi.html)

[https://arduiblog.com/category/robots/](https://arduiblog.com/category/robots/)

Rasberry Pi OS

[https://www.raspberrypi.com/software/](https://www.raspberrypi.com/software/)

Choix du système d'exploitation

[https://monraspberry.com/quel-systeme-dexploitation-pour-raspberry-pi/](https://monraspberry.com/quel-systeme-dexploitation-pour-raspberry-pi/)

**Caméra et reconnaissance de forme humaine**

ESP32 et Caméra + algorithme python ( voir wiki [Akli &amp; Wang](https://wiki.fablab.sorbonne-universite.fr/BookStack/books/projets-due-2024-2025-suite/page/mu5eeh12-akli-wang-project-sesame) )

[https://fr.amen-technologies.com/real-time-face-recognition-with-raspberry-pi](https://fr.amen-technologies.com/real-time-face-recognition-with-raspberry-pi)

**Reconnaissance vocale**

**[https://peerdh.com/fr/blogs/programming-insights/implementing-real-time-speech-recognition-on-raspberry-pi-using-tensorflow-lite](https://peerdh.com/fr/blogs/programming-insights/implementing-real-time-speech-recognition-on-raspberry-pi-using-tensorflow-lite)**

**[https://www.raspberry-pi.ovh/blog/index.php?creer-une-interface-vocale-et-commander-votre-raspberry-pi](https://www.raspberry-pi.ovh/blog/index.php?creer-une-interface-vocale-et-commander-votre-raspberry-pi)**

**Affichage et écran LCD tactile**

**[https://testeurjoe.fr/test-du-moniteur-raspberry-pi-moniteur-portable-bien-construit-qui-fonctionne-avec-nimporte-quel-appareil-compatible-hdmi/](https://testeurjoe.fr/test-du-moniteur-raspberry-pi-moniteur-portable-bien-construit-qui-fonctionne-avec-nimporte-quel-appareil-compatible-hdmi/)**

**Système serveur/Wifi ?**

**[https://www.raspberry-lab.fr/Debuter-sur-Raspberry-Francais/Connecter-le-Raspberry-Pi-au-Wifi/](https://www.raspberry-lab.fr/Debuter-sur-Raspberry-Francais/Connecter-le-Raspberry-Pi-au-Wifi/)**

**[https://raspberrytips.fr/configurer-wifi-raspberry-pi/](https://raspberrytips.fr/configurer-wifi-raspberry-pi/)**

**[https://monraspberry.com/connexion-a-distance-sur-un-raspberry-pi/](https://monraspberry.com/connexion-a-distance-sur-un-raspberry-pi/)**

**[https://raspberrytips.fr/raspberry-pi-connect-tutoriel/](https://raspberrytips.fr/raspberry-pi-connect-tutoriel/)**

**[https://raspberry-pi.fr/connecter-ssh-raspberry-pi/](https://raspberry-pi.fr/connecter-ssh-raspberry-pi/)**