Innholdsfortegnelse:

"MicroDot" for LattePanda (eller Raspberry Pi): 7 trinn (med bilder)
"MicroDot" for LattePanda (eller Raspberry Pi): 7 trinn (med bilder)

Video: "MicroDot" for LattePanda (eller Raspberry Pi): 7 trinn (med bilder)

Video:
Video: [MLAB.VN - Học MicroPython] Lập trình LED Button trên ESP8266 với MicroPython #Shorts 2024, November
Anonim
Bilde
Bilde

MicroDot er en hjemmelaget Alexa-knapp som er designet for å være koblet til en LattePanda eller en Raspberry Pi, med Alexa Sample App installert. Det er en liten høyttaler med lysdioder og berøring/taleaktivering, og er ideell for bruk på et skrivebord eller i en bil.

*LattePanda for dette prosjektet ble vennlig levert av DFRobot

Trinn 1: Systemoversikt

Systemoversikt
Systemoversikt

LATTE PANDA

LattePanda er en liten (omtrent på størrelse med en Raspberry Pi) Windows 10-datamaskin med en innebygd Arduino for grensesnitt til den virkelige verden. Den er virkelig ganske fin - og er en god erstatning for Raspberry Pi - spesielt hvis du (som meg) har problemer med å ta tak i Linux.

Jeg har installert Alexa Sample App på Panda, og har implementert min egen wake-word-motor basert på Windows innebygd talegjenkjenning SDK.

MICRODOT

MicroDot består av en liten forsterker og høyttaler med berøringsfølsom grill og blått/hvitt LED-array. MicroDot ble opprinnelig designet for å bli plassert på dashbordet i bilen min for å tilby min bil-løsning i bilen (for å koble sammen med mitt forrige prosjekt-Alexa-aktivert bilstereo). I tillegg til å ha et vekkeord-alternativ, ønsket jeg berøringsaktivering fordi Alexa vil ha vanskelig for å høre mitt vekkeord når musikken er høyt! (Når den er aktivert, sender Panda et signal til stereoanlegget for å skru ned volumet mens Alexa lytter/snakker).

RASPBERRY PI

For de som er mer flytende i "Raspberry Pi", har jeg beskrevet på slutten av denne instruksjonsboken hvordan du kobler MicroDot til en Rapsberry Pi 3.

Trinn 2: MicroDot -krets

MicroDot -krets
MicroDot -krets
MicroDot -krets
MicroDot -krets
MicroDot -krets
MicroDot -krets

DELER

