piątek, 22 grudnia 2017

Tani ekran TFT LCD dla Raspberry Pi

Na Aliexpress jest dostępny dosyć tani ekran TFT LCD, który po drobnej przeróbce działa na zasilaniu 5V i możemy go wykorzystać do projektów na Raspberry Pi, np. do budowy małej konsoli do gier lub jako wyświetlacz do Volumio.

Można go kupić tu -> Link

Koszt razem z przesyłką około 50 zł.

Wygląda tak.


Wymiary ekranu: 5,4 cm x 9,5 cm, przekątna 4,3 cala.

Przeróbka polega na podciągnięciu do 2 pinu układu widocznego po lewej stronie napięcia + 5V, tak jak pokazano niżej.


Po tej przeróbce ekran działa po podłączeniu zasilania 5V.

Podłączenie i konfiguracja wyświetlacza do Raspberry Pi Zero pod Volumio.

Wyświetlacz posiada przewody czerwony, czarny, żółty i biały.

Podłączamy przewody czerwony do zasilania +5V Raspberry Pi i masę (czarny) i sygnał video (żółty) jak na schemacie niżej.


W Volumio wchodzimy w Wtyczki i instalujemy Touch Display Plugin.


Po instalacji włączamy wtyczkę i powinien wyświetlić się obraz na ekranie.


środa, 22 listopada 2017

Sprzedam bramki i odbiorniki MySensors

Mam na sprzedaż gotowe zaprogramowane i przetestowane bramki MySensors 3 szt. i jeden odbiornik MySensors.



Cena bramki - 90 zł

Cena odbiornika 40 zł.

W sprawie kupna proszę o kontakt na email: roman.kubat.rk@gmail.com

sobota, 18 listopada 2017

Budowa odtwarzacza Volumio na Raspberry Pi

Do budowy mojego odtwarzacza Volumio wykorzystałem uszkodzony odtwarzacz Auna, który kupiłem na Allegro i nie nadawał się do naprawy.

Z Auny wykorzystałem panel z przyciskami do sterowania Volumio i dodałem wyświetlacz LCD 16x2.

Gotowy odtwarzacz wygląda jak na zdjęciu niżej.


Do budowy wykorzystałem Raspberry Pi 3, ponieważ na Pi Zero nie chce działać wyświetlacz.

Jak dodać wyświetlacz opisałem we wcześniejszym wpisie na blogu -> Link

Zmieniłem konfigurację podłączenia wyświetlacza LCD jak pokazano niżej.


Za odtwarzanie dźwięku odpowiedzialny jest układ PCM5102, którego podłączenie opisałem tutaj -> Link

Jest on w pełni kompatybilny z Hifi Berry DAC.

Jak wzmacniacz wykorzystałem układ PAM8403 z potencjometrem.


Wzmacniacz posiada opisane wejścia i wyjścia, więc raczej nie ma problemu z podłączeniem, zasilany jest napięciem 5V z Raspberry Pi.
Podłączyłem go do głośników z odtwarzacza Auna.

Po wycięciu części płytki sterującej z Auny, wkręciłem go w istniejący otwór potencjometra.

Wykorzystałem przyciski z panelu Auny do sterowania Volumio.

Jak dodać przyciski w Volumio opisałem tutaj -> Link

Moja konfiguracja przycisków wygląda tak.


Przyciski są skonfigurowane tak:


Tak wygląda montaż panelu z wyświetlaczem.


Wykorzystałem na tylnym panelu wyjście słuchawkowe i podłączenie zasilania, więc można odtwarzać z wbudowanych głośników lub wyjścia jack.


Wejście zasilania i wyjście na słuchawki na tylnym panelu.


Działanie odtwarzacza widać na poniższym filmie.


Sterowanie głośnością odbywa się cyfrowo przyciskami lub analogowo potencjometrem.

Inny film z odtwarzania radia.


Działanie wyświetlacza.

niedziela, 12 listopada 2017

Dodanie przycisków do Volumio

W Volumio możemy sterować odtwarzaniem za pomocą przycisków.

Wystarczy zainstalować plugin GPIO Buttons.

Klikamy więc w Wtyczki -> Szukaj wtyczkę -> System Tools i dodajemy GPIO Buttons.


Więcej informacji można znaleźć na tej stronie -> Link

Należy pamiętać, że nie podajemy na przyciski napięcia 5V tylko 3,3V !!!

Zależnie od numeru pinu GPIO podajemy na przycisk masę GND lub 3,3V.

Piny GPIO od 2 do 8 łączymy poprzez przycisk do GND, pozostałe piny do 3,3 V.

Widać to w poniższej tabeli.


Przykładowe połączenie przycisku.


Po podłączeniu przycisków definiujemy piny GPIO w wtyczce.


Po zdefiniowaniu klikamy Save.

Działanie przycisków widać na poniższym filmie.

piątek, 10 listopada 2017

Wyświetlacz LCD w Volumio

Dzisiaj opiszę jak dodać wyświetlacz LCD do Volumio.

