Tabla de contenido:

"MicroDot" para LattePanda (o Raspberry Pi): 7 pasos (con imágenes)
"MicroDot" para LattePanda (o Raspberry Pi): 7 pasos (con imágenes)

Video: "MicroDot" para LattePanda (o Raspberry Pi): 7 pasos (con imágenes)

Video:
Video: MicroDot/MicroPython - Handling dynamic content 2024, Noviembre
Anonim
Imagen
Imagen

El MicroDot es un 'botón' casero de Alexa diseñado para conectarse a un LattePanda o una Raspberry Pi, con la aplicación de muestra de Alexa instalada. Es un pequeño altavoz con LED y activación táctil / por voz, y es ideal para usar en una computadora de escritorio o en un automóvil.

* El LattePanda para este proyecto fue amablemente proporcionado por DFRobot

Paso 1: descripción general del sistema

Resumen del sistema
Resumen del sistema

LATTE PANDA

El LattePanda es una computadora pequeña (aproximadamente del tamaño de una Raspberry Pi) con Windows 10 con un Arduino incorporado para interactuar con el mundo real. Realmente es bastante ingenioso, y es un buen reemplazo para la Raspberry Pi, especialmente si usted (como yo) tiene problemas para familiarizarse con Linux.

He instalado la aplicación de muestra de Alexa en Panda y he implementado mi propio motor de palabras de activación basado en el SDK de reconocimiento de voz integrado en Windows.

MICROPUNTO

El MicroDot consta de un pequeño amplificador y un altavoz con una rejilla sensible al tacto y una matriz de LED azul / blanco. El MicroDot fue diseñado originalmente para colocarse en el tablero de mi automóvil para proporcionar mi solución de Alexa en el automóvil (para emparejar con mi proyecto anterior: estéreo de automóvil habilitado para Alexa). Además de tener una opción de palabra de activación, quería activación táctil porque Alexa tendrá dificultades para escuchar mi palabra de activación cuando la música esté alta. (Una vez activado, el Panda enviará una señal al estéreo para bajar el volumen mientras Alexa escucha / habla).

FRAMBUESA PI

Para aquellos que tienen más fluidez en "Raspberry Pi", he descrito al final de este Instructable cómo conectar el MicroDot con un Rapsberry Pi 3.

Paso 2: circuito MicroDot

Circuito MicroDot
Circuito MicroDot
Circuito MicroDot
Circuito MicroDot
Circuito MicroDot
Circuito MicroDot

PARTES

