Płytka Joy-Pi zawiera 2 jednostki przełączające. Każda jednostka zawiera 8 przełączników. Przełączniki
umożliwiają przełączanie między użyciem czujników i modułów. Ponieważ Raspberry Pi ma tylko
ograniczoną liczbę pinów GPIO, potrzebujemy przełączników, aby móc korzystać z większej liczby
czujników.
KORZYSTANIE Z GPIOS
Poniżej wyjaśnimy bardziej szczegółowo, czym są GPIO, jak działają i jak są kontrolowane.
Strona 5 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
GPIO oznacza: „Wejście / wyjście ogólnego przeznaczenia” (uniwersalne wejście / wyjście). Piny GPIO
nie mają określonego celu. Mogą być konfigurowane jako wejście lub wyjście i mają ogólne
przeznaczenie. To zależy od tego, co chcesz osiągnąć.
Przykład pinu wejściowego: Przycisk
Jeśli przycisk jest wciśnięty, sygnał zostanie przesłany przez pin wejściowy do RaspberryPi
Przykładowy pin wyjściowy: Brzęczyk
Wyślij sygnał przez pin wyjściowy, aby sterować brzęczykiem. Piny GPIO znajdują się po prawej
stronie płytki Raspberry Pi, jeśli zaczynasz z perspektywy Joy-Pi.
Istnieją 2 możliwe schematy GPIO Raspberry Pi: GPIO-BOARD i GPIO-BCM
Opcja GPIO-BOARD wskazuje, że odnosisz się do pinów za pomocą numeru pinu. Oznacza to, że będą
używane numery pinów wymienione poniżej.
Opcja GPIO.BCM oznacza, że odwołujesz się do pinów „Broadcom SOC Channel”. To są liczby po
„GPIO”.
Strona 6 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Silnik krokowy (STEP 4), matryca przycisków
(COL3), przycisk w prawo
36
Czujnik ultradźwiękowy (TRIG)
37
Serwo1, matryca przycisków (COL2), przycisk w
górę
38
Czujnik podczerwieni
39
Uziemienie
40
Przekaźnik
W naszych przykładach używamy języka Python do sterowania pinami GPIO. W Pythonie znajduje się
biblioteka o nazwie „RPi.GPIO”. Jest to biblioteka, która pomaga programowo sterować pinami za
pomocą Pythona.
Spójrz na poniższy przykład i komentarze w kodzie, aby lepiej zrozumieć, jak to działa.
Pierwszym krokiem będzie zaimportowanie biblioteki przez wpisanie polecenia „RPi.GPIO as GPIO”, a
następnie biblioteka „time” zawiera polecenie „import time”.
Następnie ustawiamy tryb GPIO na GPIO.BOARD. W naszym przykładzie deklarujemy pin wejściowy
jako numer 11, a pin wyjściowy jako pin 12 (wejście to czujnik dotyku, a wyjście to brzęczyk).
Wysyłamy sygnał do pinu wyjściowego, czekamy 1 sekundę, a następnie wyłączamy. Następnie, aby
potwierdzić dane wejściowe, przechodzimy przez pętlę do momentu odebrania sygnału wejściowego
GPIO.input. Drukujemy „Input Given”, aby upewnić się, że kliknięcie zostało potwierdzone, wyczyść
GPIO za pomocą GPIO.cleanup () i dokończ skrypt.
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Aby dowiedzieć się więcej o celu i zastosowaniu GPIO, zalecamy przeczytanie oficjalnej dokumentacji
na temat pinów GPIO napisanej przez fundację Raspberry Pi.
POBIERANIE WSTĘPNIE ZAINSTALOWANEGO SYSTEMU OPERACYJNEGO
W pierwszym kroku musisz pobrać plik obrazu z systemem operacyjnym Joy-Pi.
Plik można znaleźć na naszej stronie internetowej pod adresem https://joy-pi.net/downloads/.
1. Załaduj plik .Zip na swój komputer i rozpakuj go do dowolnego folderu. Powinieneś otrzymać plik
.ISO
2. Podłącz kartę MicroSD do komputera za pomocą dołączonego czytnika kart MicroSD.
3. Sformatuj teraz kartę MicroSD za pomocą programu „SD Formatter”
4. Uruchom program „Win32DiskImager” i wybierz rozpakowany plik .Iso, a następnie kliknij przycisk
„Zapisz”, aby skopiować obraz na kartę MicroSD.
5. Teraz karta MicroSD jest gotowa do użycia, możesz ją teraz włożyć do swojego Raspberry Pi.
Strona 10 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Po pomyślnym pobraniu naszego skryptu chcielibyśmy go wykonać. Otwórz terminal ponownie i
postępuj zgodnie z poniższymi instrukcjami, aby uruchomić skrypt:
Napisz polecenie „sudo python <nazwa skryptu>”, aby wykonać skrypt w języku Python.
Na przykład:
sudo python buzzer.py
Polecenie sudo daje nam uprawnienia roota (uprawnienia administratora), które są później
wymagane przez bibliotekę GPIO. Piszemy „python”, aby powiedzieć systemowi, że chcemy wykonać
polecenie w Pythonie. Na koniec piszemy nazwę skryptu, tak jak umieściliśmy go na pulpicie. Upewnij
się, że zawsze znajdujesz się we właściwym folderze podczas wykonywania polecenia.
5. LEKCJE
5.1 LEKCJA 1: UŻYWANIE BRZĘCZYKA DO DŹWIĘKÓW OSTRZEGAWCZYCH
W poprzednim wyjaśnieniu nauczyliśmy się, jak używać pinu GPIO zarówno jako wyjścia, jak i wejścia.
Aby to teraz przetestować, posłużymy się prawdziwym przykładem i zastosujemy naszą wiedzę z
poprzedniej lekcji. Moduł, którego będziemy używać to „Brzęczyk”.
Użyjemy wyjścia GPIO, aby wysłać sygnał do brzęczyka i zamknąć obwód, aby wygenerować głośny
brzęczenie. Następnie wyślemy kolejny sygnał, aby go wyłączyć.
Brzęczyk znajduje się po prawej stronie płytki Joy-Pi i można go łatwo rozpoznać po głośnym dźwięku,
który wydaje po aktywacji. Kiedy używasz Raspberry Pi po raz pierwszy, brzęczyk może mieć naklejkę
ochronną. Upewnij się, że ta naklejka została usunięta przed użyciem brzęczyka.
Podobnie jak w poprzednim przykładzie przygotowaliśmy specjalny skrypt ze szczegółowymi
komentarzami, który wyjaśni, jak działa cały proces buzzera i jak możemy sterować buzzerem za
pomocą GPIO.
Najpierw importujemy bibliotekę RPi.GPIO i bibliotekę czasu. Następnie konfigurujemy brzęczyk. Na
pinie 12 ustawiamy tryb GPIO na GPIO BOARD, a pin na OUTPUT.
Strona 13 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Wysyłamy sygnał przez 0,5 sekundy, a następnie go wyłączamy.
Przykład kodu brzęczyka:
Wykonaj następujące polecenia i spróbuj sam:
cd /home/pi/Desktop/Joy-Pi/
sudo python buzzer.py
5.2 LEKCJA 2: STEROWANIE BRZĘCZYKIEM ZA POMOCĄ PRZYCISKÓW
Po pomyślnym zademonstrowaniu, jak włączać i wyłączać brzęczyk, nadszedł czas, aby uczynić rzeczy
bardziej ekscytującymi. W tej lekcji połączymy przycisk z brzęczykiem, tak aby brzęczyk był włączany
tylko przez naciśnięcie przycisku.
Tym razem użyjemy 2 konfiguracji GPIO. Jednym z nich będzie GPIO.INPUT, które przyjmuje przycisk
jako wejście, a innym będzie GPIO.OUTPUT, które wysyła sygnał do brzęczyka, aby wyprowadzić
dźwięk.
Strona 14 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Uwaga! W tym przykładzie musisz przełączać się między modułami. Włącz przełącznik nr 5, 6, 7 i 8 na
lewym zespole przełączającym. Wszystkie pozostałe przełączniki powinny być wyłączone.
W naszym przykładzie używamy górnego z 4 klawiszy w lewym dolnym rogu. Teoretycznie jednak
można użyć dowolnego z 4 kluczy. Jeśli nadal chcesz użyć innego klucza, musisz odpowiednio zmienić
przypisanie pinów.
W tej części naszego samouczka musimy użyć 2 ustawień GPIO. Jedno wejście i jedno wyjście.
Wejście GPIO służy do określenia, kiedy klawisz został naciśnięty, a wyjście GPIO służy do aktywacji
brzęczyka po naciśnięciu klawisza.
Jak widać w poniższym przykładzie, zdefiniowaliśmy 2 piny o nazwach buzzer_pin i button_pin.
Program działa do momentu naciśnięcia klawiszy CTRL + C.
Kiedy naciskasz klawisz na Joy-Pi, brzęczyk wydaje dźwięk! Zwolnij klawisz, a brzęczyk się zatrzyma.
Przykładowy kod:
Strona 15 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Wykonaj następujące polecenia i spróbuj sam:
cd /home/pi/Desktop/Joy-Pi/
sudo python button_buzzer.py
5.3 LEKCJA 3: JAK DZIAŁA PRZEKAŹNIK I JAK GO KONTROLOWAĆ
Teraz, gdy wiemy już wszystko, co powinniśmy wiedzieć o brzęczyku, czas na następną lekcję. Teraz
dowiemy się, jak korzystać z przekaźnika, jaka jest funkcja przekaźnika i jak nim sterować.
Przekaźniki są używane do sterowania obwodem za pomocą oddzielnego sygnału małej mocy lub gdy
kilka obwodów musi być sterowanych jednym sygnałem. Jeśli podłączysz przewody do „NC” i „COM” i
wyślesz sygnał GPIO.HIGH, przekaźnik zamknie się i wyłączy niestandardowy obwód. Jeśli zatrzymasz
sygnał, przekaźnik otworzy się i aktywuje twój obwód niestandardowy.
Strona 16 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Przekaźnik znajduje się w środkowej, dolnej części płytki, obok matrycy klawiszy. Ma 3 wejścia, z
których 2 użyjemy w tym przykładzie.
„NC” oznacza „normalnie zamknięty”, „NO” oznacza „normalnie otwarty”, a „COM” oznacza
„wspólny”.
Wspólny w tym przypadku oznacza wspólną płaszczyznę.
Gdy obwód wspólny nie jest zasilany (GPIO.LOW), obwód „NC” jest zamknięty.
Kiedy wspólny obwód zostanie zasilony (GPIO.HIGH), przekaźnik zamknie obwód dla „NO”.
Używając „NO” i „COM” wszystko jest odwrócone.
Gdy „COM” jest wyłączony (GPIO.LOW), obwód przekaźnika jest otwarty.
Gdy „COM” jest włączony (GPIO.High), obwód przekaźnika jest zamknięty.
Uwaga! Bardzo ważne jest, aby nie próbować podłączać do przekaźnika urządzeń wysokiego napięcia
(np. Lampy stołowej, ekspresu do kawy itp.). Może to spowodować porażenie prądem i poważne
obrażenia.
Teraz, gdy już zrozumieliśmy, czym jest przekaźnik i jak działa, przyjrzyjmy się kodowi:
Strona 17 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Czy kiedykolwiek zastanawiałeś się, jak wibruje Twój telefon, gdy ktoś do Ciebie dzwoni lub kiedy
otrzymujesz wiadomość?
Zbudowaliśmy dokładnie ten sam moduł w naszym Joy-Pi i teraz nauczymy się go używać.
Moduł wibracji znajduje się po prawej stronie matrycy LED i poniżej segmentowej diody LED. Kiedy
jest włączony, trudno jest stwierdzić, skąd pochodzą wibracje, ponieważ wydaje się, że cała płyta Joy-
Pi wibruje.
Strona 18 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska
Moduł wibracyjny wykorzystuje sygnał GPIO.OUTPUT, podobnie jak Brzęczyk i inne używane
wcześniej moduły. Po wysłaniu sygnału wyjściowego moduł zacznie wibrować. Kiedy zatrzymasz
sygnał za pomocą GPIO.LOW, wibracje ustaną.
Możesz dostosować długość wibracji w różnych odstępach czasu.
W tym przykładzie musisz przełączać się między modułami. Ustaw przełącznik numer 1 prawej
jednostki przełączającej w pozycji włączonej. Wszystkie pozostałe przełączniki powinny być
wyłączone.
Wykonaj następujące polecenia i wypróbuj sam:
cd /home/pi/Desktop/Joy-Pi/
sudo python vibration.py
Strona 19 z 61
Dystrybucja Conrad Electronic Sp. z o.o., ul. Kniaźnina 12, 31-637 Kraków, Polska