Inhoudsopgave:
- Stap 1: Systeemoverzicht
- Stap 2: MicroDot-circuit
- Stap 3: MicroDot-constructie
- Stap 4: De LattePanda
- Stap 5: LattePanda - Installeer Alexa Sample App
- Stap 6: LattePanda - Aangepaste WakeWord-engine installeren
- Stap 7: MicroDot voor Raspberry Pi
Video: "MicroDot" voor LattePanda (of Raspberry Pi) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
De MicroDot is een zelfgemaakte Alexa 'knop' die is ontworpen om te worden aangesloten op een LattePanda of een Raspberry Pi, met de Alexa Sample App geïnstalleerd. Het is een kleine luidspreker met LED's en aanraak-/spraakactivering, en is ideaal voor gebruik op een desktop of in een auto.
*De LattePanda voor dit project is vriendelijk geleverd door DFRobot
Stap 1: Systeemoverzicht
LATTE PANDA
De LattePanda is een kleine (ongeveer de grootte van een Raspberry Pi) Windows 10-computer met een ingebouwde Arduino voor interface met de echte wereld. Het is echt heel handig - en het is een goede vervanging voor de Raspberry Pi - vooral als je (zoals ik) problemen hebt om Linux onder de knie te krijgen.
Ik heb de Alexa Sample-app op de Panda geïnstalleerd en mijn eigen wake-word-engine geïmplementeerd op basis van de in Windows ingebouwde SDK voor spraakherkenning.
MICRODOT
De MicroDot bestaat uit een kleine versterker en luidspreker met een aanraakgevoelige grill en blauw/witte LED-array. De MicroDot is oorspronkelijk ontworpen om op het dashboard in mijn auto te worden geplaatst om mijn Alexa-oplossing in de auto te bieden (om te koppelen met mijn vorige project - Alexa-compatibele autoradio). Naast een wake-word-optie, wilde ik aanraakactivering omdat Alexa het moeilijk zal hebben om mijn wake-word te horen wanneer de muziek hard staat! (Eenmaal geactiveerd, stuurt de Panda een signaal naar de stereo om het volume lager te zetten terwijl Alexa luistert/spreekt).
FRAMBOOS PI
Voor degenen die vloeiender zijn in "Raspberry Pi", heb ik aan het einde van deze Instructable beschreven hoe de MicroDot met een Rapsberry Pi 3 kan worden gekoppeld.
Stap 2: MicroDot-circuit
ONDERDELEN
6 x 220R SMD-weerstanden2 x 470R SMD-weerstanden1 x 10uF SMD-condensator1 x TTP223 aanraaksensormodule (https://www.ebay.com/itm/192097635565)1 x PAM8403 3W-versterkermodule (https://www.ebay.com/ itm/221895096190)1 x 10K enkele lineaire duimpotentiometer (https://www.ebay.com/itm/401105807680)1 x 50pF keramische condensator3 x 3 mm blauwe leds3 x 3 mm witte leds1 x 1,7 inch 4ohm 3W luidspreker1 x dunne zwarte kabel van oude koptelefoon 1 x dunne zwarte USB-verlengkabel van 1 m*
BOUW
De MicroDot-printplaat is gemaakt door middel van een ijzer-op-tonermethode op 0,8 mm dik enkelzijdig karton - bij deze dikte kan het met een scherpe schaar ruwweg in vorm worden gesneden en vervolgens gemakkelijk in vorm worden gevijld. Monteer eerst alle componenten voor opbouwmontage.
Er moet een draad worden aangesloten op het aanraakoppervlak van de sensor, dus een klein gebied moet worden weggeschraapt om aan te solderen. Ik ontdekte dat de sensor in de onbewerkte modus veel te gevoelig was - hij werkte prima, maar toen hij eenmaal in de behuizing was gemonteerd, werd hij vaak vals geactiveerd vanwege de nabijheid van de metalen luidspreker. Ik heb de metalen luidspreker geaard - wat enigszins hielp, maar ik moest uiteindelijk naar de datasheet verwijzen.
In de TTP223-datasheet staat dat je de gevoeligheid kunt aanpassen door een condensator (0 tot 50pf) tussen de aanraaksensor en aarde te plaatsen. De sensor werkte prima met een 50pf condensator. U kunt de plaatsing hiervan zien in de afbeelding van de volgende sectie.
Er worden twee kabels gebruikt om de MicroDot op de Panda aan te sluiten: - een dunne zwarte kabel van een oude koptelefoon om de audio aan te sluiten - een dunne USB-kabel werd gebruikt om verbinding te maken met de GPIO (aanraaksensor/LED's). Je hebt een kabel nodig met 6 aparte connectoren (5 intern + afscherming). *Let op dat sommige goedkope USB-kabels geen aparte aardpen/afscherming hebben, of dat deze twee intern kunnen zijn aangesloten (controleer dit voordat u uw kabel doorsnijdt door ervoor te zorgen dat er continuïteit is tussen de buitenste metalen delen van de mannelijke en vrouwelijke stekkers en dat er geen continuïteit is tussen de aardingspen en de buitenste metalen delen).
Gebruik de USB-kabelverbindingen: rood=+5v, schild=GND, zwart=aanraaksensor, wit=witte LED's, groen=blauwe LED's. en houd de stekkers aan en knip een lange sectie en een korte (zeg 200 mm) sectie af, en steek de twee uiteinden van de kabel in elkaar. Zo is de unit afneembaar. Zorg er wel voor dat u er geen echte USB-apparaten op aansluit of op een gewone USB-poort aansluit!
Stap 3: MicroDot-constructie
3D GEPRINTE ONDERDELEN
Er zijn vier 3D-geprinte onderdelen in het bijgevoegde zipbestand: 1. Belangrijkste MicroDot-schaal - gedrukt in zwart PLA2. MicroDot-basis - gedrukt in zwart PLA3. LED-ring - gedrukt in wit PLA (helder of doorschijnend kan beter zijn om het licht gelijkmatiger te verspreiden)4. PCB-afstandhouder - elke kleur - ingeklemd tussen luidspreker en PCB.
M2 bouten en moeren worden gebruikt om de basis aan de schaal te schroeven. Drie M2-bouten moeten in de sleuven aan de binnenkant van de schaal worden gesmolten. Deze zijn vrij klein en het kan zijn dat u ze op hun plaats moet ''solderen'' met wat extra filament.
LED-ARRAY
De witte en blauwe LED's zijn afwisselend in de array gemonteerd zoals op de afbeeldingen te zien is. De leads worden tot 90 graden gebogen tegen de onderkant van de LED en de leads worden in de ring gesmolten met een hete soldeerbout (let hier op de polariteit). De onderkant van de LED's is naar beneden gevijld, zodat ze plat op het oppervlak van de ring liggen.
De kathodes van de LED's zijn allemaal met elkaar verbonden met een ring van draad en deze verbinden met de onderste pin van de header. De andere pinnen van de header moeten afwisselend blauw/wit zijn voor elke individuele LED
HET SAMEN ZETTEN
De grill werd gesneden uit een bureaupapierhouder (afgebeeld) met een draad aan één rand gesoldeerd. Deze wordt eerst in de behuizing gestoken en vervolgens in de LED-array (deze moet onder een hoek worden geplaatst zoals weergegeven, met de sleuf uitgelijnd met een van de schroefstijlen). De luidspreker is de volgende (plaats wat dunne tape rond de bovenkant om deze te isoleren van de rand van de printplaat). Dan de spacer en de printplaat zit er gewoon bovenop. Schroef de basis erop om alles bij elkaar te houden.
Toen ik de audiokabel in de LattePanda plugde, ontdekte ik dat ik een audio-aardlusfilter (https://www.ebay.com/itm/371801191297) moest gebruiken om goed geluid te krijgen. Merk op dat ik op de foto's de audio-out van mijn HDMI-VGA-videoadapter gebruik, maar het is prima om de ingebouwde audio-uitgang te gebruiken.
Je hebt ook een usb-microfoon nodig (https://www.ebay.com/itm/332148968227).
Stap 4: De LattePanda
OPSTELLING
De Panda wordt geleverd in 2G/32G- en 4G/64G-modellen, met of zonder Windows 10-licentie. Het model dat ik gebruikte was de 2G/32G-versie met Windows 10-licentie:
Raadpleeg de officiële documentatie voor het instellen van uw LattePanda (https://docs.lattepanda.com) Er is hier niets te ingewikkeld, maar let op de instructies voor het opstarten van uw Panda (https://docs.lattepanda.com/ inhoud/aan de slag/powe…).
Alles leek de eerste keer te werken voor mij (wat een leuke afwisseling is van mijn Raspberry Pi-ervaringen).
Een belangrijk ding is dat je echt een soort koeling nodig hebt voor de Panda. Ik heb een aantal zelfklevende koellichamen aan de boven- en onderkant gebruikt (de onderkant wordt bijzonder heet).
Dit diagram beschrijft de Arduino-ingangen en -uitgangen: https://docs.lattepanda.com/content/hardware/inputs… We zullen de reeks 3-pins connectoren aan de linkerkant gebruiken om verbinding te maken met de MicroDot (D9, D10 en D11), evenals de audio-uitgang.
Stap 5: LattePanda - Installeer Alexa Sample App
DOWNLOAD
De Alexa Sample-app is hier beschikbaar:
github.com/alexa/alexa-avs-sample-app/
Druk op de knop Klonen of Downloaden en download als.zip
Maak een map op c-schijf C:\ALEXA en pak de inhoud van de zip uit zodat de gezipte map met de naam samples direct in de ALEXA-map staat (dwz C:\ALEXA\samples\…)
INSTALLEREN
De officiële volledige instructies voor installatie op Windows vindt u hier:
github.com/alexa/alexa-avs-sample-app/wiki…
Er zijn nogal wat stappen en het duurt even, maar ik merkte dat met Windows alles de eerste keer soepel verliep.
Je hebt een goede teksteditor nodig om sommige configuratiebestanden te bewerken (Kladblok is niet goed omdat de bestanden regeleindes in Linux-stijl hebben). Ik gebruikte Notepad++ dat hier beschikbaar is:
Een paar opmerkingen over de officiële instructies:
Deel 3 - Afhankelijkheden
Mijn Panda is 64-bits, dus ik heb alle 64-bits versies gedownload, maar als je op een 32-bits systeem installeert, moet je de 32-bits versies gebruiken. Opmerking: meng geen 32- en 64-bits versies van de afhankelijkheden.
De getoonde link voor de VLC-mediaspeler brengt je naar de 32-bits versie. Om de 64-bits versie te krijgen, ga naar deze link: https://www.videolan.org/vlc/download-windows.html en selecteer op de downloadknop de pijl en vervolgens Installer voor 64-bits versie.
Voor JDK-installatie gebruikte ik versie:jdk-8u144-windows-x64Voor nodejs gebruikte ik: Windows Installer (.msi) 64 bitVoor Maven:apache-maven-3.5.0-bin.zipVoor OpenSSL gebruikte ik:Win64 OpenSSL v1.1.0f
Deel 5 - Verificatiemethode
Kies 5a - Nodejs-server. Als u een foutmelding krijgt bij het uitvoeren van de opdracht npm, moet u uw nodejs-map toevoegen aan uw path-omgevingsvariabele (in de instructies wordt uitgelegd hoe u dit moet doen).
Deel 6 - De voorbeeld-app uitvoeren
Stel bij het bewerken van het bestand config.json wakeWordAgentEnabled in op true, aangezien we in de volgende sectie een aangepaste wake-word-engine zullen installeren (de wake-word-engine in de voorbeeld-app werkt alleen met Linux).
Als u een foutmelding krijgt bij het uitvoeren van de opdracht mvn, moet u uw maven\bin-map toevoegen aan uw path-omgevingsvariabele.
Wanneer u de app uitvoert, zou u de GUI moeten krijgen die wordt weergegeven in de schermafbeelding. Wanneer u op het pictogram klikt, kunt u met Alexa praten. Dit is de basis Alexa-app - maar we hebben meer nodig dan dit!
De volgende stappen zijn het installeren van een aangepaste wake-word-engine, zodat je gewoon "Alexa" kunt zeggen om te activeren, en ook de mogelijkheid hebt om een aanraaksensor te gebruiken via Arduino-invoer. We moeten de app ook automatisch laten starten bij het opstarten en enkele LED's laten oplichten wanneer Alexa luistert en praat.
Stap 6: LattePanda - Aangepaste WakeWord-engine installeren
WAKEWORD-MOTOR
Met een WakeWord-engine kan Alexa gewekt worden door een gesproken woord (meestal ''Alexa ), in plaats van op een knop te moeten klikken. De voorbeeld-app heeft twee opties voor de WakeWord-engine: Sensory of KITT. AI wake word-engines. implementatie hiervan in de voorbeeld-app werkt echter alleen voor Linux. Voor beide engines gelden ook bepaalde licentievereisten.
Hier zal ik een aangepaste wake-word-engine implementeren die is gebaseerd op de eigen SDK voor spraakherkenning van Windows 10. Dit is dus ook vrij van eventuele aanvullende licentievereisten.
AFHANKELIJKHEDEN INSTALLEREN
Microsoft Speech Platform - Runtime (versie 11)https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32 bit) of x64_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (64 bit)
Microsoft Speech Platform - Runtime-talen (versie 11)
Mijn aangepaste WakeWord-engine is geschreven in C # in Visual Studio 2017. Ik heb hier het uiteindelijke uitvoerbare bestand geleverd en ook de broncode. Als je het zelf wilt compileren, dan heb je ook dit nodig:
Microsoft Speech Platform - Software Development Kit (SDK) (Versie 11) https://www.microsoft.com/en-gb/download/details….|x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (32 bit) of x64_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi 64-bits)
Zet WakeWordPanda.exe (en alexa_run.bat) in de ALEXA-map. Dit programma doet de volgende taken:- Luistert naar ''Alexa'' wake-word- Bewaakt de aanraakinvoersensor- Regelt de BLAUWE en WITTE LED's
Merk op dat ik dit op een andere Windows 10-computer heb ontwikkeld, zodat ik Visual Studio niet op de LattePanda hoefde te installeren, omdat ik de gigabytes niet wilde gebruiken. Ik heb een Arduino Uno, geïnstalleerd met StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) aangesloten op de ontwikkelcomputer zodat ik ook met de Arduino input/outputs kon ontwikkelen. De broncode van Visual Studio is ook bijgevoegd als u deze zelf wilt wijzigen en/of compileren.
DE JAVA-CLIENT WIJZIGEN
De Java Client heeft een paar extra regels nodig die aan de code worden toegevoegd. Dit is om de LED's correct te laten werken:
Wanneer Alexa luistert, wordt een PAUSE_WAKE_WORD_ENGINE-signaal verzonden naar de WakeWord-engine. Ik heb dit signaal gebruikt om te weten wanneer ik de BLAUWE (Alexa-luister-LED) moet inschakelen. Wanneer het RESUME_WAKE_WORD_ENGINE-signaal wordt ontvangen, gaat de blauwe LED uit en gaat de WITTE (Alexa-sprekende LED) aan. De extra code stuurt nog een RESUME_WAKE_WORD_ENGINE-signaal wanneer Alexa stopt met spreken - zodat de WakeWord-engine weet wanneer de witte LED moet worden uitgeschakeld.
Navigeer naar: C:\ALEXA\samples\javaclient\src\main\java\com\amazon\alexa\avs en open AVSController.java in uw teksteditor. Kopieer de code uit het bijgevoegde Extra_Code.txt-bestand. Het moet op twee plaatsen worden ingevoegd:
1. In de functie public void onAlexaSpeechFinished() direct na de instructie: dependDirectiveThread.unblock();
2. In de functie private void handleAudioPlayerDirective(Directive directive) direct voor de instructie: player.handleStop();
Ik heb ook het CONFIRM-signaal opnieuw gebruikt, zodat de WakeWord-engine weet of Alexa heeft gereageerd. Dit is om een time-out van 5 seconden te annuleren die zal optreden als er geen reactie is. Kopieer de code van Extra_Code2.txt en plaats deze op één plaats:
1. In de functiepublic void onAlexaSpeechStarted() direct na de instructie dependDirectiveThread.block();
U moet nu de Java Client opnieuw compileren. Open een opdrachtprompt en ga naar C:\ALEXA\samples\javaclient Voer: mvn install in om te hercompileren.
Als je de Companion Service en Java Alexa-app opstart zoals voorheen, en dan ook dubbelklikt op WakeWordPanda.exe, wacht tot het verbinding maakt, en dan zou je Alexa moeten kunnen activeren door "Alexa" te zeggen.
MICRODOT
Als u de 'USB'-kabel van de MicroDot aansluit op de LattePanda zoals weergegeven in het diagram, en de audiokabel aansluit, zou deze nu volledig functioneel moeten zijn. Het uitspreken van het wake-word of het aanraken van de grill zou Alexa moeten activeren en de blauwe LED's zouden moeten gaan branden. De witte LED's moeten gaan branden als Alexa reageert.
INSTELLING AUTOMATISCH UITVOEREN
In plaats van alle opdrachten handmatig in te voeren om alles op te starten, kunt u het alexa_run.bat-script gebruiken. Deze wacht op een internetverbinding en roept vervolgens de afzonderlijke modules op (companion-service, java-client, wake-word-engine).
De laatste stap is om alles automatisch te laten draaien bij het opstarten:
1. Klik met de rechtermuisknop op auto-run.bat en selecteer snelkoppeling maken.2. Druk op ctrl+R en typ shell:startup. Dit opent de opstartmap.3. Sleep de snelkoppeling die u hebt gemaakt naar de opstartmap.
Alexa wordt nu automatisch uitgevoerd bij het opstarten (het duurt ongeveer 30 seconden om na het opstarten te initialiseren).
Stap 7: MicroDot voor Raspberry Pi
(Als je een Raspberry Pi 3 wilt gebruiken in plaats van een LattePanda).
DOWNLOAD
Download de Alexa Sample-app hier:
Druk op de knop Klonen of Downloaden en download als.zip. Pak het uit zodat de map alexa-ava-sample-app op het bureaublad staat.
INSTALLEREN
Volg hier de officiële volledige instructies (let op: stel zo in dat de map alexa-ava-sample-app op het bureaublad):
github.com/alexa/alexa-avs-sample-app/wiki…
Er zijn tal van handleidingen om dit te doen met een Raspberry Pi op internet. Ik heb dit een paar keer op de Raspberry Pi geïnstalleerd, en geen enkele keer ging het zo soepel als het installeren op WIndows 10 (geen verrassing - Linux krijgt me elke keer). De belangrijkste problemen die ik tegenkwam waren:
1. De audio en microfoon goed laten werken. Zie hier https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… als je ook deze problemen hebt.
2. Problemen met de JDK-versie. Zie 4.3 in de officiële instructies en de opmerking in het pom.xml-bestand waarin wordt gesproken over het overschrijven van de versie bij het uitvoeren van de opdracht mvn exec:exec (dwz ik moest deze schakelaar toevoegen -Dalpn-boot.version=8.1.6.v20151105). Merk op dat deze opdracht is opgenomen in mijn opstartscript (alexa_startup.sh).
3. De Sensory wake-word-engine laten werken (https://github.com/Sensory/alexa-rpi)
Zodra u het allemaal kunt laten werken met de handmatige opdrachten zoals beschreven in de instructies, gaat u verder met de MicroDot-installatie.
MICRODOT-VERBINDING
U kunt de MicroDot niet rechtstreeks op de GPIO aansluiten omdat deze te veel stroom trekt. U hebt nodig: 2x 2N3904 transistoren om de LED's aan te sturen, 1x2K2 en 1x3K3 weerstanden om de spanning van de aanraaksensor te verlagen naar 3,3V (de MicroDot wordt gevoed door de 5V-voeding). Raadpleeg het bijgevoegde schema. Misschien wil je hiervoor een printje maken, maar ik heb deze componenten zojuist op de achterkant van een 8-polige vrouwelijke stekker gemonteerd.
AANGEPASTE WAKKERMOTOR (TOUCH)
Pak de inhoud van de bijgevoegde zip-map uit in de map alexa-avs-sample-app. Er zijn twee bestanden: wake.py - een python-script dat de aangepaste (touch) wake-engine is voor de MicroDot alexa_autostart.sh - een script om alles uit te voeren. Klik met de rechtermuisknop op eigenschappen hiervan en selecteer uitvoeren: iedereen op het tabblad machtigingen.
U moet python hebben geïnstalleerd om de wake-engine uit te voeren. Je hebt ook de GPIO-bibliotheek nodig (https://makezine.com/projects/tutorial-raspberry-p…) Deze zou al geïnstalleerd moeten zijn in de nieuwste versie van Raspbian.
Om alles uit te voeren, typt u in terminal:cd /home/pi/Desktop/alexa-avs-sample-appsudo./alexa_startup.sh
AUTORUN INSTELLEN
Om Alexa zo in te stellen dat het automatisch wordt uitgevoerd bij het opstarten, opent u een terminal en typt u:
cd /home/pi/.config/lxsession/LXDE-pisudo nano autostart
en voeg de regel toe en sla op:
@/home/pi/Desktop/alexa-avs-sample-app/alexa_autostart.sh
Start opnieuw op en de Alexa-app zou automatisch moeten worden uitgevoerd.
Aanbevolen:
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: 8 stappen
Installatie voor externe Bluetooth GPS-provider voor Android-apparaten: deze instructable legt uit hoe u uw eigen externe Bluetooth-compatibele GPS voor uw telefoon kunt maken, wat dan ook voor ongeveer $ 10. Materiaallijst: NEO 6M U-blox GPSHC-05 bluetooth-module Kennis van interface Blutooth Low energy-modulesArdui
Lattepanda-schild: 4 stappen
Lattepanda Shield: Lattepanda, het is een geweldig apparaat voor ontwikkelaars en hobbyisten. Concept Voor mijn project was ik op zoek naar een mini Windows-computer die sensoren kon loggen en opnemen. Dit apparaat zou worden geïnstalleerd en op zijn plaats worden bevestigd. Het grootste probleem is hoe je op afstand
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Systeem voor het bewaken van de luchtkwaliteit voor fijnstofverontreiniging: 4 stappen
Systeem voor monitoring van luchtkwaliteit voor fijnstofverontreiniging: INTRO: 1 In dit project laat ik zien hoe ik een deeltjesdetector bouw met dataweergave, databack-up op SD-kaart en IOT. Visueel geeft een neopixels ringdisplay de luchtkwaliteit aan. 2 Luchtkwaliteit is een steeds belangrijker zorg t
Bereid je Raspberry Pi voor op alles! 7 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Bereid je Raspberry Pi voor op alles!: Hier bij de MakerSpace zijn we dol op de Raspberry Pi! En of we het nu gaan gebruiken om te programmeren, een webserver te hosten of de nieuwste Raspbian-distributie te testen, we bereiden het altijd op dezelfde manier voor. Het is een geweldig startpunt om met de Raspbe te spelen