Wykorzystałem Raspberry Pi 3 i wyświetlacz LCD 20x4.

Wyświetlacz podłączamy tak jak pokazano niżej.



Do wyświetlacza LCD podłączamy:

VSS - GND
VDD - poprzez rezystor do 5V lub poprzez potencjometr, dobieramy taki rezystor, aby widoczne były napisy
VO - GND
RS- GPIO 7
RW - GND
E - GPIO 7
D4 - GPIO 25
D5 - GPIO 24
D6 - GPIO 23
D7 - GPIO 18
A - poprzez rezystor 150 ohm do 5V
K - GND


Do Volumio dodajemy plugin volumio-hd44780-plugin.zip, który jest do pobrania tu -> Link

Wchodzimy w Wtyczki i wybieramy wgraj wtyczkę, wybieramy ściągnięty plik zip i chwilę czekamy.



Po zainstalowaniu wtyczki włączamy wtyczkę.


Wchodzimy w Settings i w Dsiplay Configuration ustawiamy rodzaj wyświetlacza, dla 20x4 będzie tak.

Klikamy Save

W Driver Configuration wybieramy GPIO.

Klikamy Save.

Po zapisaniu robimy restart i po restarcie na wyświetlaczu powinien być wyświetlany tytuł piosenki.



środa, 8 listopada 2017

Tani odtwarzacz sieciowy Volumio na PCM5102

Dzięki oprogramowaniu Volumio -> Link nasze Raspberry Pi można przeistoczyć w sieciowy odtwarzacz muzyki.

Niestety jakość dźwięku na wyjściu audio w Rasberry Pi nie jest najlepszej jakości, a Pi Zero nie posiada go w ogóle.

Powstały zewnętrzne karty dźwiękowe pod nazwą Hifiberry, najtańsza HiFiBerry DAC+ Zero do Pi Zero, to koszt około 85 zł.

Nie musimy jednak kupować Hifiberry wystarczy układ PCM5102 DAC za około 15 zł z Aliexpress -> Link

Układ wygląda tak


Do Volumio wystarczy Pi Zero W, jednak jest problem z instalacją i konfiguracją sieci Wifi, rozwiązaniem jest zainstalowanie i skonfigurowanie Volumio na Pi 3 i przełożenie karty SD.

PCM5102 DAC łączymy następująco z Raspberry Pi.

3.3v - pi 3.3v pin 1
GND - pi gnd pin 39
FLT - pi gnd
DMP - pi gnd
SCL - pi SCL pin 5
BCK - pi BCK pin 12
DIN - pi Data pin 40
LCK - pi LCK pin 35
FMT - pi gnd
XMT - pi 3.3v

Połączony układ DAC z Raspberry Pi Zero W


W Volumio w opcjach odtwarzania wybieramy HIFIBerry DAC i restartujemy.


Po restarcie możemy cieszyć się dobrej jakości dźwiękiem.

Drugim układem PCM5102 jest wersja trochę tańsza na czarnej płytce -> Link

Działa identycznie, a wygląda tak.


Układ podłączony do Raspberry Pi Zero W.

środa, 25 października 2017

PONG na Arduino

Dzisiaj opiszę jak wykonać jedną z pierwszych gier komputerowych PONG na Arduino.

Do wykonania będziemy potrzebować:

- dowolne Arduino, ja wykorzystałem Mini Pro, ale może być UNO lub Nano
- 2 potencjometry 10k
- rezystor 470 ohm
- rezystor 1K ohm
- rezystor 10K ohm
- 2 końcówki chinch
- przycisk chwilowy
- jakaś obudowa, ja wykorzystałem małą plastikową i opakowania po jajkach niespodziankach
- odcinki przewodów.

Mój gotowy PONG wygląda jak niżej.


Schemat połączeń.


Do pinu D07 podłączamy rezystor 470 ohm, a do pinu D09 rezystor 1K, łączymy je razem i podłączamy do środkowej żyły chincha Video oraz podłączamy masę GND.

Chinch do audio podłączamy środkowa żyłę do pinu D11 i masę GND.

Przycisk łączymy z jednej strony poprzez rezystor 10K do masy GND oraz do pinu D02, a z drugiej strony do zasilania 5V, jak pokazano niżej.


Potencjometry łączymy zewnętrzne piny do 5V i GND, a środkowy pin jednego do A0, a drugiego do A1.

Potrzebne biblioteki do pobrania niżej kopiujemy do do Program Files/Arduino/libriares

Biblioteki -> Link

Kod programu PONG -> Link

Po wgraniu i podłączeniu do telewizora PONG prezentuje się jak niżej.


wtorek, 4 lipca 2017

Google Assistant bez Voice Kit - OK Google na najnowszym Raspbianie

Dzisiaj opiszę jak zainstalować najnowszą wersję Google Assistant na Raspberry Pi na najnowszym Raspbianie.

Nowa wersja Google Assistant wspiera komendę głosową "OK Google", aby aktywować asystenta głosowego i nie musimy wciskać przycisku.

Oprócz Raspberry Pi 3, będzie potrzebna kamerka z mikrofonem na USB lub mikrofon USB i jakiś głośnik z jackiem.

Nie jest wymagany przycisk i wystarczy tylko dioda led podłączona do GND i pinu GPIO 25.

Najnowsza to wersja z 21 czerwca 2017, do pobrania stąd -> Link


Po pobraniu rozpakowujemy obraz i wgrywamy na kartę SD, opisałem to we wcześniejszych wpisach na blogu -> Link

Po uruchomieniu konfigurujemy wszystko w Raspbianie jak w linku wyżej.

Teraz instalujemy pliki, które są w oficjalnym obrazie do Voice Kit, jest to opisane na stronie -> Link

Instalujemy najpierw Git w terminalu poleceniem:

sudo apt-get install git



Dalej polecenia kolejno:

cd

git clone https://github.com/google/aiyprojects-raspbian.git voice-recognizer-raspi




Teraz wpisujemy kolejno w terminalu:

cd ~/voice-recognizer-raspi
scripts/install-deps.sh
sudo scripts/install-services.sh




Aby nie używać przycisku, to zmieniamy konfigurację w pliku voice-recognizer.ini

Wpisujemy wiec w terminalu:

sudo nano /home/pi/.config/voice-recognizer.ini

W wierszu Select trigger zmieniamy na:

trigger = ok-google



Wciskamy Ctrl+x -> t i enter, aby zapisać plik.

Teraz pobieramy plik json, jak go utworzyć i pobrać opisałem we wcześniejszym wpisie na blogu -> Link od momentu:

"Wpisujemy adres:

https://console.cloud.google.com/cloud-resource-manager"

Pobieramy plik, zmieniamy nazwę na assistant.json i kopiujemy do /home/pi

Teraz w nowym oknie terminalu wpisujemy kolejno:

cd ~/voice-recognizer-raspi
source env/bin/activate
python3 src/main.py


Otworzy się okno przeglądarki i klikamy zezwól i ustawiamy, tak jak w wpisie na blogu -> Link od słów:

"Wybieramy nasz konto Google i klikamy Zezwól."

Teraz robimy restart poleceniem:

sudo reboot

Teraz konfigurujemy audio tak jak w wpisie na blogu -> Link od słów:

"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."

Plik do testu audio jest w katalogu leafpad /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py

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

Zapisujemy plik i zamykamy.

Teraz jeszcze musimy utworzyć plik .asoundrc w /home/pi jest opisane na stronie -> Link

Wpisujemy w terminalu:

sudo nano /home/pi/.asoundrc

i kopiujemy tam tą samą zawartość, jak pokazano niżej.


Teraz możemy przeprowadzić test audio, wchodzimy w katalog: /voice-recognizer-raspi/checkpoints/, czyli wpisujemy w terminalu:

cd /home/pi/voice-recognizer-raspi/checkpoints/

i uruchamiamy program check_audio.py poleceniem:

sudo python3 check_audio.py

Jeśli wszystko przebiegnie ok, to mamy skonfigurowane audio poprawnie.

Test działania przeprowadzamy wpisując kolejno komendy:

cd ~/voice-recognizer-raspi
source env/bin/activate
python3 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.

Dioda cały czas pulsuje, po wypowiedzeniu OK Google zapala się dioda i wtedy możemy zadać pytanie lub polecenie, widać, to na poniższym filmie.






poniedziałek, 26 czerwca 2017

Google AIY Project - wersja DIY bez Voice Hat

We wcześniejszym wpisie z dnia 13 maja 2017 opisałem jak zainstalować i skonfigurować oficjalny obraz systemu Raspbian do Voice Hat, który był dołączany do 57 magazynu MagPi, tak aby działał z dowolnym mikrofonem lub kamerką USB -> Link

Postanowiłem zbudować podobne "gadające" pudełko z przyciskiem, widoczne niżej.


Do budowy wykorzystałem:

1. Raspberry Pi z kartą micro SD 8GB
2. Zasilacz 5V 2A z przewodem micro USB
3. Przycisk z podświetleniem, który kupiłem na Aliexpress -> Link
Cena przycisku z darmową wysyłką do Polski to około 5,35 zł.
4. Kartę audio na USB -> Link
Cena z darmową wysyłką do Polski, to około 6,10 zł
5. Mikrofon z wtykiem mały jack -> Link
Cena około 4,50 zł z darmową wysyłką do Polski.
6. Moduł audio 5V do Arduino, koszt około 5 zł na Allegro.


Koszt zakupu materiałów wyniósł mnie około 21 zł.

Resztę materiałów jak: mały głośnik, wtyk mały jack, karton i folię do obklejenia miałem w domu.

Łączymy wszystko jak na schemacie.


Wycinamy pudełko i montujemy elementy.


Instalujemy wszystko tak jak opisałem w linku na samym początku.

Po instalacji mamy prawie identyczne magiczne "gadające" pudełko jak te z 57 numeru magazynu MagPi.

Działanie widać na poniższym filmie.

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.