Płytka stykowa pozwala tworzyć obwody bez konieczności lutowania. To świetne narzędzie do eksperymentowania z elektroniką, ale może być nieco onieśmielające. Tworzenie projektu może pomóc Ci utrzymać motywację podczas nauki.
Istnieje wiele prostych gier, które mogą pomóc Ci tworzyć świetne projekty dla początkujących Raspberry PiJedną z łatwych gier, od których możesz zacząć, jest Simon. Gra Simon to Gra pamięciowa Seria świateł miga w losowej kolejności, a gracz musi zapamiętać sekwencję. W miarę postępów sekwencja wydłuża się.

Szybkie linki
Wymagane składniki
Aby zacząć, będziesz potrzebować następujących rzeczy:
- Urządzenie Raspberry Pi.
- Karta microSD wgrana do systemu operacyjnego System operacyjny raspbijski . na jej.
- 4 x diody LED w różnych kolorach.
- 4 x rezystory elektryczne (od 220 omów do 1 kOhm).
- 4 x przyciski.
- 1 x płytka stykowa.
- Kable połączeniowe do podłączenia wszystkiego.
W tym projekcie możesz użyć dowolnego modelu Raspberry Pi, ale modele Pi Zero nie łączą się łatwo z płytkami stykowymi bez lutowania. Niezależnie od tego, którego modelu użyjesz, będziesz potrzebować również zasilacza, monitora, klawiatury i myszy.
Jeśli jeszcze nie skonfigurowałeś Raspberry Pi, możesz dowiedzieć się, jak przygotować wszystko do tego samouczka w Podręcznik dla początkujących Raspberry Pi.
W tym samouczku będziesz pisać kod w Pythonie. Możesz użyć dowolnego edytora tekstu, ale być może znajdziesz łatwiejszy. Wiele z nich jest już zainstalowanych w systemie operacyjnym Raspberry Pi, a Thonny został zaprojektowany tak, aby był łatwy w obsłudze dla początkujących. Niezależnie od tego, którego z nich użyjesz, musisz umieć zapisywać i uruchamiać kod, aby móc korzystać z tego samouczka.
Rozpoczęcie pracy z płytką stykową
Raspberry Pi ma dwa rzędy pinów wejścia/wyjścia ogólnego przeznaczenia (GPIO). Piny te umożliwiają podłączenie różnych komponentów zewnętrznych do Raspberry Pi. Niektóre piny przesyłają informacje, inne dostarczają zasilanie, a jeszcze inne uziemiają urządzenia elektroniczne.

Zaczniemy od dodania diody LED do naszej płytki stykowej.
Zacznij od podłączenia pinu GPIO do płytki. Nie ma znaczenia, który pin, o ile jest to GPIO, a nie pin zasilania lub masy. Powyżej znajduje się schemat pinów GPIO, który pomoże Ci określić, którego pinu użyć. W tym samouczku wykorzystano pin nr 18, zwany również GPIO 24.
Ten pin zapewni zasilanie płytki stykowej i umożliwi Raspberry Pi komunikację z komponentami na płytce. Następnie należy podłączyć pin 6 Raspberry Pi do pinu uziemienia płytki stykowej. Uziemi to płytkę i umożliwi tworzenie obwodów elektrycznych.

Napięcie pobierane z Raspberry Pi jest zbyt wysokie, aby podłączyć diodę LED bezpośrednio. Zastosowanie rezystora obniża poziom napięcia i zapobiega przepaleniu diody LED. Podłącz jeden koniec rezystora do tego samego przewodu, co pin GPIO, a drugi koniec do drugiej strony płytki. Następnie umieść dodatni biegun diody LED za rezystorem. Ujemny biegun diody LED można podłączyć bezpośrednio do ujemnego bieguna. Efekt końcowy powinien wyglądać jak na powyższym schemacie. Dokładnie sprawdź okablowanie i włącz Raspberry Pi. Dioda LED powinna się zaświecić.
Właśnie stworzyłeś obwód wykorzystujący Raspberry Pi, którym możesz sterować przy użyciu kodu.
Sterowanie oświetleniem za pomocą kodu Pythona
Ten samouczek przeprowadzi Cię przez kod krok po kroku, ale jeśli w dowolnym momencie zechcesz wrócić do ostatecznego kodu, jest on dostępny pod adresem pastebin.
Obecnie zasilanie jest dostarczane do diody LED, ale chcemy kontrolować jej włączanie i wyłączanie. Poniższy kod w Pythonie pozwoli nam komunikować się z płytką.
import RPi.GPIO jako GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) czerwony = 18 GPIO.setup(red, GPIO.OUT) GPIO.output(red, GPIO.LOW)
Pierwsze kilka linijek konfiguruje wszystko. Biblioteka GPIO Raspberry Pi jest importowana. To pozwala nam jako GPIO Odnosząc się do zmiennej RPi.GPIO jako GPIO, aby zaoszczędzić trochę pisania. Tryb pinu GPIO jest skonfigurowany tak, DESKANie musisz korzystać z tej konfiguracji, ale może być łatwiej odwoływać się do pinów, biorąc pod uwagę ich kolejność w rzędach GPIO.
Na koniec ustawiamy ostrzeżenia na fałsz. To zapobiegnie niepotrzebnym ostrzeżeniom.
Ostatnie trzy linie sterują diodą LED. Czerwona dioda LED jest podłączona do pinu GPIO 18. Zamiast zapamiętywać ten parametr, zmienna zostanie zapisana w czerwony Miejsce. Potem mówi GPIO.setup Nasz program ma wysłać informacje na czerwony pin. Na koniec ustawiamy GPIO.output na czerwony pin. NiskaPodczas działania tego programu światło zgaśnie. Aby je ponownie włączyć, należy przełączyć GPIO.LOW Dla mnie GPIO.HIGH i uruchom program ponownie.
Zapisz kod i kliknij zatrudnienie Aby zobaczyć to w akcji. Jeśli w edytorze kodu nie ma przycisku Uruchom, zapisz go pod dowolną nazwą (nazwa_pliku) i uruchom polecenie. python myfilename.py W oknie terminala. Najpierw musisz przejść do tego samego katalogu, w którym znajduje się nowy plik Pythona.
Dodaj więcej niż jedną lampę LED
Do zbudowania gry Simon potrzebujemy czterech różnokolorowych diod LED. Te same kroki, które wykonałeś przy przygotowaniu czerwonej diody LED, możesz wykonać przy pozostałych trzech. Twoje okablowanie powinno wyglądać jak na poniższym schemacie:

Twój kod powinien wyglądać tak:
import RPi.GPIO jako GPIO GPIO.setmode(GPIO.BOARD) GPIO.setwarnings(False) czerwony = 18 żółty = 22 zielony = 24 niebieski = 26 GPIO.setup(czerwony, GPIO.OUT) GPIO.setup(żółty, GPIO.OUT) GPIO.setup(zielony, GPIO.OUT) GPIO.setup(niebieski, GPIO.OUT) GPIO.output(czerwony, GPIO.HIGH) GPIO.output(żółty, GPIO.HIGH) GPIO.output(zielony, GPIO.HIGH) GPIO.output(niebieski, GPIO.HIGH)
Po przetestowaniu diod LED należy dokonać regulacji GPIO.wyjście على GPIO.LOW Aby ponownie wyłączyć każdą diodę LED.
Chociaż kolor użytych przewodów nie ma znaczenia, staraj się używać wyrazistych kolorów, aby ułatwić odczytanie zawartości panelu. Na przykład, czarne przewody są często używane jako przewody uziemiające. W tym obwodzie możesz dopasować kolor przewodu do koloru diody LED.
Steruj światłami za pomocą przycisków
Zacznij od dodania przycisku do płytki. Przycisk będzie musiał być podłączony zarówno do złącza uziemienia, jak i do pinu GPIO. Układ powinien wyglądać następująco:

Aby przycisk sterował diodą LED, musimy dodać do niego kod. Konfiguracja przycisku jest podobna do konfiguracji diody LED, z tą różnicą, że pin GPIO jest ustawiony jako wejście, a nie wyjście. Ten kod konfiguruje również wewnętrzny rezystor podciągający w Raspberry Pi, niezbędny do prawidłowego działania przycisku.
GPIO.setup(32, GPIO.IN, pull_up_down=GPIO.PUD_UP)
Teraz potrzebujemy kodu, który będzie sprawdzał, czy przycisk został naciśnięty czy nie.
gra = Prawda, podczas gdy gra: redButtonState = GPIO.input(32) jeśli redButtonState == 0: GPIO.output(red, GPIO.HIGH) time.sleep(1) GPIO.output(red, GPIO.LOW)
Chcemy, aby nasz program stale sprawdzał, czy przycisk jest wciśnięty, dlatego musimy użyć polecenia repeat. jednocześniePonieważ iteracja nigdy nie będzie fałszywa, kod będzie działał dalej i sprawdzał przycisk, dopóki nie zakończymy programu ręcznie, naciskając przycisk Stop lub używając skrótu klawiaturowego. Ctrl + C.
Następnie, aby ułatwić odwoływanie się do danych wejściowych wysyłanych przez pin GPIO, zapisujemy te informacje w zmiennej redButtonStateJeżeli wartość wprowadzona przez nasz przycisk zmieni się na 0, wiemy, że przycisk został naciśnięty.
Po naciśnięciu przycisku zaświeci się czerwona dioda LED. Następnie, po sekundzie, dioda LED zgaśnie. Aby wydłużyć ten czas, używamy funkcji czas.sen (1)Aby to zadziałało, musisz zaimportować bibliotekę czasu, która znajduje się nad kodem.
Po aktywowaniu jednego przycisku możesz dodać trzy kolejne, po jednym dla każdej diody LED. Twój kod powinien wyglądać następująco:
importuj losowy czas importu importuj RPi.GPIO jako GPIO GPIO.setmode (GPIO.BOARD) GPIO.setwarnings(False) czerwony = 18 żółty = 22 zielony = 24 niebieski = 26 GPIO.setup(czerwony, GPIO.OUT) GPIO.setup(żółty, GPIO.OUT) GPIO.setup(zielony, GPIO.OUT) GPIO.setup(niebieski, GPIO.OUT) GPIO.setup(32, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(36, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(38, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(40, GPIO.IN, pull_up_down=GPIO.PUD_UP) gra = Prawda podczas gry: redButtonState = GPIO.input(32) jeśli redButtonState == 0: GPIO.output(czerwony, GPIO.HIGH) czas.sleep(1) GPIO.output(czerwony, GPIO.LOW) yellowButtonState = GPIO.input(36) jeśli yellowButtonState == 0: GPIO.output(żółty, GPIO.HIGH) GPIO.input(40) jeśli blueButtonState == 0: GPIO.output(niebieski, GPIO.HIGH) czas.sleep(1) GPIO.output(niebieski, GPIO.LOW)
Twoja płytka stykowa powinna wyglądać tak, jak na poniższej ilustracji:

Cała elektronika jest już gotowa. W razie problemów sprawdź kod pod kątem błędów. Pamiętaj, że pełny kod możesz pobrać ze strony pastebin Jeśli masz problem!
Stwórz grę
W tym projekcie omówiono już wszystkie podstawy, które musisz znać, aby zacząć pracę z płytką prototypową, ale dopiero przełożenie tych umiejętności na grę pokaże, co naprawdę potrafisz!
W grze Simon gracz widzi serię migających świateł i musi zapamiętać ich wzór. Zaczyna się łatwo, od jednego światła. Każdy poziom dodaje losowe światło do wzoru, aby gra była trudniejsza.
Utwórz wzór
Ten krok jest dość prosty. Jedna matryca będzie zawierać nasz wzór światła (wzorzec). Druga tablica będzie przechowywać piny GPIO naszych diod LED (światła). W każdej iteracji gry nowe losowe światło będzie dodawane na końcu tablicy wzorów. Użyjemy funkcji random.randint() Aby wybrać liczbę od 0 do 3, która odpowiada 4 diodom LED.
wzór = [] światła = [czerwony, żółty, zielony, niebieski] podczas gry: wzór.append(random.randint(0,3))
Następnie musimy włączyć światła, aby pokazać wzór.
podczas gry: wzór.append(random.randint(0,3)) dla x we wzorze: GPIO.output(lights[x], GPIO.HIGH) czas.sleep(1) GPIO.output(lights[x], GPIO.LOW) czas.sleep(0.5)
Ważne jest, aby robić przerwy między dwoma światłami. Ułatwia to sprawdzenie, czy to samo światło jest używane kolejno w danym wzorze.
Uzyskaj dane wejściowe od gracza
Następnie gra musi czekać, aż gracz odgadnie kolejność świateł. Program musi przeanalizować każde światło we wzorze i poczekać, aż gracz naciśnie przycisk. Wymaga to zagnieżdżonych iteracji:
dla time.sleep(1) GPIO.output(red, GPIO.LOW) jeśli yellowButtonState == 0: GPIO.output(yellow, GPIO.HIGH) waitingForInput = False time.sleep(1) GPIO.output(yellow, GPIO.LOW) jeśli greenButtonState == 0: GPIO.output(green, GPIO.HIGH) waitingForInput = False time.sleep(1) GPIO.output(green, GPIO.LOW) jeśli blueButtonState == 0: GPIO.output(blue, GPIO.HIGH) waitingForInput = False time.sleep(1) GPIO.output(blue, GPIO.LOW)
Większość powyższego kodu wykorzystuje kod, który napisaliśmy w celu przetestowania przycisków.
Zweryfikuj dane wejściowe gracza
Stąd bardzo łatwo sprawdzić, czy gracz wprowadził prawidłowy wzór. Za każdym razem, gdy gracz naciśnie przycisk, gra może sprawdzić, czy jest to właściwy przycisk. Aby to zrobić, dodaj instrukcję. if Inne wpisy na przycisk:
jeśli redButtonState == 0: GPIO.output(red, GPIO.HIGH) waitingForInput = False jeśli x != 0: game = False time.sleep(1) GPIO.output(red, GPIO.LOW)
zmienny x Z powtórzenia dla Ma kolejny numer diody. Czerwona dioda LED znajduje się w pozycji pierwszej, czyli numerze 0. Jeśli gracz naciśnie czerwony przycisk LED, gdy w naszym wzorze znajduje się 0, ma rację! W przeciwnym razie przegrywa grę. Konfiguracja zmiennej gra على fałszywy Aby zatrzymać pętlę gry i zakończyć program.
Gratulacje! Stworzyłeś grę od podstaw!
Stworzenie gry dodaje do projektu więcej kodu niż tylko dodanie diod LED i przycisków. Praca nad projektem finalnym, którym możesz pochwalić się przed znajomymi i rodziną, może pomóc Ci utrzymać motywację.
Ta gra jest dość prosta. Rzuć sobie wyzwanie, aby ulepszyć podstawowy projekt. Możesz na przykład włączyć światła, jeśli gracz przegra. Możesz też spróbować dodać dźwięki do gry. Ogranicza Cię tylko Twoja wyobraźnia!
Cóż, Twoja wyobraźnia i sprzęt, którym dysponujesz. Teraz możesz sprawdzić Najlepsze projekty budowy inteligentnego telewizora z wykorzystaniem Raspberry Pi










