W poniższym poradniku zapoznamy się z podstawowymi właściwościami pinów GPIO znajdujących się na platformie Raspberry Pi. Omówimy znaczenie GPIO, ich konfiguracje, a na końcu napiszemy prosty program.
Czym są GPIO?
Piny GPIO (General Purpose Input/Output) są interfejsem służącym do komunikacji pomiędzy komputerem (w naszym przypadku Raspberry Pi) a innymi układami. Możemy do nich podłączyć moduły rozszerzeń, przeróżne czujniki czy własne układy elektroniczne. GPIO odznaczają się tym, że to użytkownik decyduje czy ma on pośredniczyć w wysyłaniu lub pobieraniu sygnału, czyli czy dany pin ma być interfejsem wyjściowym czy wejściowym.
UWAGA! Eksperymentowanie z GPIO jest ryzykowne i istnieje możliwość uszkodzenia Raspberry Pi. Nie powinno się podłączać napięć wyższych niż 3.3V i mniejszych niż 0V oraz prąd pobierany przez zewnętrzne urządzenia nie może być większy niż 16mA.
Potrzebne elementy
Do wykonania wszystkich instrukcji, które pojawią się w tym kursie będziemy potrzebowali:
• Raspberry Pi
• Karta SD 8GB lub micro SD dla Raspberry Pi 2 lub Raspberry Pi B+
• Kabel ethernetowy lub karta sieciowa wifi (jeśli chcemy zdalnie sterować minikomputerem)
• 1x rezystor 100-ohm
• 1x czerwona dioda LED
• Płytka stykowa + przewody połączeniowe
• Moduł umożliwiający podłączenie GPIO z płytką stykową - Adafruit Pi T-Cobbler Plus (opcjonalnie)
Typu pinów
Jak widzimy na poniższym rysunku, ilość pinów różni się w zależności od modelu. Także GPIO są podzielone na sekcje, do których odniesienie widzimy po prawej stronie.
Wytłumaczenie oznaczeń:
• GPIO - standardowe piny do powszechnego użytku
• I?C (Inter-Integrated Circuit) - piny, które oprócz standardowych funkcji pozwalają na podłączenie do nich urządzeń wspierających protokół I?C, dzięki temu możliwa jest komunikacja z podłączonymi układami.
• SPI (Serial Peripheral Interface Bus) ? tak samo jak w przypadku I?C, piny te posiadają funkcję normalnych GPIO, jak również mają możliwość komunikacji za pomocą protokołu SPI
• UART (Universal asynchronous receiver/transmitter) ? piny, które pośredniczą w przekazywaniu i odbieraniu informacji poprzez port szeregowy
• DNC (Do Not Connect) piny nieużywane przez Raspberry Pi
• V+ - piny zasilające
• GND piny masy (nie jest ważne, których używamy, gdyż wszystkie są podłączone do tej samej linii)
Konfiguracja GPIO
Do tego zadania jak i przyszłych, będziemy używać systemu operacyjnego Raspian.
Na początku musimy się upewnić, że posiadamy do niego najnowszą listę pakietów. W tym celu trzeba wprowadzić następujące polecenie:
sudo apt-get updateNastępne polecenie przeprowadza aktualizację zainstalowanych pakietów:
sudo apt-get upgradeJeśli nie posiadamy modułu do kontroli GPIO, wpisujemy:
sudo apt-get install rpi.gpioKonfiguracja protokołu I?C
W celu ustawienia protokołu musimy wejść do Raspi-Config poprzez wprowadzenie polecenia:
sudo raspi-configPrzeniesie ono nas do menu konfiguracyjnego. W nim wchodzimy do opcji zaawansowanych (Advanced Options), a następnie przechodzimy do sekcji I2C. Aktywujemy protokół poprzez wybranie ?Yes?. Raspberry Pi powinno w tym czasie poinformować nas, że magistrala będzie aktywna po restarcie systemu. Następnie Rpi zapyta się, czy I?C ma być ładowane przy każdym starcie systemu. Jeśli chcemy, aby tak było wybieramy ?Yes?.
By upewnić się, że moduł I?C został załadowany wpisujemy:
lsmod | grep i2c_Jeśli jest on poprawnie skonfigurowany, powinniśmy otrzymać poniższy komunikat.
i2c_BCM2708.Konfiguracja protokołu SPI
Analogicznie do I?C, zaczynamy poprzez wpisanie komendy:
sudo raspi-configNastępnie przechodzimy do opcji zaawansowanych, a później do sekcji SPI. Aktywujemy komunikację poprzez kliknięcie na ?Yes?. Tak samo jak w przypadku I?C system poinformuje nas, że protokół będzie aktywny dopiero po restarcie.
By upewnić się, że moduł SPI został załadowany wpisujemy:
lsmod | grep spi_Jeśli wszystko jest w porządku konsola zwróci nam:
spi_bcm2835. Używanie płytki stykowej z modułem Adafruit
W celu uzyskania jak największej wygody podczas zabawy z Raspberry Pi, możemy użyć zestawu firmy Adafruit o nazwie Pi T-Cobbler Plus. Pozwala on na połączenie wszystkich pinów Rpi z płytką stykową za pomocą tasiemki. Łączy się ją tak, jak na zdjęciu podanym poniżej.
Programowanie pinów GPIO
Typowym językiem programowania na platformie Raspberry Pi jest Python. My również będziemy z niego korzystać i napiszemy sobie prosty program obsługujący pojedynczą diodę LED. Na początku musimy przygotować mały układ na płytce stykowej według poniższego diagramu. Anodę diody łączymy do pinu 7, a katodę przez rezystor do masy.
Skrypt można utworzyć uruchamiając edytor NANO za pomocą komendy:
[code:1]sudo nano led_blink.py[/code:1]
Przed przystąpieniem do pisania programu musimy pamiętać, że Python zwraca uwagę na ilość spacji w kodzie. Przykładowo podczas używania pętli "for" musimy pamiętać, że wszystko w niej wykonywane powinno być poprzedzone czterema spacjami.
Kod: Python
Po wpisaniu powyższego musimy go zapisać i wyjść z programu, poprzez wciśnięcie "ctrl+x" a następnie "y".
Teraz możemy uruchomić nasz mały kod. Wykonujemy to poprzez wpisanie poniższej komendy.
sudo python led_blink.pyZakończenie
Mam nadzieję, że w tym poradniku udało się przybliżyć temat pinów Raspberry Pi. Wiedza zawarta w tym kursie, będzie pomocna przy wielu dalszych projektach.
źródło: http://pimylifeup.com/raspberry-pi-gpio/
Fajne? Ranking DIY



