sobota, 13 maja 2017

Google AIY Projects - Assistant bez Voice Kit od Google

Dzisiaj opiszę jak zmienić konfigurację systemu do Voice Kit, który był dostępny z 57 numerem magazynu MagPi.

Oficjalny opis Voice Kit znajdziemy pod tym linkiem -> Link

Jeżeli go nie posiadamy możemy zmodyfikować system, którego obraz jest dostępny tu -> Link

Po wgraniu obrazu mamy do dyspozycji zmodyfikowanego Raspbiana od Google, widocznego niżej.



Voice Kit posiada płytkę na której znajduje się mikrofon i układ audio z głośnikiem, możemy jednak wykorzystać dowolny mikrofon USB lub kamerkę internetową z mikrofonem i głośnik z wtykiem mały jack.

Będzie jeszcze potrzebny jakiś przycisk chwilowy i dioda led.

Łączymy do Raspberry Pi 3 jak na schemacie.


Najpierw pobieramy obraz systemu, stąd -> Link

Po pobraniu rozpakowujemy go i będziemy mieć obraz systemu aiyprojects-2017-05-03.img

Wgrywamy go na kartę programem Win32 Disk Imager, który jest dostępny pod tym linkiem -> Link

Pobieramy go, instalujemy i uruchamiamy.

Po uruchomieniu wybieramy pobrany obraz aiyprojects-2017-05-03.img w Plik obrazu.


Klikamy Zapisz.


Wybieramy Yes i rozpocznie się zapis obrazu na kartę SD.


Po zakończeniu zapisu powinien wyświetlić się Zapis pomyślny, klikamy OK i wkładamy kartę SD do Raspberry Pi.

Podłączamy Raspberry Pi do telewizora lub monitora przewodem HDMI, podłączamy myszkę i klawiaturę na USB, kamerkę lub mikrofon USB i na końcu zasilanie.

Uruchomi się nam zmodyfikowany obraz Raspbiana.

Pierwszą rzeczą jaką zrobimy, to połączmy się po Wifi z domową siecią, jeżeli ktoś chce, to może używać połączenia lan.

U góry po prawej stronie znajduje się ikonka połączeń sieciowych, klikamy Turn On Wi-Fi, aby włączyć Wifi w Raspberry Pi.

Powinno wykryć naszą domową sieć Wifi, wpisujemy hasło i powinniśmy mieć połączenie z Wifi


Po kliknięciu prawym przyciskiem myszy na ikonkę sieci wybieramy Wireless & Wired Network Settings i proponuję ustawić Ip na stałe.


Wybieramy interface wlan0 i wpisujemy IP i adresy DNS, Ip sprawdzimy po najechaniu myszką na ikonkę sieci, adres DNS sprawdziwmy wpisując w Terminalu:

cat /etc/resolv.conf

Klikamy więc w ikonkę Terminalu w górnym menu po lewej stronie.

Wpisujemy polecenie jak wyżej i wyświetlą się nam adresy DNS.


Wpisujemy je w konfiguracji wlan0


Ja mam akurat adres routera 192.168.3.1 i przydziela mi adresy Ip z zakresu: 192.168.3.2 do 192.168.3.255, ale adres routera, to zazwyczaj 192.168.1.1

Teraz jeszcze zmieniamy sobie ustawienia systemu na polskie, robimy to w Preferencje -> Raspberry Pi Configuration


Najlepiej zmienić sobie hasło w Change Password.


Domyślne hasło to: Raspberry

W Current password wpisujemy więc: Raspberry i 2 razy wpisujemy nowe hasło.

W Interfaces włączamy sobie SSH.


W Locialisation zmieniamy sobie wszystkie ustawienia na polskie i restartujemy Raspberry Pi.

Teraz przystępujemy do zmian w systemie aby dostosować do ustawień z wykorzystaniem kamerki lub mikrofonu USB i głośników.

Klikamy Start dev terminal na pulpicie.


Wpisujemy polecenie:

sudo leafpad /boot/config.txt

aby zmienić domyślne ustawienia karty dźwiękowej

Na samy dole zmieniamy wpis na:

# Enable audio (loads snd_bcm2835)
dtparam=audio=on
#dtoverlay=i2s-mmap
#dtoverlay=googlevoicehat-soundcard



Teraz domyślną kartą dźwiękową nie będzie już układ z Voice Hat.

Klikamy zapisz i zamykamy.

Jeszcze zmieniamy wpisy w pliku /etc/asound.conf

Jest to opisane na oficjalnej stronie Google -> Link

Wpisujemy więc w Terminalu:

sudo leafpad /etc/asound.conf

Kasujemy całość wpisu i wklejamy tam:

pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:1,0"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}

Zapisujemy plik i zamykamy i robimy restart, wpisując w terminalu:

sudo reboot

Teraz klikając w ikonkę głośnika, będziemy mieli widoczny mikrofon USB i układ audio z Raspberry Pi już bez układu z Voice Hat.

Ja używam kamerki Logitech C920 i jak widać już jest poprawnie wykryta.


Teraz wybieramy USB Device Settings i ustawiamy:

bcm2835 ALSA -> wybierz elementy sterujące i zaznaczamy PCM.


dla mikrofonu zaznaczamy Mikrofon.


Teraz jeszcze zmienimy wpis w pliku /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py

W terminalu wpisujemy:

leafpad /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py

Zmieniamy wpis: VOICEHAT_ID = ‘googlevoicehat’ na: VOICEHAT_ID = ‘bcm2835’


Zapisujemy plik i zamykamy.

Teraz możemy przeprowadzić test działania klikając na pulpicie 2 razy ikonkę Check audio.

Teraz otwieramy stronę: https://console.cloud.google.com/cloud-resource-manager w przekladarce internetowej i tworzymy projekt jak to opisałem w wcześniejszym wpisie na blogu -> Link

Jeżeli już wcześniej utworzyliśmy projekt Google Assistant pobieramy plik JSON.

Wybieramy nasz projekt, po lewej u góry Narzędzia usługi -> Menadżer Api -> Dane logowania i na dole po prawej mamy -> Pobierz JSON.

Plik zostanie pobrany do /home/pi/Downloads otwieramy więc Menadżer plików i zmieniamy nazwę pliku na: assistant.json


Plik kopiujemy do /home/pi/assistant.json

Teraz uruchamiamy Start dev terminal z pulpitu i wpisujemy: src/main.py

Otworzy się automatycznie strona internetowa do naszego konta Google.


Wybieramy nasze konto i klikamy Zezwól.


Znowu w wcześniej otwartym terminalu wpisujemy:

src/main.py

U mnie pojawił się błąd z PySocks jak niżej


Wpisujemy więc w Terminalu:

pip install PySocks



Teraz możemy kliknąć ikonkę Check audio na pulpicie, jeżeli dalej będzie problem z mikrofonem, a co zdarzyło się u mnie, to jeszcze tworzymy plik .asoundrc w katalogu/home/pi/ wpisujemy więc w terminalu:

sudo nano /home/pi/.asoundrc

i kopiujemy tam tą samą zawartość, co do pliku asound.conf jak pokazano niżej.


Zapisujemy plik i zamykamy i jeszcze raz przeprowadzamy test klikając w ikonkę Check audio na pulpicie.

Jeżeli wszystko przebiegnie ok to mamy już skonfigurowane audio poprawnie, wygląda to tak.


Teraz przeprowadzamy test działania, czyli klikamy ikonkę Start dev terminal na pulpicie i wpisujemy:

src/main.py

jeżeli wszystko działa, to dodajemy jeszcze wpis w Terminalu, aby uruchamiało się przy starcie:

sudo systemctl enable voice-recognizer

Po restarcie wszystko powinno uruchamiać się automatycznie.

Nie posiadam przycisku arkadowego jak w zestawie z Voce Hat i wykorzystałem zwykła diodę i przycisk.

Jak to działa widać na poniższym filmie.














Brak komentarzy:

Prześlij komentarz