Sommario:

Controller decorativo digitale Pumpkin Pi: 5 passaggi (con immagini)
Controller decorativo digitale Pumpkin Pi: 5 passaggi (con immagini)

Video: Controller decorativo digitale Pumpkin Pi: 5 passaggi (con immagini)

Video: Controller decorativo digitale Pumpkin Pi: 5 passaggi (con immagini)
Video: Eugenia Cooney Does Selena Cosplay (8-28-23) #tiktok #shorts 2024, Novembre
Anonim
Controller per decorazioni digitali Pumpkin Pi
Controller per decorazioni digitali Pumpkin Pi
Controller per decorazioni digitali Pumpkin Pi
Controller per decorazioni digitali Pumpkin Pi

Ciao gente, lasciate che vi presenti il Pumpkin Pi. In poche parole è un controller I/O per il Raspberry Pi con dodici uscite programmabili, ma con un po' di astuzia (o codice Python per te e me) diventa un controller di decorazione digitale che offre due uscite video con audio e illuminazione FX sincronizzato al video.

Lo sfondoLo scorso Halloween ho deciso di creare una vetrina a tema Witching, avendo scoperto di recente le decorazioni digitali di AtmosFX mi sono sentito ispirato a farne buon uso e ad inserirle nel mio display.

Avevo bisogno di un modo per riprodurre alternativamente due playlist video su due display diversi (una TV e un proiettore) senza che i video si sovrappongano accidentalmente l'uno all'altro. Volevo anche integrare l'illuminazione FX da aggiungere alle atmosfere.

Maggiori informazioni sul controller Poiché è stato ispirato da un progetto di Halloween, ho ritenuto che il nome Pumpkin Pi fosse molto appropriato. È destinato a fare quanto segue:

  • Controlla fino a 12 LED singoli (o 4 strisce RGB) tramite 12 uscite programmabili
  • Funziona a 12v tramite il proprio alimentatore esterno
  • 3x array di transistor NPN quad per supportare la corrente di uscita di 1 Amp per connessione
  • Include l'opzione di PIR/sensore di movimento che attiva la riproduzione e le azioni
  • Riproduzione video e audio utilizzando le funzionalità video del Raspberry Pi
  • Due video possono essere riprodotti contemporaneamente o alternativamente grazie al fatto che entrambi i Pis sono collegati tramite i loro GPIO per attivare azioni programmabili e prevenire sovrapposizioni video indesiderate
  • Sincronizza effetti di illuminazione con la riproduzione video
  • LED integrati per indicare lo stato delle singole uscite

Uso alternativoPuoi anche utilizzare Pumpkin Pi come breakout board con un singolo Raspberry Pi e avere ancora 12 uscite programmabili per controllare LED, motori, relè, ecc.

Nota: vuoi vedere come ho usato Pumpkin Pi nel mio display di Halloween? Dai un'occhiata alla mia esposizione di Halloween dell'ora delle streghe Instructable.

Passaggio 1: cose di cui avrai bisogno

Cose di cui avrai bisogno
Cose di cui avrai bisogno

Per ricreare il Pumpkin Pi avrai bisogno dei seguenti strumenti e componenti:

Utensili

  • Saldatore
  • Multimetro
  • Pinza tagliafili
  • Cacciavite (ho usato una piccola lama piatta con le mie morsettiere)
  • Trapano e punte da trapano (ho usato punte in metallo duro da 0,7 mm e 1,0 mm)
  • Kit di incisione PCB

Componenti

  • 1x scheda PCB in rame (102 mm x 70 mm circa)
  • Resistori 14x 1kΩ
  • 2x resistori da 10kΩ
  • 1x resistenza 4k7Ω
  • 1x condensatore (opzionale)
  • 1x LED rosso da 5 mm e un resistore di limitazione della corrente adatto
  • 12x LED gialli 5mm con resistenza integrata per alimentazione 12v
  • 3x ULN2074B Quad NPN Darlington Coppia Array di transistor
  • Presa CI 3x 16 vie
  • 1x presa CC
  • 1x intestazione a 2 vie
  • 2x connettori maschio 2x20 a 40 pin
  • 7x Morsettiera a vite per montaggio su PCB verticale a 3 vie da 5 mm
  • 1x sensore PIR (opzionale)

Il Raspberry Pi

Avrai anche bisogno di un Raspberry Pi (o due) con tutto il necessario per utilizzare il Pi. Ciò include l'alimentatore Pi, la scheda MicroSD e il software Raspbian. Per le migliori prestazioni video consiglierei il Raspberry Pi 3.

Per la riproduzione video utilizzeremo OMXPlayer con OMXPlayer-Wrapper (ma ne parleremo più avanti!).

Nota: questo Instructable presuppone che tu abbia una certa esperienza o conoscenza pratica di elettronica, saldatura, fabbricazione di PCB e Raspberry Pi. Se stai provando una di queste abilità per la prima volta, ti consiglio di dare un'occhiata ad alcune delle seguenti risorse:

  • Classe di elettronica. Include una guida introduttiva e copre cose come la saldatura e i componenti di base.
  • PCB Making Instructable da ASCAS. Copre la tecnica di fabbricazione del trasferimento del toner qui utilizzata.
  • Se vuoi andare oltre con i circuiti stampati, dai un'occhiata alla classe di progettazione dei circuiti stampati.
  • Classe Raspberry Pi. Scopri il Raspberry Pi, scopri come configurarlo e come usarlo.

Passaggio 2: l'elettronica

L'elettronica
L'elettronica
L'elettronica
L'elettronica
L'elettronica
L'elettronica

Creazione del circuito

La prima cosa che devi fare è creare il tuo circuito. Il modo più semplice per riprodurlo è fabbricare il PCB utilizzando il metodo di trasferimento del toner con i PDF del circuito stampabile allegati. Se non l'hai mai provato prima, è molto più semplice di quanto potresti pensare e hai solo bisogno di pochi elementi per iniziare. Raccomando sempre il circuito stampato personalizzato fai-da-te (fabbricazione di PCB) Instructable di ASCAS.

Nota: ho incluso anche il file di progettazione PCB che ho creato utilizzando DesignSpark.

Avrai bisogno di un saldatore e di alcune abilità di base di saldatura per assemblare tutto sul PCB, ci sono molti Instructables sulla saldatura nel caso tu sia nuovo, c'è anche una buona lezione di Instructables Electronics!

Se il processo di creazione del PCB non fa per te, puoi anche ricrearlo su una scheda strip (vero) o su una breadboard (ho eseguito il breadboard del mio prototipo, come mostrato nell'immagine sopra). Nel mio prototipo ho usato singoli transistor a coppia darlington NPN anziché gli array di transistor su un circuito integrato. (circuito integrato).

Come funziona

È fondamentalmente una scheda di breakout per il Pi che collega dodici dei pin GPIO del Pi a transistor a coppia darlington NPN (sotto forma di tre array di transistor). Quando l'uscita Pi rilevante diventa alta, commuta il transistor per completare il circuito.

Ci sono anche altri due pin GPIO che "collegano" i due Pi tramite resistori pull-down che fungono da trigger (maggiori informazioni su questo nel passaggio "Programmazione del Pi" più avanti).

Come è alimentato?

Il Pumpkin Pi è alimentato dal proprio alimentatore esterno da 12 V. Con l'uso dei transistor che ho selezionato è in grado di erogare fino a 1,75 Amp di corrente per uscita (o 1 Amp in questo caso a causa della mia scelta dei terminali a vite). I Pi sono alimentati tramite i propri alimentatori Pi, il Pumpkin Pi richiede pochissimo alle capacità di alimentazione del Pi in quanto viene utilizzato solo per commutare i transistor. Il circuito include l'opzione di un condensatore di livellamento, ma non è essenziale. Ho usato un 2200uF valutato a 16v (che è eccessivo, ma li avevo a portata di mano).

Indicatori LED e resistori

Sono presenti dodici LED indicatori di uscita gialli e un LED di stato dell'alimentazione rosso. Assicurati di utilizzare il LED di limitazione della corrente corretto con il LED di stato rosso, il mio ha una tensione diretta di 3,2 V e una corrente diretta di 20 mA, quindi ho selezionato un resistore da 470 (basato sulla corrente di ingresso di 12 V). Se non sei sicuro di come selezionare il resistore corretto per il tuo LED, dai un'occhiata a questa procedura guidata del calcolatore.

Potresti aver notato che non ci sono resistori sul circuito per ciascuno dei dodici LED indicatori gialli. Poiché volevo risparmiare spazio sul PCB, ho scelto di utilizzare LED con resistori integrati per l'alimentazione a 12v.

Attivazione del movimento (sensore PIR) e override

Il circuito include l'opzione di un trigger di movimento. Utilizza un resistore di pull-up, quindi ogni volta che il pin di allarme (etichettato come AL sul PCB) si abbassa, attiva un'azione. Questo è utile se vuoi che la riproduzione della tua decorazione digitale sia attivata dal movimento.

Il circuito include anche un trigger override. Quando l'override è in uno stato chiuso, collega l'ingresso a terra, consentendo di attivare manualmente l'azione. Utilizzare l'intestazione di override a due pin con un interruttore o un 'jumper'.

Passaggio 3: configurazione del Raspberry Pi

Configurazione del Raspberry Pi
Configurazione del Raspberry Pi

Installazione di Raspbian

Per iniziare a configurare il Raspberry Pi devi preparare la tua scheda MicroSD con l'immagine Raspbian. Scarica l'ultima immagine qui (Raspbian Stretch era l'ultima versione al momento della scrittura).

Con la tua scheda MicroSD pronta, inseriscila nel Pi e accendi. Probabilmente vorrai collegare una TV, una tastiera e un mouse a questo punto. Per impostazione predefinita, il Pi dovrebbe avviarsi nel sistema operativo desktop della GUI, ti consiglio di impostare la data e il fuso orario corretti sul tuo Pi e magari di connetterti al tuo WiFi.

A questo punto di solito mi assicuro che la connettività SSH sia abilitata in modo da poter accedere al terminale Pi sulla rete tramite PuTTy, quindi ho impostato il Pi per l'avvio alla CLI (interfaccia della riga di comando) per impostazione predefinita invece del desktop della GUI, ma questo sta a te.

Nota: questo Instructable presuppone che tu abbia già familiarità con Raspberry Pi, in caso contrario puoi seguire la guida ufficiale di Raspberry Pi per l'installazione delle immagini del sistema operativo nel tuo ambiente qui: Windows, MacOS, Linux.

Suggerimento: se sei completamente nuovo sul Raspberry Pi, ti consiglio di dare un'occhiata a questa lezione di Instructables.

Una volta che il tuo Pi è attivo e funzionante con Raspbian e la configurazione di base è completa, sei pronto per farlo funzionare come un lettore di decorazioni digitali che supporta la riproduzione audio e video. Ricorda che se stai utilizzando due Raspberry Pi per la funzionalità di doppia riproduzione, dovrai ripetere tutti questi passaggi sul secondo Pi.

OMXPlayer-Wrapper per Python

Per riprodurre i nostri video di decorazione digitale utilizzeremo OMXPlayer. Supporta video ad alta risoluzione (incluso HD) in numerosi formati video comuni. Sebbene OMXPlayer sia incluso con Raspbian "pronto all'uso", per renderlo piacevole con gli script Python personalizzati che creeremo dovrai installare OMXPlayer-Wrapper.

Prima di installare il wrapper consiglio di aggiornare i pacchetti del sistema. Esegui i seguenti comandi da un terminale CLI (il Pi deve essere connesso a Internet affinché funzioni):

Aggiorna l'elenco dei pacchetti del sistema:

sudo apt-get update

Aggiorna tutti i pacchetti installati alle ultime versioni:

sudo apt-get dist-upgrade

Pulisci lo spazio utilizzato per scaricare i pacchetti di aggiornamento:

sudo apt-get clean

Successivamente dovrai scaricare lo stesso OMXPlayer-Wrapper. Per fare ciò esegui il seguente comando, sempre da un terminale CLI con il Pi connesso a Internet:

Installa OMXPlayer-Wrapper:

sudo python3 -m pip install omxplayer-wrapper

Per ulteriori informazioni su omxplayer-wrapper, controlla i documenti qui.

Suggerimento: se riscontri errori di connessione DBUS quando provi a riprodurre video utilizzando OMXPlayer-Wrapper, prova a installare python3-dbus con il seguente comando:

sudo apt-get install python3-dbus

Altre impostazioni e modifiche

Uscita audio predefinita

Il Raspberry Pi supporta la riproduzione audio tramite HDMI o jack da 3,5 mm. Tuttavia, se il Pi rileva che il dispositivo HDMI collegato supporta l'audio, verrà impostato automaticamente sul dispositivo HDMI. Se, come me, disponi di un dispositivo HDMI con funzionalità audio ma desideri che l'uscita audio sia predefinita sul jack da 3,5 mm, puoi forzarlo aggiungendo la seguente riga al file config.txt sul Pi:

hdmi_ignore_edid_audio=1

Imposta l'output della console su vuoto

Se non si desidera che l'uscita video del Pi mostri la schermata della console dopo l'avvio, è possibile impostare la console su vuota aggiungendo quanto segue alla fine del file /boot/cmdline.txt sul Pi. Nota che è un parametro di comando del kernel e deve essere su una singola riga di testo:

consoleblank=0

Consigliato: