Cuprins:

„MicroDot” pentru LattePanda (sau Raspberry Pi): 7 pași (cu imagini)
„MicroDot” pentru LattePanda (sau Raspberry Pi): 7 pași (cu imagini)

Video: „MicroDot” pentru LattePanda (sau Raspberry Pi): 7 pași (cu imagini)

Video: „MicroDot” pentru LattePanda (sau Raspberry Pi): 7 pași (cu imagini)
Video: [MLAB.VN - Học MicroPython] Lập trình LED Button trên ESP8266 với MicroPython #Shorts 2024, Noiembrie
Anonim
Imagine
Imagine

MicroDot este un „buton” Alexa de casă conceput pentru a fi conectat la un LattePanda sau un Raspberry Pi, cu aplicația Alexa Sample instalată. Este un difuzor mic cu LED-uri și activare tactilă / vocală și este ideal pentru utilizare pe desktop sau în mașină.

* LattePanda pentru acest proiect a fost furnizat cu amabilitate de DFRobot

Pasul 1: Prezentare generală a sistemului

Prezentare generală a sistemului
Prezentare generală a sistemului

LATTE PANDA

LattePanda este un mic computer Windows (aproximativ de dimensiunea unui Raspberry Pi) cu un Arduino încorporat pentru interfață cu lumea reală. Este într-adevăr destul de ingenios - și este un bun înlocuitor pentru Raspberry Pi - mai ales dacă aveți (ca și mine) probleme pentru a ajunge la Linux.

Am instalat aplicația Alexa Sample pe Panda și am implementat propriul meu motor de trezire bazat pe SDK de recunoaștere a vorbirii încorporat în Windows.

MICRODOT

MicroDot este format dintr-un amplificator mic și difuzor cu un grătar sensibil la atingere și o gamă de LED-uri albastre / albe. MicroDot a fost inițial conceput pentru a fi plasat pe tabloul de bord al mașinii mele pentru a oferi soluția mea Alexa din mașină (pentru a se asocia cu proiectul meu anterior - stereo auto compatibil Alexa). Pe lângă faptul că am o opțiune de tip „wake-word”, am vrut și activarea tactilă, deoarece Alexa va auzi cu greu cuvântul meu de wake-up atunci când muzica este tare! (Odată activat, Panda va trimite un semnal către stereo pentru a reduce volumul în timp ce Alexa ascultă / vorbește).

RASPBERRY PI

Pentru cei care vorbesc mai bine „Raspberry Pi”, am descris la sfârșitul acestui Instructable cum să interfațați MicroDot cu un Rapsberry Pi 3.

Pasul 2: Circuitul MicroDot

Circuitul MicroDot
Circuitul MicroDot
Circuitul MicroDot
Circuitul MicroDot
Circuitul MicroDot
Circuitul MicroDot

PĂRȚI

