"MicroDot" para LattePanda (ou Raspberry Pi): 7 etapas (com imagens)
"MicroDot" para LattePanda (ou Raspberry Pi): 7 etapas (com imagens)
Anonim
Imagem
Imagem

O MicroDot é um 'botão' do Alexa feito em casa, projetado para ser conectado a um LattePanda ou Raspberry Pi, com o aplicativo Alexa Sample instalado. É um pequeno alto-falante com LEDs e ativação por toque / fala, e é ideal para uso em uma mesa ou em um carro.

* O LattePanda para este projeto foi gentilmente fornecido por DFRobot

Etapa 1: Visão geral do sistema

Visão geral do sistema
Visão geral do sistema

LATTE PANDA

O LattePanda é um computador pequeno (aproximadamente do tamanho de um Raspberry Pi) Windows 10 com um Arduino integrado para fazer a interface com o mundo real. É realmente muito bacana - e é um bom substituto para o Raspberry Pi - especialmente se você (como eu) tiver problemas para se familiarizar com o Linux.

Eu instalei o Alexa Sample App no Panda e implementei meu próprio mecanismo de wake-word baseado no SDK de reconhecimento de fala integrado do Windows.

MICRODOT

O MicroDot consiste em um pequeno amplificador e alto-falante com uma grade sensível ao toque e uma matriz de LED azul / branco. O MicroDot foi originalmente projetado para ser colocado no painel do meu carro para fornecer minha solução Alexa para dentro do carro (para emparelhar com meu projeto anterior - aparelho de som automotivo habilitado para Alexa). Além de ter uma opção de wake-word, eu queria a ativação por toque porque Alexa terá dificuldade em ouvir minha wake-word quando a música estiver alta! (Uma vez ativado, o Panda enviará um sinal ao aparelho de som para abaixar o volume enquanto Alexa estiver ouvindo / falando).

RASPBERRY PI

Para aqueles que são mais fluentes em "Raspberry Pi", descrevi no final deste Instructable como fazer a interface do MicroDot com um Rapsberry Pi 3.

Etapa 2: Circuito MicroDot

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

PEÇAS

