Inhoudsopgave:

"MicroDot" voor LattePanda (of Raspberry Pi) - Ajarnpa
"MicroDot" voor LattePanda (of Raspberry Pi) - Ajarnpa

Video: "MicroDot" voor LattePanda (of Raspberry Pi) - Ajarnpa

Video:
Video: Microdot Safety Insulin Needles - Instructions for use 2024, November
Anonim
Afbeelding
Afbeelding

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

Systeem overzicht
Systeem overzicht

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

MicroDot-circuit
MicroDot-circuit
MicroDot-circuit
MicroDot-circuit
MicroDot-circuit
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

MicroDot-constructie
MicroDot-constructie
MicroDot-constructie
MicroDot-constructie
MicroDot-constructie
MicroDot-constructie
MicroDot-constructie
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

De LattePanda
De LattePanda
De LattePanda
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

LattePanda - Alexa-voorbeeldapp installeren
LattePanda - Alexa-voorbeeldapp installeren

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

LattePanda - Aangepaste WakeWord-engine installeren
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

MicroDot voor Raspberry Pi
MicroDot voor Raspberry Pi
MicroDot voor Raspberry Pi
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: