Reklama

Nauka używania pinów GPIO na twoim Raspberry Pi otwiera cały świat możliwości. Podstawowe zasady wyuczone w projektach dla początkujących torują drogę do przydatnej wiedzy zarówno o elektronice DIY, jak i programowaniu.

Ten samouczek pokaże dwa sposoby dodania przycisku do projektu Raspberry Pi. Przycisk będzie używany do sterowania diodą LED. Pisemne instrukcje są dostępne pod filmem.

Będziesz potrzebować

Aby rozpocząć, upewnij się, że masz następujące komponenty:

  • 1 x Raspberry Pi (dowolne, w tym samouczku zastosowano model 3B)
  • 1 x przycisk
  • 1 x LED
  • 1 x 220 Ohm Rezystor (wyższe wartości są w porządku, twoja dioda LED będzie po prostu przyciemniona)
  • 1 x deska do krojenia chleba
  • Podłącz przewody

Po zebraniu powinieneś mieć komponenty, które wyglądają mniej więcej tak:

Potrzebne części do samouczka przycisku Pi

Będziesz także potrzebować karty SD z zainstalowanym systemem operacyjnym Raspbian. Najszybszym sposobem na to jest użycie obrazu NOOBS (New Out Of the Box Software). Instrukcje, jak to zrobić, są dostępne w tym filmie:

Konfiguracja obwodu

Będziesz używać pinów GPIO Pi do wykonania obwodu, a jeśli nie znasz ich, nasze przewodnik po pinach GPIO Raspberry Pi pomoże. Obwód tutaj jest prawie taki sam jak w naszym poprzednim Projekt LED Raspberry Pi, z dodatkiem przycisku, którego będziesz używać dzisiaj.

Skonfiguruj obwód zgodnie z tym schematem:

Schemat Fritzing dla samouczka przycisku Pi
  • The 5v i GND kołki łączą się z szynami zasilania płyty chlebowej.
  • Pin 12 (GPIO 18) łączy się z dodatnią nogą diody LED.
  • Jedna noga rezystor przymocowuje się do ujemnej nogi diody LED, a drugą nogę mocuje się do szyny uziemiającej płyty chlebowej.
  • Pin 16 (GPIO 23) przymocowuje się do jednej strony przycisku, drugą stronę do szyny uziemiającej płyty chlebowej.

Po skonfigurowaniu wygląda to tak:

Raspberry Pi podpięty do przycisku i diody LED na desce do krojenia.

Sprawdź obwód, aby upewnić się, że jest poprawny, a następnie włącz Raspberry Pi.

Metoda 1: RPi. Biblioteka GPIO

Po uruchomieniu Pi przejdź do menu i wybierz Programowanie> Thonny Python IDE. Otworzy się nowy skrypt Python. Jeśli jesteś zupełnie nowy w Pythonie, jest to świetny język dla początkujących i są wiele wspaniałych miejsc, aby dowiedzieć się więcej o Pythonie po zakończeniu tego samouczka!

Thonny Python IDE

Zacznij od zaimportowania RPi. Biblioteka GPIO i ustawianie trybu tablicy.

import RPi. GPIO jako GPIO GPIO.setmode (GPIO.BOARD)

Teraz zadeklaruj zmienne dla diod LED i numerów pinów przycisków.

ledPin = 12. buttonPin = 16. 

Zauważ, że ponieważ mamy ustawiony tryb tablicy TABLICA używamy raczej numerów pinów niż numerów GPIO. Jeśli jest to dla ciebie mylące, wykres pinout Raspberry Pi może pomóc to wyjaśnić.

My Pi Pinout

Konfigurowanie przycisku

Czas skonfigurować piny GPIO. Ustaw pin LED na wyjście, a pin przycisku na wejście za pomocą rezystora podciągającego

GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP)

Tekst po GPIO.IN odnosi się do wewnętrzny rezystor podciągający Raspberry Pi. Musisz włączyć tę opcję, aby uzyskać czysty odczyt z przycisku. Ponieważ przycisk trafia do styku uziemiającego, potrzebujemy rezystora podciągającego, aby przytrzymać styk wejściowy WYSOKI, dopóki go nie naciśniesz.

Zanim przejdziemy dalej, spójrzmy na rezystory podciągające i podciągające.

Przerwa: Rezystory pull up / pull down

Po skonfigurowaniu wejścia GPIO do wejścia odczytuje on ten pin, aby określić jego stan. W tym obwodzie musisz przeczytać, czy jest pin WYSOKI lub NISKA aby włączyć diodę LED po naciśnięciu przycisku. Byłoby to proste, gdyby były to jedyne stany, które może mieć szpilka, ale niestety istnieje trzeci stan: RUCHOMY.

Pływający pin ma wartość od wysokiej do niskiej, co powoduje, że sygnał wejściowy działa nieprzewidywalnie. Rezystory pull-up / pull-down rozwiązują ten problem.

Schemat przykładowego rezystora podciągającego

Powyższe zdjęcie to uproszczony schemat przycisku i Raspberry Pi. Pin GPIO łączy się z ziemią za pomocą przycisku. Wewnętrzny rezystor podciągający łączy pin GPIO z wewnętrznym zasilaczem Pi. Ten prąd płynie, a kołek jest bezpiecznie wyciągnięty do WYSOKI.

Po naciśnięciu przycisku pin GPIO łączy się bezpośrednio z pinem uziemienia, a przycisk wyświetla niski poziom.

Schemat przykładowego rezystora obniżającego

Rezystory rozkładane są przeznaczone, gdy przełącznik jest podłączony do styku zasilania. Tym razem wewnętrzny rezystor mocuje pin GPIO do masy, przytrzymując LOW do momentu naciśnięcia przycisku.

Teoria podciągania i opuszczania jest na pierwszy rzut oka myląca, ale ważna wiedza, którą trzeba mieć podczas pracy z mikrokontrolerami. Na razie, jeśli nie rozumiesz tego, nie martw się!

Kontynuujmy tam, gdzie przerwaliśmy.

Pętla programu

Następnie skonfiguruj pętlę programu:

while True: buttonState = GPIO.input (buttonPin) if buttonState == False: GPIO.output (ledPin, GPIO.HIGH) else: GPIO.output (ledPin, GPIO.LOW)

The podczas gdy prawda Pętla nieprzerwanie uruchamia w nim kod, dopóki nie zakończymy programu. Za każdym razem, gdy pętla jest aktualizowana buttonState czytając dane wejściowe z buttonPin. Gdy przycisk nie jest wciśnięty, pozostaje WYSOKI.

Po naciśnięciu przycisku buttonState staje się NISKA. To uruchamia instrukcja if, od Fałszywe jest taki sam jak NISKA, a dioda LED się włączy. The jeszcze instrukcja wyłącza diodę LED, ilekroć przycisk Pin nie jest fałszywy.

Zapisz i uruchom skrypt

Zapisz skrypt, klikając Plik> Zapisz jako i wybranie nazwy pliku. Możesz uruchomić szkic, klikając zielony Grać przycisk na pasku narzędzi Thonny.

Panel sterowania Thonny

Teraz naciśnij przycisk, a dioda LED powinna się zaświecić! Naciśnij czerwony Zatrzymać w dowolnym momencie, aby zatrzymać program

Testowanie za pomocą przycisku Gif

W przypadku problemów sprawdź dokładnie kod i konfigurację obwodu pod kątem błędów i spróbuj ponownie.

Metoda 2: Biblioteka Zero GPIO

RPi. Biblioteka GPIO jest fantastyczna, ale na bloku jest nowe dziecko. GPIO Zero Library była utworzony przez Ben Nuttall, menedżera społeczności Raspberry Pi z zamiarem uproszczenia kodu oraz ułatwienia odczytu i zapisu.

Aby przetestować nową bibliotekę, otwórz nowy plik Thonny i zaimportuj bibliotekę.

z diody importu gpiozero, przycisk. z pauzy importu sygnału. 

Zauważysz, że nie zaimportowałeś całej biblioteki. Ponieważ używasz tylko diody LED i przycisku, potrzebujesz tylko tych modułów w skrypcie. Sprowadzamy również Pauza z biblioteki sygnałów, która jest biblioteką Pythona do zarządzania zdarzeniami.

Konfiguracja pinów jest znacznie łatwiejsza dzięki GPIO Zero:

led = LED (18) przycisk = przycisk (23)

Ponieważ biblioteka GPIO Zero ma moduły LED i przycisku, nie musisz konfigurować wejść i wyjść jak wcześniej. Zauważysz, że chociaż szpilki się nie zmieniły, liczby tutaj są inne niż powyżej. Jest tak, ponieważ GPIO Zero używa tylko numerów pinów GPIO (znanych również jako numery Broadcom lub BCM).

Reszta skryptu to tylko trzy linie:

button.when_pressed = led.on. button.when_released = led.off pause ()

The pauza() call tutaj po prostu zatrzymuje wyjście skryptu, gdy osiągnie dno. Zdarzenia z dwoma przyciskami są uruchamiane za każdym razem, gdy przycisk zostanie naciśnięty i zwolniony. Zapisz i uruchom skrypt, a zobaczysz taki sam wynik jak wcześniej!

Dwa sposoby dodania przycisku do Raspberry Pi

Spośród dwóch sposobów ustawienia przycisku metoda GPIO Zero wydaje się najłatwiejsza. Nadal warto poznać RPi. Biblioteka GPIO as większość projektów Raspberry Pi dla początkujących Użyj tego. Tak prosty jak ten projekt, wiedza może być wykorzystana do wielu rzeczy.

Używanie pinów GPIO to świetny sposób na naukę i wymyślanie własnych urządzeń, ale daleko mu do wszystkiego, co możesz zrobić z Pi. Nasz nieoficjalny przewodnik po Raspberry Pi Raspberry Pi: The Unofficial TutorialNiezależnie od tego, czy jesteś obecnym właścicielem Pi, który chce dowiedzieć się więcej, czy potencjalnym właścicielem tego urządzenia o wielkości karty kredytowej, nie jest to przewodnik, którego nie możesz przegapić. Czytaj więcej jest pełen kreatywnych pomysłów i samouczków, które możesz wypróbować sam! Aby zobaczyć inny samouczek, sprawdź jak zrobić przycisk podłączony do Wi-Fi Jak zrobić własny przycisk Wi-Fi podłączony za pomocą ESP8266W tym samouczku dowiesz się, jak utworzyć przycisk z obsługą Wi-Fi za pomocą NodeMCU i IFTTT. Czytaj więcej .

Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo mieszkającym w Berlinie w Niemczech. Kiedy nie pisze ani nie występuje na scenie, majstruje przy elektronice lub kodzie DIY, mając nadzieję, że zostanie szalonym naukowcem.