Każdy model Raspberry Pi, zaczynając od B+, posiada 40 pinów GPIO. W tym artykule postaramy się opisać jak działa każdy z nich, grupując je na poszczególne kategorie.

Wyprowadzenia GPIO - Raspberry Pi
Wyprowadzenia GPIO – Raspberry Pi

Czym jest GPIO?

General Purpose Input Output (GPIO) to najbardziej podstawowy aspekt minikomputera Raspberry Pi. Piny GPIO są cyfrowe, co oznacza że posiadają dwa stany: ON lub OFF. Mogą posiadać kierunek odbioru lub wysyłania prądu (odpowiednio wejścia/wyjścia). Możemy kontrolować ich stan i kierunek używając odpowiednich języków programowania, takich jak: Python, JavaScript, node-RED, itp.

Piny GPIO pracują z napięciem 3.3 V z maksymalnym obciążeniem prądowym wynoszącym 16 mA. Oznacza to, że możemy bezpiecznie zasilić jedną lub dwie diody LED z pojedynczego pinu GPIO, przez rezystor. Jednak do wszystkiego co wykorzystuje więcej prądu, np. silnik DC, będziemy potrzebować użyć zewnętrznych komponentów. W przeciwnym razie możemy uszkodzić nasze Raspberry Pi.

Sterowanie pinami GPIO poprzez programowanie w Python’ie wymaga wcześniejszego zaimportowania odpowiednich bibliotek, z wcześniej przygotowanym kodem. Najpopularniejszą biblioteką jest RPi.GPIO ( https://pypi.org/project/RPi.GPIO/) wykorzystana do stworzenia tysięcy projektów. Następnie powstała biblioteka zwana GPIO Zero (https://pypi.org/project/gpiozero/), stworzona dla osób początkujących z Pythonem i elektroniką. Obie biblioteki zostały wbudowane w system Raspbian.

Nazwy poszczególnych pinów GPIO

Poszczególne piny GPIO posiadają wiele nazw. Pierwsza najbardziej oczywista nazwa to fizyczna lokacja GPIO. Zaczynając od lewego górnego rogu GPIO, pin najbliższy slotu kart microSD, mamy pin 1, który zapewnia zasilanie 3.3 V. Na prawo od tego pinu jest fizyczny pin 2, który zapewnia napięcie 5 V. Numery pinów zwiększają się w miarę przesuwania się w dół każdej kolumny, z pinem 1 idąc do pinów 3, 5, 6, itd., aż dojdziemy do pinu 39. Każdy pin w tej kolumnie posiada nieparzystą liczbę. Dla kolumny zaczynającej się od pinu 2, będzie to 4, 6, 8, itd., aż do 40. Fizyczna numeracja pinów jest najbardziej podstawowym sposobem lokalizacji pinów, ale wiele poradników przedstawia inną kolejność numerowania.

Numerowanie Broadcom (BCM) jako numeracja GPIO, wygląda chaotycznie dla początkujących użytkowników. GPIO17, 22 i 27 następują po sobie z niewielką myślą numerowania logicznego. Mapowanie pinów BCM odnosi się do pinów GPIO, które są bezpośrednio podłączone do układu SoC na Raspberry Pi. W rezultacie mamy bezpośrednie łącza z mózgiem Raspberry Pi do podłączenia czujników i komponentów potrzebnych do naszego projektu.

Zobaczysz większość poradników Raspberry Pi korzystających z tej numeracji, ponieważ ten schemat jest oficjalnie wspierany przez fundację Raspberry Pi. Najlepszą praktyką jest używanie i nauka schematu numerowania BCM. Numerowanie BCM i GPIO odnosi się do tego samego schematu. Na przykład GPIO17 jest taki sam jak BCM17.

Niektóre piny GPIO mają również alternatywne funkcje. Umożliwiają łączenie się z różnymi rodzajami urządzeń korzystających z protokołów I2C, SPI lub UART. Na przykład GPIO13 i GPIO4 to także piny SDA i SCL magistrali I2C. Używane są do łączenia z urządzeniami korzystających z tych protokołów. Te interfejsy należy aktywować w konfiguracji systemu Raspbian OS.

W ofercie naszego sklepu można znaleźć rozszerzenie GPIO umożliwiające przeniesienie pinów GPIO z Raspberry Pi na płytkę prototypową.

Moduł ProtoPi Plus
Moduł ProtoPi Plus

I2C, SPI, UART: który użyć?

Różnice pomiędzy I2C, SPI oraz UART zostały opisane poniżej, lecz jeśli zastanawiasz się który wykorzystać do podłączenia swojego urządzenia, krótką odpowiedzą jest: sprawdź w specyfikacji produktu. Na przykład mały wyświetlacz LED wymaga użycia komunikacji SPI, a inny może wymagać użycia I2C. Zazwyczaj dokumentacja produktu zawiera informacje o wymaganych do podłączenia pinach.

Wyświetlacz LCD

I2C

I2C to wolny, dwu przewodowy protokół do podłączenia urządzeń wykorzystujących standard I2C. Urządzenia wykorzystujące ten standard posiadają relację master i slave. Może być więcej niż jeden master, ale każde urządzenie slave wymaga unikalnego adresu uzyskanego przez producenta. To oznacza, że możemy korzystać z wielu urządzeń na pojedynczym podłączeniu I2C, ponieważ każde urządzenie jest unikalne i możliwe do wykrycia przez użytkownika i komputer za pomocą poleceń takich jak i2cdetect.

Jak wspomniano wcześniej, I2C ma dwa połączenia SDA i SCL. Działają poprzez wysyłanie danych do i od SDA, z prędkością kontrolowaną przez pin SCL. I2C jest prostą metodą podłączenia wielu urządzeń, takich jak wyświetlacze LCD / OLED, czujniki temperatury i przetworniki cyfrowo-analogowe do korzystania z fotorezystorów.

Raspberry Pi posiada dwa połączenia I2C w GPIO 2 i 3 (SDA i SCL) dla i2C0 (master), a fizyczne piny 27 i 28 są pinami I2C, które umożliwiają komunikację z kompatybilnymi nakładkami HAT.

SPI

To kolejny protokół do łączenia kompatybilnych urządzeń z Raspberry Pi. Jest on podobny do I2C, ponieważ istnieje relacja master i slave między Raspberry Pi, a urządzeniem do niego podłączonym.

Zwykle SPI służy do wysyłania danych na niewielkie odległości między mikrokontrolerami i komponentami, takimi jak rejestry przesuwne, czujniki, czy karty SD. Dane są synchronizowane za pomocą zegara (SCLK w GPIO11) z urządzenia nadrzędnego. Natomiast dane są przesyłane z Pi do naszego urządzenia SPI za pomocą pinu MOSI (GPIO10). MOSI oznacza Master Out Slave In. Jeśli komponent musi odpowiedzieć na nasze Pi, to wyśle dane z powrotem za pomocą pinu MISO (GPIO9), która oznacza Master In Slave Out.

UART

Powszechnie znany jako „Szeregowy” pin UART ( Transmit GPIO14, Receive GPIO15) zapewnia logowanie do konsoli / terminala bez konieczności użycia klawiatury lub innego urządzenia wskazującego. Najprostsza metoda sterowania bezprzewodowego Raspberry Pi jest przez sieć lub USB.

Jeżeli jednak nie posiadasz połączenia internetowego, możesz sterować Raspberry Pi używając przewodu szeregowego lub modułu konwertera USB-to-serial w połączeniu z komputerem używając konsoli terminala. UART jest wyjątkowo niezawodny i zapewnia dostęp do Raspberry Pi bez potrzeby użycia dodatkowego wyposażenia. Pamiętaj tylko, aby włączyć konsolę szeregową w aplikacji sterującej Raspberry.

Masa (GND)

Masa jest powszechnie określana jako GND, gnd lub -. GND to miejsce, w którym można zmierzyć wszystkie napięcia i zakończyć obwód elektryczny. Jest to nasz punkt zerowy i poprzez połączenie komponentu, takiego jak dioda LED ze źródłem zasilania i masą, element staje się częścią obwodu, a prąd przepływa przez diodę LED i wytwarza światło.

Podczas budowania obwodów zawsze mądrze jest wykonać połączenia uziemiające przed podaniem jakiegokolwiek napięcia, zapobiegnie to ewentualnemu uszkodzeniu bardziej wrażliwych elementów. Raspberry Pi posiada osiem wyprowadzeń GND na GPIO. Zatem wybór pinu uziemiającego zależy od osobistych preferencji lub wygody przy podłączeniu komponentów.

5V

Piny 5 V zapewniają bezpośredni dostęp zasilania napięciem 5 V pochodzącego z zasilacza sieciowego. Raspberry może być zasilane bezpośrednio z tych pinów, a także może zasilać inne urządzenia 5 V. Używając bezpośrednio tych wyprowadzeń, należy zachować ostrożność i sprawdzić napięcie przed wykonaniem połączenia, ponieważ omijają one wszelkie funkcje bezpieczeństwa, takie jak regulator napięcia i bezpiecznik, które chronią minikomputer.

3V3

Pin 3 V zapewnia stabilne zasilanie napięciem 3.3 V. W rzeczywistości rzadko zdarza się, aby ten pin był uwzględniony w kompilacji, ale ma specjalne zastosowanie. Po podłączeniu diody LED do GPIO upewniamy się, że dioda LED jest prawidłowo podłączona i się świeci. Łącząc nogę diody LED, anodę z pinem 3.3 V przez rezystor i krótszą nogę, katodę z GND możemy sprawdzić, czy nasza dioda świeci. Eliminuje to błąd sprzętowy w projekcie i pozwala nam bez obaw rozpocząć budowę naszego projektu.

Źródło: https://www.tomshardware.com/reviews/raspberry-pi-gpio-pinout,6122.html

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *