Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ang MicroDot ay isang home-made Alexa 'button' na idinisenyo upang maiugnay sa isang LattePanda o isang Raspberry Pi, na naka-install ang Alexa Sample App. Ito ay isang maliit na speaker na may LED's at pag-activate / pagsasalita ng activation, at mainam para magamit sa isang desktop o sa isang kotse.
* Ang LattePanda para sa proyektong ito ay pinapayuhan na ibigay ng DFRobot
Hakbang 1: Pangkalahatang-ideya ng System
LATTE PANDA
Ang LattePanda ay isang maliit (tungkol sa laki ng isang Raspberry Pi) Windows 10 computer na may built-in na Arduino para sa interfacing sa totoong mundo. Ito ay talagang nakakatawang - at isang mahusay na kapalit ng Raspberry Pi - lalo na kung ikaw (tulad ko) ay may mga problema sa paghawak sa Linux.
Na-install ko ang Alexa Sample App papunta sa Panda, at ipinatupad ang aking sariling engine ng paggising na salita batay sa Windows built-in na pagsasalita ng SDK.
MICRODOT
Ang MicroDot ay binubuo ng isang maliit na amplifier at speaker na may touch-sensitive grill at asul / puting LED array. Ang MicroDot ay orihinal na idinisenyo upang mailagay sa dash sa aking kotse upang maibigay ang aking in-car na solusyon sa Alexa (upang ipares sa aking nakaraang proyekto - stereo ng kotse na pinagana ng Alexa). Pati na rin ang pagkakaroon ng isang pagpipilian sa paggising ng salita, nais ko ang pag-aaktibo dahil mahihirapan si Alexa na marinig ang aking gisingin na salita kapag ang musika ay malakas! (Kapag naaktibo, ang Panda ay magpapadala ng isang senyas sa stereo upang i-down ang volume habang nakikinig / nagsasalita si Alexa).
RASPBERRY PI
Para sa mga mas matatas sa "Raspberry Pi", inilarawan ko sa dulo ng Instructable na ito kung paano i-interface ang MicroDot sa isang Rapsberry Pi 3.
Hakbang 2: MicroDot Circuit
BAHAGI
6 x 220R SMD Resistors2 x 470R SMD Resistors1 x 10uF SMD Capacitor1 x TTP223 Touch Sensor Module (https://www.ebay.com/itm/192097635565)1 x PAM8403 3W Amplifier Module (https://www.ebay.com/ itm / 221895096190) 1 x 10K Single Linear Thumb Potentiometer (https://www.ebay.com/itm/401105807680)1 x 50pF Ceramic Capacitor3 x 3mm Blue LEDs3 x 3mm White LEDs1 x 1.7inch 4ohm 3W Speaker1 x Thin Black Cable mula sa old Earphones1 x Manipis na 1m USB Extension Cable *
KONSTRUKSYON
Ang MicroDot PCB ay ginawa ng iron on toner na pamamaraan sa 0.8mm makapal na solong panig na board - sa kapal na ito maaari itong gupitin nang halos hugis ng matalim na gunting at pagkatapos ay madaling mai-file sa hugis. I-mount muna ang lahat ng mga bahagi ng mount mount.
Ang isang kawad ay kailangang konektado sa ibabaw ng touch ng sensor, kaya't ang isang maliit na lugar ay kailangang i-scraped upang maghinang sa. Natagpuan ko na sa hilaw na mode nito, ang sensor ay masyadong sensitibo - gumana ito ng maayos, ngunit sa sandaling naka-mount ito sa enclosure madalas itong maling pag-trigger sanhi ng kalapitan nito sa metal speaker. Pinasadahan ko ang metal speaker - na medyo nakatulong, ngunit kailangan kong mag-refer sa kalaunan sa datasheet.
Ang datasheet ng TTP223 ay nagsasaad na maaari mong ayusin ang pagiging sensitibo sa pamamagitan ng paglalagay ng isang kapasitor (0 hanggang 50pf) sa pagitan ng touch sensor at ground. Ang sensor ay nagtrabaho ng maayos sa isang 50pf capacitor. Maaari mong makita ang paglalagay nito sa larawan ng susunod na seksyon.
Dalawang mga cable ang ginagamit upang ikonekta ang MicroDot sa Panda: - isang manipis na itim na cable mula sa isang lumang pares ng mga earphone upang ikonekta ang audio- isang manipis na USB cable ang ginamit upang kumonekta sa GPIO (touch sensor / LEDs). Kakailanganin mo ang isang cable na may 6 na magkakahiwalay na konektor (5 panloob na + kalasag). * Mag-ingat na ang ilang mga murang mga USB cable ay walang hiwalay na ground-pin / kalasag, o ang dalawang ito ay maaaring konektado sa loob (suriin ito bago i-cut up ang iyong cable sa pamamagitan ng pagtiyak na mayroong pagpapatuloy sa pagitan ng mga panlabas na bahagi ng metal ng lalaki at babae plugs, at na walang pagpapatuloy sa pagitan ng ground pin at ang mga panlabas na bahagi ng metal).
Gamitin ang mga koneksyon sa USB cable: pula = + 5v, kalasag = GND, itim = touch sensor, puti = puting LEDs, berde = asul na LEDs. Sa halip na i-cut lamang ang mga pig at matigas na mga kable nito, baka gusto mong gawin ang ginawa ko at panatilihin ang mga plugs at gupitin ang isang mahabang seksyon at isang maikling (sabihin na 200mm) na seksyon, at isaksak ang dalawang dulo ng cable. Sa ganitong paraan ang unit ay nababakas. Siguraduhin lamang na hindi mo mai-plug ang anumang mga aktwal na USB device dito, o i-plug ito sa isang regular na USB port!
Hakbang 3: Paggawa ng MicroDot
3D PRINTED PARTS
Mayroong apat na mga naka-print na bahagi ng 3D sa naka-attach na zip file: 1. Pangunahing shell ng MicroDot - naka-print sa itim na PLA2. Base ng MicroDot - naka-print sa itim na PLA3. LED ring - naka-print sa puting PLA (malinaw o translucent ay maaaring maging mas mahusay upang makatulong na maipalaganap ang ilaw nang pantay-pantay) 4. PCB spacer - anumang kulay - na-sandwich sa pagitan ng speaker at PCB.
Ang M2 bolts at nut ay ginagamit upang i-tornilyo ang base sa shell. Tatlong M2 bolts ang kailangang matunaw sa mga puwang sa loob ng shell. Ang mga ito ay medyo maliit, at maaaring kailanganin mong "" maghinang "sa mga ito sa lugar na may ilang karagdagang filament.
LED ARRAY
Ang puti at asul na mga LED ay naka-mount sa array na halili tulad ng ipinakita sa mga larawan. Ang mga lead ay yumuko sa 90 degree laban sa ilalim ng LED at ang mga lead ay natunaw sa singsing na may isang mainit na bakal na panghinang (tandaan ang polarity dito). Ang ilalim ng mga LED ay nai-file pababa upang ang mga ito ay patag sa ibabaw ng singsing.
Ang mga code ng LED ay nakakonekta lahat kasama ang isang singsing ng kawad at kumokonekta ito sa pinakamababang pin ng header. Ang iba pang mga pin ng header ay dapat na kahalili asul / puti para sa bawat indibidwal na LED
PATTING IT THGETHER
Ang grill ay pinutol mula sa isang may-hawak ng desktop paper (nakalarawan) na may isang wire na hinang sa isang gilid. Ipinasok muna ito sa shell, pagkatapos ay ang LED array (dapat itong ipasok sa isang anggulo tulad ng ipinakita, na nakahanay ang puwang sa isa sa mga post sa tornilyo). Ang nagsasalita ay susunod (maglagay ng ilang manipis na tape sa paligid ng tuktok upang insulate ito mula sa gilid ng PCB). Pagkatapos ang spacer, at ang PCB ay nakaupo lamang sa itaas. I-screw ang base upang mapanatili itong magkasama.
Kapag isinaksak ang audio cable sa LattePanda, nalaman kong kailangan kong gumamit ng isang audio ground loop filter (https://www.ebay.com/itm/371801191297) upang makakuha ng maayos na tunog. Tandaan na sa mga larawan ginagamit ko ang audio-out ng aking HDMI-VGA video adapter, ngunit mainam na gamitin ang on-board audio output jack.
Kakailanganin mo rin ang isang usb microphone (https://www.ebay.com/itm/332148968227).
Hakbang 4: Ang LattePanda
SETUP
Ang Panda ay nagmula sa mga modelo ng 2G / 32G at 4G / 64G, mayroon o walang Windows 10 Lisensya. Ang modelo na ginamit ko ay ang bersyon ng 2G / 32G na may Lisensya ng Windows 10:
Mangyaring tingnan ang opisyal na dokumentasyon para sa pag-aayos ng iyong LattePanda (https://docs.lattepanda.com) Walang masyadong kumplikado dito, ngunit pansinin ang mga tagubilin para sa pagpapagana ng iyong Panda (https://docs.lattepanda.com/ nilalaman / getStarted / powe…).
Ang lahat ay tila gumana sa unang pagkakataon para sa akin (na kung saan ay isang magandang pagbabago mula sa aking mga karanasan sa Raspberry Pi).
Ang isang mahalagang bagay ay talagang kailangan mo ng isang uri ng paglamig para sa Panda. Gumamit ako ng ilang mga stick-on heatsink sa itaas at ibaba (ang ibabang bahagi ay nagiging mainit).
Detalye ng diagram na ito ang mga input at output ng Arduino: https://docs.lattepanda.com/content/hardware/inputs… Gagamitin namin ang array ng 3 pin konektor sa kaliwang bahagi upang kumonekta sa MicroDot (D9, D10 at D11), pati na rin ang audio output jack.
Hakbang 5: LattePanda - I-install ang Sample App ng Alexa
MAG-DOWNLOAD
Ang Alexa Sample App ay magagamit dito:
github.com/alexa/alexa-avs-sample-app/
Pindutin ang pindutang I-clone o I-download at i-download bilang.zip
Lumikha ng isang direktoryo sa c drive C: / ALEXA, at kunin ang mga nilalaman ng zip upang ang naka-zip na direktoryo na tinatawag na mga sample ay nakaupo nang direkta sa direktoryo ng ALEXA (ie C: / ALEXA / mga sample \…)
INSTALLING
Ang opisyal na buong mga tagubilin para sa kung paano mag-install sa Windows ay narito:
github.com/alexa/alexa-avs-sample-app/wiki…
Mayroong ilang mga hakbang, at ito ay tumatagal ng isang maliit na habang, ngunit nalaman ko na sa Windows lahat ng bagay ay naging maayos sa unang pagkakataon.
Kakailanganin mo ang isang mahusay na editor ng teksto upang mai-edit ang ilan sa mga file ng pagsasaayos (Ang Notepad ay hindi mabuti dahil ang mga file ay may mga pagtatapos ng linya ng istilo ng Linux). Gumamit ako ng Notepad ++ na magagamit dito:
Ilang tala tungkol sa mga opisyal na tagubilin:
Bahagi 3 - Mga Dependensya
Ang aking Panda ay 64 bit, kaya na-download ko ang lahat ng mga 64 bit na bersyon, ngunit kung nag-i-install ka sa isang 32 bit na system kakailanganin mong gamitin ang mga 32 bit na bersyon. Tandaan: huwag paghaluin ang 32 at 64 na mga bersyon ng mga dependance.
Ang link na ipinakita para sa VLC media player, magdadala sa iyo sa 32 bit na bersyon. Upang makuha ang bersyon ng 64 bit, pumunta sa link na ito: https://www.videolan.org/vlc/download-windows.html at sa pindutang i-download, piliin ang arrow, at pagkatapos ang Installer para sa bersyon ng 64bit.
Para sa pag-install ng JDK Gumamit ako ng bersyon: jdk-8u144-windows-x64Para sa mga nodej na ginamit ko: Windows Installer (.msi) 64 bitFor Maven: apache-maven-3.5.0-bin.zipFor OpenSSL Ginamit ko: Win64 OpenSSL v1.1.0f
Bahagi 5 - Paraan ng pagpapatunay
Piliin ang 5a - Nodejs server. Kung nakakuha ka ng isang error sa pagpapatakbo ng utos ng npm, kailangan mong idagdag ang iyong direktoryo ng nodejs sa iyong variable na kapaligiran sa path (ipinaliwanag sa mga tagubilin kung paano ito gawin).
Bahagi 6 - Pagpapatakbo ng sample app
Kapag ang pag-edit ng config.json file, itakda ang wakWordAgentEnified upang totoo, dahil mag-i-install kami ng isang pasadyang engine ng wake word sa susunod na seksyon (ang engine ng wake word na kasama sa sample na app ay gagana lamang sa Linux).
Kung nakakuha ka ng isang error sa pagpapatakbo ng utos ng mvn, pagkatapos ay kailangan mong idagdag ang iyong direktoryo ng maven / bin sa iyong path environment variable.
Kapag pinatakbo mo ang app, dapat mong makuha ang GUI na ipinapakita sa screenshot. Kapag nag-click ka sa icon makakausap mo si Alexa. Ito ang pangunahing Alexa app - ngunit kakailanganin namin ng higit sa ito!
Ang mga susunod na hakbang ay ang pag-install ng isang pasadyang engine ng wake-word upang masabi mo lamang ang "Alexa" upang i-aktibo, at magkaroon din ng pagpipilian na gumamit ng isang touch sensor sa pamamagitan ng Arduino input. Kailangan din naming awtomatikong patakbuhin ang app sa pagsisimula, at sindihan ang ilang mga LED kapag nakikinig at nakikipag-usap si Alexa.
Hakbang 6: LattePanda - I-install ang Custom WakeWord Engine
WAKEWORD ENGINE
Pinapayagan ng isang WakeWord engine na magising si Alexa ng isang sinasalitang salita (karaniwang '' Alexa ), sa halip na mag-click sa isang pindutan. Ang sample na app ay may dalawang pagpipilian para sa WakeWord engine: Sensory o KITT. AI wake word engine. Ang ang pagpapatupad para sa mga ito sa sample na app, gayunpaman, gagana lamang para sa Linux. Ang parehong mga engine na ito ay napapailalim din sa ilang mga kinakailangan sa paglilisensya.
Dito ko ipapatupad ang isang pasadyang engine ng salita ng paggising na batay sa sariling SDK ng pagkilala sa pagsasalita ng Windows 10. Kaya't libre din ito sa anumang karagdagang mga kinakailangan sa lisensya.
INSTALL DEPENDENCIES
Microsoft Speech Platform - Runtime (Bersyon 11) https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32 bit) o x64_SpeechPlatformRuntime / SpeechPlatformRuntime.msi (64 bit)
Platform ng Microsoft Speech - Runtime Languages (Bersyon 11)
Ang aking pasadyang engine na WakeWord ay nakasulat sa C # sa Visual Studio 2017. Naibigay ko ang pangwakas na maipapatupad dito at pati na rin ang source code. Kung nais mong isulat ito sa iyong sarili, kakailanganin mo din ito:
Platform ng Microsoft Speech - Software Development Kit (SDK) (Bersyon 11) https://www.microsoft.com/en-gb/download/details…. 64 bit)
Ilagay ang WakeWordPanda.exe (at Alexa_run.bat) sa direktoryo ng ALEXA. Ginagawa ng program na ito ang mga sumusunod na gawain: - Nakikinig para sa '' Alexa wake word- Sinusubaybayan ang sensor ng pag-input ng touch- Kinokontrol ang BLUE at WHITE LED's
Tandaan na binuo ko ito sa isa pang computer ng Windows 10 upang hindi ko na kailangang mai-install ang Visual Studio sa LattePanda, dahil hindi ko nais na gamitin ang Gigabytes. Nakakonekta ako sa isang Arduino Uno na naka-install sa StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) sa computer ng pag-unlad upang makagawa rin ako ng Arduino input / output. Ang source code ng Visual Studio ay nakakabit din kung nais mong baguhin at / o ipagsama ito sa iyong sarili.
BAGUHIN ANG CLIENT NG JAVA
Ang Java Client ay nangangailangan ng ilang dagdag na mga linya na naidagdag sa code. Ito ay upang paganahin ang mga LED upang gumana nang tama:
Kapag nakikinig si Alexa, isang senyas ng PAUSE_WAKE_WORD_ENGINE ay ipinadala sa engine ng WakeWord. Ginamit ko ang senyas na ito upang malaman kung kailan i-on ang BLUE (Alexa na nakikinig na LED). Kapag natanggap ang signal na RESUME_WAKE_WORD_ENGINE, papatay ang Blue LED, at ang WHITE (Alexa nagsasalita LED) ay nakabukas. Nagpadala ang sobrang code ng isa pang signal ng RESUME_WAKE_WORD_ENGINE kapag tumigil sa pagsasalita si Alexa - upang malaman ng engine ng WakeWord kung kailan dapat patayin ang White LED.
Mag-navigate sa: C: / ALEXA / mga sample / javaclient / src / main / java / com / amazon / Alexa / avs at buksan ang AVSController.java sa iyong text editor. Kopyahin ang code mula sa nakalakip na Extra_Code.txt file. Kailangan itong ipasok sa dalawang lugar:
1. Sa pagpapaandar ng publiko na walang bisa saAlexaSpeechFinished () nang direkta pagkatapos ng pahayag: dependDirectiveThread.unblock ();
2. Sa pagpapaandar ng pribadong void handleAudioPlayerDirective (Direktibong direktiba) nang direkta bago ang pahayag: player.handleStop ();
Nilayon ko ring muling pakay ang senyas ng Kumpirmahin upang malaman ng makina ng WakeWord kung tumugon si Alexa. Ito ay upang kanselahin ang isang 5 segundong timeout na magaganap kung walang tugon. Kopyahin ang code mula sa Extra_Code2.txt at ipasok ito sa isang lugar:
1. Sa functionpublic void onAlexaSpeechStarted () nang direkta pagkatapos ng pahayag na dependDirectiveThread.block ();
Kailangan mo ngayong muling kumpunahin ang Java Client. Buksan ang isang prompt ng utos at mag-navigate sa C: / ALEXA / mga sample / javaclient Enter: mvn install upang muling magkumpuni.
Kung sinisimulan mo ang Kasamang Serbisyo at Java Alexa app tulad ng dati, at pagkatapos ay mag-click din sa WakeWordPanda.exe, hintayin itong kumonekta, at pagkatapos ay dapat mong buhayin ang Alexa sa pamamagitan ng pagsasabi ng "Alexa".
MICRODOT
Kung ikinonekta mo ang cable na 'USB' ng MicroDot sa LattePanda tulad ng ipinakita sa diagram, at isaksak ang audio cable, dapat na itong ganap na magamit. Ang pagsasalita ng gising na salita o pagpindot sa grill ay dapat na buhayin ang Alexa at ang mga asul na LED ay dapat na dumating. Ang mga puting LED ay dapat na dumating sa pagtugon ni Alexa.
SETUP AUTO RUN
Sa halip na mag-type ng manu-manong sa lahat ng mga utos upang masimulan ang lahat, maaari mong gamitin ang script na Alexa_run.bat. Maghihintay ito para sa isang koneksyon sa internet, at pagkatapos ay ipatawag ang magkakahiwalay na mga module (kasamang serbisyo, java client, wak-word engine).
Ang huling hakbang ay upang gawing awtomatikong tumakbo ang lahat sa pagsisimula:
1. Mag-right click sa auto-run.bat at piliin ang lumikha ng shortcut.2. Pindutin ang ctrl + R at i-type ang shell: startup. Bubuksan nito ang startup folder.3. I-drag ang shortcut na iyong nilikha sa startup folder.
Awtomatikong tatakbo ngayon ang Alexa sa pagsisimula (tumatagal ng 30 segundo o higit pa upang magpasimula pagkatapos ng pagsisimula).
Hakbang 7: MicroDot para sa Raspberry Pi
(Kung nais mong gumamit ng isang Raspberry Pi 3 sa halip na isang LattePanda).
MAG-DOWNLOAD
I-download ang Alexa Sample App mula dito:
Pindutin ang pindutang I-clone o I-download at i-download bilang.zip. I-unzip upang ang Alexa-ava-sample-app folder ay nasa Desktop.
INSTALLING
Sundin ang opisyal na buong mga tagubilin dito (tala: pag-setup upang ang Alexa-ava-sample-app folder sa Desktop):
github.com/alexa/alexa-avs-sample-app/wiki…
Maraming mga gabay para sa paggawa nito sa isang Raspberry Pi sa interne. Na-install ko ito ng maraming beses sa Raspberry Pi, at ni oras ay naging maayos ito tulad ng pag-install sa WIndows 10 (walang sorpresa - Nakukuha ako ng Linux sa tuwing). Ang mga pangunahing isyu na nakasalamuha ko ay:
1. Pagkuha ng maayos ang audio at mikropono. Tingnan dito https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… kung mayroon ka rin ng mga isyung ito.
2. Mga problema sa bersyon ng JDK. Tingnan ang 4.3 sa mga opisyal na tagubilin, at ang tala sa pom.xml file na pinag-uusapan tungkol sa pag-override ng bersyon kapag naisakatuparan ang mvn exec: exec command (ie kailangan kong idagdag ang switch -Dalpn-boot.version = 8.1.6.v20151105). Tandaan na ang utos na ito ay kasama sa aking script ng pagsisimula (Alexa_startup.sh).
3. Pagkuha ng Sensory wake word engine upang gumana (https://github.com/Sensory/alexa-rpi)
Sa sandaling makuha mo ang lahat ng ito na tumatakbo sa mga manu-manong utos na nakabalangkas sa mga tagubilin, magpatuloy sa pag-install ng MicroDot.
MICRODOT CONNECTION
Hindi mo maaaring direktang ikabit ang MicroDot sa GPIO dahil makakakuha ito ng sobrang kasalukuyang. Kakailanganin mo: 2x 2N3904 transisitors upang himukin ang resistors ng LED, 1x2K2 at 1x3K3 upang i-drop ang boltahe mula sa touch sensor sa 3.3V (ang MicroDot ay pinapagana mula sa 5V supply). Sumangguni sa nakalakip na diagram. Maaaring gusto mong gumawa ng PCB para dito, ngunit na-mount ko lang ang mga sangkap na ito sa likod ng isang 8 pin na babaeng plug.
CUSTOM WAKE ENGINE (TOUCH)
I-zip ang mga nilalaman ng nakalakip na zip folder sa Alexa-avs-sample-app folder. Mayroong dalawang mga file: wake.py - isang python script na kung saan ay ang pasadyang (pindutin) ang engine ng paggising para sa MicroDot Alexa_autostart.sh - isang script upang patakbuhin ang lahat. Pag-click sa mga pag-click sa kanan dito, at piliin ang isagawa: kahit sino sa tab ng mga pahintulot.
Kakailanganin mo ang naka-install na sawa upang mapatakbo ang wake engine. Kakailanganin mo rin ang library ng GPIO (https://makezine.com/projects/tutorial-raspberry-p…) Dapat na mai-install ang mga ito sa pinakabagong bersyon ng Raspbian.
Upang patakbuhin ang lahat, mag-type sa terminal: cd / home / pi / Desktop / Alexa-avs-sample-appsudo./alexa_startup.sh
SET UP AUTORUN
Upang mai-setup ang Alexa upang awtomatikong tumakbo sa bootup, buksan ang isang terminal at i-type:
cd /home/pi/.config/lxsession/LXDE-pisudo nano autostart
at idagdag ang linya at i-save:
@ / home / pi / Desktop / Alexa-avs-sample-app / Alexa_autostart.sh
I-reboot at ang Alexa app ay dapat na awtomatikong patakbuhin.