6 x Resistores SMD 220R2 x Resistores SMD 470R1 x Capacitor SMD 10uF1 x Módulo Sensor de Toque TTP223 (https://www.ebay.com/itm/192097635565)1 x Módulo Amplificador 3W PAM8403 (https://www.ebay.com/ itm / 221895096190) 1 x 10K Potenciômetro Linear Simples de Polegar (https://www.ebay.com/itm/401105807680)1 x 50pF Capacitor de Cerâmica3 x 3mm LEDs azuis3 x 3mm LEDs brancos 1 x 1,7 polegadas 4ohm 3W Alto-falante1 x Cabo Preto Fino de Fones de ouvido antigos 1 x cabo de extensão USB preto fino de 1 m *

CONSTRUÇÃO

O PCB MicroDot foi feito pelo método de ferro sobre toner em uma placa de um lado de 0,8 mm de espessura - com essa espessura, ele pode ser cortado com uma tesoura afiada e, em seguida, facilmente limado. Monte todos os componentes de montagem em superfície primeiro.

Um fio precisa ser conectado à superfície de toque do sensor, então uma pequena área precisa ser raspada para soldar. Descobri que em seu modo bruto, o sensor era muito sensível - funcionou bem, mas uma vez montado no gabinete, muitas vezes era disparado por falso devido à sua proximidade com o alto-falante de metal. Aterrei o alto-falante de metal - o que ajudou um pouco, mas tive que consultar a folha de dados.

A folha de dados do TTP223 afirma que você pode ajustar a sensibilidade colocando um capacitor (0 a 50pf) entre o sensor de toque e o solo. O sensor funcionou bem com um capacitor de 50pf. Você pode ver a localização disso na imagem da próxima seção.

Dois cabos são usados para conectar o MicroDot ao Panda: - um cabo preto fino de um velho par de fones de ouvido para conectar o áudio - um cabo USB fino foi usado para conectar ao GPIO (sensor de toque / LEDs). Você precisará de um cabo com 6 conectores separados (5 internos + blindagem). * Esteja ciente de que alguns cabos USB baratos não têm um pino / blindagem de aterramento separado, ou esses dois podem ser conectados internamente (verifique isso antes de cortar o cabo, certificando-se de que haja continuidade entre as partes de metal externas do macho e fêmea plugues e que não haja continuidade entre o pino de aterramento e as partes metálicas externas).

Use as conexões do cabo USB: vermelho = + 5v, blindagem = GND, preto = sensor de toque, branco = LEDs brancos, verdes = LEDs azuis. Em vez de apenas cortar os pugs e fiação, você pode querer fazer o que fiz e mantenha os plugues ligados e corte uma seção longa e uma seção curta (digamos 200 mm) e conecte as duas extremidades do cabo juntas. Desta forma, a unidade é destacável. Apenas certifique-se de não conectar nenhum dispositivo USB real nele, ou conecte-o a uma porta USB normal!

Etapa 3: Construção de MicroDot

Construção MicroDot
Construção MicroDot
Construção MicroDot
Construção MicroDot
Construção MicroDot
Construção MicroDot
Construção MicroDot
Construção MicroDot

PEÇAS IMPRESSAS 3D

Existem quatro partes impressas em 3D no arquivo zip anexado: 1. Invólucro MicroDot principal - impresso em PLA2 preto. Base MicroDot - impressa em PLA3 preto. Anel de LED - impresso em PLA branco (claro ou translúcido pode ser melhor para ajudar a difundir a luz de maneira mais uniforme) 4. Espaçador de PCB - qualquer cor - imprensado entre o alto-falante e o PCB.

Os parafusos e porcas M2 são usados para aparafusar a base à carcaça. Três parafusos M2 precisam ser derretidos nas ranhuras no interior da carcaça. Eles são bem pequenos e você pode precisar "soldá-los" no lugar com algum filamento adicional.

ARRAY DE LED

Os LEDs branco e azul são montados na matriz alternadamente, conforme mostrado nas fotos. Os terminais são dobrados em 90 graus contra a parte inferior do LED e os terminais são fundidos no anel com um ferro de solda quente (observe a polaridade aqui). A parte inferior dos LEDs é afiada para que fiquem planos na superfície do anel.

Os cátodos dos LEDs são todos conectados com um anel de fio e se conectam ao pino mais inferior do conector. Os outros pinos do cabeçalho devem ser alternados em azul / branco para cada LED individual

JUNTAR AS PEÇAS

A grade foi cortada de um suporte de papel de mesa (na foto) com um fio soldado em uma das bordas. Isso é inserido primeiro no invólucro e, em seguida, na matriz de LEDs (deve ser inserido em um ângulo conforme mostrado, com a ranhura alinhada com um dos pinos de rosca). O alto-falante é o próximo (coloque uma fita fina ao redor da parte superior para isolá-lo da borda do PCB). Em seguida, o espaçador e o PCB ficam no topo. Aparafuse a base para manter tudo junto.

Ao conectar o cabo de áudio no LattePanda, descobri que precisava usar um filtro de loop de aterramento de áudio (https://www.ebay.com/itm/371801191297) para obter um bom som. Observe que nas fotos eu uso a saída de áudio do meu adaptador de vídeo HDMI-VGA, mas é bom usar o conector de saída de áudio on-board.

Você também precisará de um microfone USB (https://www.ebay.com/itm/332148968227).

Etapa 4: O LattePanda

The LattePanda
The LattePanda
The LattePanda
The LattePanda

CONFIGURAR

O Panda vem nos modelos 2G / 32G e 4G / 64G, com ou sem licença Windows 10. O modelo que usei foi a versão 2G / 32G com licença Windows 10:

Consulte a documentação oficial para configurar seu LattePanda (https://docs.lattepanda.com) Não há nada muito complicado aqui, mas observe as instruções para ligar seu Panda (https://docs.lattepanda.com/ content / getStarted / powe…).

Tudo pareceu funcionar para mim da primeira vez (o que é uma boa mudança em relação às minhas experiências com o Raspberry Pi).

Uma coisa importante é que você realmente precisa de algum tipo de resfriamento para o Panda. Usei dissipadores de calor adesivos na parte superior e na parte inferior (a parte inferior fica especialmente quente).

Este diagrama detalha as entradas e saídas do Arduino: https://docs.lattepanda.com/content/hardware/inputs … Estaremos usando o conjunto de conectores de 3 pinos no lado esquerdo para conectar ao MicroDot (D9, D10 e D11), bem como o conector de saída de áudio.

Etapa 5: LattePanda - instale o aplicativo de amostra Alexa

LattePanda - Instale Alexa Sample App
LattePanda - Instale Alexa Sample App

DOWNLOAD

O Alexa Sample App está disponível aqui:

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

Pressione o botão Clonar ou Baixar e baixe como.zip

Crie um diretório na unidade c C: / ALEXA e extraia o conteúdo do zip para que o diretório compactado chamado samples fique diretamente no diretório ALEXA (ou seja, C: / ALEXA / samples \…)

INSTALANDO

As instruções completas oficiais sobre como instalar no Windows estão aqui:

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

Existem algumas etapas e leva um pouco de tempo, mas descobri que com o Windows tudo correu bem à primeira vez.

Você precisará de um bom editor de texto para editar alguns dos arquivos de configuração (o Bloco de notas não é bom porque os arquivos têm terminações de linha no estilo Linux). Usei o Notepad ++ que está disponível aqui:

Algumas notas sobre as instruções oficiais:

Parte 3 - Dependências

Meu Panda é de 64 bits, então baixei todas as versões de 64 bits, mas se você estiver instalando em um sistema de 32 bits, precisará usar as versões de 32 bits. Nota: não misture versões de 32 e 64 bits das dependências.

O link mostrado para VLC media player, o levará para a versão de 32 bits. Para obter a versão de 64 bits, acesse este link: https://www.videolan.org/vlc/download-windows.html e no botão de download, selecione a seta e, em seguida, Instalador para a versão de 64 bits.

Para a instalação do JDK, usei a versão: jdk-8u144-windows-x64Para nodejs eu usei: Windows Installer (.msi) 64 bitFor Maven: apache-maven-3.5.0-bin.zipFor OpenSSL Eu usei: Win64 OpenSSL v1.1.0f

Parte 5 - Método de autenticação

Escolha 5a - servidor Nodejs. Se você receber um erro ao executar o comando npm, precisará adicionar seu diretório nodejs à sua variável de ambiente de caminho (é explicado nas instruções como fazer isso).

Parte 6 - Executando o aplicativo de amostra

Ao editar o arquivo config.json, defina wakeWordAgentEnabled como true, pois iremos instalar um mecanismo de wake word personalizado na próxima seção (o mecanismo de wake word incluído no aplicativo de amostra funciona apenas com Linux).

Se você obtiver um erro ao executar o comando mvn, precisará adicionar o diretório maven / bin à variável de ambiente do caminho.

Ao executar o aplicativo, você deve obter a GUI mostrada na captura de tela. Ao clicar no ícone, você poderá falar com Alexa. Este é o aplicativo Alexa básico - mas precisaremos de mais do que isso!

As próximas etapas serão instalar um mecanismo de wake-word personalizado para que você possa apenas dizer "Alexa" para ativar, e também terá a opção de usar um sensor de toque via entrada do Arduino. Também precisamos fazer o aplicativo rodar automaticamente na inicialização e acender alguns LEDs quando Alexa estiver ouvindo e falando.

Etapa 6: LattePanda - instale o mecanismo WakeWord personalizado

LattePanda - Instale o WakeWord Engine personalizado
LattePanda - Instale o WakeWord Engine personalizado

MOTOR WAKEWORD

Um mecanismo WakeWord permite que Alexa seja despertada por uma palavra falada (geralmente "Alexa"), em vez de clicar em um botão. O aplicativo de amostra tem duas opções para o mecanismo WakeWord: mecanismos de despertador Sensory ou KITT. AI. a implementação para eles no aplicativo de amostra, no entanto, só funciona para Linux. Ambos os mecanismos também estão sujeitos a determinados requisitos de licenciamento.

Aqui, implementarei um mecanismo de wake word personalizado baseado no SDK de reconhecimento de fala do próprio Windows 10. Portanto, isso também está livre de quaisquer requisitos de licença adicionais.

INSTALAR DEPENDÊNCIAS

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

Microsoft Speech Platform - Runtime Languages (versão 11)

Meu mecanismo WakeWord personalizado foi escrito em C # no Visual Studio 2017. Forneci o executável final aqui e também o código-fonte. Se você quiser compilá-lo sozinho, também precisará disso:

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

Coloque WakeWordPanda.exe (e alexa_run.bat) no diretório ALEXA. Este programa executa as seguintes tarefas: - Escuta a palavra de ativação '' Alexa - Monitora o sensor de entrada de toque - Controla os LEDs AZUL e BRANCO

Note que desenvolvi isso em outro computador Windows 10 para não ter que instalar o Visual Studio no LattePanda, pois não queria usar os Gigabytes. Conectei um Arduino Uno instalado com StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) ao computador de desenvolvimento para poder desenvolver também com as entradas / saídas do Arduino. O código-fonte do Visual Studio também está anexado se você quiser modificar e / ou compilá-lo por conta própria.

MODIFICAR O CLIENTE JAVA

O cliente Java precisa de algumas linhas extras adicionadas ao código. Isso permite que os LEDs funcionem corretamente:

Quando Alexa está escutando, um sinal PAUSE_WAKE_WORD_ENGINE é enviado ao mecanismo WakeWord. Usei esse sinal para saber quando ligar o AZUL (LED de escuta do Alexa). Quando o sinal RESUME_WAKE_WORD_ENGINE é recebido, o LED azul apaga e o LED BRANCO (LED que fala Alexa) acende. O código extra envia outro sinal RESUME_WAKE_WORD_ENGINE quando Alexa para de falar - para que o mecanismo WakeWord saiba quando desligar o LED branco.

Navegue até: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs e abra AVSController.java em seu editor de texto. Copie o código do arquivo Extra_Code.txt anexado. Precisa ser inserido em dois lugares:

1. Na função public void onAlexaSpeechFinished () diretamente após a instrução: dependsDirectiveThread.unblock ();

2. Na função private void handleAudioPlayerDirective (diretiva Directive) diretamente antes da instrução: player.handleStop ();

Também redefina o sinal CONFIRMAR para que o mecanismo WakeWord saiba se Alexa respondeu. Isso é para cancelar um tempo limite de 5 segundos que ocorrerá se não houver resposta. Copie o código de Extra_Code2.txt e insira-o em um só lugar:

1. No functionpublic void onAlexaSpeechStarted (), diretamente após a instrução dependsDirectiveThread.block ();

Agora você precisa recompilar o cliente Java. Abra um prompt de comando e navegue até C: / ALEXA / samples / javaclient Digite: mvn install para recompilar.

Se você iniciar o Companion Service e o aplicativo Java Alexa como antes e, em seguida, clicar duas vezes em WakeWordPanda.exe, espere que ele se conecte e, em seguida, será possível ativar o Alexa dizendo "Alexa".

MICRODOT

Se você conectar o cabo 'USB' do MicroDot ao LattePanda conforme mostrado no diagrama, e conectar o cabo de áudio, ele agora deve estar totalmente funcional. Falar a palavra de despertar ou tocar na grade deve ativar Alexa e os LEDs azuis devem acender. Os LEDs brancos devem acender enquanto Alexa responde.

CONFIGURAÇÃO AUTO EXECUÇÃO

Em vez de digitar todos os comandos manualmente para iniciar tudo, você pode usar o script alexa_run.bat. Isso aguardará por uma conexão com a Internet e, em seguida, chamará os módulos separados (serviço complementar, cliente Java, mecanismo de wake-word).

A última etapa é fazer com que tudo seja executado automaticamente na inicialização:

1. Clique com o botão direito em auto-run.bat e selecione criar atalho.2. Pressione ctrl + R e digite shell: startup. Isso abrirá a pasta de inicialização.3. Arraste o atalho que você criou para a pasta de inicialização.

Alexa agora será executado automaticamente na inicialização (leva 30 segundos ou mais para inicializar após a inicialização).

Etapa 7: MicroDot para Raspberry Pi

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

(Se você quiser usar um Raspberry Pi 3 em vez de um LattePanda).

DOWNLOAD

Baixe o Alexa Sample App aqui:

Pressione o botão Clonar ou Baixar e baixe como.zip. Descompacte para que a pasta alexa-ava-sample-app fique na área de trabalho.

INSTALANDO

Siga as instruções completas oficiais aqui (observação: configure para que a pasta alexa-ava-sample-app na área de trabalho):

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

Existem muitos guias para fazer isso com um Raspberry Pi internamente. Eu instalei isso algumas vezes no Raspberry Pi, e nenhuma vez foi tão fácil quanto instalar no WIndows 10 (nenhuma surpresa - o Linux me pega sempre). Os principais problemas que encontrei foram:

1. Fazer o áudio e o microfone funcionarem corretamente. Veja aqui https://github.com/alexa-pi/AlexaPi/wiki/Audio-set … se você também tiver esses problemas.

2. Problemas com a versão JDK. Consulte 4.3 nas instruções oficiais e a nota no arquivo pom.xml que fala sobre sobrescrever a versão ao executar o comando mvn exec: exec (ou seja, eu tive que adicionar esta opção -Dalpn-boot.version = 8.1.6.v20151105) Observe que esse comando está incluído em meu script de inicialização (alexa_startup.sh).

3. Fazer o mecanismo de wake word sensorial funcionar (https://github.com/Sensory/alexa-rpi)

Depois de fazer tudo funcionar com os comandos manuais, conforme descrito nas instruções, prossiga com a instalação do MicroDot.

CONEXÃO DE MICRODOT

Você não pode conectar o MicroDot diretamente ao GPIO porque ele consumirá muita corrente. Você precisará de: 2 transisitores 2N3904 para acionar os LEDs, resistores 1x2K2 e 1x3K3 para diminuir a tensão do sensor de toque para 3,3 V (o MicroDot será alimentado por uma fonte de 5 V). Consulte o diagrama em anexo. Você pode querer fazer um PCB para isso, mas acabei de montar esses componentes na parte de trás de um plugue fêmea de 8 pinos.

MOTOR DE WAKE PERSONALIZADO (TOQUE)

Descompacte o conteúdo da pasta zip anexada na pasta alexa-avs-sample-app. Existem dois arquivos: wake.py - um script python que é o mecanismo de ativação personalizado (toque) para o MicroDot alexa_autostart.sh - um script para executar tudo. Clique com o botão direito nas propriedades e selecione executar: qualquer pessoa na guia de permissões.

Você precisará do python instalado para executar o mecanismo de ativação. Você também precisará da biblioteca GPIO (https://makezine.com/projects/tutorial-raspberry-p…). Eles já devem estar instalados na versão mais recente do Raspbian.

Para executar tudo, digite no terminal: cd / home / pi / Desktop / alexa-avs-sample-appsudo./alexa_startup.sh

CONFIGURAR AUTORUN

Para configurar o Alexa para execução automática na inicialização, abra um terminal e digite:

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

e adicione a linha e salve:

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

Reinicie e o aplicativo Alexa deve ser executado automaticamente.