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.