Sommario:

Display da gioco a LED in legno alimentato da Raspberry Pi Zero: 11 passaggi (con immagini)
Display da gioco a LED in legno alimentato da Raspberry Pi Zero: 11 passaggi (con immagini)

Video: Display da gioco a LED in legno alimentato da Raspberry Pi Zero: 11 passaggi (con immagini)

Video: Display da gioco a LED in legno alimentato da Raspberry Pi Zero: 11 passaggi (con immagini)
Video: Raspberry Pi: installare il sistema operativo e configurare la scheda 2024, Luglio
Anonim
Display da gioco a LED in legno alimentato da Raspberry Pi Zero
Display da gioco a LED in legno alimentato da Raspberry Pi Zero
Display da gioco a LED in legno alimentato da Raspberry Pi Zero
Display da gioco a LED in legno alimentato da Raspberry Pi Zero
Display da gioco a LED in legno alimentato da Raspberry Pi Zero
Display da gioco a LED in legno alimentato da Raspberry Pi Zero

Questo progetto realizza un display LED 20x10 pixel basato su WS2812 con una dimensione di 78x35 cm che può essere facilmente installato in soggiorno per giocare a giochi retrò. La prima versione di questa matrice è stata costruita nel 2016 e ricostruita da molte altre persone. Questa esperienza è stata utilizzata per riassumere tutti i miglioramenti per creare una nuova versione della matrice e portarla ora su instructables.com. Le principali nuove funzionalità sono l'aggiornamento a un Raspberry Pi Zero utilizzando invece e Pi A più un Arduino e sostituendo il precedente controller di grandi dimensioni con un gamepad Bluetooth. Anche il software è stato migliorato compreso il simulatore, che permette di sviluppare il codice su un computer anche se non si ha accesso all'hardware della matrice.

Una particolarità di questa matrice di LED è la speciale impiallacciatura di legno, che viene utilizzata per coprire i LED e per nasconderli, quando i LED sono disabilitati. Ciò aumenta notevolmente il fattore di accettazione delle persone non tecnologiche;-) Naturalmente, se questa speciale impiallacciatura non è disponibile nel tuo paese, puoi anche utilizzare un altro materiale diffuso come l'acrilico per nascondere i LED. Si prevede inoltre di fornire alcune parti chiave in futuro per facilitare la ricostruzione del progetto.

Forniture:

  • Raspberry Pi Zero W (con qualche adattamento, funzioneranno anche tutti gli altri modelli)
  • 200 LED/s (strisce LED WS2812B con 30 LED/m)
  • Display a matrice LED 4x SPI con MAX7219
  • Cavi
  • Gamepad Bluetooth (ad esempio questo di Pimoroni)
  • Alimentazione 5V con almeno 5A
  • Legno MDF per taglio laser
  • Impiallacciatura di legno o piastra acrilica a diffusione
  • Condensatore, resistore
  • Alcune viti

Passaggio 1: taglio laser

Taglio laser
Taglio laser
Taglio laser
Taglio laser
Taglio laser
Taglio laser

La struttura di base della matrice è realizzata in legno MDF con uno spessore di 3mm e tagliata da un laser cutter. Se non possiedi un laser cutter, puoi utilizzare un servizio online come ponoko.com o formulor.de o contattare il prossimo fablab/makerspace nel tuo ambiente. È anche possibile utilizzare cartone o altri materiali più leggeri, ma i file allegati sono progettati per uno spessore di 3 mm, quindi i materiali più sottili o più spessi necessitano di una riprogettazione dei file. La progettazione è stata eseguita in Fusion 360. La maggior parte delle parti si tiene insieme semplicemente facendole scorrere in posizione, solo alcune delle parti come i bordi esterni dovrebbero essere incollate insieme usando la colla per legno. Assicurati che la tua matrice funzioni completamente prima di applicare la colla! Anche l'impiallacciatura di legno deve essere incollata, ma questo è l'ultimo passaggio dopo essersi assicurati che tutto funzioni.

Sul lato destro (inferiore) del backplane, c'è un segmento ritagliato per fissare i componenti elettronici alla matrice e avere ancora accesso a questi componenti quando l'impiallacciatura è incollata.

Passaggio 2: installare i LED

Installa i LED
Installa i LED
Installa i LED
Installa i LED
Installa i LED
Installa i LED

Le strisce LED sono strisce standard 30 LED/m WS2812, disponibili su Amazon, eBay o altri negozi online in tutto il mondo. Questa è normalmente anche la striscia LED indirizzabile più economica disponibile. Se si desidera utilizzare altri LED, è necessario assicurarsi che la distanza di 30 LED/m si adatti allo schema della matrice. I segmenti tagliati al laser hanno piccole zone ritagliate per adattarsi alla larghezza del LED di 10 cm. Queste strisce LED hanno un nastro biadesivo sul retro, quindi puoi semplicemente incollarle direttamente sull'MDF dopo un posizionamento preciso. Controllare il corretto orientamento di ogni striscia prima di utilizzare il nastro (direzione DIN-DOUT).

Lo schema di cablaggio è a zig-zag, quindi alla fine c'è solo un pin di ingresso alla matrice e le lunghezze dei cavi sono le più corte possibili. Per distribuire correttamente la potenza e ridurre il cablaggio nella parte superiore della matrice, ogni striscia LED è collegata a 5V e GND nella parte inferiore della matrice. È possibile utilizzare cavi singoli o PCB di prototipazione per distribuire la linea 5V e GND.

Passaggio 3: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

La vista esplosione aiuta a identificare i pezzi corretti per l'assieme. Basta seguire le immagini di installazione passo dopo passo. Il backplane ha strutture trasversali per sostenere le pareti laterali lunghe e alcune delle pareti corte. Se hai problemi a installare i pezzi, usa la carta vetrata per ripararlo.

Passaggio 4: saldatura

saldatura
saldatura
saldatura
saldatura

Esistono diversi modi per saldare insieme le linee elettriche per le diverse strisce. In entrambi i casi è possibile utilizzare fili singoli o una sorta di common rail in rame per saldare i diversi fili. In questo caso, sono stati utilizzati pezzi di PCB prototipo per guidare i binari di alimentazione verso le strisce. Le strisce WS2812B hanno già cavi di alimentazione separati che è possibile utilizzare per collegare la barra di alimentazione all'ingresso della prima striscia (lato sinistro nell'immagine).

Passaggio 5: installare il display SPI

Installa il display SPI
Installa il display SPI

Per visualizzare i punteggi e il testo del gioco, viene utilizzato un display a matrice di LED basato sul driver LED MAX7219. È collegato tramite SPI (Serial Peripheral Interface) al Raspberry Pi. Quattro display 8x8 sono combinati in un display a matrice di punti 32x8 pixel. Puoi acquistare questo display 8x8 pixel per es. su eBay sono disponibili anche display combinati 32x8 pixel. Inoltre hai diverse opzioni di colore; in questo caso sono stati utilizzati display rossi. Poiché SPI funziona come un registro a scorrimento, i display sono collegati tra loro in serie collegando i dati della prima matrice ai dati della seconda e così via partendo dal lato destro del display.

Questo display è leggibile solo dall'esterno, se è posizionato direttamente dietro lo strato di impiallacciatura. In caso contrario, è visibile solo una sfocatura rossa. Quindi devi montarlo sopra il segmento ritagliato del backplane con una distanza di 30 mm tra la superficie del backplane e la superficie della matrice. Ho usato alcuni pezzi di legno e viti avanzati per adattare i 19 mm mancanti tra il backplane e i PCB, ma puoi anche qualsiasi tipo di distanziale esterno.

Il cablaggio del display è mostrato al punto 7.

Passaggio 6: installa Pi

Installa più
Installa più
Installa più
Installa più
Installa più
Installa più

In questa installazione viene utilizzato un Raspberry Pi Zero. Puoi anche utilizzare qualsiasi altro modello Raspberry Pi, ma quelli più recenti con WiFi e Bluetooth integrati ti consentono di connetterti facilmente a gamepad wireless e semplificare la programmazione. Puoi fissare il Pi utilizzando almeno due viti e piccoli distanziali per avvitarlo al backplane.

Per il Raspberry Pi Zero W, vengono utilizzati i seguenti pin:

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

Alcune persone hanno segnalato problemi con l'utilizzo di GPIO18 per i LED. Si prega di utilizzare GPIO21 in questo caso. Se è così, devi cambiare il codice nella riga 21 in pixel_pin = board. D21.

La striscia WS2812B viene utilizzata qui al di fuori delle sue specifiche. Normalmente richiede un livello logico 5V su DIN, ma il Pi fornisce solo 3, 3V. Anche se funziona nella maggior parte dei casi, dovresti testarlo con la tua striscia. Se non funziona, puoi aggiungere un convertitore di livello come un 74HCT245 o qualsiasi altro convertitore da 3V3 a 5V tra il Pi e la striscia.

Passaggio 7: cablaggio e alimentazione

Cablaggio e alimentazione
Cablaggio e alimentazione
Cablaggio e alimentazione
Cablaggio e alimentazione
Cablaggio e alimentazione
Cablaggio e alimentazione

Il cablaggio viene eseguito secondo lo schema di cablaggio. L'alimentatore è a 5 V CC.

Per una facile accensione/spegnimento della matrice, viene aggiunto un interruttore tra la spina di alimentazione e i circuiti della matrice. Tuttavia, poiché al Raspberry Pi non piace lo spegnimento forzato, c'è un'opzione di spegnimento nel software per spegnere in sicurezza il Pi tramite Gamepad prima di spegnere la matrice.

Il pin DIN della striscia LED è collegato tramite un resistore al Pi, inoltre viene aggiunto un grande condensatore (4700uF) per tamponare l'alimentazione. Si prega di consultare l'Überguide di Adafruit per Neopixels per maggiori dettagli.

I LED consumano una corrente massima di 60 mA per LED, quindi è possibile una corrente massima di 200x60 mA = 12 A!!! Riducendo la luminosità e non utilizzando tutti i LED completamente bianchi, questo è più un valore teorico, ma dipende dal codice quale corrente massima viene raggiunta. Quindi selezionare un alimentatore sufficientemente grande è molto importante. Per la maggior parte delle applicazioni dovrebbe essere sufficiente un alimentatore con 5V/5A (25W).

Per fissare il backplane con il display Pi e Matrix, è possibile utilizzare alcuni piccoli pezzi di legno per fissarli ai bordi e utilizzare anche viti per tenere in posizione il backplane.

Passaggio 8: configurazione Pi

Configurazione più
Configurazione più

1. Scarica l'ultima immagine Raspbian lite da raspberrypi.org

2. Copialo su una scheda SD, 8 GB sono sufficienti. Puoi usare ad es. incisore per farlo.

3. Prima di avviare il Pi con la scheda SD, preparare l'accesso WIFI e ssh

4. Inserisci la scheda SD su qualsiasi computer, una cartella di avvio dovrebbe essere accessibile

5. Copia le seguenti righe nel file wpa_supplicant.conf (generalo se non esiste) e modifica i parametri a seconda del tuo Wifi e della tua regione

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

country=US update_config=1 rete={ ssid="WiFi domestico" psk="mypassword" key_mgmt=WPA-PSK }

6. Aggiungi un file vuoto chiamato ssh (senza alcuna estensione) all'avvio per abilitare l'accesso ssh

7. Ora inserisci la scheda SD nel Raspberry Pi e avvialo. Controlla il tuo router wifi per ottenere l'indirizzo IP del Pi

8. avviare una connessione SSH al Pi utilizzando un terminale (Linux, Mac) o ad es. Stuccare un Windows. Inserisci l'IP del Pi invece di 192.168.x.y

ssh [email protected]

9. Aggiorna il Pi (richiede del tempo!)

sudo apt-get update

sudo apt-get upgrade

10. Installa pip e strumento di configurazione

sudo apt-get install python3-pip

sudo pip3 install --upgrade setuptools

11. Installa il driver Neopixel, ws281x lib, pygame e libsdl

sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel

sudo pip3 install pygame sudo apt-get install libsdl1.2-dev sudo pip3 install --upgrade luma.led_matrix