6 rezistoare SMD 220R 2 rezistoare SMD 470R 1 condensator SMD 10 uF 1 x modul senzor tactil TTP223 (https://www.ebay.com/itm/192097635565)1 x modul amplificator PAM8403 3W (https://www.ebay.com/ itm / 221895096190) 1 x 10K Potențiometru liniar unic (https://www.ebay.com/itm/401105807680)1 x 50pF Condensator ceramic 3 x 3mm LED-uri albastre 3 x 3mm LED-uri albe 1 x 1,7 inch 4ohm 3W difuzor 1 x cablu negru subțire de la căști vechi 1 x cablu prelungitor USB subțire negru de 1 m *

CONSTRUCTIE

PCB-ul MicroDot a fost realizat prin metoda de fier pe toner pe o placă unilaterală cu grosimea de 0,8 mm - la această grosime poate fi tăiată aproximativ pentru a forma cu foarfece ascuțite și apoi ușor de depus pentru a forma. Montați mai întâi toate componentele de montare la suprafață.

Un fir trebuie să fie conectat la suprafața tactilă a senzorului, astfel încât o zonă mică trebuie să fie răzuită pentru a fi lipită. Am constatat că, în modul brut, senzorul era mult prea sensibil - a funcționat bine, dar odată ce a fost montat în carcasă, acesta a fost adesea declanșat fals datorită apropierii sale de difuzorul metalic. Am pus la pământ difuzorul metalic - ceea ce a ajutat oarecum, dar în cele din urmă a trebuit să mă refer la fișa tehnică.

Fișa tehnică TTP223 afirmă că puteți regla sensibilitatea plasând un condensator (0 până la 50pf) între senzorul tactil și masă. Senzorul a funcționat bine cu un condensator de 50pf. Puteți vedea amplasarea acestuia în imaginea următoarei secțiuni.

Două cabluri sunt folosite pentru a conecta MicroDot la Panda: - un cablu negru subțire de la o pereche de căști vechi pentru a conecta sunetul - un cablu USB subțire a fost utilizat pentru conectarea la GPIO (senzor tactil / LED-uri). Veți avea nevoie de un cablu cu 6 conectori separați (5 interiori + ecran). * Feriți-vă că unele cabluri USB ieftine nu au un pin / scut separat, sau aceste două pot fi conectate intern (verificați acest lucru înainte de a tăia cablul, asigurându-vă că există continuitate între părțile metalice exterioare ale masculului și femelei dopuri și că nu există continuitate între știftul de masă și părțile metalice exterioare).

Utilizați conexiunile cablului USB: roșu = + 5v, scut = GND, negru = senzor tactil, alb = LED-uri albe, verde = LED-uri albastre. În loc să tăiați pug-urile și să le conectați, vă recomandăm să faceți ceea ce am făcut și țineți prizele și tăiați o secțiune lungă și una scurtă (să zicem 200 mm) și conectați cele două capete ale cablului împreună. În acest fel, unitatea este detașabilă. Asigurați-vă că nu conectați niciun dispozitiv USB real la acesta sau conectați-l la un port USB obișnuit!

Pasul 3: construcția MicroDot

Construcție MicroDot
Construcție MicroDot
Construcție MicroDot
Construcție MicroDot
Construcție MicroDot
Construcție MicroDot
Construcție MicroDot
Construcție MicroDot

PIESE IMPRIMATE 3D

Există patru părți imprimate 3D în fișierul zip atașat: 1. Coajă principală MicroDot - tipărită în negru PLA2. Baza MicroDot - imprimată în negru PLA3. Inel cu LED - imprimat în alb PLA (clar sau translucid poate fi mai bine pentru a ajuta la difuzarea luminii mai uniformă) 4. Distanțier PCB - orice culoare - încastrat între difuzor și PCB.

Șuruburile și piulițele M2 sunt folosite pentru a înșuruba baza la carcasă. Trei șuruburi M2 trebuie topite în sloturile din interiorul carcasei. Acestea sunt destul de mici și este posibil să fie nevoie să le „lipiți” în loc cu un filament suplimentar.

TABLA DE LED-uri

LED-urile alb și albastru sunt montate alternativ în matrice așa cum se arată în imagini. Cablurile sunt îndoite la 90 de grade față de partea inferioară a LED-ului, iar cablurile sunt topite în inel cu un fier de lipit la cald (rețineți polaritatea aici). Partea inferioară a LED-urilor este așezată în jos, astfel încât să fie plate la suprafața inelului.

Catozii LED-urilor sunt conectați împreună cu un inel de sârmă și aceștia se conectează la pinul cel mai de jos al antetului. Ceilalți pini ai antetului trebuie să fie albastru / alb alternativ pentru fiecare LED individual

PUNÂND LAOLALTĂ

Grătarul a fost tăiat dintr-un suport de hârtie de birou (în imagine) cu un fir lipit pe o margine. Acesta este introdus mai întâi în carcasă, apoi în matricea de LED-uri (acesta trebuie introdus într-un unghi așa cum se arată, cu fanta aliniată cu unul dintre posturile șurubului). Difuzorul este următorul (puneți o bandă subțire în jurul vârfului pentru a o izola de marginea PCB-ului). Apoi distanțierul și PCB-ul se așează doar deasupra. Înșurubați baza pentru a menține totul împreună.

Când am conectat cablul audio la LattePanda, am constatat că trebuia să folosesc un filtru audio de buclă de masă (https://www.ebay.com/itm/371801191297) pentru a obține un sunet bun. Rețineți că în fotografii folosesc ieșirea audio a adaptorului meu video HDMI-VGA, dar este bine să folosiți mufa de ieșire audio integrată.

De asemenea, veți avea nevoie de un microfon USB (https://www.ebay.com/itm/332148968227).

Pasul 4: LattePanda

LattePanda
LattePanda
LattePanda
LattePanda

ÎNFIINȚAT

Panda vine în modele 2G / 32G și 4G / 64G, cu sau fără licență Windows 10. Modelul pe care l-am folosit a fost versiunea 2G / 32G cu licență Windows 10:

Vă rugăm să consultați documentația oficială pentru configurarea LattePanda (https://docs.lattepanda.com) Aici nu este nimic prea complicat, dar luați notă de instrucțiunile de pornire a Panda (https://docs.lattepanda.com/ content / getStarted / powe …).

Totul părea să funcționeze prima dată pentru mine (ceea ce este o schimbare frumoasă față de experiențele mele Raspberry Pi).

Un lucru important este că într-adevăr aveți nevoie de un fel de răcire pentru Panda. Am folosit câteva radiatoare lipite pe partea de sus și de jos (partea inferioară se încălzește în mod deosebit).

Această diagramă detaliază intrările și ieșirile Arduino: https://docs.lattepanda.com/content/hardware/inputs… Vom folosi gama de conectori cu 3 pini din partea stângă pentru a ne conecta la MicroDot (D9, D10 și D11), precum și mufa de ieșire audio.

Pasul 5: LattePanda - Instalați Alexa Sample App

LattePanda - Instalați Alexa Sample App
LattePanda - Instalați Alexa Sample App

DESCARCA

Aplicația Alexa Sample este disponibilă aici:

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

Apăsați butonul Clonare sau Descărcare și descărcați ca.zip

Creați un director pe unitatea c C: / ALEXA și extrageți conținutul zipului, astfel încât directorul zip numit samples să stea direct în directorul ALEXA (adică C: / ALEXA / samples / …)

INSTALARE

Instrucțiunile oficiale complete despre cum se instalează pe Windows sunt aici:

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

Există câțiva pași și durează puțin, dar am constatat că, cu Windows, totul a decurs fără probleme prima dată.

Veți avea nevoie de un editor de text bun pentru a edita unele dintre fișierele de configurare (Notepad-ul nu este bun, deoarece fișierele au terminări de linie în stil Linux). Am folosit Notepad ++ care este disponibil aici:

Câteva note cu privire la instrucțiunile oficiale:

Partea 3 - Dependențe

My Panda are 64 de biți, așa că am descărcat toate versiunile pe 64 de biți, dar dacă instalați pe un sistem pe 32 de biți, va trebui să utilizați versiunile pe 32 de biți. Notă: nu amestecați versiunile pe 32 și 64 de biți ale dependențelor.

Link-ul afișat pentru VLC media player vă va duce la versiunea pe 32 de biți. Pentru a obține versiunea pe 64 de biți, accesați acest link: https://www.videolan.org/vlc/download-windows.html și pe butonul de descărcare, selectați săgeata, apoi Installer pentru versiunea pe 64 de biți.

Pentru instalarea JDK am folosit versiunea: jdk-8u144-windows-x64 Pentru nodejs am folosit: Windows Installer (.msi) 64 biți Pentru Maven: apache-maven-3.5.0-bin.zip Pentru OpenSSL am folosit: Win64 OpenSSL v1.1.0f

Partea 5 - Metoda de autentificare

Alegeți 5a - Server Nodejs. Dacă primiți o eroare la executarea comenzii npm, atunci trebuie să adăugați directorul nodejs la variabila de mediu a căii (se explică în instrucțiunile cum se face acest lucru).

Partea 6 - Rularea aplicației eșantion

Când editați fișierul config.json, setați wakeWordAgentEnabled la adevărat, deoarece vom instala un motor de trezire personalizat în secțiunea următoare (motorul de trezire inclus în aplicația eșantion funcționează numai cu Linux).

Dacă apare o eroare la executarea comenzii mvn, atunci trebuie să adăugați directorul maven / bin la variabila de mediu a căii.

Când rulați aplicația, ar trebui să obțineți interfața grafică afișată în captura de ecran. Când faceți clic pe pictogramă, veți putea vorbi cu Alexa. Aceasta este aplicația de bază Alexa - dar vom avea nevoie de mai mult decât atât!

Pașii următori vor fi instalarea unui motor personalizat de tip wake-word, astfel încât să puteți spune doar „Alexa” pentru activare și, de asemenea, să aveți opțiunea de a utiliza un senzor tactil prin intrarea Arduino. De asemenea, trebuie să facem aplicația să ruleze automat la pornire și să aprindem câteva LED-uri atunci când Alexa ascultă și vorbește.

Pasul 6: LattePanda - Instalați motorul WakeWord personalizat

LattePanda - Instalați motorul WakeWord personalizat
LattePanda - Instalați motorul WakeWord personalizat

MOTOR WAKEWORD

Un motor WakeWord permite ca Alexa să fie trezit printr-un cuvânt vorbit (de obicei „Alexa”), în loc să fie nevoie să faceți clic pe un buton. Aplicația eșantion are două opțiuni pentru motorul WakeWord: senzoriale sau KITT. implementarea acestora în aplicația eșantion, totuși, funcționează numai pentru Linux. Ambele motoare sunt, de asemenea, supuse anumitor cerințe de licențiere.

Aici voi implementa un motor de trezire personalizat care se bazează pe SDK-ul de recunoaștere a vorbirii din Windows 10. Deci, acest lucru este, de asemenea, lipsit de orice cerințe suplimentare de licență.

INSTALAȚI DEPENDENȚELE

Microsoft Speech Platform - Runtime (versiunea 11) https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32 biți) sau x64_SpeechPlatformRuntime / SpeechPlatformRuntime.msi (64 biți)

Microsoft Speech Platform - Runtime Languages (Versiunea 11)

Motorul meu personalizat WakeWord a fost scris în C # în Visual Studio 2017. Am furnizat aici executabilul final și codul sursă. Dacă doriți să îl compilați singur, atunci veți avea nevoie și de acest lucru:

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

Introduceți WakeWordPanda.exe (și alexa_run.bat) în directorul ALEXA. Acest program îndeplinește următoarele sarcini: - Ascultă cuvântul de trezire "Alexa" - Monitorizează senzorul de intrare tactilă - Controlează LED-urile ALBASTRU și ALBE

Rețineți că am dezvoltat acest lucru pe un alt computer Windows 10, astfel încât nu a trebuit să instalez Visual Studio pe LattePanda, deoarece nu am vrut să folosesc Gigabytes. Am conectat un Arduino Uno instalat cu StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) la computerul de dezvoltare, astfel încât să mă pot dezvolta și cu intrările / ieșirile Arduino. Codul sursă Visual Studio este, de asemenea, atașat dacă doriți să modificați și / sau să compilați singur acest lucru.

MODIFICĂ CLIENTUL JAVA

Clientul Java are nevoie de câteva linii suplimentare adăugate la cod. Aceasta este pentru a permite LED-urilor să funcționeze corect:

Când Alexa ascultă, un semnal PAUSE_WAKE_WORD_ENGINE este trimis la motorul WakeWord. Am folosit acest semnal pentru a ști când să pornesc ALBASTRUL (LED de ascultare Alexa). Când se recepționează semnalul RESUME_WAKE_WORD_ENGINE, LED-ul albastru se stinge și ALBA (LED-ul Alexa vorbind) se aprinde. Codul suplimentar trimite un alt semnal RESUME_WAKE_WORD_ENGINE când Alexa încetează să mai vorbească - astfel încât motorul WakeWord să știe când trebuie să oprească LED-ul alb.

Navigați la: C: / ALEXA / samples / javaclient / src / main / java / com / amazon / alexa / avs și deschideți AVSController.java în editorul de text. Copiați codul din fișierul Extra_Code.txt atașat. Trebuie inserat în două locuri:

1. În funcția public void onAlexaSpeechFinished () direct după declarație: dependentDirectiveThread.unblock ();

2. În funcția private void handleAudioPlayerDirective (directivă directivă) direct înainte de declarație: player.handleStop ();

De asemenea, am refăcut semnalul CONFIRM, astfel încât motorul WakeWord să știe dacă Alexa a răspuns. Aceasta este pentru a anula un timeout de 5 secunde care va avea loc dacă nu există niciun răspuns. Copiați codul din Extra_Code2.txt și introduceți-l într-un singur loc:

1. În funcția public void onAlexaSpeechStarted () direct după declarația dependentDirectiveThread.block ();

Acum trebuie să recompilați clientul Java. Deschideți un prompt de comandă și navigați la C: / ALEXA / samples / javaclient Enter: mvn instalare pentru recompilare.

Dacă porniți serviciul însoțitor și aplicația Java Alexa ca și până acum, apoi faceți dublu clic pe WakeWordPanda.exe, așteptați să se conecteze și atunci ar trebui să puteți activa Alexa spunând „Alexa”.

MICRODOT

Dacă conectați cablul „USB” al MicroDot la LattePanda așa cum se arată în diagramă și conectați cablul audio, acesta ar trebui să fie acum complet funcțional. Rostirea cuvântului de veghe sau atingerea grătarului ar trebui să activeze Alexa și LED-urile albastre ar trebui să se aprindă. LED-urile albe ar trebui să se aprindă pe măsură ce Alexa răspunde.

SETUP AUTO RUN

În loc să introduceți manual toate comenzile pentru a porni totul, puteți utiliza scriptul alexa_run.bat. Aceasta va aștepta o conexiune la internet, apoi va invoca modulele separate (serviciu însoțitor, client java, motor de trezire).

Ultimul pas este ca totul să ruleze automat la pornire:

1. Faceți clic dreapta pe auto-run.bat și selectați create shortcut.2. Apăsați ctrl + R și tastați shell: startup. Aceasta va deschide folderul de pornire. Trageți comanda rapidă pe care ați creat-o în folderul de pornire.

Alexa va rula acum automat la pornire (durează aproximativ 30 de secunde pentru a inițializa după pornire).

Pasul 7: MicroDot pentru Raspberry Pi

MicroDot pentru Raspberry Pi
MicroDot pentru Raspberry Pi
MicroDot pentru Raspberry Pi
MicroDot pentru Raspberry Pi

(Dacă doriți să utilizați un Raspberry Pi 3 în locul unui LattePanda).

DESCARCA

Descărcați aplicația Alexa Sample de aici:

Apăsați butonul Clonare sau Descărcare și descărcați ca.zip. Dezarhivați-o, astfel încât folderul Alexa-ava-sample-app să fie pe desktop.

INSTALARE

Urmați instrucțiunile oficiale complete aici (notă: configurați astfel încât folderul alexa-ava-sample-app de pe desktop):

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

Există o mulțime de ghiduri pentru a face acest lucru cu un Raspberry Pi pe intern. Am instalat acest lucru de câteva ori pe Raspberry Pi și niciodată nu a mers la fel de ușor ca instalarea pe Windows 10 (nicio surpriză - Linux mă primește de fiecare dată). Principalele probleme pe care le-am întâlnit au fost:

1. Funcționarea corectă a sunetului și a microfonului. Vedeți aici https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… dacă aveți și aceste probleme.

2. Probleme cu versiunea JDK. Vezi 4.3 în instrucțiunile oficiale și nota din fișierul pom.xml care vorbește despre suprascrierea versiunii la executarea comenzii mvn exec: exec (adică a trebuit să adaug acest switch -Dalpn-boot.version = 8.1.6.v20151105). Rețineți că această comandă este inclusă în scriptul meu de pornire (alexa_startup.sh).

3. Punerea în funcțiune a motorului de trezire senzorială (https://github.com/Sensory/alexa-rpi)

Odată ce puteți pune totul în funcțiune cu comenzile manuale așa cum este subliniat în instrucțiuni, continuați cu instalarea MicroDot.

CONEXIUNEA MICRODOTELOR

Nu puteți atașa direct MicroDot la GPIO, deoarece acesta va atrage prea mult curent. Veți avea nevoie de: 2x tranzistoare 2N3904 pentru a conduce LED-urile, rezistențe 1x2K2 și 1x3K3 pentru a scădea tensiunea de la senzorul tactil la 3,3V (MicroDotul va fi alimentat de la sursa de 5V). Consultați schema atașată. S-ar putea să doriți să creați un PCB pentru acest lucru, dar tocmai am montat aceste componente pe spatele unei prize femele cu 8 pini.

MOTOR DE TREZIRE PERSONALIZAT (ATINGERE)

Dezarhivați conținutul folderului zip atașat în folderul alexa-avs-sample-app. Există două fișiere: wake.py - un script python care este motorul de trezire personalizat (tactil) pentru MicroDot alexa_autostart.sh - un script pentru a rula totul. Faceți clic dreapta pe proprietăți și selectați executare: oricine din fila permisiuni.

Veți avea nevoie de python instalat pentru a rula motorul de trezire. De asemenea, veți avea nevoie de biblioteca GPIO (https://makezine.com/projects/tutorial-raspberry-p…) Acestea ar trebui să fie deja instalate în cea mai recentă versiune de Raspbian.

Pentru a rula totul, tastați în terminal: cd / home / pi / Desktop / alexa-avs-sample-appsudo./alexa_startup.sh

CONFIGURAȚI AUTORUN

Pentru a configura Alexa să ruleze automat la pornire, deschideți un terminal și tastați:

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

și adăugați linia și salvați:

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

Reporniți și aplicația Alexa ar trebui să ruleze automat.

Recomandat: