„MicroDot“, skirtas „LattePanda“(arba „Raspberry Pi“): 7 žingsniai (su nuotraukomis)
„MicroDot“, skirtas „LattePanda“(arba „Raspberry Pi“): 7 žingsniai (su nuotraukomis)
Anonim
Vaizdas
Vaizdas

„MicroDot“yra namuose pagamintas „Alexa“mygtukas, skirtas prijungti prie „LattePanda“arba „Raspberry Pi“su įdiegta „Alexa Sample App“. Tai mažas garsiakalbis su šviesos diodais ir jutiklinio/kalbinio aktyvinimo funkcija, idealiai tinka naudoti darbalaukyje ar automobilyje.

*„LattePanda“šiam projektui maloniai pateikė „DFRobot“https://www.dfrobot.com/product-1405.html

1 žingsnis: sistemos apžvalga

Sistemos apžvalga
Sistemos apžvalga

LATTE PANDA

„LattePanda“yra mažas (maždaug „Raspberry Pi“dydžio) „Windows 10“kompiuteris su įmontuotu „Arduino“, skirtas sąsajai su realiu pasauliu. Tai tikrai gana madinga - ir tai yra geras „Raspberry Pi“pakaitalas - ypač jei jums (kaip ir man) kyla problemų su „Linux“.

Įdiegiau „Alexa Sample App“programą „Panda“ir įdiegiau savo „wake-word“variklį, pagrįstą „Windows“integruotu kalbos atpažinimo SDK.

MICRODOT

„MicroDot“sudaro mažas stiprintuvas ir garsiakalbis su lietimui jautriomis grotelėmis ir mėlynos/baltos spalvos šviesos diodų bloku. „MicroDot“iš pradžių buvo suprojektuotas taip, kad būtų pastatytas ant mano automobilio brūkšnio, kad būtų pateiktas „Alexa“sprendimas automobilyje (suporuoti su mano ankstesniu projektu-„Alexa“palaikančia stereofonine sistema). Aš ne tik turėjau pažadinimo žodžio parinktį, bet ir norėjau įjungti prisilietimą, nes Alexai bus sunku išgirsti mano žadinimo žodį, kai muzika skamba garsiai! (Įjungus „Panda“siunčia signalą į stereo sistemą, kad sumažintų garsumą, kol „Alexa“klausosi/kalba).

AVYNĖS PI

Tiems, kurie laisvai kalba apie „Raspberry Pi“, šios instrukcijos pabaigoje aprašiau, kaip sujungti „MicroDot“su „Rapsberry Pi 3“.

2 žingsnis: „MicroDot“grandinė

„MicroDot“grandinė
„MicroDot“grandinė
„MicroDot“grandinė
„MicroDot“grandinė
„MicroDot“grandinė
„MicroDot“grandinė

DALYS

6 x 220R SMD rezistoriai 2 x 470R SMD rezistoriai 1 x 10uF SMD kondensatorius 1 x TTP223 jutiklinio jutiklio modulis (https://www.ebay.com/itm/192097635565) 1 x PAM8403 3W stiprintuvo modulis (https://www.ebay.com/ itm/221895096190) 1 x 10K vieno linijinio nykščio potenciometras (https://www.ebay.com/itm/401105807680) 1 x 50pF keraminis kondensatorius 3 x 3 mm mėlynos spalvos šviesos diodai 3 x 3 mm balti šviesos diodai senos ausinės 1 x plonas juodas 1 m USB prailginimo kabelis*

STATYBA

„MicroDot“PCB buvo pagaminta naudojant geležį ant tonerio, naudojant 0,8 mm storio vienpusę plokštę - esant tokiam storiui, ją galima aštriomis žirklėmis supjaustyti maždaug pagal formą, o tada lengvai paduoti į formą. Pirmiausia sumontuokite visus paviršiaus tvirtinimo elementus.

Prie jutiklio jutiklinio paviršiaus reikia prijungti laidą, todėl reikia lupti nedidelį plotą. Radau, kad neapdorotu režimu jutiklis buvo pernelyg jautrus - jis veikė gerai, tačiau kai jis buvo sumontuotas korpuse, jis dažnai buvo klaidingai suaktyvintas dėl artumo prie metalinio garsiakalbio. Aš įžeminau metalinį garsiakalbį - tai šiek tiek padėjo, bet galiausiai turėjau kreiptis į duomenų lapą.

TTP223 duomenų lape teigiama, kad jautrumą galite reguliuoti įdėdami kondensatorių (nuo 0 iki 50 pf) tarp jutiklinio jutiklio ir žemės. Jutiklis puikiai veikė su 50pf kondensatoriumi. To vietą galite pamatyti kito skyriaus paveikslėlyje.

„MicroDot“prijungimui prie „Panda“naudojami du kabeliai:- plonas juodas kabelis iš senos ausinių poros garsui prijungti- plonas USB kabelis buvo naudojamas prijungti prie GPIO (jutiklinis jutiklis/šviesos diodai). Jums reikės kabelio su 6 atskiromis jungtimis (5 vidinės + ekranas). *Saugokitės, kad kai kurie pigūs USB kabeliai neturi atskiro įžeminimo kaiščio/skydo arba šie du gali būti prijungti iš vidaus (prieš pjaustydami kabelį patikrinkite tai, įsitikindami, kad tarp išorinių metalinių vyrų ir moterų dalių yra tęstinumas kištukai ir kad tarp įžeminimo kaiščio ir išorinių metalinių dalių nėra tęstinumo).

Naudokite USB kabelio jungtis: raudona =+5v, skydas = GND, juoda = jutiklinis jutiklis, balta = balta šviesos diodų lemputė, žalia = mėlyna šviesos diodas. Vietoj to, kad nupjautumėte kaiščius ir tvirtai sujungtumėte, galbūt norėsite padaryti tai, ką padariau ir laikykite kištukus, nupjaukite vieną ilgą ir vieną trumpą (tarkime, 200 mm) sekciją ir prijunkite abu kabelio galus. Tokiu būdu įrenginys yra nuimamas. Tiesiog įsitikinkite, kad prie jo neprijungiate jokių tikrųjų USB įrenginių arba į įprastą USB prievadą!

3 žingsnis: „MicroDot“kūrimas

„MicroDot“konstrukcija
„MicroDot“konstrukcija
„MicroDot“konstrukcija
„MicroDot“konstrukcija
„MicroDot“konstrukcija
„MicroDot“konstrukcija
„MicroDot“konstrukcija
„MicroDot“konstrukcija

3D Spausdintos dalys

Pridedamame ZIP faile yra keturios 3D spausdintos dalys: 1. Pagrindinis „MicroDot“apvalkalas - atspausdintas juodu PLA2. „MicroDot“pagrindas - atspausdintas juodu PLA3. LED žiedas - atspausdintas baltu PLA (skaidrus arba permatomas gali būti geresnis, kad šviesa būtų tolygiau išsklaidyta) 4. PCB tarpinė - bet kokia spalva - tarp garsiakalbio ir PCB.

M2 varžtai ir veržlės naudojami pagrindui prisukti prie korpuso. Trys M2 varžtai turi būti išlydyti į lizdus korpuso vidinėje pusėje. Jie yra gana maži, todėl gali tekti juos „lituoti“su papildomu siūlu.

LED ARRAY

Baltos ir mėlynos šviesos diodai pakaitomis montuojami masyve, kaip parodyta paveikslėliuose. Laidai yra sulenkti 90 laipsnių kampu prieš šviesos diodo apačią, o laidai yra įlydomi į žiedą karštu lituokliu (atkreipkite dėmesį į poliškumą čia). Šviesos diodų apačia yra padengta žemyn, kad jie būtų plokšti prie žiedo paviršiaus.

Šviesos diodų katodai yra sujungti vielos žiedu ir jungiami prie apatinio antraštės kaiščio. Kiti antraštės kaiščiai turi būti pakaitomis mėlyni/balti kiekvienam atskiram šviesos diodui

SUSIJUSI KARTU

Grotelės buvo supjaustytos iš stalinio popieriaus laikiklio (nuotraukoje), viela prilituota prie vieno krašto. Pirmiausia jis įkišamas į apvalkalą, o po to - į šviesos diodų bloką (jis turi būti įkištas kampu, kaip parodyta, plyšys sulygiuotas su vienu iš varžtų stulpų). Toliau yra garsiakalbis (aplink viršuje uždėkite ploną juostą, kad izoliuotumėte ją nuo PCB krašto). Tada tarpiklis ir PCB tiesiog sėdi viršuje. Prisukite pagrindą, kad viskas būtų kartu.

Prijungdamas garso kabelį prie „LattePanda“, supratau, kad norėdamas gauti gerą garsą, turiu naudoti garso įžeminimo kilpos filtrą (https://www.ebay.com/itm/371801191297). Atminkite, kad nuotraukose naudoju HDMI-VGA vaizdo adapterio garso išvestį, tačiau gerai naudoti įmontuotą garso išvesties lizdą.

Jums taip pat reikės USB mikrofono (https://www.ebay.com/itm/332148968227).

4 žingsnis: „LattePanda“

„LattePanda“
„LattePanda“
„LattePanda“
„LattePanda“

Sąranka

„Panda“yra 2G/32G ir 4G/64G modelių su „Windows 10“licencija arba be jos. Mano naudojamas modelis buvo 2G/32G versija su „Windows 10“licencija:

Žiūrėkite oficialius „LattePanda“sąrankos dokumentus (https://docs.lattepanda.com) Čia nėra nieko per daug sudėtingo, tačiau atkreipkite dėmesį į „Panda“įjungimo instrukcijas (https://docs.lattepanda.com/ content/getStarted/powe …).

Atrodė, kad viskas man pavyko pirmą kartą (tai yra puikus pokytis nuo mano Raspberry Pi patirties).

Vienas svarbus dalykas yra tai, kad jums tikrai reikia tam tikro aušinimo „Panda“. Viršuje ir apačioje naudojau keletą prilipdomų radiatorių (apatinė dalis ypač įkaista).

Šioje diagramoje išsamiai aprašyti „Arduino“įėjimai ir išėjimai: https://docs.lattepanda.com/content/hardware/inputs… Norėdami prisijungti prie „MicroDot“(D9, D10), mes naudosime 3 kontaktų jungtį, esančią kairėje pusėje. ir D11), taip pat garso išvesties lizdą.

5 žingsnis: „LattePanda“- įdiekite „Alexa Sample App“

„LattePanda“- įdiekite „Alexa Sample App“
„LattePanda“- įdiekite „Alexa Sample App“

PARSISIŲSTI

„Alexa Sample App“galite rasti čia:

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

Paspauskite mygtuką Klonuoti arba Atsisiųsti ir atsisiųskite kaip.zip

Sukurkite katalogą C diske C: / ALEXA ir išskleiskite ZIP failo turinį, kad suspaustas katalogas, vadinamas mėginiais, būtų tiesiai ALEXA kataloge (ty C: / ALEXA / sample / …)

MONTAVIMAS

Oficialios išsamios instrukcijos, kaip įdiegti „Windows“, yra čia:

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

Yra nemažai žingsnių, ir tai užtrunka šiek tiek laiko, tačiau pastebėjau, kad su „Windows“pirmą kartą viskas vyko sklandžiai.

Jums reikės gero teksto redaktoriaus, kad galėtumėte redaguoti kai kuriuos konfigūracijos failus („Notepad“nėra gerai, nes failai turi „Linux“stiliaus eilučių pabaigą). Aš naudoju „Notepad ++“, kurį galite rasti čia:

Keletas pastabų apie oficialias instrukcijas:

3 dalis - Priklausomybės

Mano „Panda“yra 64 bitų, todėl atsisiunčiau visas 64 bitų versijas, tačiau jei diegsite 32 bitų sistemą, turėsite naudoti 32 bitų versijas. Pastaba: nemaišykite 32 ir 64 bitų priklausomybių versijų.

Nuoroda, rodoma naudojant VLC medijos leistuvę, pateks į 32 bitų versiją. Norėdami gauti 64 bitų versiją, eikite į šią nuorodą: https://www.videolan.org/vlc/download-windows.html ir atsisiuntimo mygtuke pasirinkite rodyklę, tada-64 bitų versijos diegimo programą.

„JDK“diegimui naudojau versiją: jdk-8u144-windows-x64 „nodejs“: „Windows Installer“(.msi) 64 bitų „Maven“: apache-maven-3.5.0-bin.zip „OpenSSL“naudojau: „Win64 OpenSSL v1.1.0f“

5 dalis. Autentifikavimo metodas

Pasirinkite 5a - „Nodejs“serverį. Jei gaunate klaidą vykdydami komandą „npm“, turite pridėti „nodejs“katalogą prie savo kelio aplinkos kintamojo (instrukcijose paaiškinta, kaip tai padaryti).

6 dalis - pavyzdinės programos paleidimas

Redaguodami failą config.json, nustatykite wakeWordAgentEnabled į true, nes kitame skyriuje įdiegsime pasirinktinį pažadinimo žodžių variklį („wake word“variklis, įtrauktas į pavyzdinę programą, veikia tik su „Linux“).

Jei gaunate klaidą vykdydami komandą „mvn“, turite pridėti savo katalogą „maven / bin“prie savo aplinkos aplinkos kintamojo.

Kai paleisite programą, turėtumėte gauti ekrano kopijoje rodomą GUI. Spustelėję piktogramą galėsite kalbėtis su Alexa. Tai yra pagrindinė „Alexa“programa - bet mums reikės daugiau!

Kiti veiksmai bus įdiegti pasirinktinį žadinimo žodžių variklį, kad galėtumėte tiesiog pasakyti „Alexa“, kad suaktyvintumėte, taip pat turite galimybę naudoti jutiklinį jutiklį per „Arduino“įvestį. Taip pat turime nustatyti, kad programa būtų paleista automatiškai paleidžiant, ir uždegti kai kuriuos šviesos diodus, kai „Alexa“klausosi ir kalba.

6 žingsnis: „LattePanda“- įdiekite pasirinktinį „WakeWord“variklį

„LattePanda“- įdiekite pasirinktinį „WakeWord“variklį
„LattePanda“- įdiekite pasirinktinį „WakeWord“variklį

WAKEWORD VARIKLIS

„WakeWord“variklis leidžia „Alexa“pažadinti ištartu žodžiu (paprastai „Alexa“), užuot spustelėjus mygtuką. Pavyzdinėje programoje yra dvi „WakeWord“variklio parinktys: „Sensory“arba „KITT. AI“pažadinimo žodžių varikliai. Tačiau jų diegimas pavyzdinėje programoje veikia tik „Linux“. Abiem šiems varikliams taip pat taikomi tam tikri licencijavimo reikalavimai.

Čia įdiegsiu pasirinktinį žadinimo žodžių variklį, pagrįstą paties „Windows 10“kalbos atpažinimo SDK. Taigi tai taip pat nereikalauja jokių papildomų licencijos reikalavimų.

ĮRENGTI PRIKLAUSOMYBES

„Microsoft Speech Platform - Runtime“(11 versija) https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32 bitų) arba x64_SpeechPlatformRuntime / SpeechPlatformRuntime.msi (64 bitų)

„Microsoft Speech Platform-Runtime Languages“(11 versija)

Mano pasirinktinis „WakeWord“variklis buvo parašytas „C#“programoje „Visual Studio 2017.“. Čia pateikiau galutinį vykdomąjį failą ir šaltinio kodą. Jei norite jį surinkti patys, jums taip pat reikės:

„Microsoft Speech Platform“- programinės įrangos kūrimo rinkinys (SDK) (11 versija) https://www.microsoft.com/en-gb/download/details…. 64 bitų)

Įdėkite „WakeWordPanda.exe“(ir alexa_run.bat) į ALEXA katalogą. Ši programa atlieka šias užduotis:- klauso „Alexa“žadinimo žodžio;- stebi jutiklinio įvesties jutiklį;- valdo mėlynus ir baltus šviesos diodus.

Atminkite, kad tai sukūriau kitame „Windows 10“kompiuteryje, kad nereikėtų įdiegti „Visual Studio“„LattePanda“, nes nenorėjau sunaudoti gigabaitų. Aš prijungiau „Arduino Uno“, įdiegtą su „StandardFirmata“(https://www.lattepanda.com/docs/#SetuptheArduino), prie kūrimo kompiuterio, kad galėčiau taip pat kurti su „Arduino“įvestimi/išvestimi. „Visual Studio“šaltinio kodas taip pat pridedamas, jei norite jį pakeisti ir (arba) kompiliuoti patys.

PAKEISKITE JAVA KLIENTĄ

„Java“klientui reikia pridėti keletą papildomų eilučių prie kodo. Tai leidžia šviesos diodams tinkamai veikti:

Kai „Alexa“klausosi, „WakeWord“varikliui siunčiamas PAUSE_WAKE_WORD_ENGINE signalas. Aš naudoju šį signalą norėdamas sužinoti, kada įjungti MĖLYNĄ („Alexa“klausymosi šviesos diodą). Kai gaunamas RESUME_WAKE_WORD_ENGINE signalas, mėlynas šviesos diodas užgęsta ir įsijungia BALTAS („Alexa“kalbantis šviesos diodas). Papildomas kodas siunčia kitą RESUME_WAKE_WORD_ENGINE signalą, kai Alexa nustoja kalbėti - kad „WakeWord“variklis žinotų, kada išjungti baltą šviesos diodą.

Eikite į: C: / ALEXA / sample / javaclient / src / main / java / com / amazon / alexa / avs ir teksto rengyklėje atidarykite AVSController.java. Nukopijuokite kodą iš pridėto failo Extra_Code.txt. Jį reikia įterpti į dvi vietas:

1. Funkcijoje public void onAlexaSpeechFinished () iškart po teiginio: DependDirectiveThread.unblock ();

2. Funkcijoje private void handleAudioPlayerDirective (direktyvos direktyva) tiesiai prieš teiginį: player.handleStop ();

Aš taip pat pakeičiau patvirtinimo signalą, kad „WakeWord“variklis žinotų, ar „Alexa“atsakė. Taip atšaukiamas 5 sekundžių skirtasis laikas, kuris įvyks, jei nebus atsakyta. Nukopijuokite kodą iš „Extra_Code2.txt“ir įdėkite jį į vieną vietą:

1. Funkcijojepublic void onAlexaSpeechStarted () iškart po teiginio dependDirectiveThread.block ();

Dabar turite iš naujo sukompiliuoti „Java“klientą. Atidarykite komandų eilutę ir eikite į C: / ALEXA / sample / javaclient Enter: mvn install to compile.

Jei paleidžiate „Companion Service“ir „Java Alexa“programą, kaip ir anksčiau, tada dukart spustelėkite „WakeWordPanda.exe“, palaukite, kol ji prisijungs, tada turėtumėte turėti galimybę suaktyvinti „Alexa“sakydami „Alexa“.

MICRODOT

Jei prijungsite „MicroDot“„USB“kabelį prie „LattePanda“, kaip parodyta diagramoje, ir prijunkite garso kabelį, jis dabar turėtų visiškai veikti. Ištarti pažadinimo žodį arba paliesti groteles turėtų suaktyvinti „Alexa“ir užsidegti mėlyni šviesos diodai. Baltieji šviesos diodai turėtų užsidegti, kai „Alexa“reaguoja.

SETUP AUTO RUN

Užuot rankiniu būdu įvedę visas komandas, kad pradėtumėte viską, galite naudoti scenarijų alexa_run.bat. Tai lauks interneto ryšio ir tada iškvies atskirus modulius (papildomą paslaugą, „Java“klientą, „Wake-Word“variklį).

Paskutinis žingsnis yra paleisti viską automatiškai:

1. Dešiniuoju pelės mygtuku spustelėkite automatinį paleidimą.bat ir pasirinkite sukurti nuorodą.2. Paspauskite „Ctrl“+R ir įveskite „shell: startup“. Tai atvers paleisties aplanką.3. Vilkite sukurtą nuorodą į paleisties aplanką.

Dabar „Alexa“bus paleista automatiškai paleidžiant (po paleidimo reikia maždaug 30 sekundžių).

7 žingsnis: „MicroDot“, skirtas „Raspberry Pi“

„MicroDot“, skirtas „Raspberry Pi“
„MicroDot“, skirtas „Raspberry Pi“
„MicroDot“, skirtas „Raspberry Pi“
„MicroDot“, skirtas „Raspberry Pi“

(Jei norite vietoj „LattePanda“naudoti „Raspberry Pi 3“).

PARSISIŲSTI

Atsisiųskite „Alexa Sample App“iš čia:

Paspauskite mygtuką Klonuoti arba Atsisiųsti ir atsisiųskite kaip.zip. Išpakuokite, kad darbalaukyje būtų aplankas alexa-ava-sample-app.

MONTAVIMAS

Vykdykite visas oficialias instrukcijas čia (pastaba: nustatykite taip, kad darbalaukyje būtų aplankas alexa-ava-sample-app):

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

Internete yra daug vadovų, kaip tai padaryti naudojant „Raspberry Pi“. Aš tai įdiegiau porą kartų „Raspberry Pi“ir nė karto nepavyko taip sklandžiai, kaip diegti „WIndows 10“(nenuostabu - „Linux“mane gauna kiekvieną kartą). Pagrindinės problemos, su kuriomis susidūriau, buvo šios:

1. Kad garsas ir mikrofonas tinkamai veiktų. Žiūrėkite čia https://github.com/alexa-pi/AlexaPi/wiki/Audio-set…, jei taip pat turite tokių problemų.

2. Problemos su JDK versija. Žr. 4.3 oficialiose instrukcijose ir pom.xml failo pastabą, kurioje kalbama apie versijos nepaisymą vykdant komandą mvn exec: exec (ty turėjau pridėti šį jungiklį -Dalpn -boot.version = 8.1.6.v20151105). Atminkite, kad ši komanda yra įtraukta į mano paleidimo scenarijų (alexa_startup.sh).

3. „Sensory Wake Word“variklio veikimas (https://github.com/Sensory/alexa-rpi)

Kai viskas bus paleista naudojant rankines komandas, kaip nurodyta instrukcijose, tęskite „MicroDot“diegimą.

MICRODOT JUNGTIS

Negalite tiesiogiai prijungti „MicroDot“prie GPIO, nes jis pritrauks per daug srovės. Jums reikės: 2x 2N3904 tranzistorių, kad būtų galima valdyti šviesos diodus, 1x2K2 ir 1x3K3 rezistorius, kad jutiklinė jutiklio įtampa sumažėtų iki 3,3 V („MicroDot“bus maitinamas iš 5 V maitinimo šaltinio). Žiūrėkite pridedamą schemą. Galbūt norėsite tai padaryti PCB, bet aš ką tik sumontavau šiuos komponentus ant 8 kontaktų kištuko galo.

PASIRINKTAS ŽADINIMO VARIKLIS (LIESTI)

Išpakuokite pridėto zip aplanko turinį į aplanką alexa-avs-sample-app. Yra du failai: wake.py - „python“scenarijus, kuris yra pasirinktinis (lietimo) „wake“variklis „MicroDot alexa_autostart.sh“- scenarijus, skirtas viskam paleisti. Dešiniuoju pelės mygtuku spustelėkite ypatybes ir pasirinkite vykdyti: bet kas leidimų skirtuke.

Norėdami paleisti žadinimo variklį, turėsite įdiegti „python“. Jums taip pat reikės GPIO bibliotekos (https://makezine.com/projects/tutorial-raspberry-p…). Jie jau turėtų būti įdiegti naujausioje „Raspbian“versijoje.

Norėdami paleisti viską, įveskite terminalą: cd/home/pi/Desktop/alexa-avs-sample-appsudo./alexa_startup.sh

NUSTATYTI AUTORUN

Norėdami nustatyti, kad „Alexa“būtų paleista automatiškai paleidžiant, atidarykite terminalą ir įveskite:

cd /home/pi/.config/lxsession/LXDE-pisudo nano automatinis paleidimas

ir pridėkite eilutę ir išsaugokite:

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

Perkraukite ir „Alexa“programa turėtų būti paleista automatiškai.