Każdy model Raspberry Pi, poczynają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.
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).
GPIO w Raspberry Pi ma wiele różnych typów pinów. Jeśli chcesz sprawdzić, które piny są odpowiedzialne za uziemienie, które za zasilanie, a które z nich możemy użyć do komunikacji, to wpisujemy do Raspberry „pinout” w linii komend.
Raspberry Pi GPIO – programowanie
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ć zewnętrznych komponentów. W przeciwnym razie możemy uszkodzić nasze Raspberry Pi.
Sterowanie pinami GPIO poprzez programowanie w Pythonie wymaga wcześniejszego zaimportowania odpowiednich bibliotek, z wcześniej przygotowanym kodem. Najpopularniejszą biblioteką jest RPi.GPIO, wykorzystana do stworzenia tysięcy projektów. Następnie powstała biblioteka zwana GPIO Zero, stworzona dla osób początkujących z Pythonem i elektroniką. Obie biblioteki zostały wbudowane w system Raspbian.
Nazwy poszczególnych pinów Raspberry Pi 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 Raspberry Pi, 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 RPI 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 na Raspberry Pi, umożliwiające przeniesienie pinów GPIO z Raspberry Pi na płytkę prototypową.
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.
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.
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.
Co nowego w Raspberry Pi 5? Czego możemy się spodziewać? Oto najczęściej wymieniane oczekiwania wobec nowej wersji minikomputera Raspberry Pi.
GPIO – FAQ
GPIO (z ang. general purpose input output) to piny cyfrowe charakteryzujące się wyłącznie dwoma stanami, mianowicie ON lub OFF. Poszczególne piny różnią się od siebie m.in. kierunkiem przewodzenia prądu (odbieranie, czyli wejścia i wysyłanie, czyli wyjścia). Opis wszystkich 40 pinów GPIO minikomputera Raspberry Pi można znaleźć w tym artykule.
Jak podłączyć diodę do Raspberry Pi?
Aby podłączyć diodę do minikomputera Raspberry Pi, należy dłuższą nóżkę diody (czyli anodę) połączyć za pośrednictwem rezystora (opornika) o parametrach 1,2 kΩ do pinu o numerze 40. Z kolei katoda, czyli krótsza nóżka diody musi być połączona z masą, zatem należy ją podłączyć do pinu o numerze 39.
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 4.4 / 5. Liczba głosów: 14
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.
GG nie ma czasu na gadu-gadu - jest zawsze na bieżąco z nowościami z oferty, wybiera tylko najlepsze i dba, aby pojawiały się na czas. Jego rozległa wiedza o specyfikacjach technicznych produktów to nieocenione wsparcie dla całej ekipy. Do pracy przyjeżdża rowerem i już najwyższa pora, aby wszyscy zaczęli brać z niego przykład. Oaza spokoju.
GG nie ma czasu na gadu-gadu - jest zawsze na bieżąco z nowościami z oferty, wybiera tylko najlepsze i dba, aby pojawiały się na czas. Jego rozległa wiedza o specyfikacjach technicznych produktów to nieocenione wsparcie dla całej ekipy. Do pracy przyjeżdża rowerem i już najwyższa pora, aby wszyscy zaczęli brać z niego przykład. Oaza spokoju.
Artykuł dotyczy stworzenia urządzenia, które będzie dokonywało pomiaru wielkości elektrycznych takich jak napięcie, prąd, częstotliwość, moc oraz współczynnik mocy danego urządzenia zasilanego z sieci domowej.
W dalszej części kursu skorzystamy z dołączonego do zestawu elementów cyfrowego czujnika światła. Postaramy się go uruchomić i sprawdzimy, czy jest on dobrą konkurencją dla poznanego już wcześniej fotorezystora.
Wszystko co musisz wiedzieć na temat opaski termokurczliwej – przykładowe zastosowania, właściwości oraz sposób użycia. Czy wykorzystasz ją w swoim projekcie?
W tej części kursu ulepszymy program obsługujący sensor VEML7700 i przyjrzymy się bliżej funkcjonalności RP2040, jaką jest bezpośredni dostęp do pamięci – DMA.
Artykuł dotyczy stworzenia urządzenia, które będzie dokonywało pomiaru wielkości elektrycznych takich jak napięcie, prąd, częstotliwość, moc oraz współczynnik mocy danego urządzenia zasilanego z sieci domowej.
Jedna odpowiedź
Arduino też jest ciekawa opcja na początek