Intelligence embarque IMA5 2022/2023 G6
Sommaire
Vérification de l'orientation des objets sur ligne de production
Installations
NanoEdgeAIStudio :
- Extraire les archives control et data.
- Executer la commande :
apt-get update -qy && apt-get -y install procps libnss3
- Dans le dossier data/opt/NanoEdge AI Studio executer nanoedgeiastudio (si nécessaire, ajouter l'option --no-sandbox)
- Insérer la license reçue par mail
- Ajouter le proxy de Polytech (host : https://proxy.polytech-lille.fr ; post : 3128 ; ID et mdp personels de polytech), tester la connexion et valider.
Description
Sur une ligne de production, l'orientation des objets transportés doit être maitrisée afin de faciliter le traitement, l'emballage ou le transport de ceux-ci. Notre produit permetterait de vérifier l'orientation des objets transportés sur un tapis roulant afin d'informer de toute divergeance non négligeable sur celle-ci afin que l'objet puisse être repositionné.
La vérification pourra se faire sur objet immobile ou bien alors que le tapis est en marche.
Notre système utilisera donc le machine learning proposé par STMicroelectronics avec le logiciel NanoEdge afin de vérifier l'orientation de l'objet circulant sur le tapis roulant. Nous réaliserons plusieurs mesures dans un cas "correct" afin d'entraîner l'algorithme, qui pourra par la suite déterminer les cas "défaillant" des cas "correctes"
Ressources
Matériel
Pour réaliser un prototype permettant de vérifier la faisabilité du système, nous disposons de :
- Un microcontrôleur STM32F401RE
- Une carte d'extansion X-NUCLEO-53L5A1' embarquant un capteur TOF VL53L5CX
Logiciel
Nous programmerons le code embarqué à l'aide des logiciels :
- STM32CubeIDE
- STM32 NanoEdgeIAStudio
Réalisation
Récupération des informations de distances
Le capteur TOF récupére des informations sur une matrice de 8x8. Un projet Stm32Cube nous à été fournie permettant de récupérer les informations de distances sur chaque point entre 200mm et 600mm.
- Nous importons ce projet (via le fichier de configuration .ioc), puis nous modiffions le build configuration -> Set Active -> Release, et enfin nous compilons le projet.
- Nous observons les données récupérés via le port série sur minicom après avoir configuré le port correctement (Serial Device : /dev/ttyACM0 ; BPS/Par/Bits : 460800 8N1 ; Hardware Flow Control : No)
- Nous observons que l'affichage des données est illisible, nous modifions donc le code afin de corriger cela (ajouter un \r pour chaque \n dans le fichier X-CUBE-TOF1/App/app_x-cube-tof1.c) et pour afficher un tableau 8x8
Création de l'IA
Notre système lira les informations transmises via liaison série. Afin de faciliter la lecture des données pour l'apprentissage et la détection d'anomalies, il est nécessaire de choir le format dans lequel les données seront transférées. Nous choisissons de transférer les 64 données sur une seule ligne, séparées de point-virgules :
D0;D1;D2;D3; . . . . . . ;D61;D62;D63