6 x 220R SMD -motstander2 x 470R SMD -motstander1 x 10uF SMD -kondensator1 x TTP223 berøringssensormodul (https://www.ebay.com/itm/192097635565)1 x PAM8403 3W forsterkermodul (https://www.ebay.com/ itm/221895096190) 1 x 10K enkel lineær tommelpotensiometer (https://www.ebay.com/itm/401105807680)1 x 50pF keramisk kondensator3 x 3 mm blå LED 3 x 3 mm hvite lysdioder1 x 1,7 tommer 4ohm 3W høyttaler1 x tynn svart kabel fra gamle øretelefoner 1 x tynn svart 1 m USB -forlengelseskabel*

KONSTRUKSJON

MicroDot PCB ble laget av jern -på -tonermetode på 0,8 mm tykt ensidig brett - med denne tykkelsen kan den kuttes grovt for å forme med en skarp saks og deretter lett arkiveres for å forme. Monter alle overflatemonterte komponenter først.

En ledning må kobles til berøringsflaten på sensoren, så et lite område må skrapes bort for å loddes til. Jeg fant ut at sensoren i sin råmodus var altfor sensitiv - den fungerte bra, men når den var montert i kabinettet, ble den ofte falskt utløst på grunn av dens nærhet til metallhøyttaleren. Jeg jordet metallhøyttaleren - noe som hjalp noe, men jeg måtte til slutt referere til databladet.

Databladet TTP223 sier at du kan justere følsomheten ved å plassere en kondensator (0 til 50pf) mellom berøringssensoren og bakken. Sensoren fungerte fint med en 50pf kondensator. Du kan se plasseringen av dette på bildet i neste avsnitt.

To kabler brukes til å koble MicroDot til Panda:- en tynn svart kabel fra et gammelt par øretelefoner for å koble til lyden- en tynn USB-kabel ble brukt til å koble til GPIO (berøringssensor/lysdioder). Du trenger en kabel med 6 separate kontakter (5 interne + skjerm). *Vær oppmerksom på at noen billige USB-kabler ikke har en separat jordpinne/skjerm, eller at disse to kan kobles innvendig (sjekk dette før du kutter kabelen ved å kontrollere at det er kontinuitet mellom de ytre metalldelene til hannen og hunnen plugger, og at det ikke er kontinuitet mellom jordpinnen og de ytre metalldelene).

Bruk USB -kabeltilkoblingene: rød =+5v, skjerm = GND, svart = berøringssensor, hvit = hvit LED, grønn = blå lysdioder. og hold pluggene på og kutt en lang seksjon og en kort (si 200 mm) seksjon, og plugg de to endene av kabelen sammen. På denne måten er enheten avtakbar. Bare pass på at du ikke kobler noen faktiske USB -enheter til den, eller koble den til en vanlig USB -port!

Trinn 3: MicroDot Construction

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

3D -TRYKTE DELER

Det er fire 3D -trykte deler i den vedlagte zip -filen: 1. Hoved MicroDot -skall - trykt i svart PLA2. MicroDot -base - trykt i svart PLA3. LED -ring - trykt med hvit PLA (klar eller gjennomsiktig kan være bedre for å spre lyset jevnere) 4. PCB -avstandsstykke - hvilken som helst farge - klemt mellom høyttaler og kretskort.

M2 bolter og muttere brukes til å skru basen til skallet. Tre M2 -bolter må smeltes inn i sporene på innsiden av skallet. Disse er ganske små, og du må kanskje '' lodde '' dem på plass med litt ekstra filament.

LED ARRAY

De hvite og blå lysdiodene monteres vekselvis i serien som vist på bildene. Ledningene bøyes til 90 grader mot bunnen av LED -en, og ledningene smeltes inn i ringen med et varmt loddejern (merk polariteten her). Bunnen av lysdiodene er lagt ned slik at de er flate til overflaten av ringen.

Katodene til lysdiodene er alle sammenkoblet med en ring av ledninger, og disse kobles til den nederste tappen på overskriften. De andre pinnene i toppteksten må være vekselvis blå/hvit for hver enkelt LED

SETTE DET SAMMEN

Grillen ble kuttet fra en papirholder (på bildet) med en tråd loddet til den ene kanten. Dette settes inn i skallet først, deretter LED -matrisen (dette må settes inn i en vinkel som vist, med sporet justert med en av skruestolpene). Høyttaleren er den neste (legg litt tynt tape rundt toppen for å isolere den fra kanten av kretskortet). Deretter sitter avstandsstykket og kretskortet på toppen. Skru på sokkelen for å holde alt sammen.

Da jeg koblet lydkabelen til LattePanda fant jeg ut at jeg måtte bruke et lydjordfilter (https://www.ebay.com/itm/371801191297) for å få god lyd. Vær oppmerksom på at på bildene bruker jeg lydutgangen til min HDMI-VGA-videoadapter, men det er greit å bruke den innebygde lydutgangen.

Du trenger også en usb -mikrofon (https://www.ebay.com/itm/332148968227).

Trinn 4: LattePanda

The LattePanda
The LattePanda
The LattePanda
The LattePanda

OPPSETT

Panda kommer i 2G/32G og 4G/64G -modeller, med eller uten Windows 10 -lisens. Modellen jeg brukte var 2G/32G-versjonen med Windows 10-lisens:

Se den offisielle dokumentasjonen for konfigurering av LattePanda (https://docs.lattepanda.com) Det er ikke noe for komplisert her, men vær oppmerksom på instruksjonene for å slå på Panda (https://docs.lattepanda.com/ content/getStarted/powe …).

Alt så ut til å fungere første gang for meg (som er en fin forandring fra mine Raspberry Pi -opplevelser).

En viktig ting er at du virkelig trenger en slags kjøling til Pandaen. Jeg brukte noen kjøleribber på toppen og bunnen (undersiden blir spesielt varm).

Dette diagrammet beskriver Arduino-innganger og -utganger: https://docs.lattepanda.com/content/hardware/inputs … Vi bruker en rekke 3-pinners kontakter på venstre side for å koble til MicroDot (D9, D10 og D11), i tillegg til lydutgangen.

Trinn 5: LattePanda - Installer Alexa Sample App

LattePanda - Installer Alexa Sample App
LattePanda - Installer Alexa Sample App

NEDLASTING

Alexa Sample App er tilgjengelig her:

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

Trykk på knappen Klon eller Last ned og last ned som.zip

Opprett en katalog på c -stasjon C: / ALEXA, og trekk ut innholdet i zip -filen slik at den zippede katalogen kalt samples sitter direkte i ALEXA -katalogen (dvs. C: / ALEXA / samples / …)

INSTALLERER

De offisielle fullstendige instruksjonene for hvordan du installerer på Windows er her:

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

Det er ganske mange trinn, og det tar litt tid, men jeg fant ut at med Windows gikk alt greit første gang.

Du trenger en god tekstredigerer for å redigere noen av konfigurasjonsfilene (Notisblokk er ikke bra ettersom filene har linjeavslutninger i Linux -stil). Jeg brukte Notepad ++ som er tilgjengelig her:

Noen få notater angående de offisielle instruksjonene:

Del 3 - Avhengigheter

Min Panda er 64 bit, så jeg lastet ned alle 64 biters versjoner, men hvis du installerer på et 32 biters system må du bruke 32 biters versjoner. Merk: ikke bland 32- og 64 -biters versjoner av avhengighetene.

Koblingen som vises for VLC mediespiller, tar deg til 32 -biters versjon. For å få 64-biters versjon, gå til denne lenken: https://www.videolan.org/vlc/download-windows.html og på nedlastingsknappen, velg pilen og deretter Installer for 64bit versjon.

For JDK installasjon brukte jeg versjon: jdk-8u144-windows-x64 For nodejs jeg brukte: Windows Installer (.msi) 64 bit For Maven: apache-maven-3.5.0-bin.zip For OpenSSL jeg brukte: Win64 OpenSSL v1.1.0f

Del 5 - Autentiseringsmetode

Velg 5a - Nodejs -server. Hvis du får en feil når du kjører npm -kommandoen, må du legge til nodejs -katalogen din i stavmiljøvariabelen (det er forklart i instruksjonene hvordan du gjør dette).

Del 6 - Kjøre prøve -appen

Når du redigerer config.json -filen, setter du wakeWordAgentEnabled til true, ettersom vi vil installere en tilpasset wake -word -motor i den neste delen (wake word -motoren som er inkludert i prøve -appen fungerer bare med Linux).

Hvis du får en feil under kjøring av mvn -kommandoen, må du legge til katalogen maven / bin i stasjonsmiljøvariabelen.

Når du kjører appen, bør du få GUI vist på skjermbildet. Når du klikker på ikonet vil du kunne snakke med Alexa. Dette er den grunnleggende Alexa -appen - men vi trenger mer enn dette!

De neste trinnene vil være å installere en tilpasset wake-word-motor, slik at du bare kan si "Alexa" for å aktivere, og også ha muligheten til å bruke en berøringssensor via Arduino-inngang. Vi må også få appen til å kjøre automatisk ved oppstart, og tenne noen lysdioder når Alexa lytter og snakker.

Trinn 6: LattePanda - Installer tilpasset WakeWord -motor

LattePanda - Installer tilpasset WakeWord -motor
LattePanda - Installer tilpasset WakeWord -motor

WAKEWORD MOTOR

En WakeWord -motor lar Alexa vekkes av et muntlig ord (vanligvis "Alexa"), i stedet for å måtte klikke på en knapp. Eksempelappen har to alternativer for WakeWord -motoren: Sensory eller KITT. AI wake word -motorer. Implementering for disse i prøve -appen fungerer imidlertid bare for Linux. Begge disse motorene er også underlagt visse lisenskrav.

Her vil jeg implementere en tilpasset wake word -motor som er basert på Windows 10s egen talegjenkjenning SDK. Så dette er også fritt for ytterligere lisenskrav.

INSTALLER AVHENGIGHETER

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

Microsoft Speech Platform-Runtime Languages (versjon 11)

Min tilpassede WakeWord -motor ble skrevet i C# i Visual Studio 2017. Jeg har levert den endelige kjørbare filen her og også kildekoden. Hvis du vil kompilere det selv, trenger du også dette:

Microsoft Speech Platform - Software Development Kit (SDK) (versjon 11) https://www.microsoft.com/en-gb/download/details….|x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (32 bit) eller x64_MicrosoftSpeechPlatformSDK / MicrosoftSpeechPlatform 64 bit)

Sett WakeWordPanda.exe (og alexa_run.bat) i ALEXA -katalogen. Dette programmet utfører følgende oppgaver:- Lytter etter '' Alexa '' vekkeord- Overvåker berøringsinngangssensoren- Kontrollerer de BLÅ og HVITE LED-lampene

Vær oppmerksom på at jeg utviklet dette på en annen Windows 10 -datamaskin, slik at jeg ikke trengte å installere Visual Studio på LattePanda, siden jeg ikke ønsket å bruke opp gigabyte. Jeg koblet en Arduino Uno installert med StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) til utviklingsdatamaskinen slik at jeg også kunne utvikle meg med Arduino inngang/utganger. Visual Studio -kildekoden er også vedlagt hvis du vil endre og/eller kompilere dette selv.

ENDRE JAVA -KUNDEN

Java -klienten trenger noen ekstra linjer lagt til koden. Dette er for at LED -lampene skal fungere korrekt:

Når Alexa lytter, sendes et PAUSE_WAKE_WORD_ENGINE -signal til WakeWord -motoren. Jeg brukte dette signalet til å vite når jeg skulle slå på den BLÅ (Alexa lytter -LED). Når RESUME_WAKE_WORD_ENGINE -signalet mottas, slås den blå LED -en av, og den HVITE (Alexa -talende LED -lampen) slås på. Den ekstra koden sender et nytt RESUME_WAKE_WORD_ENGINE -signal når Alexa slutter å snakke - slik at WakeWord -motoren vet når den hvite LED -en skal slås av.

Naviger til: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs og åpne AVSController.java i tekstredigereren. Kopier koden fra Extra_Code.txt -filen som er vedlagt. Den må settes inn på to steder:

1. I funksjonen public void onAlexaSpeechFinished () rett etter setningen: dependDirectiveThread.unblock ();

2. I funksjonen private void handleAudioPlayerDirective (direktivdirektiv) rett før uttalelsen: player.handleStop ();

Jeg har også planlagt CONFIRM-signalet slik at WakeWord-motoren vet om Alexa har svart. Dette er for å avbryte en 5 sekunders timeout som oppstår hvis det ikke er noe svar. Kopier koden fra Extra_Code2.txt og sett den inn på ett sted:

1. I functionpublic void onAlexaSpeechStarted () rett etter setningen dependDirectiveThread.block ();

Du må nå kompilere Java -klienten på nytt. Åpne en ledetekst og naviger til C: / ALEXA / samples / javaclient Enter: mvn install for å kompilere på nytt.

Hvis du starter Companion Service og Java Alexa -appen som før, og deretter også dobbeltklikker på WakeWordPanda.exe, vent på at den skal koble seg til, og så bør du kunne aktivere Alexa ved å si "Alexa".

MICRODOT

Hvis du kobler MicroDots USB -kabel til LattePanda som vist på diagrammet, og kobler til lydkabelen, skal den nå være fullt funksjonell. Å snakke våkneordet eller berøre grillen bør aktivere Alexa og de blå LED-ene skal lyse. De hvite lysdiodene skal tennes når Alexa reagerer.

SETUP AUTO RUN

I stedet for å skrive inn alle kommandoene manuelt for å starte alt, kan du bruke alexa_run.bat -skriptet. Dette vil vente på en internettforbindelse, og deretter påkalle de separate modulene (ledsagertjeneste, java-klient, wake-word-motor).

Det siste trinnet er å få alt til å kjøre automatisk ved oppstart:

1. Høyreklikk på auto-run.bat og velg opprett snarvei. Trykk ctrl+R og skriv shell: oppstart. Dette vil åpne oppstartsmappen. Dra snarveien du opprettet til oppstartsmappen.

Alexa kjører nå automatisk ved oppstart (det tar omtrent 30 sekunder å initialisere etter oppstart).

Trinn 7: MicroDot for Raspberry Pi

MicroDot for Raspberry Pi
MicroDot for Raspberry Pi
MicroDot for Raspberry Pi
MicroDot for Raspberry Pi

(Hvis du vil bruke en Raspberry Pi 3 i stedet for en LattePanda).

NEDLASTING

Last ned Alexa Sample App herfra:

Trykk på knappen Klon eller Last ned og last ned som.zip. Pakk ut slik at alexa-ava-sample-app-mappen er på skrivebordet.

INSTALLERER

Følg de offisielle fullstendige instruksjonene her (merk: konfigurering slik at alexa-ava-sample-app-mappen på skrivebordet):

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

Det er mange guider for å gjøre dette med en Raspberry Pi på internen. Jeg har installert dette et par ganger på Raspberry Pi, og det gikk ikke like jevnt som å installere på WIndows 10 (ingen overraskelse - Linux får meg hver gang). De viktigste problemene jeg møtte var:

1. Få lyden og mikrofonen til å fungere skikkelig. Se her https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… hvis du også har disse problemene.

2. Problemer med JDK -versjonen. Se 4.3 i de offisielle instruksjonene, og notatet i pom.xml -filen som snakker om å overstyre versjonen når jeg utfører kommandoen mvn exec: exec (dvs. jeg måtte legge til denne bryteren -Dalpn -boot.version = 8.1.6.v20151105). Vær oppmerksom på at denne kommandoen er inkludert i oppstartsskriptet mitt (alexa_startup.sh).

3. Få Sensory wake word-motoren til å fungere (https://github.com/Sensory/alexa-rpi)

Når du får alt i gang med de manuelle kommandoene som beskrevet i instruksjonene, fortsetter du med MicroDot -installasjonen.

MICRODOT -TILKOBLING

Du kan ikke koble MicroDot direkte til GPIO fordi den vil trekke for mye strøm. Du trenger: 2 x 2N3904 transisitorer for å drive lysdioder, 1x2K2 og 1x3K3 motstander for å redusere spenningen fra berøringssensoren til 3,3V (MicroDot får strøm fra 5V forsyningen). Se vedlagte diagram. Du vil kanskje lage en PCB for dette, men jeg har nettopp montert disse komponentene på baksiden av en 8 -pinners hunnkontakt.

CUSTOM WAKE ENGINE (TOUCH)

Pakk ut innholdet i den vedlagte zip-mappen til alexa-avs-sample-app-mappen. Det er to filer: wake.py - et python -script som er den egendefinerte (touch) wake -motoren for MicroDot alexa_autostart.sh - et script for å kjøre alt. Høyreklikk egenskaper på dette, og velg kjør: alle på kategorien tillatelser.

Du trenger python installert for å kjøre wake -motoren. Du trenger også GPIO-biblioteket (https://makezine.com/projects/tutorial-raspberry-p…) Disse bør allerede være installert i den siste versjonen av Raspbian.

For å kjøre alt, skriv inn terminal: cd/home/pi/Desktop/alexa-avs-sample-appsudo./alexa_startup.sh

SETT OPP AUTORUN

For å konfigurere Alexa til å kjøre automatisk ved oppstart, åpner du en terminal og skriver:

cd /home/pi/.config/lxsession/LXDE-pisudo nano autostart

og legg til linjen og lagre:

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

Start på nytt og Alexa-appen skal kjøres automatisk.

Anbefalt: