Intelligence embarque IMA5 2022/2023 G5

De Wiki d'activités IMA
Révision datée du 26 octobre 2022 à 08:34 par Ylacroix (discussion | contributions) (Activation du capteurs)

Contrôle gestuel pour la domotique

Présentation

L'idée consiste à développer une IA embarquée sur un microcontrôleur STM32 capable de reconnaître des gestes fixes sans mouvements de main, dans le but de contrôler certrain des systèmes domotiques.
En effet, dans le contexte sanitaire actuel (Covid), il serait intéressant de développer des systèmes de contrôle sans contact, pour éviter la propagation du virus. Par exemple, ouverture de porte, allumage des lumières, commander un ascenseur dans un environnement public ou hospitalier.
On pourrait aussi imaginer une application plus domestique à destination du grand public, qui controlerait une ampoule à variateur d'intensité, où notre système permettrait d'allumer, d'éteindre et de faire varier l'intensité de l'ampoule.

Gestes à implémenter

Pour l'environnement hospitalier

  • Main ouverte pour allumer l'ampoule
  • Poing fermé pour éteindre l'ampoule
  • Signe OK avec le pouce et l'index pour l'ouverture/fermeture de porte
  • Numérotation de l'étage souhaité avec les doigts pour l'ascenseur


Pour la domotique (ampoule à variateur)

  • Main ouverte pour allumer l'ampoule
  • Poing fermé pour éteindre l'ampoule
  • Pouce vers le haut pour augmenter l'intensité
  • Pouce vers le bas pour diminuer l'intensité

PoC

Pour la démonstration, l'idée pour le moment serait à minima de pouvoir contrôler l'allumage et l'extinction d'une LED.
Si c'est possible, nous afficherons dans un terminal le geste detecté pour pouvoir tester l'implémentation de plusieurs gestes.

Réalisation

Récupération d'un dataset avec le capteur ToF

Lors des premières séances, nous avons commencé par l'activation de la matrice des capteurs. Dans un premier temps, nous avons réussi
à activer l'expansion fournit, en compilant les programmes fournit, puis nous avons téléverser l'exécutable sur le microcontôleur.
Une fois le système est active, nous récupérons grâce à minicom (la liaison série), les données renvoyées par les capteurs. Ces données
sont affichées sous formes d'une matrice. Nous avons choisi d'afficher une matrice 8x8. Sous minicom, les valeurs sont renvoyées sous
la forme d'une matrice, séparées par le caractére suivant : |. La deuxième étape consiste à préparer les données pour la partie IA, où nous avons choisi de les classer sur un axe de taille de 64 valeurs (0 à 63).
Pour cela, nous avons modifié la fonction print_result d'une manière que les délimiteurs soient le caractéres ;.
La modification du code est faite sous STM32Cube IDE. Sous NanoEdge, nous avons vérifié la bonne réception des signaux (des valeurs des capteurs); où ces derniers repectent bien la forme attendues.