Spisu treści:

Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: 11 kroków (ze zdjęciami)
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: 11 kroków (ze zdjęciami)

Wideo: Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: 11 kroków (ze zdjęciami)

Wideo: Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: 11 kroków (ze zdjęciami)
Wideo: Andrzej Sirko live - konstruktor komputera Cobra-1 2024, Listopad
Anonim
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero

Projekt ten obejmuje wyświetlacz LED 20x10 pikseli oparty na WS2812 o wymiarach 78x35 cm, który można łatwo zainstalować w salonie, aby grać w gry retro. Pierwsza wersja tej matrycy została zbudowana w 2016 roku i przebudowana przez wiele innych osób. To doświadczenie zostało wykorzystane do podsumowania wszystkich ulepszeń w celu zbudowania nowej wersji matrycy i przeniesienia jej teraz na instructables.com. Główne nowe funkcje to aktualizacja Raspberry Pi Zero przy użyciu i Pi A plus Arduino oraz zastąpienie poprzedniego dużego kontrolera gamepadem Bluetooth. Ulepszono również oprogramowanie, w tym symulator, który pozwala na tworzenie kodu na komputerze, nawet jeśli nie masz dostępu do sprzętu matrycowego.

Szczególną cechą tej matrycy LED jest specjalna okleina drewniana, która służy do zasłaniania diody LED i jej ukrycia, gdy diody LED są wyłączone. To znacznie zwiększa współczynnik akceptacji dla osób nie związanych z technologią;-) Oczywiście, jeśli ta specjalna okleina nie jest dostępna w twoim kraju, możesz również użyć innego materiału rozpraszającego, takiego jak akryl, aby ukryć diody LED. Planowane jest również dostarczenie niektórych kluczowych części w przyszłości, aby ułatwić odbudowę projektu.

Kieszonkowe dzieci:

  • Raspberry Pi Zero W (z pewną adaptacją, wszystkie inne modele też będą działać)
  • 200 LED/s (paski LED WS2812B z 30 LED/m)
  • 4x wyświetlacz matrycowy LED SPI z MAX7219
  • Kable
  • Gamepad Bluetooth (np. ten od Pimoroni)
  • Zasilanie 5V z co najmniej 5A
  • Drewno MDF do cięcia laserowego
  • Drewniana okleina lub dyfuzyjna płyta akrylowa
  • Kondensator, rezystor
  • Niektóre śruby

Krok 1: Cięcie laserowe

Cięcie laserowe
Cięcie laserowe
Cięcie laserowe
Cięcie laserowe
Cięcie laserowe
Cięcie laserowe

Konstrukcja podstawy matrycy wykonana jest z drewna MDF o grubości 3mm i wycinana wycinarką laserową. Jeśli nie posiadasz wycinarki laserowej, możesz skorzystać z usługi online, takiej jak ponoko.com lub formulor.de, lub skontaktować się z kolejnym fablabem/makerspace w swoim środowisku. Możliwe jest również użycie tektury lub innych lżejszych materiałów, ale załączone pilniki są projektowane na grubość 3mm, więc cieńsze lub grubsze materiały wymagają przeprojektowania pilników. Projekt został wykonany w Fusion 360. Większość części trzyma się razem po prostu przesuwając je na miejsce, tylko niektóre części, takie jak zewnętrzne krawędzie, powinny być sklejone za pomocą kleju do drewna. Upewnij się, że Twoja matryca w pełni działa przed nałożeniem jakiegokolwiek kleju! Również fornir musi być przyklejony, ale to ostatni krok po upewnieniu się, że wszystko działa.

Po prawej (dolnej) stronie płyty montażowej znajduje się wycięty segment do mocowania elementów elektronicznych do matrycy i zapewnienia dostępu do tych elementów po przyklejeniu forniru.

Krok 2: Zainstaluj diody LED

Zainstaluj diody LED
Zainstaluj diody LED
Zainstaluj diody LED
Zainstaluj diody LED
Zainstaluj diody LED
Zainstaluj diody LED

Paski LED to standardowe paski 30 LED/m WS2812, które są dostępne w Amazon, eBay lub innych sklepach internetowych na całym świecie. Jest to zwykle również najtańsza dostępna adresowalna taśma LED. Chcąc zastosować inne diody LED, należy zadbać o odległość 30 LED/m, aby dopasować się do wzoru matrycy. Wycięte laserowo segmenty mają małe wycięte obszary, aby pasowały do diody LED o szerokości 10 cm. Te paski LED mają z tyłu dwustronną taśmę, dzięki czemu można je po prostu przykleić bezpośrednio do płyty MDF po dokładnym ułożeniu. Sprawdź prawidłową orientację każdego paska przed użyciem taśmy (kierunek DIN-DOUT).

Schemat okablowania jest zygzakowaty, więc na końcu jest tylko jeden pin wejściowy do matrycy, a długości kabli są jak najkrótsze. Aby odpowiednio rozprowadzić moc i zredukować okablowanie na górze matrycy, każdy pasek LED jest podłączony do 5V i GND na dole matrycy. Do dystrybucji linii 5V i GND można użyć pojedynczych przewodów lub prototypowych płytek drukowanych.

Krok 3: Montaż

montaż
montaż
montaż
montaż
montaż
montaż

Widok rozłożenia pomaga zidentyfikować właściwe elementy zespołu. Wystarczy postępować zgodnie ze zdjęciami instalacyjnymi krok po kroku. Płyta montażowa ma konstrukcję krzyżową, która utrzymuje długie ściany boczne i niektóre krótkie ściany. Jeśli masz problemy z zainstalowaniem elementów, użyj papieru ściernego, aby to naprawić.

Krok 4: Lutowanie

Lutowanie
Lutowanie
Lutowanie
Lutowanie

Istnieją różne sposoby lutowania razem linii zasilających dla różnych pasków. Albo możesz użyć pojedynczych przewodów, albo jakiegoś rodzaju wspólnej szyny z miedzi, aby przylutować różne przewody. W tym przypadku do prowadzenia szyn zasilających do pasków użyto fragmentów prototypowych płytek drukowanych. Listwy WS2812B mają już osobne kable zasilające, których można użyć do podłączenia szyny zasilającej do pierwszego wejścia listwy (lewa strona na zdjęciu).

Krok 5: Zainstaluj wyświetlacz SPI

Zainstaluj wyświetlacz SPI
Zainstaluj wyświetlacz SPI

Do wyświetlania wyników gier i tekstu zastosowano wyświetlacz matrycowy LED oparty na sterowniku LED MAX7219. Jest podłączony przez SPI (Serial Peripheral Interface) do Raspberry Pi. Cztery wyświetlacze 8x8 są połączone w wyświetlacz z matrycą punktową 32x8 pikseli. Wyświetlacze 8x8 pikseli można kupić m.in. w serwisie eBay dostępne są również połączone wyświetlacze 32x8 pikseli. Masz również różne opcje kolorystyczne; w tym przypadku zastosowano czerwone wyświetlacze. Ponieważ SPI działa jak rejestr przesuwny, wyświetlacze są połączone szeregowo, łącząc dane z pierwszej matrycy z danymi z drugiej i tak dalej, zaczynając od prawej strony wyświetlacza.

Wyświetlacz ten jest czytelny z zewnątrz tylko wtedy, gdy jest umieszczony bezpośrednio za warstwą forniru. Jeśli nie, widoczna jest tylko czerwona plama. Musisz więc zamontować go na górze wyciętego segmentu backplane w odległości 30mm między powierzchnią backplane a powierzchnią matrycy. Użyłem kilku pozostałych drewnianych elementów i śrub, aby dopasować brakujące 19 mm między płytą montażową a płytkami drukowanymi, ale można również zastosować dowolne zewnętrzne elementy dystansowe.

Okablowanie wyświetlacza pokazano w kroku 7.

Krok 6: Zainstaluj Pi

Zainstaluj Pi
Zainstaluj Pi
Zainstaluj Pi
Zainstaluj Pi
Zainstaluj Pi
Zainstaluj Pi

W tej instalacji używany jest Raspberry Pi Zero. Możesz również użyć dowolnego innego modelu Raspberry Pi, ale nowsze ze zintegrowanym Wi-Fi i Bluetooth umożliwiają łatwe łączenie się z bezprzewodowymi gamepadami i upraszczają programowanie. Możesz zabezpieczyć Pi za pomocą co najmniej dwóch śrub i małych przekładek, aby przykręcić je do płyty montażowej.

Dla Raspberry Pi Zero W stosowane są następujące wyprowadzenia:

  • PIN 2: 5V
  • PIN 6: GND
  • GPIO18 -> paski LED
  • GPIO11: SPI CLK -> MAX7219 matryca CLK
  • GPIO10: SPI MOSI -> MAX7219 matryca DIN
  • GPIO8:SPI CS -> MAX7219 macierz CS

Niektóre osoby zgłaszały problemy z używaniem GPIO18 dla diod LED. W takim przypadku użyj GPIO21. Jeśli tak, musisz zmienić kod w linii 21 na pixel_pin = board. D21.

Listwa WS2812B jest tutaj używana poza jej specyfikacją. Zwykle wymaga poziomu logicznego 5V na DIN, ale Pi dostarcza tylko 3, 3V. Nawet jeśli to działa w większości przypadków, powinieneś to przetestować za pomocą paska. Jeśli to nie działa, możesz dodać konwerter poziomu, taki jak 74HCT245 lub dowolny inny konwerter 3V3 na 5V między Pi a listwą.

Krok 7: Okablowanie i zasilanie

Okablowanie i zasilanie
Okablowanie i zasilanie
Okablowanie i zasilanie
Okablowanie i zasilanie
Okablowanie i zasilanie
Okablowanie i zasilanie

Okablowanie odbywa się zgodnie ze schematem okablowania. Zasilanie to zasilacz 5V DC.

W celu łatwego włączania/wyłączania matrycy dodawany jest przełącznik między wtyczką zasilania a obwodami matrycy. Niemniej jednak, ponieważ Raspberry Pi nie lubi twardego wyłączania, w oprogramowaniu istnieje opcja bezpiecznego wyłączenia Pi za pomocą Gamepada przed przełączeniem matrycy.

Listwa LED pin DIN jest połączona za pomocą rezystora z Pi, dodatkowo dodawany jest duży kondensator (4700uF) w celu buforowania zasilania. Aby uzyskać więcej informacji, zapoznaj się z Überguide Adafruit dla Neopixels.

Diody pobierają maksymalny prąd 60mA na diodę, więc maksymalny prąd 200x60mA = 12A jest możliwy!!! Zmniejszając jasność i nie używając wszystkich diod w pełnej bieli jest to bardziej wartość teoretyczna, ale zależy od kodu jaki maksymalny prąd zostanie osiągnięty. Dlatego wybór odpowiednio dużego zasilacza jest bardzo ważny. Do większości zastosowań wystarczy zasilacz 5V/5A (25W).

Aby zamocować płytę montażową za pomocą wyświetlacza Pi i wyświetlacza Matrix, można użyć kilku małych kawałków drewna do szorowania ich na krawędziach, a także użyć śrub do zamocowania płyty montażowej.

Krok 8: Konfiguracja Pi

Konfiguracja Pi
Konfiguracja Pi

1. Pobierz najnowszy obraz Raspbian lite z raspberrypi.org

2. Skopiuj go na kartę SD, wystarczy 8 GB. Możesz użyć m.in. wytrawiacz, aby to zrobić.

3. Przed uruchomieniem Pi z kartą SD przygotuj dostęp do WIFI i ssh

4. Włóż kartę SD do dowolnego komputera, folder rozruchowy powinien być dostępny

5. Skopiuj następujące wiersze do pliku wpa_supplicant.conf (wygeneruj, jeśli nie istnieje) i zmień parametry w zależności od Wifi i regionu

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

country=US update_config=1 network={ ssid="Domowe Wi-Fi" psk="moje hasło" key_mgmt=WPA-PSK }

6. Dodaj pusty plik o nazwie ssh (bez żadnego rozszerzenia), aby uruchomić system, aby umożliwić dostęp do ssh

7. Teraz włóż kartę SD do Raspberry Pi i uruchom ją. Sprawdź router Wi-Fi, aby uzyskać adres IP urządzenia Pi

8. uruchom połączenie SSH z Pi za pomocą terminala (Linux, Mac) lub np. Szpachlować Windows. Wstaw adres IP Pi zamiast 192.168.x.y

ssh [email protected]

9. Zaktualizuj Pi (zajmuje trochę czasu!)

aktualizacja sudo apt-get

sudo apt-get upgrade

10. Zainstaluj pip i narzędzie do konfiguracji

sudo apt-get zainstaluj python3-pip

sudo pip3 install -- uaktualnij setuptools

11. Zainstaluj sterownik Neopixel, ws281x lib, pygame i libsdl

sudo pip3 zainstaluj rpi_ws281x adafruit-circuitpython-neopixel

sudo pip3 zainstaluj pygame sudo apt-get zainstaluj libsdl1.2-dev sudo pip3 zainstaluj -- uaktualnij luma.led_matrix

12. Włącz SPI, wywołując raps-config, przejdź do 5 opcji interfejsu / P4 SPI / Włącz

sudo raspi-config

13. Dodaj gamepada Bluetooth

sudo bluetoothctl

[bluetooth]# agent na [bluetooth]# do sparowania na [bluetooth]# skanowanie na [bluetooth]# na parze aa:bb:cc:dd:ee:ff [bluetooth]# zaufaj aa:bb:cc:dd:ee:ff [bluetooth]# połącz aa:bb:cc:dd:ee:ff [bluetooth]# zakończ

gdzie aa:bb:cc:dd:ee:ff to adres MAC twojego gamepada bluetooth. Adres ten powinien zostać wyświetlony po wywołaniu polecenia „skanowanie włączone”. Upewnij się, że kontroler Bluetooth jest gotowy do sparowania, sprawdź instrukcję obsługi kontrolera, jak to zrobić.

14. Możesz teraz połączyć się z Pi przez, domyślne hasło to raspberry (użytkownicy Windows mogą używać Putty):

ssh [email protected]

Krok 9: Kod, test i symulator Pythona

Kod, test i symulator Pythona
Kod, test i symulator Pythona
Kod, test i symulator Pythona
Kod, test i symulator Pythona
Kod, test i symulator Pythona
Kod, test i symulator Pythona

Kod jest dostępny na Github. games_pi_only.py i wszystkie pliki bmp są potrzebne.

git clone href= https://github.com/makeTVee/ledmatrix/tree/master/python/pi_only

Kod ma opcję uruchomienia w trybie symulacji poza Pi przy użyciu pygame do symulacji matrycy. Jest to bardzo pomocne przy opracowywaniu nowych funkcji bez bezpośredniego dostępu do sprzętu macierzy. Również debugowanie jest znacznie łatwiejsze. Musisz ustawić stałą PI, aby aktywować tryb symulacji (wiersz 15):

PI=Fałsz

W tym trybie symulacji zamiast pada Bluetooth używana jest klawiatura. Przyciski 1, 2, 3, 4 są przyporządkowane do A, B, X, Y pada, klawisze strzałek do kierunków, „s” do startu i „x” do wyboru. Możesz użyć standardowego edytora i konsoli lub niektórych zintegrowanych IDE, takich jak Micosoft Visual Studio Code lub Jetbrain PyCharm, aby wykonać programowanie na swoim komputerze.

W przypadku korzystania z matrycy i Raspberry Pi należy zdefiniować:

PI=prawda

Aby skopiować kod do Raspberry Pi, możesz użyć polecenia scp (Windows WinSCP). Otwórz okno konsoli, przejdź do folderu zawierającego pliki Github i zadzwoń

scp games_pi_only [email protected]:/home/pi

scp *.bmp [email protected]:/home/pi

następnie połącz się z Pi przez ssh (użytkownicy Windows mogą używać Putty):

ssh [email protected]

po udanym zalogowaniu możesz uruchomić kod pythona dzwoniąc:

sudo python3 games_pi_only.py

Jeśli kod działa poprawnie, możesz włączyć autostart, wywołując:

sudo nano /etc/rc.local

i dodaj następujący wiersz przed wyjściem 0:

/usr/bin/nice -n -20 python3 /home/pi/games_pi_only.py &

Zapisz (Ctrl+O) i wyjdź (Ctrl+X)

Krok 10: Test końcowy i okleina

Test końcowy i okleina
Test końcowy i okleina
Test końcowy i okleina
Test końcowy i okleina
Test końcowy i okleina
Test końcowy i okleina

Zanim okleina zostanie przyklejona na wierzchu frontu, należy przetestować matrycę, aby upewnić się, że wszystkie diody LED działają. Dużo łatwiej coś naprawić przed przyklejeniem forniru.

Użyty fornir drewniany to specjalny papier z forniru klonowego o nazwie Microwood, który jest jednostronnie pokryty papierem i ma grubość 0,1 mm. Strona papierowa może być przyklejona bezpośrednio na płycie mdf przy użyciu standardowego bezwodnego kleju do papieru.

Krok 11: Wynik

Wynik
Wynik
Wynik
Wynik

Baw się i ciesz się grą!

Konkurs Raspberry Pi 2020
Konkurs Raspberry Pi 2020
Konkurs Raspberry Pi 2020
Konkurs Raspberry Pi 2020

Główna nagroda w konkursie Raspberry Pi 2020

Zalecana: