Table des matières:

"MicroDot" pour LattePanda (ou Raspberry Pi) : 7 étapes (avec photos)
"MicroDot" pour LattePanda (ou Raspberry Pi) : 7 étapes (avec photos)

Vidéo: "MicroDot" pour LattePanda (ou Raspberry Pi) : 7 étapes (avec photos)

Vidéo:
Vidéo: Microdot 001 | Panel: Creative Visions – Seeing Through Digital Eyes 2024, Novembre
Anonim
Image
Image

Le MicroDot est un « bouton » Alexa fait maison conçu pour être connecté à un LattePanda ou à un Raspberry Pi, avec Alexa Sample App installé. Il s'agit d'un petit haut-parleur avec LED et activation tactile/vocale, idéal pour une utilisation sur un bureau ou dans une voiture.

*Le LattePanda pour ce projet a été aimablement fourni par DFRobot

Étape 1: Présentation du système

Présentation du système
Présentation du système

LATTE PANDA

Le LattePanda est un petit ordinateur Windows 10 (environ la taille d'un Raspberry Pi) avec un Arduino intégré pour s'interfacer avec le monde réel. C'est vraiment très chouette - et c'est un bon remplacement pour le Raspberry Pi - surtout si vous (comme moi) avez des problèmes pour vous familiariser avec Linux.

J'ai installé l'exemple d'application Alexa sur le Panda et j'ai implémenté mon propre moteur de mots de réveil basé sur le SDK de reconnaissance vocale intégré à Windows.

MICRO-POINT

Le MicroDot se compose d'un petit amplificateur et d'un haut-parleur avec une grille tactile et un réseau de LED bleu/blanc. Le MicroDot a été conçu à l'origine pour être placé sur le tableau de bord de ma voiture afin de fournir ma solution Alexa embarquée (à coupler avec mon projet précédent - autoradio compatible Alexa). En plus d'avoir une option de mot de réveil, je voulais une activation tactile car Alexa aura du mal à entendre mon mot de réveil lorsque la musique est forte ! (Une fois activé, le Panda enverra un signal à la chaîne stéréo pour baisser le volume pendant qu'Alexa écoute/parle).

TARTE AUX FRAMBOISES

Pour ceux qui parlent plus couramment "Raspberry Pi", j'ai décrit à la fin de ce Instructable comment interfacer le MicroDot avec un Rapsberry Pi 3.

Étape 2: Circuit MicroDot

Circuit micropoint
Circuit micropoint
Circuit micropoint
Circuit micropoint
Circuit micropoint
Circuit micropoint

LES PIÈCES

6 x résistances CMS 220R2 résistances CMS 470R1 x condensateur SMD 10uF1 x module capteur tactile TTP223 (https://www.ebay.com/itm/192097635565)1 x module amplificateur PAM8403 3W (https://www.ebay.com/ itm/221895096190)1 x potentiomètre linéaire simple 10K (https://www.ebay.com/itm/401105807680)1 x condensateur céramique 50pF3 x LED bleues 3mm3 x LED blanches 3mm1 x haut-parleur 1,7 pouces 4ohm 3W1 x câble noir fin de vieux écouteurs 1 x câble d'extension USB noir mince de 1 m *

CONSTRUCTION

Le circuit imprimé MicroDot a été fabriqué par la méthode du fer sur toner sur une carte simple face de 0,8 mm d'épaisseur - à cette épaisseur, il peut être coupé grossièrement en forme avec des ciseaux pointus, puis facilement limé pour mettre en forme. Montez d'abord tous les composants de montage en surface.

Un fil doit être connecté à la surface tactile du capteur, donc une petite zone doit être grattée pour y souder. J'ai trouvé que dans son mode brut, le capteur était beaucoup trop sensible - il fonctionnait bien, mais une fois monté dans le boîtier, il était souvent déclenché à tort en raison de sa proximité avec le haut-parleur métallique. J'ai mis à la terre le haut-parleur en métal - ce qui a quelque peu aidé, mais j'ai finalement dû me référer à la fiche technique.

La fiche technique du TTP223 indique que vous pouvez régler la sensibilité en plaçant un condensateur (0 à 50pf) entre le capteur tactile et la masse. Le capteur fonctionnait bien avec un condensateur 50pf. Vous pouvez voir l'emplacement de cela dans l'image de la section suivante.

Deux câbles sont utilisés pour connecter le MicroDot au Panda:- un fin câble noir d'une vieille paire d'écouteurs pour connecter l'audio- un fin câble USB a été utilisé pour se connecter au GPIO (capteur tactile/LED). Vous aurez besoin d'un câble avec 6 connecteurs séparés (5 internes + blindage). * Méfiez-vous que certains câbles USB bon marché n'ont pas de broche de masse/blindage séparé, ou ces deux peuvent être connectés en interne (vérifiez ceci avant de couper votre câble en vous assurant qu'il y a une continuité entre les parties métalliques extérieures du mâle et de la femelle prises, et qu'il n'y a pas de continuité entre la broche de masse et les pièces métalliques extérieures).

Utilisez les connexions du câble USB: rouge=+5v, blindage=GND, noir=capteur tactile, LED blanches=blanches, LED vertes=bleues. Au lieu de simplement couper les carlins et de les câbler, vous voudrez peut-être faire ce que j'ai fait et gardez les fiches en place et coupez une section longue et une section courte (disons 200 mm), et branchez les deux extrémités du câble ensemble. De cette façon, l'unité est détachable. Assurez-vous simplement de ne pas y brancher de véritables périphériques USB ou de le brancher sur un port USB normal !

Étape 3: Construction MicroDot

Construction MicroDot
Construction MicroDot
Construction MicroDot
Construction MicroDot
Construction MicroDot
Construction MicroDot
Construction MicroDot
Construction MicroDot

PIÈCES IMPRIMÉES EN 3D

Il y a quatre pièces imprimées en 3D dans le fichier zip ci-joint:1. Coque principale MicroDot - imprimée en PLA2 noir. Base MicroDot - imprimée en PLA3 noir. Anneau LED - imprimé en PLA blanc (clair ou translucide peut être mieux pour aider à diffuser la lumière plus uniformément)4. Entretoise PCB - n'importe quelle couleur - prise en sandwich entre le haut-parleur et le PCB.

Des boulons et des écrous M2 sont utilisés pour visser la base à la coque. Trois boulons M2 doivent être fondus dans les fentes à l'intérieur de la coque. Ceux-ci sont assez petits et vous devrez peut-être les « souder » en place avec du filament supplémentaire.

RAYON DE LED

Les LED blanches et bleues sont montées alternativement dans le tableau, comme indiqué sur les images. Les fils sont pliés à 90 degrés contre le bas de la LED et les fils sont fondus dans l'anneau avec un fer à souder chaud (notez la polarité ici). Le bas des LED est limé de manière à être à plat sur la surface de l'anneau.

Les cathodes des LED sont toutes connectées ensemble avec un anneau de fil et celles-ci se connectent à la broche la plus basse de l'en-tête. Les autres broches de l'en-tête doivent être alternativement bleu/blanc pour chaque LED individuelle

METTRE ENSEMBLE

La grille a été découpée dans un porte-papier de bureau (photo) avec un fil soudé à un bord. Celui-ci est inséré d'abord dans la coque, puis dans la matrice de LED (ceci doit être inséré selon un angle comme indiqué, avec la fente alignée avec l'un des poteaux de vis). Le haut-parleur est le suivant (placez du ruban adhésif mince autour du haut pour l'isoler du bord du PCB). Ensuite, l'entretoise et le PCB se trouve juste au-dessus. Vissez la base pour maintenir le tout ensemble.

Lorsque j'ai branché le câble audio sur le LattePanda, j'ai constaté que je devais utiliser un filtre de boucle de masse audio (https://www.ebay.com/itm/371801191297) pour obtenir un bon son. Notez que sur les photos j'utilise la sortie audio de mon adaptateur vidéo HDMI-VGA, mais c'est bien d'utiliser la prise de sortie audio intégrée.

Vous aurez également besoin d'un microphone USB (https://www.ebay.com/itm/332148968227).

Étape 4: Le LattePanda

Le LattePanda
Le LattePanda
Le LattePanda
Le LattePanda

METTRE EN PLACE

Le Panda est disponible en modèles 2G/32G et 4G/64G, avec ou sans licence Windows 10. Le modèle que j'ai utilisé était la version 2G/32G avec licence Windows 10:

Veuillez consulter la documentation officielle pour configurer votre LattePanda (https://docs.lattepanda.com) Il n'y a rien de bien compliqué ici, mais prenez note des instructions pour mettre votre Panda sous tension (https://docs.lattepanda.com/ contenu/démarrer/pouvoir…).

Tout semblait fonctionner la première fois pour moi (ce qui est un bon changement par rapport à mes expériences avec Raspberry Pi).

Une chose importante est que vous avez vraiment besoin d'une sorte de refroidissement pour le Panda. J'ai utilisé des dissipateurs thermiques adhésifs en haut et en bas (le dessous devient particulièrement chaud).

Ce schéma détaille les entrées et sorties Arduino: https://docs.lattepanda.com/content/hardware/inputs… Nous utiliserons le réseau de connecteurs à 3 broches sur le côté gauche pour nous connecter au MicroDot (D9, D10 et D11), ainsi que la prise de sortie audio.

Étape 5: LattePanda - Installer l'exemple d'application Alexa

LattePanda - Installer l'exemple d'application Alexa
LattePanda - Installer l'exemple d'application Alexa

TÉLÉCHARGER

L'exemple d'application Alexa est disponible ici:

github.com/alexa/alexa-avs-sample-app/

Appuyez sur le bouton Clone ou Télécharger et téléchargez au format.zip

Créez un répertoire sur le lecteur c C:\ALEXA et extrayez le contenu du zip afin que le répertoire zippé appelé samples se trouve directement dans le répertoire ALEXA (c'est-à-dire C:\ALEXA\samples\…)

INSTALLATION

Les instructions complètes officielles pour l'installation sur Windows sont ici:

github.com/alexa/alexa-avs-sample-app/wiki…

Il y a pas mal d'étapes, et cela prend un peu de temps, mais j'ai trouvé qu'avec Windows tout s'est bien passé la première fois.

Vous aurez besoin d'un bon éditeur de texte pour éditer certains des fichiers de configuration (le Bloc-notes n'est pas bon car les fichiers ont des fins de ligne de style Linux). J'ai utilisé Notepad++ qui est disponible ici:

Quelques notes concernant les instructions officielles:

Partie 3 - Dépendances

Mon Panda est en 64 bits, j'ai donc téléchargé toutes les versions 64 bits, mais si vous installez sur un système 32 bits, vous devrez utiliser les versions 32 bits. Remarque: ne mélangez pas les versions 32 et 64 bits des dépendances.

Le lien affiché pour le lecteur multimédia VLC vous mènera à la version 32 bits. Pour obtenir la version 64 bits, allez sur ce lien: https://www.videolan.org/vlc/download-windows.html et sur le bouton de téléchargement, sélectionnez la flèche, puis Installer pour la version 64 bits.

Pour l'installation de JDK, j'ai utilisé la version: jdk-8u144-windows-x64Pour les nodejs, j'ai utilisé: Windows Installer (.msi) 64 bitsPour Maven: apache-maven-3.5.0-bin.zipPour OpenSSL, j'ai utilisé:Win64 OpenSSL v1.1.0f

Partie 5 - Méthode d'authentification

Choisissez 5a - Serveur Nodejs. Si vous obtenez une erreur lors de l'exécution de la commande npm, vous devez ajouter votre répertoire nodejs à votre variable d'environnement path (il est expliqué dans les instructions comment procéder).

Partie 6 - Exécution de l'exemple d'application

Lors de la modification du fichier config.json, définissez wakeWordAgentEnabled sur true, car nous installerons un moteur de mot de réveil personnalisé dans la section suivante (le moteur de mot de réveil inclus dans l'exemple d'application ne fonctionne qu'avec Linux).

Si vous obtenez une erreur lors de l'exécution de la commande mvn, vous devez ajouter votre répertoire maven\bin à votre variable d'environnement path.

Lorsque vous exécutez l'application, vous devriez obtenir l'interface graphique affichée dans la capture d'écran. Lorsque vous cliquez sur l'icône, vous pourrez parler à Alexa. Ceci est l'application Alexa de base - mais nous aurons besoin de plus que cela !

Les prochaines étapes consisteront à installer un moteur de mot de réveil personnalisé afin que vous puissiez simplement dire "Alexa" pour l'activer, et avoir également la possibilité d'utiliser un capteur tactile via l'entrée Arduino. Nous devons également faire en sorte que l'application s'exécute automatiquement au démarrage et allumer certaines LED lorsqu'Alexa écoute et parle.

Étape 6: LattePanda - Installer le moteur WakeWord personnalisé

LattePanda - Installer le moteur WakeWord personnalisé
LattePanda - Installer le moteur WakeWord personnalisé

MOTEUR WAKEWORD

Un moteur WakeWord permet à Alexa d'être réveillé par un mot parlé (généralement « Alexa »), au lieu d'avoir à cliquer sur un bouton. L'exemple d'application propose deux options pour le moteur WakeWord: les moteurs de mots de réveil sensoriels ou KITT. AI. Le L'implémentation de ceux-ci dans l'exemple d'application, cependant, ne fonctionne que pour Linux. Ces deux moteurs sont également soumis à certaines exigences de licence.

Ici, je vais implémenter un moteur de mot de réveil personnalisé basé sur le SDK de reconnaissance vocale de Windows 10. Donc, cela est également libre de toute exigence de licence supplémentaire.

INSTALLER LES DÉPENDANCES

Microsoft Speech Platform - Runtime (Version 11)https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32 bits) ou x64_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (64 bits)

Plate-forme Microsoft Speech - Langues d'exécution (version 11)

Mon moteur WakeWord personnalisé a été écrit en C# dans Visual Studio 2017. J'ai fourni l'exécutable final ici ainsi que le code source. Si vous voulez le compiler vous-même, vous aurez également besoin de ceci:

Microsoft Speech Platform - Kit de développement logiciel (SDK) (version 11) https://www.microsoft.com/en-gb/download/details….|x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (32 bits) ou x64_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (64 bits)

Mettez WakeWordPanda.exe (et alexa_run.bat) dans le répertoire ALEXA. Ce programme effectue les tâches suivantes: - Écoute le mot de réveil « Alexa » - Surveille le capteur d'entrée tactile - Contrôle les LED BLEUE et BLANCHE

Notez que j'ai développé cela sur un autre ordinateur Windows 10 afin de ne pas avoir à installer Visual Studio sur le LattePanda, car je ne voulais pas utiliser les gigaoctets. J'ai connecté un Arduino Uno installé avec StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) à l'ordinateur de développement afin que je puisse également développer avec les entrées/sorties Arduino. Le code source de Visual Studio est également joint si vous souhaitez le modifier et/ou le compiler vous-même.

MODIFIER LE CLIENT JAVA

Le client Java a besoin de quelques lignes supplémentaires ajoutées au code. C'est pour permettre aux LED de fonctionner correctement:

Lorsqu'Alexa écoute, un signal PAUSE_WAKE_WORD_ENGINE est envoyé au moteur WakeWord. J'ai utilisé ce signal pour savoir quand allumer le BLEU (LED d'écoute Alexa). Lorsque le signal RESUME_WAKE_WORD_ENGINE est reçu, la LED bleue s'éteint et la LED BLANCHE (LED parlant Alexa) s'allume. Le code supplémentaire envoie un autre signal RESUME_WAKE_WORD_ENGINE lorsqu'Alexa arrête de parler - afin que le moteur WakeWord sache quand éteindre la LED blanche.

Accédez à: C:\ALEXA\samples\javaclient\src\main\java\com\amazon\alexa\avs et ouvrez AVSController.java dans votre éditeur de texte. Copiez le code du fichier Extra_Code.txt joint. Il doit être inséré à deux endroits:

1. Dans la fonction public void onAlexaSpeechFinished() directement après l'instruction:dependentDirectiveThread.unblock();

2. Dans la fonction private void handleAudioPlayerDirective(Directive directive) directement avant l'instruction: player.handleStop();

J'ai également réaffecté le signal CONFIRM afin que le moteur WakeWord sache si Alexa a répondu. Il s'agit d'annuler un délai d'attente de 5 secondes qui se produira s'il n'y a pas de réponse. Copiez le code de Extra_Code2.txt et insérez-le au même endroit:

1. Dans la fonction public void onAlexaSpeechStarted() directement après la déclaration dependiveThread.block();

Vous devez maintenant recompiler le client Java. Ouvrez une invite de commande et accédez à C:\ALEXA\samples\javaclient Entrez: mvn install pour recompiler.

Si vous démarrez le service compagnon et l'application Java Alexa comme auparavant, puis double-cliquez également sur WakeWordPanda.exe, attendez qu'il se connecte, puis vous devriez pouvoir activer Alexa en disant "Alexa".

MICRO-POINT

Si vous connectez le câble « USB » du MicroDot au LattePanda comme indiqué sur le schéma, et branchez le câble audio, il devrait maintenant être entièrement fonctionnel. Prononcer le mot de réveil ou toucher le gril devrait activer Alexa et les LED bleues devraient s'allumer. Les LED blanches devraient s'allumer lorsqu'Alexa répond.

CONFIGURATION DE LA FONCTIONNEMENT AUTOMATIQUE

Au lieu de saisir manuellement toutes les commandes pour tout démarrer, vous pouvez utiliser le script alexa_run.bat. Cela attendra une connexion Internet, puis invoquera les modules séparés (service compagnon, client Java, moteur de mot de réveil).

La dernière étape consiste à tout faire fonctionner automatiquement au démarrage:

1. Cliquez avec le bouton droit sur auto-run.bat et sélectionnez créer un raccourci.2. Appuyez sur ctrl+R et tapez shell:startup. Cela ouvrira le dossier de démarrage.3. Faites glisser le raccourci que vous avez créé dans le dossier de démarrage.

Alexa s'exécutera désormais automatiquement au démarrage (il faut environ 30 secondes pour s'initialiser après le démarrage).

Étape 7: MicroDot pour Raspberry Pi

MicroDot pour Raspberry Pi
MicroDot pour Raspberry Pi
MicroDot pour Raspberry Pi
MicroDot pour Raspberry Pi

(Si vous souhaitez utiliser un Raspberry Pi 3 au lieu d'un LattePanda).

TÉLÉCHARGER

Téléchargez l'exemple d'application Alexa à partir d'ici:

Appuyez sur le bouton Clone ou Télécharger et téléchargez au format.zip. Décompressez pour que le dossier alexa-ava-sample-app se trouve sur le bureau.

INSTALLATION

Suivez les instructions complètes officielles ici (remarque: configurez le dossier alexa-ava-sample-app sur le bureau):

github.com/alexa/alexa-avs-sample-app/wiki…

Il existe de nombreux guides pour le faire avec un Raspberry Pi sur Internet. Je l'ai installé plusieurs fois sur le Raspberry Pi, et ni l'une ni l'autre ne s'est déroulée aussi facilement que l'installation sur Windows 10 (pas de surprise - Linux m'obtient à chaque fois). Les principaux problèmes que j'ai rencontrés étaient:

1. Faire fonctionner correctement l'audio et le microphone. Voir ici https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… si vous rencontrez également ces problèmes.

2. Problèmes avec la version JDK. Voir 4.3 dans les instructions officielles, et la note dans le fichier pom.xml qui parle de remplacer la version lors de l'exécution de la commande mvn exec:exec (c'est-à-dire que j'ai dû ajouter ce commutateur -Dalpn-boot.version=8.1.6.v20151105). Notez que cette commande est incluse dans mon script de démarrage (alexa_startup.sh).

3. Faire fonctionner le moteur de mots de réveil sensoriel (https://github.com/Sensory/alexa-rpi)

Une fois que vous pouvez tout faire fonctionner avec les commandes manuelles décrites dans les instructions, procédez à l'installation de MicroDot.

CONNEXION MICRO-DOT

Vous ne pouvez pas attacher directement le MicroDot au GPIO car il consommera trop de courant. Vous aurez besoin de: 2x 2N3904 transistors pour piloter les LED, 1x2K2 et 1x3K3 résistances pour faire chuter la tension du capteur tactile à 3,3V (le MicroDot sera alimenté par l'alimentation 5V). Référez-vous au schéma ci-joint. Vous voudrez peut-être faire un PCB pour cela, mais je viens de monter ces composants à l'arrière d'une prise femelle à 8 broches.

MOTEUR DE RÉVEIL PERSONNALISÉ (TACTILE)

Décompressez le contenu du dossier zip joint dans le dossier alexa-avs-sample-app. Il y a deux fichiers:wake.py - un script python qui est le moteur de réveil personnalisé (tactile) pour le MicroDot alexa_autostart.sh - un script pour tout exécuter. Cliquez avec le bouton droit sur les propriétés et sélectionnez Exécuter: n'importe qui dans l'onglet Autorisations.

Vous aurez besoin de python installé pour exécuter le moteur de sillage. Vous aurez également besoin de la bibliothèque GPIO (https://makezine.com/projects/tutorial-raspberry-p…) Celles-ci devraient déjà être installées dans la dernière version de Raspbian.

Pour tout exécuter, tapez dans le terminal: cd /home/pi/Desktop/alexa-avs-sample-appsudo./alexa_startup.sh

CONFIGURER L'AUTORUN

Pour configurer Alexa pour qu'il s'exécute automatiquement au démarrage, ouvrez un terminal et tapez:

cd /home/pi/.config/lxsession/LXDE-pisudo nano démarrage automatique

et ajoutez la ligne et enregistrez:

@/home/pi/Desktop/alexa-avs-sample-app/alexa_autostart.sh

Redémarrez et l'application Alexa devrait s'exécuter automatiquement.

Conseillé: