Taula de continguts:

"MicroDot" per a LattePanda (o Raspberry Pi): 7 passos (amb imatges)
"MicroDot" per a LattePanda (o Raspberry Pi): 7 passos (amb imatges)

Vídeo: "MicroDot" per a LattePanda (o Raspberry Pi): 7 passos (amb imatges)

Vídeo:
Vídeo: MicroDot/MicroPython - Handling dynamic content 2024, Desembre
Anonim
Imatge
Imatge

El MicroDot és un "botó" Alexa casolà dissenyat per connectar-se a un LattePanda o un Raspberry Pi, amb l'aplicació Alexa Sample instal·lada. És un altaveu petit amb LEDs i activació tàctil / vocal, i és ideal per utilitzar-lo en un escriptori o en un cotxe.

* El LattePanda per a aquest projecte va ser facilitat per DFRobot

Pas 1: Visió general del sistema

Visió general del Sistema
Visió general del Sistema

LATTE PANDA

El LattePanda és un petit (aproximadament la mida d’un Raspberry Pi) Windows 10 amb un Arduino integrat per connectar-se al món real. Realment és bastant enginyós - i és un bon substitut del Raspberry Pi - sobretot si (com jo) teniu problemes per controlar Linux.

He instal·lat l'aplicació Alexa Sample al Panda i he implementat el meu propi motor de paraula de vigília basat en l'SDK de reconeixement de veu integrat per Windows.

MICRODOT

El MicroDot consta d’un petit amplificador i altaveu amb una graella sensible al tacte i una matriu de LED blau / blanc. El MicroDot es va dissenyar originalment per col·locar-lo al tauler del meu cotxe per proporcionar la meva solució Alexa al cotxe (per emparellar-la amb el meu projecte anterior: equip estèreo de cotxe habilitat per Alexa). A més de tenir una opció de paraula de vigilància, volia activar el tacte perquè Alexa tindrà dificultats per escoltar la meva paraula de vigília quan la música estigui en veu alta. (Un cop activat, el Panda enviarà un senyal a l'estèreo per baixar el volum mentre Alexa escolta / parla).

RASPBERRY PI

Per a aquells que dominen millor "Raspberry Pi", he descrit al final d'aquest manual sobre com s'interfata el MicroDot amb un Rapsberry Pi 3.

Pas 2: Circuit MicroDot

Circuit MicroDot
Circuit MicroDot
Circuit MicroDot
Circuit MicroDot
Circuit MicroDot
Circuit MicroDot

PARTS

6 resistències SMD 220 x 2 resistències SMD 470R 1 condensador SMD 10 xF 1 x mòdul de sensor tàctil TTP223 (https://www.ebay.com/itm/192097635565)1 x mòdul amplificador PAM8403 3W (https://www.ebay.com/ itm / 221895096190) Potenciòmetre de polze lineal 1 x 10K (https://www.ebay.com/itm/401105807680)1 x 50pF Capacitor de ceràmica 3 x 3 mm LEDs blaus 3 x 3 mm LEDs blancs 1 x 1,7 polzades 4ohm 3W altaveu 1 x cable negre prim de auriculars antics 1 x cable d'extensió USB d'1 m de color negre prim *

CONSTRUCCIÓ

El PCB MicroDot es va fabricar mitjançant mètode de planxa i tòner en taulers d’una sola cara de 0,8 mm de gruix; en aquest gruix es pot tallar aproximadament per donar-hi forma amb tisores afilades i després arxivar-lo fàcilment. Munteu primer tots els components de muntatge superficial.

Cal connectar un cable a la superfície tàctil del sensor, de manera que s’ha de raspar una àrea petita per soldar-la. Vaig trobar que en el seu mode cru, el sensor era massa sensible; funcionava bé, però un cop es va muntar al recinte sovint es va activar de manera falsa a causa de la seva proximitat amb l’altaveu metàl·lic. Vaig posar a terra l’altaveu metàl·lic, cosa que va ajudar una mica, però finalment vaig haver de referir-me al full de dades.

El full de dades TTP223 indica que podeu ajustar la sensibilitat col·locant un condensador (de 0 a 50pf) entre el sensor tàctil i la terra. El sensor funcionava bé amb un condensador de 50 pf. Podeu veure la ubicació d’aquest a la imatge de la següent secció.

S'utilitzen dos cables per connectar el MicroDot al Panda: - un cable negre prim d'un vell parell d'auriculars per connectar l'àudio; - un cable USB prim per connectar-se al GPIO (sensor tàctil / LED). Necessitareu un cable amb 6 connectors separats (5 interns + blindatge). * Tingueu en compte que alguns cables USB barats no tenen un pin / blindatge de terra separat, o que aquests dos es puguin connectar internament (comproveu-ho abans de tallar el cable assegurant-vos que hi hagi continuïtat entre les parts metàl·liques externes del mascle i la femella). endolls, i que no hi hagi continuïtat entre el passador de terra i les parts metàl·liques exteriors).

Utilitzeu les connexions del cable USB: vermell = + 5v, blindatge = GND, negre = sensor tàctil, blanc = LED blanc, verd = blau. En lloc de tallar els carlins i fer-ne un cablejat dur, potser voldreu fer el que he fet i mantingueu els endolls connectats i talleu una secció llarga i una secció curta (diguem 200 mm) i connecteu els dos extrems del cable. D'aquesta manera, la unitat es pot desmuntar. Assegureu-vos de no connectar-hi cap dispositiu USB real ni connectar-lo a un port USB normal.

Pas 3: construcció de MicroDot

Construcció MicroDot
Construcció MicroDot
Construcció MicroDot
Construcció MicroDot
Construcció MicroDot
Construcció MicroDot
Construcció MicroDot
Construcció MicroDot

PARTS IMPRESSIONADES EN 3D

Al fitxer zip adjunt hi ha quatre parts impreses en 3D: 1. Intèrpret principal de MicroDot: imprès en negre PLA2. Base MicroDot: imprès en negre PLA3. Anell LED: imprès en blanc PLA (clar o translúcid pot ser millor per difondre la llum de manera més uniforme) 4. Espaciador de PCB (qualsevol color) situat entre altaveu i PCB.

Els cargols i femelles M2 s’utilitzen per cargolar la base a la carcassa. S’han de fondre tres cargols M2 a les ranures de l’interior de la carcassa. Aquests són bastant petits i és possible que hàgiu de "soldar-los" al lloc amb algun filament addicional.

MATRIX LED

Els LEDs blancs i blaus es munten alternativament a la matriu, tal com es mostra a les imatges. Els cables estan doblegats a 90 graus contra la part inferior del LED i els cables es fonen a l'anell amb un soldador en calent (observeu la polaritat aquí). La part inferior dels LED es limita de manera que quedi plana a la superfície de l'anell.

Els càtodes dels LED estan connectats tots junts amb un anell de filferro i es connecten al pin més baix de la capçalera. La resta de pins de la capçalera han de ser blau / blanc alternatius per a cada LED individual

POSANT-LO EN CONJUNT

La graella es va tallar des d’un suport de paper d’escriptori (a la foto) amb un fil soldat a una vora. Això s’insereix primer a la carcassa i després a la matriu de LED (s’ha d’inserir en un angle tal com es mostra, amb la ranura alineada amb un dels pals de cargol). L'altaveu és el següent (col·loqueu una cinta fina al voltant de la part superior per aïllar-la de la vora del PCB). A continuació, l’espaiador i el PCB només s’assenten a la part superior. Cargoleu la base per mantenir-ho tot junt.

En connectar el cable d’àudio a LattePanda, vaig trobar que necessitava un filtre de bucle de terra d’àudio (https://www.ebay.com/itm/371801191297) per obtenir un bon so. Tingueu en compte que a les fotos faig servir la sortida d’àudio del meu adaptador de vídeo HDMI-VGA, però està bé utilitzar la presa de sortida d’àudio integrada.

També necessitareu un micròfon usb (https://www.ebay.com/itm/332148968227).

Pas 4: el LattePanda

El LattePanda
El LattePanda
El LattePanda
El LattePanda

CONFIGURACIÓ

El Panda ve en models 2G / 32G i 4G / 64G, amb o sense llicència de Windows 10. El model que vaig fer servir era la versió 2G / 32G amb llicència de Windows 10:

Consulteu la documentació oficial per configurar el vostre LattePanda (https://docs.lattepanda.com) Aquí no hi ha res massa complicat, però preneu nota de les instruccions per engegar el vostre Panda (https://docs.lattepanda.com/ content / getStarted / powe …).

Tot semblava que funcionava per primera vegada per a mi (cosa que suposa un bon canvi respecte a les meves experiències de Raspberry Pi).

Una cosa important és que realment necessiteu algun tipus de refrigeració per al Panda. He utilitzat uns dissipadors de calor adhesius a la part superior i inferior (la part inferior s’escalfa especialment).

Aquest diagrama detalla les entrades i sortides d’Arduino: https://docs.lattepanda.com/content/hardware/inputs…. Utilitzarem el conjunt de connectors de 3 pins del costat esquerre per connectar-nos al MicroDot (D9, D10 i D11), així com la presa de sortida d’àudio.

Pas 5: LattePanda: instal·leu l'aplicació Alexa Sample

LattePanda: instal·leu l'aplicació Alexa Sample
LattePanda: instal·leu l'aplicació Alexa Sample

DESCARREGAR

L’aplicació Alexa Sample està disponible aquí:

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

Premeu el botó Clona o Baixa i baixeu-lo com a.zip

Creeu un directori a la unitat c C: / ALEXA i extreu el contingut del zip perquè el directori comprimit anomenat samples quedi directament al directori ALEXA (és a dir, C: / ALEXA / samples / …)

INSTAL·LACIÓ

Les instruccions oficials completes per instal·lar al Windows són aquí:

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

Hi ha bastants passos, i triguen una mica, però he comprovat que amb Windows tot va funcionar sense problemes la primera vegada.

Necessitareu un bon editor de text per editar alguns dels fitxers de configuració (el Bloc de notes no és bo ja que els fitxers tenen terminacions de línia d’estil Linux). He utilitzat Notepad ++ que està disponible aquí:

Algunes notes sobre les instruccions oficials:

Part 3 - Dependències

My Panda té 64 bits, de manera que he descarregat totes les versions de 64 bits, però si esteu instal·lant un sistema de 32 bits, haureu d’utilitzar les versions de 32 bits. Nota: no barregeu les versions de 32 i 64 bits de les dependències.

L’enllaç que es mostra per al reproductor multimèdia VLC us portarà a la versió de 32 bits. Per obtenir la versió de 64 bits, aneu a aquest enllaç: https://www.videolan.org/vlc/download-windows.html i al botó de descàrrega, seleccioneu la fletxa i, a continuació, Instal·lador per a la versió de 64 bits.

Per a la instal·lació de JDK he utilitzat la versió: jdk-8u144-windows-x64 Per a nodejs que he utilitzat: Windows Installer (.msi) de 64 bits Per a Maven: apache-maven-3.5.0-bin.zip Per a OpenSSL he utilitzat: Win64 OpenSSL v1.1.0f

Part 5: mètode d'autenticació

Trieu el servidor 5a - Nodejs. Si apareix un error en executar l'ordre npm, haureu d'afegir el directori nodejs a la variable d'entorn del camí d'accés (s'explica a les instruccions per fer-ho).

Part 6: execució de l'aplicació de mostra

Quan editeu el fitxer config.json, configureu wakeWordAgentEnabled com a true, ja que instal·larem un motor de paraula de despertat personalitzat a la secció següent (el motor de paraula de despertador inclòs a l’aplicació de mostra només funciona amb Linux).

Si apareix un error en executar l'ordre mvn, haureu d'afegir el directori maven / bin a la variable d'entorn del camí d'accés.

Quan executeu l’aplicació, haureu d’obtenir la GUI que es mostra a la captura de pantalla. Quan feu clic a la icona podreu parlar amb Alexa. Aquesta és l'aplicació bàsica Alexa, però necessitarem més que això.

Els passos següents seran instal·lar un motor de paraula personalitzat de manera que pugueu dir "Alexa" per activar-lo i també tingueu l'opció d'utilitzar un sensor tàctil mitjançant l'entrada Arduino. També hem de fer que l'aplicació s'executi automàticament a l'inici i il·luminar alguns LED quan Alexa escolta i parla.

Pas 6: LattePanda: instal·leu el motor WakeWord personalitzat

LattePanda: instal·leu el motor WakeWord personalitzat
LattePanda: instal·leu el motor WakeWord personalitzat

MOTOR WAKEWORD

Un motor de WakeWord permet despertar Alexa amb una paraula parlada (normalment "Alexa"), en lloc de fer clic a un botó. L'aplicació de mostra té dues opcions per al motor de WakeWord: Sensorial o KITT. AI. La implementació d'aquestes aplicacions de mostra, però, només funciona per a Linux. Aquests motors també estan subjectes a determinats requisits de llicència.

Aquí implementaré un motor de paraula de vigília personalitzat que es basa en el SDK de reconeixement de veu propi de Windows 10. Per tant, això també està lliure de requisits de llicència addicionals.

INSTAL·LAR DEPENDÈNCIES

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

Microsoft Speech Platform - Idiomes d'execució (versió 11)

El meu motor personalitzat de WakeWord es va escriure en C # a Visual Studio 2017. He proporcionat l’executable final aquí i també el codi font. Si el voleu compilar vosaltres mateixos, també necessitareu això:

Microsoft Speech Platform - Kit de desenvolupament de programari (SDK) (versió 11) https://www.microsoft.com/en-gb/download/details….|x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (32 bits) o x64_MicrosoftSpeechPlatformSDK / MicrosoftSpeechPlatform 64 bits)

Introduïu WakeWordPanda.exe (i alexa_run.bat) al directori ALEXA. Aquest programa realitza les tasques següents: - Escolta la paraula de vigília "Alexa" - Supervisa el sensor d'entrada tàctil - Controla els LEDS BLAUS i BLANCS

Tingueu en compte que ho vaig desenvolupar en un altre equip Windows 10 de manera que no vaig haver d’instal·lar Visual Studio al LattePanda, ja que no volia fer servir els gigabytes. Vaig connectar un Arduino Uno instal·lat amb StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) a l'ordinador de desenvolupament perquè també pogués desenvolupar-me amb les entrades / sortides d'Arduino. El codi font de Visual Studio també s’adjunta si voleu modificar-lo i / o compilar-lo vosaltres mateixos.

MODifiqueu el client de JAVA

El client Java necessita algunes línies addicionals afegides al codi. Això permet que els LED funcionin correctament:

Quan Alexa escolta, s'envia un senyal PAUSE_WAKE_WORD_ENGINE al motor WakeWord. He utilitzat aquest senyal per saber quan s’ha d’encendre el BLAU (LED d’escolta Alexa). Quan es rep el senyal RESUME_WAKE_WORD_ENGINE, el LED blau s'apaga i el blanc (LED de parla Alexa) s'encén. El codi addicional envia un altre senyal RESUME_WAKE_WORD_ENGINE quan Alexa deixa de parlar, de manera que el motor WakeWord sàpiga quan s’ha d’apagar el LED blanc.

Aneu a: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs i obriu AVSController.java a l'editor de text. Copieu el codi del fitxer Extra_Code.txt adjunt. Cal inserir-lo en dos llocs:

1. A la funció public void onAlexaSpeechFinished () directament després de la sentència: dependentDirectiveThread.unblock ();

2. A la funció private void handleAudioPlayerDirective (directiva directiva) directament abans de la declaració: player.handleStop ();

També he tornat a proposar el senyal CONFIRM per tal que el motor WakeWord sàpiga si Alexa ha respost. Es tracta de cancel·lar un temps d'espera de 5 segons que es produirà si no hi ha resposta. Copieu el codi de Extra_Code2.txt i inseriu-lo en un lloc:

1. A la funció public void onAlexaSpeechStarted () directament després de la declaració dependentDirectiveThread.block ();

Ara heu de tornar a compilar el client Java. Obriu un indicador d'ordres i aneu a C: / ALEXA / samples / javaclient Introduïu: mvn install per tornar a compilar.

Si inicieu l'aplicació Companion Service i Java Alexa com abans, i després feu doble clic a WakeWordPanda.exe, espereu que es connecti i, a continuació, hauríeu de poder activar Alexa dient "Alexa".

MICRODOT

Si connecteu el cable "USB" del MicroDot al LattePanda tal com es mostra al diagrama i connecteu el cable d'àudio, ara hauria de ser completament funcional. Parlar la paraula o tocar la graella hauria d’activar Alexa i s’han d’encendre els LED blaus. Els LED blancs s’haurien d’encendre mentre Alexa respongui.

CONFIGURA CURS AUTOMÀTIC

En lloc d’escriure totes les ordres manualment per iniciar tot, podeu utilitzar l’escriptura alexa_run.bat. Això esperarà una connexió a Internet i, a continuació, invocarà els mòduls separats (servei complementari, client Java, motor de veu despert).

L'últim pas és fer que tot s'executi automàticament a l'inici:

1. Feu clic amb el botó dret a auto-run.bat i seleccioneu crear drecera. Premeu ctrl + R i escriviu shell: startup. Això obrirà la carpeta d’inici. Arrossegueu la drecera que heu creat a la carpeta d'inici.

Ara Alexa s’executarà automàticament a l’inici (es triga uns 30 segons a iniciar-se després de l’inici).

Pas 7: MicroDot per a Raspberry Pi

MicroDot per a Raspberry Pi
MicroDot per a Raspberry Pi
MicroDot per a Raspberry Pi
MicroDot per a Raspberry Pi

(Si voleu utilitzar un Raspberry Pi 3 en lloc d'un LattePanda).

DESCARREGAR

Descarregueu l'aplicació Alexa Sample des d'aquí:

Premeu el botó Clona o Baixa i baixeu-lo com a.zip. Descomprimiu perquè la carpeta alexa-ava-sample-app estigui a l'escriptori.

INSTAL·LACIÓ

Seguiu les instruccions completes oficials aquí (nota: configuració perquè la carpeta alexa-ava-sample-app a l'escriptori):

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

Hi ha un munt de guies per fer-ho amb un Raspberry Pi a l'interior. Ho he instal·lat un parell de vegades al Raspberry Pi, i en cap dels dos temps ha anat tan bé com instal·lar-lo a Windows 10 (no és d'estranyar-me, Linux m'aconsegueix cada cop). Els principals problemes que vaig trobar van ser:

1. Aconseguir que l'àudio i el micròfon funcionin correctament. Consulteu aquí https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… si també teniu aquests problemes.

2. Problemes amb la versió JDK. Consulteu 4.3 a les instruccions oficials i la nota del fitxer pom.xml que parla sobre la substitució de la versió quan s’executa l’ordre mvn exec: exec (és a dir, he hagut d’afegir aquest commutador -Dalpn-boot.version = 8.1.6.v20151105). Tingueu en compte que aquesta ordre s'inclou al meu script d'inici (alexa_startup.sh).

3. Funcionament del motor de paraules Sensible wake (https://github.com/Sensory/alexa-rpi)

Quan pugueu executar-ho tot amb les ordres manuals tal com es descriu a les instruccions, procediu a la instal·lació de MicroDot.

CONNEXIÓ MICRODOT

No podeu connectar directament el MicroDot al GPIO perquè atraurà massa corrent. Necessitareu: 2 transistors 2N3904 per conduir les resistències LED, 1x2K2 i 1x3K3 per deixar caure el voltatge del sensor tàctil a 3,3V (el MicroDot s’alimentarà des de l’alimentació de 5V). Consulteu l’esquema adjunt. És possible que vulgueu fer un PCB per a això, però acabo de muntar aquests components a la part posterior d’un endoll femella de 8 pins.

MOTOR DE DESPERTURA PERSONALITZAT (TOC)

Descomprimiu el contingut de la carpeta zip adjunta a la carpeta alexa-avs-sample-app. Hi ha dos fitxers: wake.py - un script python que és el motor de despertador personalitzat (tàctil) per al MicroDot alexa_autostart.sh - un script per executar-ho tot. Feu clic amb el botó dret a les propietats i seleccioneu executa: qualsevol a la pestanya de permisos.

Necessitareu instal·lar Python per executar el motor de vigília. També necessitareu la biblioteca GPIO (https://makezine.com/projects/tutorial-raspberry-p…) Aquestes ja haurien d’estar instal·lades a l’última versió de Raspbian.

Per executar-ho tot, escriviu al terminal: cd / home / pi / Desktop / alexa-avs-sample-appsudo./alexa_startup.sh

CONFIGURA AUTORUN

Per configurar Alexa perquè s’executi automàticament en arrencar, obriu un terminal i escriviu:

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

i afegiu la línia i deseu:

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

Reinicieu i l'aplicació Alexa s'hauria d'executar automàticament.

Recomanat: