GPIO: wszystko o połączeniach Raspberry Pi 4 i 3

Raspberry Pi 4 GPIO

L Piny GPIO płytki Raspberry Pi 4, 3, a także jego poprzednicy, dostarczają płytce SBC możliwości zbliżone do tych, które może mieć Arduino, ponieważ dzięki nim można tworzyć bardzo ciekawe projekty elektroniczne sterowane z systemu operacyjnego za pomocą kodu w różnych językach, takich jak Python.

To sprawia, że ​​płyta jest czymś więcej niż tylko tanim komputerem. Pozwoli ci to podłączyć wiele elementy elektroniczne którego można używać z Arduino, ale można nim również sterować z Pi. W tym przewodniku postaram się podać jak najwięcej informacji o tych pinach GPIO, abyś mógł zacząć z nich korzystać ...

Co to jest GPIO?

GPIO

GPIO jest akronimem wejścia / wyjścia ogólnego przeznaczenia, czyli wejścia / wyjścia ogólnego przeznaczenia. Mogą to mieć różne produkty elektroniczne, takie jak same chipy lub niektóre płytki PCB, takie jak to Raspberry Pi. Jak sugeruje ich nazwa, są to piny, które można skonfigurować do wykonywania różnych funkcji, stąd mają one zastosowanie ogólne, a nie do konkretnego zastosowania.

Będzie to użytkownik w czasie wykonywania, który może to zrobić Skonfiguruj te piny GPIO żeby robili, co on chce. Można to zrobić na różne sposoby, na przykład za pomocą pewnych kodów lub skryptów z konsoli lub za pomocą programu w języku Python, który jest jednym z najprostszych i najbardziej preferowanych sposobów ze względu na liczbę dostępnych opcji.

W ten sposób Raspberry Pi ma nie tylko szereg portów i interfejsy aby podłączyć wiele standardowych urządzeń, ale dodaj te piny GPIO, aby móc dodawać inne urządzenia elektroniczne lub projekty, które sam stworzyłeś. W taki sam sposób, jak w przypadku Arduino i jego pinów I / O do sterowania.

Y nie wyłącznie dla Arduino lub Raspberry Pi, podobnie jak inne podobne płyty SBC i produkty wbudowane.

Funkcje GPIO

I pomiędzy jej WŁAŚCIWOŚCI najwybitniejszy:

  • Can być skonfigurowane więc jako wejście jako wyjście. Mają tę dwoistość, jak to się dzieje z tymi z Arduino.
  • Piny GPIO też można aktywować i dezaktywować według kodu. Oznacza to, że można je ustawić na 1 (wysoki poziom napięcia) lub 0 (niski poziom napięcia).
  • Oczywiście, że mogą czytać dane binarne, jako jedynki i zera, czyli sygnał napięciowy lub jego brak.
  • Wartości wyjściowe Czytanie i pisanie.
  • W niektórych przypadkach wartości wejściowe można skonfigurować jako wydarzenia tak, że generują jakąś akcję na tablicy lub systemie. Niektóre systemy wbudowane używają ich jako przerwania IRQ. Innym przypadkiem jest skonfigurowanie, że gdy jeden lub więcej pinów jest aktywnych przez określone czujniki, wykonaj jakąś akcję ...
  • Jeśli chodzi o napięcie i natężenie, musisz znać maksymalne pojemności dopuszczalne dla płytki, w tym przypadku Raspberry Pi 4 lub 3. Nie należy ich podawać, aby uniknąć uszkodzenia.

Nawiasem mówiąc, gdy grupa pinów GPIO jest zgrupowana, tak jak w przypadku Raspberry Pi, grupa ta jest znana jako Port GPIO.

Piny GPIO Raspberry Pi

Raspberry Pi GPIO

Schemat obowiązuje dla wersji 4, 3, Zero

Nowy Płyty Raspberry Pi 4 i wersja 3 Wyposażone są w dużą liczbę pinów GPIO. Nie wszystkie wersje oferują tę samą ilość, ani nie są ponumerowane w ten sam sposób, więc musisz uważać, aby dobrze wiedzieć, jak wykonać połączenie zgodnie z modelem i wersją, którą posiadasz.

Ale bardziej ogólne są typy GPIO, które można znaleźć w porcie płyt Raspberry Pi. I to będzie pierwsza rzecz, którą chciałbym wyjaśnić, ponieważ tak będziecie wiedzieć rodzaje szpilek możesz liczyć na swoje projekty:

  • karmienie: te szpilki służą do łączenia linii zasilających lub okablowania w projektach elektronicznych. Odpowiadają one pinom podobnym do tych na płycie Arduino i zapewniają napięcia 5v i 3v3 (3.3v ograniczone do obciążenia 50mA). Oprócz tego znajdziesz również naziemne (GND lub Ground). Jeśli nie używasz zewnętrznych źródeł zasilania, takich jak baterie lub adaptery, te styki mogą być bardzo pomocne w zasilaniu obwodu.
  • DNC (nie podłączaj): są to piny, które są w niektórych wersjach i nie mają żadnej funkcji, ale w nowych płytkach nadano im inne przeznaczenie. Znajdziesz je tylko w bardziej prymitywnych modelach Pi. W nowych 3 i 4 będą one ogólnie oznaczone jako GND, dzięki czemu będą mogły zintegrować się z poprzednią grupą.
  • Konfigurowalne szpilki: są to normalne GPIO i można je zaprogramować za pomocą kodów, jak wyjaśnię później, aby zrobić to, czego potrzebujesz.
  • Specjalne szpilki: są to niektóre połączenia, które są przeznaczone do specjalnych połączeń lub interfejsów, takich jak połączenia szeregowe UART, TXD i RXD itp., jak to się dzieje w Arduino. Znajdziesz nawet takie jak SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 itp. Wyróżniają się wśród nich:
    • PWM, który może regulować szerokość impulsu, jak widzieliśmy w poprzednim artykule. Na Raspberry Pi 3 i 4 są to GPIO12, GPIO13, GPIO18 i GPIO19.
    • SPI to kolejny interfejs komunikacyjny, o którym również wspomniałem w innym artykule. W przypadku nowych 40-pinowych płytek są to piny (jak widać z różnymi kanałami komunikacji):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C to kolejne połączenie, które również wyjaśniłem na tym blogu. Magistrala ta składa się z sygnału danych (GPIO2) i zegara (GPIO3). Oprócz danych EEPROM (GPIO0) i zegara EEPROM (GPIO1).
    • Szeregowy, kolejna bardzo praktyczna komunikacja z pinami TX (GPIO14) i RX (GPIO15) jak te na płytce Arduino UNO.

Pamiętaj, że GPIO to interfejs między Raspberry Pi a światem zewnętrznym, ale tak jest jego ograniczenia, zwłaszcza elektryczne. Coś, co trzeba wziąć pod uwagę, aby nie zepsuć płytki, to pamiętać, że te piny GPIO są zwykle niebuforowane, czyli bez bufora. Oznacza to, że nie mają ochrony, więc musisz monitorować wielkości przyłożonego napięcia i natężenia, aby nie skończyć z bezużyteczną płytką ...

Różnice GPIO między wersjami

Stare piny GPIO Raspberry Pi

Tak jak powiedziałem, nie wszystkie modele mają takie same szpilkiOto kilka diagramów, dzięki którym możesz zobaczyć różnice między modelami, a tym samym skupić się na Raspberry Pi 4 i 3, które są najnowsze i prawdopodobnie masz w posiadaniu. Różni się między (wszystkie z każdej grupy mają te same piny):

  • Raspberry Pi 1 Model B Rev 1.0, z 26 pinami nieco różniącymi się od Rev2.
  • Raspberry Pi 1 Model A i B Rev 2.0, oba modele z 26-pinami.
  • Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero i Zero W, a także 4 modele, wszystkie z 40-pinowym złączem GPIO.

Co mogę podłączyć do GPIO?

Kapelusz Raspberry Pi

Nie tylko będziesz w stanie podłączać urządzenia elektroniczne jako tranzystory, czujniki wilgotności / temperatury, termistory, silniki krokowe, diody LEDitp. Można również podłączyć komponenty lub moduły stworzone specjalnie dla Raspberry Pi, które rozszerzają możliwości płytki poza to, co jest zawarte w bazie.

Mam na myśli słynne kapelusze lub kapelusze i talerze, które można znaleźć na rynku. Istnieje wiele typów, od tych używanych do sterowania silnikami za pomocą sterowników, po inne do tworzenia klaster obliczeniowy, Z Panel LED sterowalne, do dodania Możliwość telewizji DVB, wyświetlacz LCDItp

Te kapelusze lub kapelusze Montowane są na płytce Raspberry Pi, dopasowanie GPIO potrzebnych do działania. Dlatego jego montaż jest dość prosty i szybki. Oczywiście upewnij się, że wersja płytki jest kompatybilna z każdym kapeluszem, ponieważ port GPIO jest inny, jak widzieliście ...

Mówię to na wypadek, gdybyś miał starszy talerz, ponieważ kapelusze są kompatybilny tylko z najnowszymi. Podobnie jak modele Raspberry Pi Model A +, B +, 2, 3 i 4.

Wprowadzenie do korzystania z GPIO na Raspberry Pi

Wyjście polecenia pinout

Źródło: Raspberry Pi

Aby rozpocząć, w Raspbian możesz otworzyć konsolę i wpisać polecenie pinoutTo, co ci zwróci, to obraz w terminalu z pinami GPIO dostępnymi na twojej płytce i do czego każdy z nich jest przeznaczony. Coś bardzo praktycznego, aby zawsze mieć go w pracy, aby się nie pomylić.

Pierwszy projekt: miganie diody LED za pomocą GPIO

GPIO z diodą LED na Raspberry Pi

Najbardziej podstawowy sposób na zrobienie czegoś w rodzaju „Witaj, świecie” z GPIO polega na zastosowaniu prostej diody LED podłączonej do pinów Raspberry Pi dzięki czemu można zobaczyć jak one działają. W tym przypadku podłączyłem go do GND a drugi do pinu 17, chociaż można wybrać inny z normalnych pinów ...

Po nawiązaniu połączenia możesz kontrolować je z Raspbian korzystanie z terminala. W Linuksie używane są określone pliki, takie jak te w katalogu / sys / class / gpio /. Na przykład, aby utworzyć plik o strukturze niezbędnej do rozpoczęcia pracy:

echo 17 > /sys/class/gpio/export

Wtedy możesz skonfigurować jako wejście (wejście) lub wyjście (wyjście) ten pin 17 wybrany do naszego przykładu. Możesz to bardzo łatwo zrobić za pomocą:

echo out > /sys/class/gpio/gpio17/direction

W tym przypadku jako wyjście, ponieważ chcemy wysłać impuls elektryczny do diody LED, aby ją włączyć, ale gdyby był to czujnik itp., Można by użyć w. Teraz dla włącz (1) lub wyłącz (0) dioda LED, której możesz użyć:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Jeśli chcesz przejść do innego projektu i usuń wpis utworzony, możesz to zrobić w ten sposób:

echo 17 > /sys/class/gpio/unexport

Nawiasem mówiąc, możesz również zebrać wszystkie niezbędne polecenia dla swojego projektu, podobnie jak wszystkie poprzednie, zapisać je w typie pliku skrypt bash a następnie uruchom je w pakiecie na raz, zamiast wpisywać je jeden po drugim. Jest to przydatne, gdy powtarzasz to samo ćwiczenie wiele razy, więc nie musisz pisać od nowa. Po prostu biegnij i idź. Na przykład:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Po zakończeniu zapisujesz, a następnie możesz nadać mu odpowiednie uprawnienia do wykonywania i wykonywania scenariusz aby dioda się zaświeciła, odczekaj 1.3 sekundy i wyłącz w ten sposób w pętli ...

chmod +x led.sh
./led.sh

Programowanie z wyprzedzeniem

kod źródłowy języka programowania

Oczywiście powyższe działa dla małych projektów elektronicznych z kilkoma komponentami, ale jeśli chcesz stworzyć coś bardziej zaawansowanego zamiast poleceń, możesz użyć języki programowania do tworzenia różnych skryptów lub kodów źródłowych, które automatyzują operację.

Mogą być używane różne narzędzia do programowania, z bardzo różnymi językami. Biblioteki, które stworzyła społeczność, znacznie ułatwiają ci pracę, takie jak WiringPi, sysfs, pigpio itp. Programy mogą być bardzo zróżnicowane, od Pythona, który jest preferowaną opcją dla wielu, poprzez Ruby, Java, Perl, BASIC, a nawet C #.

Oficjalnie Raspberry Pi oferuje Ci wiele udogodnień aby zaprogramować swoje GPIO, takie jak:

  • Scratchdla tych, którzy nie umieją programować i chcą korzystać z klocków puzzli tego projektu, którymi można również zaprogramować Arduino itp. Programowanie za pomocą bloków graficznych jest dość intuicyjne i bardzo praktyczne na polu edukacji.
  • Python: Ten prosty interpretowany język programowania pozwala na tworzenie prostych i wydajnych kodów, z wieloma bibliotekami do Twojej dyspozycji, aby zrobić prawie wszystko, co sobie wyobrazisz.
  • C / C ++ / C #: są bardziej zaawansowanymi językami programowania do tworzenia plików binarnych do interakcji z GPIO. Możesz to zrobić na kilka sposobów, używając standardowego formularza lub interfejsu jądra za pośrednictwem bibliotekilibgpiod, ale także za pośrednictwem biblioteki innej firmy, takiej jak Pigio.
  • Przetwarzanie 3, podobny do Arduino.

Wybierz elastycznie ten, który lubisz najbardziej lub uważasz, że jest prosty.


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.