6 resistencias SMD 220R, 2 resistencias SMD 470R, 1 condensador SMD de 10 uF, 1 módulo de sensor táctil TTP223 (https://www.ebay.com/itm/192097635565), 1 módulo amplificador PAM8403 de 3 W (https://www.ebay.com/ itm / 221895096190) 1 potenciómetro de pulgar lineal simple de 10 K (https://www.ebay.com/itm/401105807680) 1 condensador de cerámica de 50 pF 3 LED azules de 3 mm 3 LED blancos de 3 mm 1 altavoz de 4 ohm 3 W de 1,7 pulg. Auriculares antiguos 1 x cable de extensión USB negro fino de 1 m *

CONSTRUCCIÓN

La PCB MicroDot se fabricó mediante el método de hierro sobre tóner en una placa de una cara de 0,8 mm de grosor; con este grosor, se puede cortar aproximadamente para darle forma con tijeras afiladas y luego limar fácilmente para darle forma. Primero monte todos los componentes de montaje en superficie.

Es necesario conectar un cable a la superficie táctil del sensor, por lo que es necesario raspar un área pequeña para soldar. Descubrí que en su modo sin procesar, el sensor era demasiado sensible; funcionaba bien, pero una vez que se montaba en el gabinete, a menudo se activaba en falso debido a su proximidad al altavoz de metal. Conecté a tierra el altavoz de metal, lo que ayudó un poco, pero finalmente tuve que consultar la hoja de datos.

La hoja de datos del TTP223 establece que puede ajustar la sensibilidad colocando un capacitor (0 a 50pf) entre el sensor táctil y tierra. El sensor funcionó bien con un condensador de 50pf. Puede ver la ubicación de este en la imagen de la siguiente sección.

Se usan dos cables para conectar el MicroDot al Panda: - un cable negro delgado de un par de auriculares viejos para conectar el audio - se usó un cable USB delgado para conectar al GPIO (sensor táctil / LED). Necesitará un cable con 6 conectores separados (5 internos + blindaje). * Tenga en cuenta que algunos cables USB baratos no tienen un pin / blindaje de tierra separado, o estos dos pueden estar conectados internamente (verifique esto antes de cortar el cable asegurándose de que haya continuidad entre las partes metálicas exteriores del macho y la hembra enchufes, y que no haya continuidad entre la clavija de tierra y las partes metálicas exteriores).

Use las conexiones del cable USB: rojo = + 5v, blindaje = GND, negro = sensor táctil, blanco = LED blancos, verde = LED azules En lugar de simplemente cortar los pugs y cablearlos, es posible que desee hacer lo que hice y mantenga los enchufes y corte una sección larga y una sección corta (digamos 200 mm), y conecte los dos extremos del cable juntos. De esta forma la unidad es desmontable. ¡Solo asegúrese de no conectar ningún dispositivo USB real o conectarlo a un puerto USB normal!

Paso 3: Construcción MicroDot

Construcción MicroDot
Construcción MicroDot
Construcción MicroDot
Construcción MicroDot
Construcción MicroDot
Construcción MicroDot
Construcción MicroDot
Construcción MicroDot

PIEZAS IMPRESAS EN 3D

Hay cuatro partes impresas en 3D en el archivo zip adjunto: 1. Carcasa principal MicroDot: impresa en PLA2 negro. Base MicroDot - impresa en PLA3 negro. Anillo de LED: impreso en PLA blanco (transparente o translúcido puede ser mejor para ayudar a difundir la luz de manera más uniforme) 4. Espaciador de PCB, de cualquier color, intercalado entre el altavoz y el PCB.

Se utilizan pernos y tuercas M2 para atornillar la base a la carcasa. Es necesario fundir tres pernos M2 en las ranuras del interior de la carcasa. Estos son bastante pequeños y es posible que deba "soldarlos" en su lugar con un poco de filamento adicional.

ARRAY LED

Los LED blanco y azul se montan en la matriz alternativamente como se muestra en las imágenes. Los cables se doblan a 90 grados contra la parte inferior del LED y los cables se funden en el anillo con un soldador caliente (observe la polaridad aquí). La parte inferior de los LED se coloca hacia abajo para que queden planos con respecto a la superficie del anillo.

Los cátodos de los LED están todos conectados entre sí con un anillo de cable y estos se conectan al pin más inferior del encabezado. Los otros pines del encabezado deben alternarse entre azul y blanco para cada LED individual

PONIENDO TODO JUNTO

La parrilla se cortó de un soporte de papel de escritorio (en la imagen) con un alambre soldado a un borde. Esto se inserta primero en la carcasa, luego en la matriz de LED (esto debe insertarse en un ángulo como se muestra, con la ranura alineada con uno de los postes de tornillo). El altavoz es el siguiente (coloque un poco de cinta fina alrededor de la parte superior para aislarlo del borde de la PCB). Luego, el espaciador y la PCB simplemente se colocan en la parte superior. Atornille la base para mantenerlo todo junto.

Al conectar el cable de audio al LattePanda, descubrí que necesitaba usar un filtro de bucle de tierra de audio (https://www.ebay.com/itm/371801191297) para obtener un buen sonido. Tenga en cuenta que en las fotos utilizo la salida de audio de mi adaptador de video HDMI-VGA, pero está bien usar el conector de salida de audio integrado.

También necesitará un micrófono USB (https://www.ebay.com/itm/332148968227).

Paso 4: El LattePanda

El LattePanda
El LattePanda
El LattePanda
El LattePanda

CONFIGURACIÓN

El Panda viene en modelos 2G / 32G y 4G / 64G, con o sin licencia de Windows 10. El modelo que utilicé fue la versión 2G / 32G con licencia de Windows 10:

Consulte la documentación oficial para configurar su LattePanda (https://docs.lattepanda.com) No hay nada demasiado complicado aquí, pero tome nota de las instrucciones para encender su Panda (https://docs.lattepanda.com/ content / getStarted / powe…).

Todo pareció funcionar a la primera para mí (lo cual es un cambio agradable con respecto a mis experiencias con Raspberry Pi).

Una cosa importante es que realmente necesitas algún tipo de enfriamiento para el Panda. Usé algunos disipadores de calor adhesivos en la parte superior e inferior (la parte inferior se calienta particularmente).

Este diagrama detalla las entradas y salidas de Arduino: https://docs.lattepanda.com/content/hardware/inputs … Usaremos la matriz de conectores de 3 pines en el lado izquierdo para conectar al MicroDot (D9, D10 y D11), así como la toma de salida de audio.

Paso 5: LattePanda - Instale la aplicación de muestra de Alexa

LattePanda - Instalar la aplicación de muestra de Alexa
LattePanda - Instalar la aplicación de muestra de Alexa

DESCARGAR

La aplicación de muestra de Alexa está disponible aquí:

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

Presione el botón Clonar o Descargar y descargue como.zip

Cree un directorio en la unidad c C: / ALEXA y extraiga el contenido del zip para que el directorio comprimido llamado samples se encuentre directamente en el directorio ALEXA (es decir, C: / ALEXA / samples \…)

INSTALAR

Las instrucciones completas oficiales sobre cómo instalar en Windows están aquí:

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

Hay bastantes pasos y lleva un poco de tiempo, pero descubrí que con Windows todo salió bien a la primera.

Necesitará un buen editor de texto para editar algunos de los archivos de configuración (el Bloc de notas no es bueno ya que los archivos tienen terminaciones de línea de estilo Linux). Usé Notepad ++ que está disponible aquí:

Algunas notas sobre las instrucciones oficiales:

Parte 3 - Dependencias

Mi Panda es de 64 bits, así que descargué todas las versiones de 64 bits, pero si está instalando en un sistema de 32 bits, deberá utilizar las versiones de 32 bits. Nota: no mezcle versiones de 32 y 64 bits de las dependencias.

El enlace que se muestra para el reproductor multimedia VLC lo llevará a la versión de 32 bits. Para obtener la versión de 64 bits, vaya a este enlace: https://www.videolan.org/vlc/download-windows.html y en el botón de descarga, seleccione la flecha y luego el Instalador para la versión de 64 bits.

Para la instalación de JDK utilicé la versión: jdk-8u144-windows-x64 Para nodejs utilicé: Windows Installer (.msi) 64 bit Para Maven: apache-maven-3.5.0-bin.zip Para OpenSSL utilicé: Win64 OpenSSL v1.1.0f

Parte 5 - Método de autenticación

Elija 5a - servidor Nodejs. Si obtiene un error al ejecutar el comando npm, entonces debe agregar su directorio nodejs a la variable de entorno de su ruta (se explica en las instrucciones cómo hacerlo).

Parte 6: ejecución de la aplicación de muestra

Al editar el archivo config.json, establezca wakeWordAgentEnabled en verdadero, ya que instalaremos un motor de palabras de activación personalizado en la siguiente sección (el motor de palabras de activación incluido en la aplicación de muestra solo funciona con Linux).

Si obtiene un error al ejecutar el comando mvn, entonces debe agregar su directorio maven / bin a la variable de entorno de su ruta.

Cuando ejecute la aplicación, debería obtener la GUI que se muestra en la captura de pantalla. Al hacer clic en el icono, podrá hablar con Alexa. Esta es la aplicación básica de Alexa, ¡pero necesitaremos más que esto!

Los siguientes pasos serán instalar un motor de palabras de activación personalizado para que pueda simplemente decir "Alexa" para activar, y también tener la opción de usar un sensor táctil a través de la entrada Arduino. También necesitamos hacer que la aplicación se ejecute automáticamente al inicio y encender algunos LED cuando Alexa está escuchando y hablando.

Paso 6: LattePanda - Instale el motor WakeWord personalizado

LattePanda - Instalar motor WakeWord personalizado
LattePanda - Instalar motor WakeWord personalizado

MOTOR WAKEWORD

Un motor WakeWord permite que Alexa se despierte con una palabra hablada (generalmente "Alexa"), en lugar de tener que hacer clic en un botón. La aplicación de muestra tiene dos opciones para el motor WakeWord: Sensorial o KITT. AI motores de palabras de activación. Sin embargo, la implementación de estos en la aplicación de muestra solo funciona para Linux Ambos motores también están sujetos a ciertos requisitos de licencia.

Aquí implementaré un motor de palabras de activación personalizado que se basa en el propio SDK de reconocimiento de voz de Windows 10. Por lo tanto, esto también está libre de requisitos de licencia adicionales.

INSTALAR DEPENDENCIAS

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

Plataforma de voz de Microsoft: idiomas en tiempo de ejecución (versión 11)

Mi motor WakeWord personalizado se escribió en C # en Visual Studio 2017. He proporcionado el ejecutable final aquí y también el código fuente. Si desea compilarlo usted mismo, también necesitará esto:

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

Coloque WakeWordPanda.exe (y alexa_run.bat) en el directorio ALEXA. Este programa realiza las siguientes tareas: - Escucha la palabra de activación '' Alexa - Supervisa el sensor de entrada táctil - Controla los LED AZUL y BLANCO

Tenga en cuenta que desarrollé esto en otra computadora con Windows 10 para no tener que instalar Visual Studio en LattePanda, ya que no quería usar los Gigabytes. Conecté un Arduino Uno instalado con StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) a la computadora de desarrollo para poder desarrollar también con las entradas / salidas de Arduino. El código fuente de Visual Studio también se adjunta si desea modificarlo y / o compilarlo usted mismo.

MODIFICAR EL CLIENTE JAVA

El cliente de Java necesita algunas líneas adicionales agregadas al código. Esto es para permitir que los LED funcionen correctamente:

Cuando Alexa está escuchando, se envía una señal PAUSE_WAKE_WORD_ENGINE al motor WakeWord. Usé esta señal para saber cuándo encender el AZUL (LED de escucha de Alexa). Cuando se recibe la señal RESUME_WAKE_WORD_ENGINE, el LED azul se apaga y el BLANCO (LED que habla Alexa) se enciende. El código adicional envía otra señal RESUME_WAKE_WORD_ENGINE cuando Alexa deja de hablar, para que el motor WakeWord sepa cuándo apagar el LED blanco.

Vaya a: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs y abra AVSController.java en su editor de texto. Copie el código del archivo Extra_Code.txt adjunto. Debe insertarse en dos lugares:

1. En la función public void onAlexaSpeechFinished () directamente después de la declaración:pendentDirectiveThread.unblock ();

2. En la función private void handleAudioPlayerDirective (directiva directiva) directamente antes de la declaración: player.handleStop ();

También he rediseñado la señal CONFIRM para que el motor WakeWord sepa si Alexa ha respondido. Esto es para cancelar un tiempo de espera de 5 segundos que se producirá si no hay respuesta. Copie el código de Extra_Code2.txt e insértelo en un solo lugar:

1. En el functionpublic void onAlexaSpeechStarted () directamente después de la declaraciónpendentDirectiveThread.block ();

Ahora necesita volver a compilar el cliente Java. Abra un símbolo del sistema y navegue hasta C: / ALEXA / samples / javaclient Ingrese: mvn install para volver a compilar.

Si inicia el servicio Companion y la aplicación Java Alexa como antes, y luego también hace doble clic en WakeWordPanda.exe, espere a que se conecte, y luego debería poder activar Alexa diciendo "Alexa".

MICROPUNTO

Si conecta el cable 'USB' del MicroDot al LattePanda como se muestra en el diagrama, y conecta el cable de audio, ahora debería ser completamente funcional. Hablar la palabra de activación o tocar la parrilla debería activar a Alexa y los LED azules deberían encenderse. Los LED blancos deberían encenderse cuando Alexa responde.

CONFIGURACIÓN DE EJECUCIÓN AUTOMÁTICA

En lugar de escribir todos los comandos manualmente para iniciar todo, puede usar el script alexa_run.bat. Esto esperará una conexión a Internet y luego invocará los módulos separados (servicio complementario, cliente java, motor de palabras de activación).

El último paso es hacer que todo se ejecute automáticamente al inicio:

1. Haga clic con el botón derecho en auto-run.bat y seleccione crear acceso directo. Presione ctrl + R y escriba shell: startup. Esto abrirá la carpeta de inicio. Arrastre el acceso directo que creó a la carpeta de inicio.

Alexa ahora se ejecutará automáticamente al iniciarse (se tarda unos 30 segundos en inicializarse después del inicio).

Paso 7: MicroDot para Raspberry Pi

MicroDot para Raspberry Pi
MicroDot para Raspberry Pi
MicroDot para Raspberry Pi
MicroDot para Raspberry Pi

(Si desea utilizar una Raspberry Pi 3 en lugar de una LattePanda).

DESCARGAR

Descargue la aplicación de muestra de Alexa desde aquí:

Presione el botón Clonar o Descargar y descargue como.zip. Descomprima para que la carpeta alexa-ava-sample-app esté en el escritorio.

INSTALAR

Siga las instrucciones oficiales completas aquí (nota: configure para que la carpeta alexa-ava-sample-app en el escritorio):

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

Hay muchas guías para hacer esto con una Raspberry Pi en el Internet. He instalado esto un par de veces en la Raspberry Pi, y en ninguna de las dos ocasiones fue tan sencillo como instalarlo en Windows 10 (no es de extrañar, Linux me atrapa todo el tiempo). Los principales problemas que encontré fueron:

1. Hacer que el audio y el micrófono funcionen correctamente. Consulte aquí https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… si también tiene estos problemas.

2. Problemas con la versión JDK. Consulte 4.3 en las instrucciones oficiales y la nota en el archivo pom.xml que habla de anular la versión al ejecutar el comando mvn exec: exec (es decir, tuve que agregar este interruptor -Dalpn-boot.version = 8.1.6.v20151105). Tenga en cuenta que este comando está incluido en mi secuencia de comandos de inicio (alexa_startup.sh).

3. Hacer que funcione el motor de palabras de activación sensorial (https://github.com/Sensory/alexa-rpi)

Una vez que pueda ejecutarlo todo con los comandos manuales como se describe en las instrucciones, continúe con la instalación de MicroDot.

CONEXIÓN MICRODOT

No puede conectar directamente el MicroDot al GPIO porque consumirá demasiada corriente. Necesitará: 2 transistores 2N3904 para impulsar los LED, resistencias 1x2K2 y 1x3K3 para reducir el voltaje del sensor táctil a 3.3V (el MicroDot se alimentará con la fuente de 5V). Consulte el diagrama adjunto. Es posible que desee hacer una PCB para esto, pero acabo de montar estos componentes en la parte posterior de un enchufe hembra de 8 pines.

MOTOR DE DESPERTAR PERSONALIZADO (TOQUE)

Descomprima el contenido de la carpeta zip adjunta en la carpeta alexa-avs-sample-app. Hay dos archivos: wake.py: una secuencia de comandos de Python que es el motor de activación personalizado (táctil) para el MicroDot alexa_autostart.sh: una secuencia de comandos para ejecutar todo. Haga clic derecho en propiedades sobre esto y seleccione ejecutar: cualquiera en la pestaña de permisos.

Necesitará tener instalado Python para ejecutar el motor de activación. También necesitará la biblioteca GPIO (https://makezine.com/projects/tutorial-raspberry-p…) Estos ya deberían estar instalados en la última versión de Raspbian.

Para ejecutar todo, escriba en la terminal: cd / home / pi / Desktop / alexa-avs-sample-appsudo./alexa_startup.sh

CONFIGURAR AUTORUN

Para configurar Alexa para que se ejecute automáticamente en el arranque, abra una terminal y escriba:

cd /home/pi/.config/lxsession/LXDE-pisudo nano inicio automático

y agregue la línea y guarde:

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

Reinicie y la aplicación Alexa debería ejecutarse automáticamente.

Recomendado: