Inhoudsopgave:
- Stap 1: lasersnijden
- Stap 2: Installeer LED's
- Stap 3: Montage
- Stap 4: Solderen
- Stap 5: Installeer SPI-display
- Stap 6: Installeer Pi
- Stap 7: Bedrading en voeding
- Stap 8: Pi. instellen
- Stap 9: Python-code, test en simulator
- Stap 10: Laatste test en fineer
- Stap 11: Het resultaat
Video: Houten LED-gamingdisplay aangedreven door Raspberry Pi Zero - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
Dit project realiseert een 20x10 pixel op WS2812 gebaseerd LED-display met een afmeting van 78x35 cm dat eenvoudig in de woonkamer kan worden geïnstalleerd om retro-games te spelen. De eerste versie van deze matrix is in 2016 gebouwd en door vele anderen opnieuw opgebouwd. Deze ervaring werd gebruikt om alle verbeteringen samen te vatten om een nieuwe versie van de matrix te bouwen en deze nu naar instructables.com te brengen. De belangrijkste nieuwe functies zijn de update naar een Raspberry Pi Zero die in plaats daarvan Pi A plus een Arduino gebruikt en de vorige grote controller vervangt door een Bluetooth-gamepad. Ook is de software verbeterd, inclusief de simulator, waarmee je de code op een computer kunt ontwikkelen, zelfs als je geen toegang hebt tot de matrixhardware.
Een bijzonder kenmerk van deze LED-matrix is het speciale houtfineer, dat wordt gebruikt om de LED te bedekken en te verbergen wanneer LED's zijn uitgeschakeld. Dit verhoogt de acceptatiefactor van niet-technische mensen sterk;-) Natuurlijk, als dit speciale fineer niet beschikbaar is in jouw land, kun je natuurlijk ook een ander diffuus materiaal gebruiken, zoals acryl, om de LED's te verbergen. Het is ook de bedoeling om in de toekomst een aantal belangrijke onderdelen te leveren om het herbouwen van het project gemakkelijker te maken.
Benodigdheden:
- Raspberry Pi Zero W (met enige aanpassing werken alle andere modellen ook)
- 200 LED/s (WS2812B LED-strepen met 30 LED/m)
- 4x SPI LED-matrixdisplay met MAX7219
- Kabels
- Bluetooth gamepad (bijvoorbeeld deze van Pimoroni)
- Voeding 5V met minimaal 5A
- MDF-hout voor lasersnijden
- Houten fineer of diffusie acrylplaat
- Condensator, Weerstand
- Sommige schroeven
Stap 1: lasersnijden
Basisstructuur van de matrix is gemaakt van MDF-hout met een dikte van 3 mm en gesneden door een lasersnijder. Als je geen lasercutter hebt, kun je een online service gebruiken zoals ponoko.com of formulor.de of contact opnemen met de volgende fablab/makerspace in je omgeving. Het is ook mogelijk om karton of andere lichtere materialen te gebruiken, maar de bijgevoegde bestanden zijn ontworpen voor een dikte van 3 mm, dus dunnere of dikkere materialen hebben een herontwerp van de bestanden nodig. Het ontwerp is gedaan in Fusion 360. De meeste onderdelen blijven bij elkaar door ze op hun plaats te schuiven, alleen enkele onderdelen, zoals de buitenranden, moeten aan elkaar worden gelijmd met houtlijm. Zorg ervoor dat uw matrix volledig werkt voordat u lijm aanbrengt! Ook het houtfineer moet worden gelijmd, maar dit is de laatste stap nadat alles werkt.
Aan de rechter (onder)zijde van de backplane bevindt zich een uitgesneden segment om de elektronische componenten aan de matrix te bevestigen en toch toegang te hebben tot deze componenten wanneer het fineer erop is gelijmd.
Stap 2: Installeer LED's
De LED-strepen zijn standaard 30 LED/m WS2812-strepen, die verkrijgbaar zijn bij Amazon, eBay of andere online winkels over de hele wereld. Dit is normaal gesproken ook de goedkoopste adresseerbare LED strip die verkrijgbaar is. Als u andere LED's wilt gebruiken, moet u ervoor zorgen dat de afstand van 30 LED/m past in het matrixpatroon. De lasergesneden segmenten hebben kleine uitgesneden gebieden die passen bij de LED-breedte van 10 cm. Deze LED-strips hebben dubbelzijdige tape op hun rug, zodat je ze na nauwkeurige positionering gewoon direct op het MDF kunt lijmen. Controleer de juiste richting van elke streep voordat u de tape gebruikt (DIN-DOUT-richting).
Het bedradingspatroon is een zigzagpatroon, dus aan het einde is er slechts één ingangspen naar de matrix en zijn de kabellengtes zo kort mogelijk. Om het vermogen goed te verdelen en de bekabeling aan de bovenkant van de matrix te verminderen, is elke LED-streep aangesloten op 5V en GND aan de onderkant van de matrix. U kunt enkele draden of prototypen van PCB's gebruiken om de 5V- en GND-lijn te verdelen.
Stap 3: Montage
De explosieweergave helpt bij het identificeren van de juiste onderdelen voor de montage. Volg gewoon de stapsgewijze installatiefoto's. De backplane heeft dwarsstructuren om de lange zijwanden en enkele van de korte wanden vast te houden. Als je problemen hebt om de stukken te installeren, gebruik dan schuurpapier om het te repareren.
Stap 4: Solderen
Er zijn verschillende manieren om de stroomkabels voor de verschillende strepen aan elkaar te solderen. Of je kunt losse draden gebruiken of een soort common rail van koper om de verschillende draden te solderen. In dit geval werden stukjes prototype-printplaat gebruikt om de stroomrails naar de strepen te leiden. WS2812B-stripes hebben al aparte voedingskabels die u kunt gebruiken om de voedingsrail aan te sluiten op de eerste stripe-ingang (links op de afbeelding).
Stap 5: Installeer SPI-display
Om spelscores en tekst weer te geven, wordt een LED-matrixdisplay gebruikt op basis van de LED-driver MAX7219. Het is via SPI (Serial Peripheral Interface) verbonden met de Raspberry Pi. Vier 8x8-schermen worden gecombineerd tot een 32x8-pixel dot-matrixscherm. U kunt deze 8x8 pixel displays kopen voor b.v. op eBay zijn er ook gecombineerde displays van 32x8 pixels beschikbaar. Ook heb je verschillende kleuropties; in dit geval werden rode displays gebruikt. Omdat SPI werkt als een schuifregister, zijn de displays serieel met elkaar verbonden door data uit de eerste matrix te verbinden met data in de tweede en zo verder vanaf de rechterkant van het display.
Dit display is alleen van buitenaf afleesbaar als het direct achter de fineerlaag wordt geplaatst. Zo niet, dan is er alleen een rode waas zichtbaar. Je moet hem dus bovenop het uitgesneden segment van de backplane monteren met een afstand van 30 mm tussen het oppervlak van de backplane en het oppervlak van de matrix. Ik heb wat overgebleven houten stukjes en schroeven gebruikt om de ontbrekende 19 mm tussen de backplane en de PCB's aan te passen, maar je kunt ook elk type buitenste spacers gebruiken.
De bedrading van het display wordt weergegeven in stap 7.
Stap 6: Installeer Pi
In deze installatie wordt een Raspberry Pi Zero gebruikt. Je kunt ook elk ander Raspberry Pi-model gebruiken, maar nieuwere modellen met geïntegreerde WiFi en Bluetooth stellen je in staat om eenvoudig verbinding te maken met draadloze gamepads en het programmeren te vereenvoudigen. U kunt de Pi vastzetten door minimaal twee schroeven en kleine afstandhouders te gebruiken om hem op de backplane te schroeven.
Voor de Raspberry Pi Zero W worden de volgende pinnen gebruikt:
- PIN 2: 5V
- PIN 6: GND
- GPIO18 -> LED-strepen
- GPIO11: SPI CLK -> MAX7219 matrix CLK
- GPIO10: SPI MOSI -> MAX7219 matrix DIN
- GPIO8:SPI CS -> MAX7219 matrix CS
Sommige mensen meldden problemen met het gebruik van GPIO18 voor de LED's. Gebruik in dit geval GPIO21. Zo ja, dan moet je de code in regel 21 veranderen in pixel_pin = board. D21.
De WS2812B-strip wordt hier buiten zijn specificaties gebruikt. Normaal gesproken vereist het een 5V logisch niveau op DIN, maar de Pi levert slechts 3, 3V. Zelfs als dit in de meeste gevallen werkt, moet u dit met uw strip testen. Als het niet werkt, kunt u een niveauconverter zoals een 74HCT245 of een andere 3V3 naar 5V-converter tussen de Pi en de strip toevoegen.
Stap 7: Bedrading en voeding
De bedrading gebeurt volgens het bedradingsschema. De voeding is een 5V DC voeding.
Om de matrix gemakkelijk aan/uit te schakelen, is een schakelaar toegevoegd tussen de stekker en de matrixcircuits. Desalniettemin, omdat de Raspberry Pi niet van hard uitschakelen houdt, is er een uitschakeloptie in de software om de Pi veilig uit te schakelen via Gamepad voordat de matrix wordt uitgeschakeld.
De LED strip DIN pin is via een Weerstand verbonden met de Pi, tevens is er een grote condensator (4700uF) toegevoegd om de voeding te bufferen. Bekijk de Adafruit Überguide voor Neopixels voor meer details.
LED's verbruiken een maximale stroom van 60mA per LED, dus een maximale stroom van 200x60mA = 12A is mogelijk!!! Door de helderheid te verminderen en niet alle LED's volledig wit te gebruiken, is dit meer een theoretische waarde, maar het hangt af van de code welke maximale stroom wordt bereikt. Dus het selecteren van een voldoende grote voeding is erg belangrijk. Voor de meeste toepassingen zou een voeding met 5V/5A (25W) voldoende moeten zijn.
Om de backplane te fixeren met het Pi- en het Matrix-display, kunnen enkele kleine stukjes hout worden gebruikt om ze in de randen te schrobben en ook schroeven te gebruiken om de backplane op zijn plaats te houden.
Stap 8: Pi. instellen
1. Download de nieuwste Raspbian lite-afbeelding van raspberrypi.org
2. Kopieer het naar een SD-kaart, 8 GB is voldoende. U kunt b.v. etser om dit te doen.
3. Voordat u de Pi opstart met de SD-kaart, moet u WIFI- en ssh-toegang voorbereiden
4. Plaats de SD-kaart in een computer, een opstartmap moet toegankelijk zijn
5. Kopieer de volgende regels naar het bestand wpa_supplicant.conf (genereer het indien niet bestaat) en wijzig de parameters afhankelijk van uw wifi en regio
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=US update_config=1 network={ ssid="Thuis Wifi" psk="mypassword" key_mgmt=WPA-PSK }
6. Voeg een leeg bestand toe met de naam ssh (zonder enige extensie) om op te starten om ssh-toegang in te schakelen
7. Plaats nu de SD-kaart in de Raspberry Pi en start deze op. Controleer uw wifi-router om het IP-adres van de Pi. te krijgen
8. start een SSH-verbinding met de Pi via een terminal (Linux, Mac) of b.v. Putty een Windows. Voer het IP-adres van de Pi in in plaats van 192.168.x.y
9. Update de Pi (duurt even!)
sudo apt-get update
sudo apt-get upgrade
10. Installeer pip en setup-tool
sudo apt-get install python3-pip
sudo pip3 install --upgrade setuptools
11. Installeer Neopixel-stuurprogramma, ws281x lib, pygame en libsdl
sudo pip3 installeer rpi_ws281x adafruit-circuitpython-neopixel
sudo pip3 install pygame sudo apt-get install libsdl1.2-dev sudo pip3 install --upgrade luma.led_matrix
12. Schakel SPI in door raps-config aan te roepen, navigeer naar 5 Interfacing-opties / P4 SPI / Enable
sudo raspi-config
13. Bluetooth-gamepad toevoegen
sudo bluetoothctl
[bluetooth]# agent op [bluetooth]# pairable op [bluetooth]# scan op [bluetooth]# pair aa:bb:cc:dd:ee:ff [bluetooth]# trust aa:bb:cc:dd:ee:ff [bluetooth]# connect aa:bb:cc:dd:ee:ff [bluetooth]# quit
waarbij aa:bb:cc:dd:ee:ff de MAC-dress van je bluetooth-gamepad is. Dit adres moet worden weergegeven na het aanroepen van de opdracht "scan on". Zorg ervoor dat uw Bluetooth-controller klaar is om te koppelen, raadpleeg de handleiding van de controller hoe u dit doet.
14. Je kunt nu verbinding maken met je Pi via, het standaardwachtwoord is framboos (Windows-gebruikers kunnen Putty gebruiken):
Stap 9: Python-code, test en simulator
Code is beschikbaar op Github. games_pi_only.py en alle bmp-bestanden zijn nodig.
git clone href= https://github.com/makeTVee/ledmatrix/tree/master/python/pi_only
De code heeft een optie om in de simulatiemodus buiten de Pi te draaien met behulp van pygame om de matrix te simuleren. Dit is erg handig om nieuwe functies te ontwikkelen zonder directe toegang tot de matrixhardware. Ook debuggen is veel makkelijker. U moet de PI-constante instellen om de simulatiemodus te activeren (regel 15):
PI=False
In deze simulatiemodus wordt ook het toetsenbord gebruikt in plaats van de Bluetooth-gamepad. Knoppen 1, 2, 3, 4 zijn toegewezen aan A, B, X, Y van de gamepad, pijltoetsen voor richtingen, "s" voor start en "x" voor selecteren. U kunt een standaardeditor plus de console of enkele geïntegreerde IDE's zoals Micosoft Visual Studio Code of Jetbrain PyCharm gebruiken om de ontwikkeling op uw pc te doen.
Als u de matrix en de Raspberry Pi gebruikt, moet u het volgende definiëren:
PI=waar
Om de code naar de Raspberry Pi te kopiëren, kun je het scp-commando (Windows WinSCP) gebruiken. Open een consolevenster, ga naar de map met de Github-bestanden en bel
scp games_pi_only [email protected]:/home/pi
scp *.bmp [email protected]:/home/pi
maak vervolgens verbinding met de Pi via ssh (Windows-gebruikers kunnen Putty gebruiken):
na succesvol inloggen kunt u de python-code starten door te bellen:
sudo python3 games_pi_only.py
Als de code correct wordt uitgevoerd, kunt u autostart inschakelen door te bellen:
sudo nano /etc/rc.local
en voeg de volgende regel toe voor exit 0:
/usr/bin/nice -n -20 python3 /home/pi/games_pi_only.py &
Opslaan (Ctrl+O) en afsluiten (Ctrl+X)
Stap 10: Laatste test en fineer
Voordat het fineer op de voorkant wordt gelijmd, moet de matrix worden getest om er zeker van te zijn dat alle LED's werken. Het is veel gemakkelijker om iets te repareren voordat het fineer wordt gelijmd.
Het gebruikte houtfineer is een speciaal esdoornfineerpapier genaamd Microwood, dat eenzijdig met papier bedekt is en een dikte heeft van 0,1 mm. De papierzijde kan direct op het mdf worden gelijmd met standaard watervrije papierlijm.
Stap 11: Het resultaat
Veel plezier en geniet van het spel!
Hoofdprijs in de Raspberry Pi-wedstrijd 2020
Aanbevolen:
Een oud radiocircuit van stroom voorzien (aangedreven door batterijen): 4 stappen
Een oud radiocircuit van stroom voorzien (aangedreven door batterijen): Heb je ooit een oude radio gehad die alleen op wisselstroom werkt en geen batterij heeft? Vandaag laat ik je zien hoe je je oude radio van stroom kunt voorzien met een batterij en handig als er een stroomuitval en het vermogen van uw radio was afhankelijk van de batterij zonder verbinding te maken
Batterij-aangedreven lamp die wordt ingeschakeld door het gebruik van magneten! 8 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Lamp op batterijen die aangaat door het gebruik van magneten!: We weten dat de meeste lampen aan/uit gaan via een fysieke schakelaar. Mijn doel met dit project was om een unieke manier te creëren om de lamp gemakkelijk aan/uit te zetten zonder die klassieke schakelaar. Ik was geïntrigeerd door het idee van een lamp die tijdens dit proces van vorm veranderde
De door Google Trends aangedreven kerstboom: 6 stappen (met afbeeldingen)
De Google Trends-aangedreven kerstboom: wil je weten hoe trendy kerst is? Ontdek het met deze door Google trends aangedreven kerstboom! Feestmodus inbegrepen
Hou op! LED-game (aangedreven door Arduino): 6 stappen
Hou op! LED-game (aangedreven door Arduino): dit project is geïnspireerd op deze video van YouTube en de Pendulum Challenge Kit (gebroken link. Probeer deze eens.) van Makershed.com. Het is een eenvoudig spel bestaande uit vijf LED-lampjes en één drukknop. De LED's knipperen in volgorde en het afspelen
Infigo - (een door kunstmatige intelligentie aangedreven draagbare handschoen): 9 stappen
Infigo - (een door kunstmatige intelligentie aangedreven draagbare handschoen): Infigo is een door AI (kunstmatige intelligentie) aangedreven draagbare handschoen gebaseerd op de principes van ondersteunende technologie (AT) die de productiviteit van de gehandicapte samenleving zal verbeteren. Kunstmatige intelligentie en machinaal leren kunnen een menselijk inte