Projets:Au taf
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 :
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.
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 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 :
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 :
- 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 :
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.