12. Abilita SPI chiamando raps-config, vai a 5 Opzioni di interfaccia / SPI P4 / Abilita

sudo raspi-config

13. Aggiungi gamepad Bluetooth

sudo bluetoothctl

[bluetooth]# agent su [bluetooth]# pairable su [bluetooth]# scan su [bluetooth]# pair aa:bb:cc:dd:ee:ff [bluetooth]# trust aa:bb:cc:dd:ee:ff [bluetooth]# connetti aa:bb:cc:dd:ee:ff [bluetooth]# esci

dove aa:bb:cc:dd:ee:ff è il MAC dress del tuo gamepad bluetooth. Questo indirizzo dovrebbe essere mostrato dopo aver chiamato il comando "scan on". Assicurati che il tuo controller Bluetooth sia pronto per l'accoppiamento, controlla il manuale del controller come farlo.

14. Ora puoi connetterti a te Pi tramite, la password predefinita è lampone (gli utenti Windows possono usare Putty):

ssh [email protected]

Passaggio 9: codice Python, test e simulatore

Codice Python, test e simulatore
Codice Python, test e simulatore
Codice Python, test e simulatore
Codice Python, test e simulatore
Codice Python, test e simulatore
Codice Python, test e simulatore

Il codice è disponibile su Github. games_pi_only.py e tutti i file bmp sono necessari.

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

Il codice ha un'opzione per essere eseguito in modalità simulazione al di fuori del Pi usando pygame per simulare la matrice. Questo è molto utile per sviluppare nuove funzionalità senza avere accesso diretto all'hardware della matrice. Anche il debug è molto più semplice. Devi impostare la costante PI per attivare la modalità di simulazione (riga 15):

PI=Falso

In questa modalità di simulazione, viene utilizzata anche la tastiera al posto del gamepad Bluetooth. I pulsanti 1, 2, 3, 4 sono mappati su A, B, X, Y del gamepad, i tasti freccia per le direzioni, "s" per l'inizio e "x" per la selezione. Puoi utilizzare un editor standard più la console o alcuni IDE integrati come Micosoft Visual Studio Code o Jetbrain PyCharm per eseguire lo sviluppo sul tuo PC.

Se usi la matrice e il Raspberry Pi, devi definire:

PI=Vero

Per copiare il codice sul Raspberry Pi, puoi utilizzare il comando scp (Windows WinSCP). Apri una finestra della console, passa alla cartella che contiene i file Github e chiama

scp games_pi_only [email protected]:/home/pi

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

quindi connettiti al Pi tramite ssh (gli utenti Windows possono usare Putty):

ssh [email protected]

dopo aver effettuato l'accesso con successo, puoi avviare il codice python chiamando:

sudo python3 games_pi_only.py

Se il codice viene eseguito correttamente, puoi abilitare l'avvio automatico chiamando:

sudo nano /etc/rc.local

e aggiungi la seguente riga prima dell'uscita 0:

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

Salva (Ctrl+O) ed Esci (Ctrl+X)

Passaggio 10: test finale e rivestimento

Prova finale e impiallacciatura
Prova finale e impiallacciatura
Prova finale e impiallacciatura
Prova finale e impiallacciatura
Prova finale e impiallacciatura
Prova finale e impiallacciatura

Prima che l'impiallacciatura sia incollata sulla parte superiore della parte anteriore, la matrice deve essere testata per garantire che tutti i LED funzionino. È molto più facile riparare qualcosa prima che l'impiallacciatura venga incollata.

L'impiallacciatura di legno utilizzata è una carta speciale per impiallacciatura di acero chiamata Microwood, che è rivestita di carta su un lato e ha uno spessore di 0,1 mm. Il lato in carta può essere incollato direttamente sull'mdf utilizzando la normale colla per carta senza acqua.

Passaggio 11: il risultato

Il risultato
Il risultato
Il risultato
Il risultato

Divertiti e goditi il gioco!

Concorso Raspberry Pi 2020
Concorso Raspberry Pi 2020
Concorso Raspberry Pi 2020
Concorso Raspberry Pi 2020

Gran Premio al Concorso Raspberry Pi 2020

Consigliato: