Projets:Au taf

De wikilab
Au taf

400pxLa propriété « A image principale » (comme le type de page) avec la valeur d’entrée « File: » contient des caractères non valides ou est incomplète, et donc peut provoquer des résultats inattendus lors d’une requête ou d’un processus d’annotation.

Informations
Description Système de reconnaissance vocale permettant de contrôler l'environnement
Catégorie Motricité
Etat d'avancement En cours
Techniques
Durée de fabrication
Coût matériel
Niveau Difficile
Licence by-sa
Date de création 2019-12-19
Équipe
Porteur de projet Christian B.
Contributeurs Gigi35, Stevan
Fabmanager Delphine
Référent documentation Stevan
Nom humanlab Humanlab_MHK
Documentation
Statut de la documentation Partielle
Relecture de la documentation Non vérifiée

Description du projet

Projet visant à proposer un système de reconnaissance vocale permettant de contrôler l'environnement :

  • Émettre des codes infra-rouge vers des équipements existants (TV, radio, ...)
  • Communiquer avec des modules d'entrées-sorties via, par exemple, du Bluetooth
  • Piloter un téléphone pour recevoir ou émettre des appels

Cahier des charges

  • Une contrainte initiale est de ne pas compter sur la disponibilité d'une liaison Internet pour ce projet : la reconnaissance vocale doit être réalisée de manière locale.
  • Une seconde contrainte s'est imposée lors d'une première version : la reconnaissance doit être adaptée au locuteur. Ceci impose d'avoir un apprentissage (ou au moins un paramètrage) spécifique à l'utilisateur.

Analyse de l'existant

Projet K Line : Maison connectée et contrôlable via l'assistant Google ou Alexia (Amazon) mais requérant une connexion internet.

Equipe (Porteur de projet et contributeurs)

  • Porteur de projet
  • Contributeurs
  • Animateur (coordinateur du projet)
  • Fabmanager référent
  • Responsable de documentation

Matériel nécessaire

  • Une carte STM32F429 intégrant un écran couleur tactile (240x320 pixels) et dont le processeur gère de nombreux timers, lignes séries
  • Un microphone USB Adafruit 4346 car, il n'existe pas d'entrée audio sur la carte STM32. Un cordon Qwiic est nécessaire afin de connecter le microphone à la carte.
  • Un récepteur* et un émetteur RF433 (MX-05V / MX-FS-03V) pour pouvoir communiquer avec des appareils utilisant les ondes radios (porte de garage, volet, ...)
  • Un récepteur* et un émetteur Infra-rouge (TFMS5360/SFR485) pour piloter du matériel audio-vidéo (TV, chaîne, ...)
  • Un module GPRS (IOT-GA6-B) pour les fonctions téléphone et envoi de SMS

Les équipements marquées d'un astérisque sont optionnels : ils permettent de déterminer le type de modulation et le code utilisés.

Outils nécessaires

  • Ordinateur pour la configuration de la carte STM32
  • Internet (configuration uniquement)
  • Appareil à soudure

Coût

  • Carte STM32F429 : 28€ (29/03/2023)
  • Microphone Adafruit 4346 : 5€ (15/05/2023)
  • Récepteur/Émetteur : 2€ (15/05/2023)
  • Cordon microphone : 2€ (15/05/2023)


Total : 37€

Fichiers source

Github en constuction

https://github.com/myhumankit/au-taf

Etapes de fabrication pas à pas

En cours de construction

Allumage de la carte STM32

Dans un premier temps, on peut s'assurer que la carte STM32 fonctionne bien. Pour cela, il suffit de la brancher à un ordinateur à l'aide du câble qui est fourni avec. Le câble fourni est assez court mais un autre câble du même type (USB Mini B) peut être utilisé à la place. Lors du premier démarrage, l'écran devrait ressembler à ça :

Ecran de la carte STM32 lors du premier démarrage


Picovoice

Pour la reconnaissance vocale, le projet s'appuie sur la librairie Picovoice qui permet de reconnaître des mots définis au préalable. Pour cela, il est nécessaire de créer un compte sur le Site Officiel.

Page d'accueil de Picovoice


Une fois le compte créé, on récupère l'UUID de la carte STM32. Il existe plusieurs façon de le récupérer par exemple en lisant la ligne série de la carte après avoir flashé le programme (TO DO : ajouter le lien vers l'éxécutable du Github quand il sera prêt ) ou bien en utilisant OpenOCD avec la commande suivante :

 openocd -f /usr/share/openocd/scripts/board/stm32f429disc1.cfg -c "init" -c "$target_name mdb 0x1FFF7A10 12" -c "exit" 

L'UUID correspond à la suite de 12 octets lus à l'adresse 0x1fff7a10. Une fois cette séquence récupérée, il est possible de générer les mots nécessaires pour la navigation. Picovoice ne peut générer que 3 mots par mois avec un compte standard, le choix est dont d'utiliser les 3 mots suivants :

  • D'accord
  • Retour
  • Suivant

Les mots peuvent être changés mais leur fonction doit rester la même. Pour générer les mots, il faut aller sur la page Porcupine Wake Word dans la section How do I build? qui se trouve à gauche sur la page d'accueil du compte ou sur le lien suivant. La page se présente comme l'image suivante :

Page d'apprentissage de Picovoice



Il faut sélectionner la bonne langue et rentrer un mot dans la partie Wake Word. Une fois le mot rentrer, il est possible de tester l'apprentissage avec un micro branché à l'ordinateur. En cliquant sur Train, une fenêtre demande de sélectionner la carte :

Page d'apprentissage de Picovoice


  • PLATFORM : ARM Cortex-M
  • BOARD : STM32
  • UID : UUID récupéré plus tôt

Une fois l'UID rentré, il faut télécharger un .zip en cliquant sur Download. Il faut générer les 3 mots de cette façon. Les fichiers .zip contiennent un fichier .h et .ppn. Les fichiers contiennent les mêmes informations, le .h est encodé en ASCII tandis que le .ppn est un fichier binaire. Il est alors possible de n'utiliser que les fichiers .ppn.

La dernière étape à faire sur le site de Picovoice est de récupérer la clé d'accès (Access Key) trouvable sur l'accueil du compte au lien suivant.

La prochaine étape est de récupérer l'exécutable et le configurer. Les explications sont disponibles sur le Github du projet.

Montage des composants

Chaque partie, hormis le microphone, est optionnelle indépendante ce qui signifie que l'utilisateur est libre de sélectionner les composants qui l'intéressent en fonction de ses besoins. Par exemple, il peut choisir de n'utiliser que la partie radio fréquence et ne pas utiliser l'infra-rouge.

Un schéma est global du montage est disponible ci-dessous :

Schéma électronique de la carte STM32 avec les composants


Microphone

C'est le seul composant obligatoire avec la carte STM32. Il est noté PDM_Microphone sur le schéma. Pour le câblage, on connecte d'abord le cordon de microphone que l'on branche ensuite sur la carte. Le micro est alimenté en +3V. Le câble jaune (CLK) qui représente le signal d'horloge se branche sur le pin PB3 et le câble bleu (DAT) représente les données se branche sur le pin PC12. Les 2 pins de la carte se trouvent sur la face inférieure de la carte.

Radio Fréquence

Durée de fabrication du prototype final