Indholdsfortegnelse:

"MicroDot" til LattePanda (eller Raspberry Pi): 7 trin (med billeder)
"MicroDot" til LattePanda (eller Raspberry Pi): 7 trin (med billeder)

Video: "MicroDot" til LattePanda (eller Raspberry Pi): 7 trin (med billeder)

Video:
Video: 까지 (Till Then) Till Then 2024, November
Anonim
Billede
Billede

MicroDot er en hjemmelavet Alexa 'knap' designet til at blive forbundet til en LattePanda eller en Raspberry Pi, med Alexa Sample App installeret. Det er en lille højttaler med LED'er og touch/tale -aktivering, og er ideel til brug på et skrivebord eller i en bil.

*LattePanda til dette projekt blev venligt leveret af DFRobot

Trin 1: Systemoversigt

System overblik
System overblik

LATTE PANDA

LattePanda er en lille (omtrent på størrelse med en Raspberry Pi) Windows 10-computer med en indbygget Arduino til grænseflade til den virkelige verden. Det er virkelig ret smart - og er en god erstatning for Raspberry Pi - især hvis du (som jeg) har problemer med at få styr på Linux.

Jeg har installeret Alexa Sample App på Panda og har implementeret min egen wake-word-motor baseret på Windows indbygget talegenkendelse SDK.

MICRODOT

MicroDot består af en lille forstærker og højttaler med en berøringsfølsom grill og blå/hvid LED-array. MicroDot var oprindeligt designet til at blive placeret på instrumentbrættet i min bil for at give min bil-Alexa-løsning (til at parre med mit tidligere projekt-Alexa-aktiveret bilstereo). Udover at have en wake-word-indstilling, ønskede jeg berøringsaktivering, fordi Alexa vil have svært ved at høre mit wake-word, når musikken er højt! (Når den er aktiveret, sender Panda et signal til stereoanlægget for at skrue ned for lydstyrken, mens Alexa lytter/taler).

RASPBERRY PI

For dem, der er mere flydende i "Raspberry Pi", har jeg beskrevet i slutningen af denne Instructable, hvordan man kobler MicroDot til en Rapsberry Pi 3.

Trin 2: MicroDot -kredsløb

MicroDot -kredsløb
MicroDot -kredsløb
MicroDot -kredsløb
MicroDot -kredsløb
MicroDot -kredsløb
MicroDot -kredsløb

DELE

6 x 220R SMD -modstande2 x 470R SMD -modstande1 x 10uF SMD -kondensator1 x TTP223 berøringssensormodul (https://www.ebay.com/itm/192097635565)1 x PAM8403 3W forstærkermodul (https://www.ebay.com/ itm/221895096190) 1 x 10K enkelt lineært tommelfingerpotentiometer (https://www.ebay.com/itm/401105807680)1 x 50pF Keramisk kondensator3 x 3mm Blå lysdioder3 x 3mm hvide lysdioder1 x 1,7 tommer 4ohm 3W højttaler1 x tynd sort kabel fra gamle øretelefoner1 x tynd sort 1m USB forlængerkabel*

KONSTRUKTION

MicroDot -printkortet blev fremstillet ved jern -på -tonermetode på 0,8 mm tyk enkeltsidet plade - med denne tykkelse kan det skæres groft til form med en skarp saks og derefter let arkiveres til form. Monter først alle overflademonteringsdele.

En ledning skal tilsluttes sensorens berøringsoverflade, så et lille område skal skrabes væk for at lodde til. Jeg fandt ud af, at sensoren i sin rå tilstand var alt for følsom - den fungerede fint, men når den var monteret i kabinettet, blev den ofte falsk udløst på grund af dens nærhed til metalhøjttaleren. Jeg jordede metalhøjttaleren - hvilket hjalp noget, men jeg måtte til sidst henvise til databladet.

TTP223 -databladet angiver, at du kan justere følsomheden ved at placere en kondensator (0 til 50pf) mellem berøringsføleren og jorden. Sensoren fungerede fint med en 50pf kondensator. Du kan se placeringen af dette på billedet i det næste afsnit.

To kabler bruges til at slutte MicroDot til Panda:- et tyndt sort kabel fra et gammelt par øretelefoner til tilslutning af lyden- et tyndt USB-kabel blev brugt til at forbinde til GPIO (berøringssensor/lysdioder). Du skal bruge et kabel med 6 separate stik (5 interne + afskærmning). *Vær opmærksom på, at nogle billige USB-kabler ikke har en separat jordstift/skærm, eller at disse to kan være tilsluttet internt (tjek dette, før du skærer dit kabel op ved at sikre, at der er kontinuitet mellem de ydre metaldele af han og hun stik, og at der ikke er kontinuitet mellem jordstiftet og de ydre metaldele).

Brug USB -kabelforbindelserne: rød =+5v, skjold = GND, sort = berøringssensor, hvid = hvide lysdioder, grøn = blå lysdioder. og lad propperne være på, og skær en lang sektion og en kort (f.eks. 200 mm) sektion, og stik de to ender af kablet sammen. På denne måde er enheden aftagelig. Sørg bare for, at du ikke tilslutter nogen egentlige USB -enheder til den, eller tilslutter den til en almindelig USB -port!

Trin 3: MicroDot Construction

MicroDot konstruktion
MicroDot konstruktion
MicroDot konstruktion
MicroDot konstruktion
MicroDot konstruktion
MicroDot konstruktion
MicroDot konstruktion
MicroDot konstruktion

3D -TRYKTE DELE

Der er fire 3D -trykte dele i den vedhæftede zip -fil: 1. Main MicroDot skal - trykt i sort PLA2. MicroDot -base - trykt i sort PLA3. LED -ring - trykt med hvid PLA (klar eller gennemskinnelig kan være bedre for at hjælpe med at sprede lyset mere jævnt) 4. PCB -afstandsstykke - enhver farve - klemt mellem højttaler og printkort.

M2 bolte og møtrikker bruges til at skrue bunden til skallen. Tre M2 bolte skal smeltes i slidserne på indersiden af skallen. Disse er ret små, og du skal muligvis '' lodde '' dem på plads med ekstra filament.

LED ARRAY

De hvide og blå lysdioder monteres skiftevis i arrayet som vist på billederne. Ledningerne bøjer til 90 grader mod bunden af LED'en, og ledningerne smeltes ind i ringen med et varmt loddejern (bemærk polariteten her). Bunden af lysdioderne er lagt ned, så de er flade til overfladen af ringen.

Katoderne på LED'erne er alle forbundet sammen med en ring af ledninger, og disse forbindes til den nederste stift på headeren. De øvrige ben i overskriften skal være skiftevis blå/hvide for hver enkelt LED

LÆGER DET SAMMEN

Grillen blev skåret fra en skrivebords papirholder (billedet) med en tråd loddet til den ene kant. Dette indsættes først i skallen, derefter LED -arrayet (dette skal indsættes i en vinkel som vist, med åbningen på linje med en af skruestolperne). Højttaleren er den næste (læg et tyndt tape rundt om toppen for at isolere den fra kanten af printkortet). Derefter sidder afstandsstykket og printkortet ovenpå. Skru bunden på for at holde det hele sammen.

Da jeg tilsluttede lydkablet til LattePanda, fandt jeg ud af, at jeg var nødt til at bruge et lydjordsløjfe -filter (https://www.ebay.com/itm/371801191297) for at få god lyd. Bemærk, at jeg på billederne bruger lydudgangen fra min HDMI-VGA-videoadapter, men det er fint at bruge det indbyggede lydudgangsstik.

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

Trin 4: LattePanda

LattePanda
LattePanda
LattePanda
LattePanda

OPSÆTNING

Panda kommer i 2G/32G og 4G/64G modeller, med eller uden Windows 10 -licens. Den model, jeg brugte, var 2G/32G-versionen med Windows 10-licens:

Se den officielle dokumentation for opsætning af din LattePanda (https://docs.lattepanda.com) Der er ikke noget for kompliceret her, men noter dig instruktionerne til opstart af din Panda (https://docs.lattepanda.com/ indhold/getStarted/powe …).

Alt syntes at fungere første gang for mig (hvilket er en god ændring fra mine Raspberry Pi -oplevelser).

En vigtig ting er, at du virkelig har brug for en slags afkøling til Pandaen. Jeg brugte nogle køleplader på toppen og bunden (undersiden bliver særlig varm).

Dette diagram beskriver Arduino-indgange og -udgange: https://docs.lattepanda.com/content/hardware/inputs … Vi bruger en række 3-polede stik i venstre side til at oprette forbindelse til MicroDot (D9, D10 og D11), samt lydudgangsstikket.

Trin 5: LattePanda - Installer Alexa Sample App

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

HENT

Alexa Sample App er tilgængelig her:

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

Tryk på knappen Klon eller Download, og download som.zip

Opret en mappe på c -drev C: / ALEXA, og udpak indholdet i zip -filen, så den zip -mappe, der kaldes samples, sidder direkte i ALEXA -biblioteket (dvs. C: / ALEXA / samples / …)

INSTALLERING

De officielle fulde instruktioner til installation af Windows er her:

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

Der er ganske få trin, og det tager lidt tid, men jeg fandt ud af, at alt gik glat med Windows første gang.

Du skal bruge en god tekstredigerer til at redigere nogle af konfigurationsfilerne (Notesblok er ikke godt, da filerne har linjeafslutninger i Linux -stil). Jeg brugte Notepad ++, som er tilgængelig her:

Et par bemærkninger vedrørende de officielle instruktioner:

Del 3 - afhængigheder

Min Panda er 64 bit, så jeg downloadede alle 64 bit versionerne, men hvis du installerer på et 32 bit system, skal du bruge 32 bit versionerne. Bemærk: bland ikke 32 og 64 bit versioner af afhængighederne.

Det viste link til VLC medieafspiller fører dig til en 32 bit version. For at få 64 bit-versionen skal du gå til dette link: https://www.videolan.org/vlc/download-windows.html, og vælg pilen på downloadknappen og derefter Installer til 64bit-version.

Til JDK-installation brugte jeg version: jdk-8u144-windows-x64For nodejs brugte jeg: Windows Installer (.msi) 64 bitFor Maven: apache-maven-3.5.0-bin.zipFor OpenSSL brugte jeg: Win64 OpenSSL v1.1.0f

Del 5 - Godkendelsesmetode

Vælg 5a - Nodejs -server. Hvis du får en fejl under kørsel af npm -kommandoen, skal du føje din nodejs -mappe til din sti -miljøvariabel (det forklares i vejledningen, hvordan du gør dette).

Del 6 - Kørsel af prøve -appen

Når du redigerer filen config.json, skal du indstille wakeWordAgentEnabled til true, da vi installerer en brugerdefineret wake -word -engine i det næste afsnit (wake word -motoren, der er inkluderet i prøve -appen, fungerer kun med Linux).

Hvis du får en fejl under kørsel af mvn -kommandoen, skal du tilføje din maven / bin -mappe til din stavmiljøvariabel.

Når du kører appen, skal du få vist GUI'en på skærmbilledet. Når du klikker på ikonet, vil du kunne tale med Alexa. Dette er den grundlæggende Alexa -app - men vi får brug for mere end dette!

De næste trin vil være at installere en brugerdefineret wake-word-motor, så du bare kan sige "Alexa" for at aktivere og også have mulighed for at bruge en berøringssensor via Arduino-input. Vi er også nødt til at få appen til at køre automatisk ved opstart og tænde nogle lysdioder, når Alexa lytter og taler.

Trin 6: LattePanda - Installer brugerdefineret WakeWord Engine

LattePanda - Installer brugerdefineret WakeWord -motor
LattePanda - Installer brugerdefineret WakeWord -motor

WAKEWORD MOTOR

En WakeWord -motor gør det muligt for Alexa at blive vækket af et talt ord (normalt '' Alexa '') i stedet for at skulle klikke på en knap. Eksempelappen har to muligheder for WakeWord -motoren: Sensory eller KITT. AI wake word -motorer. Implementering af disse i prøve -appen fungerer dog kun til Linux. Begge disse motorer er også underlagt visse licenskrav.

Her vil jeg implementere en brugerdefineret wake word -motor, der er baseret på Windows 10's egen talegenkendelse SDK. Så dette er også fri for yderligere licenskrav.

INSTALLER AFHÆNGIGHEDER

Microsoft Speech Platform - Runtime (Version 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 (version 11)

Min brugerdefinerede WakeWord -motor blev skrevet i C# i Visual Studio 2017. Jeg har leveret den endelige eksekverbare her og også kildekoden. Hvis du vil kompilere det selv, har du også brug for dette:

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

Sæt WakeWordPanda.exe (og alexa_run.bat) i ALEXA -biblioteket. Dette program udfører følgende opgaver:- Lytter efter '' Alexa '' wake-word- Overvåger touch-input-sensoren- Kontrollerer de BLÅ og HVIDE LED'er

Bemærk, at jeg udviklede dette på en anden Windows 10 -computer, så jeg ikke behøvede at installere Visual Studio på LattePanda, da jeg ikke ville bruge Gigabyte. Jeg sluttede en Arduino Uno installeret med StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) til udviklingscomputeren, så jeg også kunne udvikle mig med Arduino input/outputs. Visual Studio -kildekoden er også vedhæftet, hvis du selv vil ændre og/eller kompilere dette.

FORANDR JAVA -KUNDEN

Java -klienten skal tilføje et par ekstra linjer til koden. Dette er for at LED'er kan fungere korrekt:

Når Alexa lytter, sendes et PAUSE_WAKE_WORD_ENGINE -signal til WakeWord -motoren. Jeg brugte dette signal til at vide, hvornår jeg skulle tænde den BLÅ (Alexa lytter -LED). Når signalet RESUME_WAKE_WORD_ENGINE modtages, slukkes den blå LED, og den HVIDE (Alexa talende LED) tændes. Den ekstra kode sender endnu et RESUME_WAKE_WORD_ENGINE -signal, når Alexa holder op med at tale - så WakeWord -motoren ved, hvornår den hvide LED skal slukkes.

Naviger til: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs og åbn AVSController.java i din teksteditor. Kopiér koden fra den vedhæftede fil Extra_Code.txt. Det skal indsættes to steder:

1. I funktionen public void onAlexaSpeechFinished () direkte efter udsagnet: dependDirectiveThread.unblock ();

2. I funktionen private void handleAudioPlayerDirective (direktivdirektiv) direkte før erklæringen: player.handleStop ();

Jeg har også omformuleret CONFIRM-signalet, så WakeWord-motoren ved, om Alexa har reageret. Dette er for at annullere en 5 sekunders timeout, der vil opstå, hvis der ikke er noget svar. Kopiér koden fra Extra_Code2.txt og indsæt den ét sted:

1. I funktionspublic void onAlexaSpeechStarted () direkte efter udsagnet dependDirectiveThread.block ();

Du skal nu genkompilere Java -klienten. Åbn en kommandoprompt, og naviger til C: / ALEXA / samples / javaclient Enter: mvn install for at kompilere igen.

Hvis du starter Companion Service og Java Alexa -appen som før, og derefter også dobbeltklikker på WakeWordPanda.exe, skal du vente på, at den opretter forbindelse, og så skulle du kunne aktivere Alexa ved at sige "Alexa".

MICRODOT

Hvis du slutter MicroDots 'USB' -kabel til LattePanda som vist i diagrammet, og tilslutter lydkablet, skal det nu være fuldt funktionsdygtigt. At tale vågneordet eller røre ved grillen skal aktivere Alexa, og de blå lysdioder skal tændes. De hvide lysdioder skal tændes, når Alexa reagerer.

OPSÆTNING AUTO KØR

I stedet for at indtaste alle kommandoer manuelt for at starte det hele op, kan du bruge alexa_run.bat -scriptet. Dette venter på en internetforbindelse og derefter påberåbe de separate moduler (ledsagertjeneste, java-klient, wake-word engine).

Det sidste trin er at få alt til at køre automatisk ved opstart:

1. Højreklik på auto-run.bat, og vælg Opret genvej. Tryk på ctrl+R, og skriv shell: opstart. Dette åbner startmappen. Træk den genvej, du har oprettet, til startmappen.

Alexa kører nu automatisk ved opstart (det tager cirka 30 sekunder at initialisere efter opstart).

Trin 7: MicroDot til Raspberry Pi

MicroDot til Raspberry Pi
MicroDot til Raspberry Pi
MicroDot til Raspberry Pi
MicroDot til Raspberry Pi

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

HENT

Download Alexa Sample App herfra:

Tryk på knappen Klon eller Download, og download som.zip. Pak den ud, så alexa-ava-sample-app-mappen er på skrivebordet.

INSTALLERING

Følg de officielle fulde instruktioner her (bemærk: opsætning, så alexa-ava-sample-app-mappen på skrivebordet):

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

Der er masser af guider til at gøre dette med en Raspberry Pi på den interne. Jeg har installeret dette et par gange på Raspberry Pi, og det gik hverken så problemfrit som at installere på WIndows 10 (ingen overraskelse - Linux får mig hver gang). De vigtigste problemer, jeg stødte på, var:

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

2. Problemer med JDK -versionen. Se 4.3 i de officielle instruktioner og notatet i pom.xml -filen, der taler om at tilsidesætte versionen, når jeg udfører kommandoen mvn exec: exec (dvs. jeg var nødt til at tilføje denne switch -Dalpn -boot.version = 8.1.6.v20151105). Bemærk, at denne kommando er inkluderet i mit opstartsscript (alexa_startup.sh).

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

Når du kan få det hele til at køre med de manuelle kommandoer som beskrevet i vejledningen, skal du fortsætte med MicroDot -installationen.

MICRODOT -TILSLUTNING

Du kan ikke direkte tilslutte MicroDot til GPIO, fordi den vil trække for meget strøm. Du skal bruge: 2x 2N3904 transisitorer til at drive LED'erne, 1x2K2 og 1x3K3 modstande for at sænke spændingen fra berøringssensoren til 3,3V (MicroDot får strøm fra 5V forsyningen). Se vedlagte diagram. Du vil måske lave et printkort til dette, men jeg har lige monteret disse komponenter på bagsiden af et 8 -pin hunstik.

CUSTOM WAKE MOTOR (TOUCH)

Pak indholdet af den vedhæftede zip-mappe ud i alexa-avs-sample-app-mappen. Der er to filer: wake.py - et python -script, som er den brugerdefinerede (touch) wake engine til MicroDot alexa_autostart.sh - et script til at køre alt. Højreklik på egenskaber på dette, og vælg udfør: alle på fanen Tilladelser.

Du skal installere python for at køre wake -motoren. Du skal også bruge GPIO-biblioteket (https://makezine.com/projects/tutorial-raspberry-p…) Disse skulle allerede være installeret i den nyeste version af Raspbian.

For at køre alt skal du skrive i terminal: cd/home/pi/Desktop/alexa-avs-sample-appsudo./alexa_startup.sh

OPSÆT AUTORUN

For at konfigurere Alexa til at køre automatisk ved opstart skal du åbne en terminal og skrive:

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

og tilføj linjen og gem:

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

Genstart og Alexa-appen skal køre automatisk.

Anbefalede: