„MicroDot” dla LattePanda (lub Raspberry Pi): 7 kroków (ze zdjęciami)
„MicroDot” dla LattePanda (lub Raspberry Pi): 7 kroków (ze zdjęciami)
Anonim
Obraz
Obraz

MicroDot to domowej roboty „przycisk” Alexa przeznaczony do podłączenia do LattePanda lub Raspberry Pi z zainstalowaną aplikacją Alexa Sample. Jest to mały głośnik z diodami LED i aktywacją dotykową/mową, idealny do użytku na biurku lub w samochodzie.

* LattePanda dla tego projektu została uprzejmie dostarczona przez DFRobot

Krok 1: Przegląd systemu

Przegląd systemu
Przegląd systemu

LATTE PANDA

LattePanda to mały (wielkości Raspberry Pi) komputer z systemem Windows 10 z wbudowanym Arduino do łączenia się ze światem rzeczywistym. Jest naprawdę całkiem fajny – i jest dobrym zamiennikiem Raspberry Pi – zwłaszcza jeśli (tak jak ja) masz problemy z opanowaniem Linuksa.

Zainstalowałem aplikację Alexa Sample App na Pandzie i zaimplementowałem własny silnik wake-word oparty na wbudowanym w Windows SDK rozpoznawania mowy.

MIKRODOTY

MicroDot składa się z małego wzmacniacza i głośnika z wrażliwą na dotyk maskownicą i niebiesko-białymi diodami LED. MicroDot został pierwotnie zaprojektowany do umieszczenia na desce rozdzielczej w moim samochodzie, aby zapewnić moje samochodowe rozwiązanie Alexa (w celu sparowania z moim poprzednim projektem - samochodowym stereo z obsługą Alexy). Oprócz opcji budzenia chciałem aktywować dotyk, ponieważ Alexa będzie miała trudności z usłyszeniem mojego słowa budzenia, gdy muzyka jest głośna! (Po aktywacji Panda wyśle sygnał do zestawu stereo, aby zmniejszyć głośność, gdy Alexa słucha/mówi).

MALINA PI

Dla tych, którzy są bardziej płynni w "Raspberry Pi", opisałem na końcu tej instrukcji, jak połączyć MicroDot z Rapsberry Pi 3.

Krok 2: Obwód MicroDot

Obwód MicroDot
Obwód MicroDot
Obwód MicroDot
Obwód MicroDot
Obwód MicroDot
Obwód MicroDot

CZĘŚCI

6 x rezystory SMD 220R2 x rezystory SMD 470R1 x kondensator SMD 10uF1 x moduł czujnika dotykowego TTP223 (https://www.ebay.com/itm/192097635565)1 x moduł wzmacniacza PAM8403 3W (https://www.ebay.com/ szt/221895096190) 1 x 10 K pojedynczy liniowy potencjometr kciukowy (https://www.ebay.com/itm/401105807680) 1 x 50 pF kondensator ceramiczny 3 x 3 mm niebieskie diody LED 3 x 3 mm białe diody LED 1 x 1,7 cala 4 ohm 3 W głośnik1 x cienki czarny kabel od stare słuchawki 1 x cienki czarny przedłużacz USB 1 m*

BUDOWA

Płytka MicroDot została wykonana metodą żelazko na tonerze na jednostronnej płycie o grubości 0,8 mm - przy tej grubości można ją zgrubnie przyciąć do kształtu ostrymi nożyczkami, a następnie łatwo spiłować. Najpierw zamontuj wszystkie elementy do montażu powierzchniowego.

Przewód musi być podłączony do powierzchni dotykowej czujnika, więc trzeba zeskrobać niewielki obszar, aby go przylutować. Odkryłem, że w trybie surowym czujnik był zbyt czuły – działał dobrze, ale po zamontowaniu w obudowie często był fałszywie wyzwalany ze względu na bliskość metalowego głośnika. Uziemiłem metalowy głośnik - co trochę pomogło, ale ostatecznie musiałem odwołać się do arkusza danych.

W arkuszu danych TTP223 podano, że można regulować czułość, umieszczając kondensator (0 do 50 pf) między czujnikiem dotykowym a masą. Czujnik działał dobrze z kondensatorem 50pf. Możesz zobaczyć umieszczenie tego na obrazku w następnej sekcji.

Do podłączenia MicroDota do Pandy używane są dwa kable: - cienki czarny kabel ze starej pary słuchawek do podłączenia audio - cienki kabel USB został użyty do połączenia z GPIO (czujnik dotykowy/diody LED). Potrzebny będzie kabel z 6 osobnymi złączami (5 wewnętrznych + ekran). *Uważaj, że niektóre tanie kable USB nie mają oddzielnego styku uziemienia/ekranu lub te dwa mogą być połączone wewnętrznie (sprawdź to przed przecięciem kabla, upewniając się, że istnieje ciągłość między zewnętrznymi metalowymi częściami męskiego i żeńskiego wtyczki i nie ma ciągłości między bolcem uziemiającym a zewnętrznymi częściami metalowymi).

Użyj połączeń kabla USB: czerwony=+5v, ekran=GND, czarny=czujnik dotykowy, biały=białe diody LED, zielone=niebieskie diody LED. Zamiast odcinać mopsy i mocować je okablowaniem, możesz chcieć zrobić to, co zrobiłem trzymaj wtyczki i odetnij jeden długi odcinek i jeden krótki (powiedzmy 200mm) i połącz ze sobą oba końce kabla. W ten sposób urządzenie można odłączyć. Tylko upewnij się, że nie podłączasz do niego żadnych rzeczywistych urządzeń USB ani nie podłączasz go do zwykłego portu USB!

Krok 3: Konstrukcja MicroDot

Konstrukcja MicroDot
Konstrukcja MicroDot
Konstrukcja MicroDot
Konstrukcja MicroDot
Konstrukcja MicroDot
Konstrukcja MicroDot
Konstrukcja MicroDot
Konstrukcja MicroDot

CZĘŚCI DRUKOWANE W 3D

W załączonym pliku zip znajdują się cztery wydrukowane w 3D części:1. Powłoka główna MicroDot - nadruk w kolorze czarnym PLA2. Baza MicroDot - nadruk w kolorze czarnym PLA3. Pierścień LED - wydrukowany w kolorze białym PLA (przezroczysty lub półprzezroczysty może być lepszy, aby bardziej równomiernie rozproszyć światło)4. Przekładka PCB - dowolny kolor - umieszczona pomiędzy głośnikiem a PCB.

Śruby i nakrętki M2 służą do przykręcenia podstawy do skorupy. Trzy śruby M2 muszą być wtopione w szczeliny po wewnętrznej stronie skorupy. Są one dość małe i może być konieczne „przylutowanie” ich na miejscu za pomocą dodatkowego włókna.

TAŚMA LED

Biała i niebieska dioda LED montuje się w tablicy naprzemiennie, jak pokazano na zdjęciach. Przewody są zagięte pod kątem 90 stopni w stosunku do dolnej części diody LED, a przewody są wtopione w pierścień za pomocą gorącej lutownicy (zwróć uwagę na polaryzację tutaj). Spód diod LED jest spłaszczony, dzięki czemu przylegają płasko do powierzchni pierścienia.

Katody diod LED są połączone razem pierścieniem drutu, a te łączą się z najniższym pinem głowicy. Pozostałe piny nagłówka muszą być naprzemiennie niebieskie/białe dla każdej indywidualnej diody LED

SKŁADANIE TO RAZEM

Grill został wycięty z biurkowego uchwytu na papier (na zdjęciu) za pomocą drutu przylutowanego do jednej krawędzi. Najpierw wkłada się go do obudowy, a następnie do matrycy LED (musi być włożona pod kątem, jak pokazano, ze szczeliną wyrównaną z jednym ze słupków śrubowych). Głośnik jest następny (ułóż cienką taśmę wokół góry, aby odizolować go od krawędzi płytki drukowanej). Następnie przekładka, a płytka PCB po prostu siada na górze. Przykręć podstawę, aby wszystko było razem.

Podczas podłączania kabla audio do LattePanda stwierdziłem, że muszę użyć filtra pętli uziemienia audio (https://www.ebay.com/itm/371801191297), aby uzyskać dobry dźwięk. Zwróć uwagę, że na zdjęciach używam wyjścia audio mojego adaptera wideo HDMI-VGA, ale dobrze jest użyć wbudowanego gniazda wyjściowego audio.

Potrzebny będzie również mikrofon USB (https://www.ebay.com/itm/332148968227).

Krok 4: LattePanda

LattePanda
LattePanda
LattePanda
LattePanda

USTAWIAĆ

Panda jest dostępna w modelach 2G/32G i 4G/64G, z licencją Windows 10 lub bez niej. Model, którego użyłem to wersja 2G/32G z licencją Windows 10:

Zapoznaj się z oficjalną dokumentacją dotyczącą konfiguracji LattePanda (https://docs.lattepanda.com) Nie ma tu nic zbyt skomplikowanego, ale zwróć uwagę na instrukcje dotyczące uruchamiania swojej Pandy (https://docs.lattepanda.com/ content/getStarted/power…).

Wszystko wydawało się działać za pierwszym razem (co jest miłą odmianą od moich doświadczeń z Raspberry Pi).

Ważną rzeczą jest to, że naprawdę potrzebujesz jakiegoś chłodzenia dla Pandy. Użyłem naklejanych radiatorów na górze i na dole (spód robi się szczególnie gorący).

Ten schemat szczegółowo przedstawia wejścia i wyjścia Arduino: https://docs.lattepanda.com/content/hardware/inputs… Do połączenia z MicroDot (D9, D10) użyjemy tablicy 3-pinowych złączy po lewej stronie i D11), a także gniazdo wyjściowe audio.

Krok 5: LattePanda - zainstaluj przykładową aplikację Alexa

LattePanda - Zainstaluj przykładową aplikację Alexa
LattePanda - Zainstaluj przykładową aplikację Alexa

POBIERANIE

Przykładowa aplikacja Alexa jest dostępna tutaj:

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

Naciśnij przycisk Klonuj lub Pobierz i pobierz jako.zip

Utwórz katalog na dysku c C:\ALEXA i wyodrębnij zawartość archiwum zip, tak aby spakowany katalog o nazwie sample znajdował się bezpośrednio w katalogu ALEXA (tj. C:\ALEXA\samples\…)

INSTALOWANIE

Oficjalne pełne instrukcje dotyczące instalacji w systemie Windows znajdują się tutaj:

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

Jest kilka kroków i zajmuje to trochę czasu, ale odkryłem, że w systemie Windows wszystko poszło gładko za pierwszym razem.

Będziesz potrzebował dobrego edytora tekstu, aby edytować niektóre pliki konfiguracyjne (Notatnik nie jest dobry, ponieważ pliki mają końcówki linii w stylu Linux). Skorzystałem z Notepad++, który jest dostępny tutaj:

Kilka uwag dotyczących oficjalnych instrukcji:

Część 3 – Zależności

Moja Panda jest 64-bitowa, więc pobrałem wszystkie wersje 64-bitowe, ale jeśli instalujesz w systemie 32-bitowym, będziesz musiał użyć wersji 32-bitowych. Uwaga: nie mieszaj 32-bitowych i 64-bitowych wersji zależności.

Link pokazany dla odtwarzacza multimedialnego VLC przeniesie Cię do wersji 32-bitowej. Aby pobrać wersję 64-bitową, przejdź do tego linku: https://www.videolan.org/vlc/download-windows.html i na przycisku pobierania wybierz strzałkę, a następnie Instalator dla wersji 64-bitowej.

Do instalacji JDK użyłem wersji:jdk-8u144-windows-x64Dla nodejs użyłem: Windows Installer (.msi) 64 bitDla Maven:apache-maven-3.5.0-bin.zipDla OpenSSL użyłem:Win64 OpenSSL v1.1.0f

Część 5 - Metoda uwierzytelniania

Wybierz 5a - serwer Nodejs. Jeśli pojawi się błąd podczas uruchamiania polecenia npm, musisz dodać swój katalog nodejs do zmiennej środowiskowej ścieżki (jest to wyjaśnione w instrukcjach, jak to zrobić).

Część 6 - Uruchamianie przykładowej aplikacji

Podczas edytowania pliku config.json ustaw wakeWordAgentEnabled na true, ponieważ w następnej sekcji zainstalujemy niestandardowy silnik słowa wybudzania (silnik słowa wybudzania zawarty w przykładowej aplikacji działa tylko w systemie Linux).

Jeśli pojawi się błąd podczas uruchamiania polecenia mvn, musisz dodać katalog maven\bin do zmiennej środowiskowej ścieżki.

Po uruchomieniu aplikacji powinieneś otrzymać GUI pokazany na zrzucie ekranu. Po kliknięciu ikony będziesz mógł porozmawiać z Alexą. To jest podstawowa aplikacja Alexa - ale będziemy potrzebować więcej!

Następnym krokiem będzie zainstalowanie niestandardowego silnika wybudzania, dzięki czemu możesz po prostu powiedzieć „Alexa”, aby aktywować, a także mieć możliwość korzystania z czujnika dotykowego za pośrednictwem wejścia Arduino. Musimy również sprawić, by aplikacja uruchamiała się automatycznie podczas uruchamiania i zapalać niektóre diody LED, gdy Alexa słucha i mówi.

Krok 6: LattePanda - zainstaluj niestandardowy silnik WakeWord

LattePanda - Zainstaluj niestandardowy silnik WakeWord
LattePanda - Zainstaluj niestandardowy silnik WakeWord

SILNIK WAKEWORD

Silnik WakeWord umożliwia budzenie Alexy wypowiadanym słowem (zwykle „Alexa”), zamiast konieczności klikania przycisku. Przykładowa aplikacja ma dwie opcje silnika WakeWord: Sensory lub KITT. AI wake word engine. ich implementacja w przykładowej aplikacji działa jednak tylko w systemie Linux. Oba te silniki podlegają również pewnym wymaganiom licencyjnym.

Tutaj zaimplementuję niestandardowy silnik słów wybudzających, który jest oparty na własnym SDK rozpoznawania mowy systemu Windows 10. Jest to również wolne od jakichkolwiek dodatkowych wymagań licencyjnych.

ZAINSTALUJ ZALEŻNOŚCI

Microsoft Speech Platform - środowisko uruchomieniowe (wersja 11) https://www.microsoft.com/en-gb/download/details.a…x86_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (32-bitowy) lub x64_SpeechPlatformRuntime\SpeechPlatformRuntime.msi (64-bitowy)

Platforma Microsoft Speech - języki wykonawcze (wersja 11)

Mój niestandardowy silnik WakeWorda został napisany w C# w Visual Studio 2017. Dostarczyłem tutaj ostateczny plik wykonywalny, a także kod źródłowy. Jeśli chcesz sam go skompilować, będziesz potrzebować również tego:

Platforma Microsoft Speech - zestaw SDK (wersja 11) https://www.microsoft.com/en-gb/download/details….|x86_MicrosoftSpeechPlatformSDK\MicrosoftSpeechPlatformSDK.msi (32-bitowy) lub x64_MicrosoftSpeechPlatformSDK\sicrosoftSpee (MicrosoftSDK. 64-bitowy)

Umieść WakeWordPanda.exe (i alexa_run.bat) w katalogu ALEXA. Ten program wykonuje następujące zadania: - Nasłuchuje słowa budzącego "Alexa" - Monitoruje czujnik wejścia dotykowego - Kontroluje NIEBIESKĄ i BIAŁĄ diodę LED

Zauważ, że opracowałem to na innym komputerze z systemem Windows 10, aby nie musiałem instalować Visual Studio na LattePanda, ponieważ nie chciałem zużywać gigabajtów. Podłączyłem Arduino Uno z zainstalowanym StandardFirmata (https://www.lattepanda.com/docs/#SetuptheArduino) do komputera programistycznego, abym mógł również programować za pomocą wejść/wyjść Arduino. Kod źródłowy programu Visual Studio jest również dołączony, jeśli chcesz go zmodyfikować i/lub skompilować samodzielnie.

ZMODYFIKUJ KLIENTA JAVA

Klient Java wymaga dodania kilku dodatkowych linijek do kodu. Ma to na celu umożliwienie poprawnej pracy diod LED:

Kiedy Alexa nasłuchuje, do silnika WakeWord wysyłany jest sygnał PAUSE_WAKE_WORD_ENGINE. Użyłem tego sygnału, aby wiedzieć, kiedy włączyć NIEBIESKĄ (LED nasłuchu Alexa). Po odebraniu sygnału RESUME_WAKE_WORD_ENGINE, niebieska dioda LED wyłącza się, a włącza się BIAŁA (LED mówiąca Alexa). Dodatkowy kod wysyła kolejny sygnał RESUME_WAKE_WORD_ENGINE, gdy Alexa przestaje mówić - aby silnik WakeWord wiedział, kiedy wyłączyć białą diodę LED.

Przejdź do: C:\ALEXA\samples\javaclient\src\main\java\com\amazon\alexa\avs i otwórz AVSController.java w edytorze tekstu. Skopiuj kod z załączonego pliku Extra_Code.txt. Należy go wstawić w dwóch miejscach:

1. W funkcji public void onAlexaSpeechFinished() bezpośrednio po instrukcji: dependDirectiveThread.unblock();

2. W funkcji private void handleAudioPlayerDirective(dyrektywa dyrektywy) bezpośrednio przed instrukcją: player.handleStop();

Zmieniłem również przeznaczenie sygnału CONFIRM, aby silnik WakeWord wiedział, czy Alexa odpowiedziała. Ma to na celu anulowanie 5-sekundowego limitu czasu, który nastąpi w przypadku braku odpowiedzi. Skopiuj kod z Extra_Code2.txt i wstaw go w jedno miejsce:

1. W functionpublic void onAlexaSpeechStarted() bezpośrednio po instrukcji dependiveDirectiveThread.block();

Teraz musisz ponownie skompilować klienta Java. Otwórz wiersz polecenia i przejdź do C:\ALEXA\samples\javaclient Enter: mvn install do ponownej kompilacji.

Jeśli uruchomisz usługę Companion Service i aplikację Java Alexa jak poprzednio, a następnie dwukrotnie klikniesz WakeWordPanda.exe, poczekaj, aż się połączy, a wtedy powinieneś być w stanie aktywować Alexę, mówiąc „Alexa”.

MIKRODOTY

Jeśli podłączysz kabel „USB” MicroDot do LattePanda, jak pokazano na schemacie, i podłączysz kabel audio, powinien teraz być w pełni funkcjonalny. Wypowiedzenie słowa budzącego lub dotknięcie grilla powinno aktywować Alexę, a niebieska dioda LED powinna się zaświecić. Białe diody LED powinny zaświecić się, gdy Alexa odpowie.

USTAWIENIA AUTO URUCHOM

Zamiast ręcznie wpisywać wszystkie polecenia, aby wszystko uruchomić, możesz użyć skryptu alexa_run.bat. Spowoduje to oczekiwanie na połączenie internetowe, a następnie wywołanie oddzielnych modułów (usługa towarzysząca, klient java, silnik wake-word).

Ostatnim krokiem jest sprawienie, aby wszystko działało automatycznie przy starcie:

1. Kliknij prawym przyciskiem myszy auto-run.bat i wybierz utwórz skrót.2. Naciśnij ctrl+R i wpisz shell:startup. Spowoduje to otwarcie folderu startowego.3. Przeciągnij utworzony skrót do folderu startowego.

Alexa będzie teraz uruchamiać się automatycznie po uruchomieniu (inicjalizacja po uruchomieniu zajmuje około 30 sekund).

Krok 7: MicroDot dla Raspberry Pi

MicroDot dla Raspberry Pi
MicroDot dla Raspberry Pi
MicroDot dla Raspberry Pi
MicroDot dla Raspberry Pi

(Jeśli chcesz użyć Raspberry Pi 3 zamiast LattePanda).

POBIERANIE

Pobierz przykładową aplikację Alexa tutaj:

Naciśnij przycisk Klonuj lub Pobierz i pobierz jako.zip. Rozpakuj, aby folder alexa-ava-sample-app znajdował się na pulpicie.

INSTALACJA

Postępuj zgodnie z oficjalnymi pełnymi instrukcjami tutaj (uwaga: skonfiguruj tak, aby folder alexa-ava-sample-app na pulpicie):

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

Istnieje wiele przewodników, jak to zrobić z Raspberry Pi w Internecie. Zainstalowałem to kilka razy na Raspberry Pi i ani razu nie poszło tak gładko, jak instalacja na Windows 10 (bez niespodzianki - Linux dostaje mnie za każdym razem). Główne problemy, z którymi się spotkałem, to:

1. Prawidłowe działanie dźwięku i mikrofonu. Zobacz tutaj https://github.com/alexa-pi/AlexaPi/wiki/Audio-set… jeśli masz również te problemy.

2. Problemy z wersją JDK. Zobacz 4.3 w oficjalnej instrukcji i notatkę w pliku pom.xml, która mówi o nadpisaniu wersji podczas wykonywania polecenia mvn exec:exec (tzn. musiałem dodać ten przełącznik -Dalpn-boot.version=8.1.6.v20151105). Zauważ, że to polecenie jest zawarte w moim skrypcie startowym (alexa_startup.sh).

3. Uruchomienie silnika słowa wybudzania sensorycznego (https://github.com/Sensory/alexa-rpi)

Gdy wszystko będzie działać za pomocą poleceń ręcznych, zgodnie z instrukcjami, przejdź do instalacji MicroDot.

POŁĄCZENIE MIKRODOTA

Nie można bezpośrednio podłączyć MicroDota do GPIO, ponieważ będzie pobierał zbyt duży prąd. Potrzebne będą: 2x tranzystory 2N3904 do zasilania diod LED, rezystory 1x2K2 i 1x3K3, aby obniżyć napięcie z czujnika dotykowego do 3,3V (MicroDot będzie zasilany z zasilacza 5V). Zapoznaj się z załączonym schematem. Możesz chcieć zrobić do tego płytkę drukowaną, ale właśnie zamontowałem te komponenty z tyłu 8-pinowej wtyczki żeńskiej.

NIESTANDARDOWY SILNIK BUDZENIA (DOTYKOWY)

Rozpakuj zawartość dołączonego folderu zip do folderu alexa-avs-sample-app. Istnieją dwa pliki:wake.py - skrypt Pythona, który jest niestandardowym (dotykowym) silnikiem wake dla MicroDot alexa_autostart.sh - skrypt do uruchamiania wszystkiego. Kliknij prawym przyciskiem myszy właściwości na tym i wybierz wykonaj: każdy na karcie uprawnień.

Będziesz potrzebował zainstalowanego Pythona, aby uruchomić silnik wybudzania. Będziesz także potrzebować biblioteki GPIO (https://makezine.com/projects/tutorial-raspberry-p…) Powinny one być już zainstalowane w najnowszej wersji Raspbian.

Aby uruchomić wszystko, wpisz terminal:cd /home/pi/Desktop/alexa-avs-sample-appsudo./alexa_startup.sh

KONFIGURUJ AUTORUN

Aby skonfigurować Alexę do automatycznego uruchamiania podczas uruchamiania, otwórz terminal i wpisz:

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

i dodaj linię i zapisz:

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

Uruchom ponownie i aplikacja Alexa powinna uruchomić się automatycznie.