Sommario:

Cupola LED geodetica interattiva: 15 passaggi (con immagini)
Cupola LED geodetica interattiva: 15 passaggi (con immagini)

Video: Cupola LED geodetica interattiva: 15 passaggi (con immagini)

Video: Cupola LED geodetica interattiva: 15 passaggi (con immagini)
Video: How to 360 Product Photography Using a Motorized Photography Turntable 2024, Luglio
Anonim
Image
Image
Cupola LED geodetica interattiva
Cupola LED geodetica interattiva
Cupola LED geodetica interattiva
Cupola LED geodetica interattiva
Cupola LED geodetica interattiva
Cupola LED geodetica interattiva

Ho costruito una cupola geodetica composta da 120 triangoli con un LED e un sensore in ogni triangolo. Ogni LED può essere indirizzato individualmente e ogni sensore è sintonizzato specificamente per un singolo triangolo. La cupola è programmata con un Arduino per illuminarsi e produrre un segnale MIDI a seconda di quale triangolo si posiziona la mano.

Ho progettato la cupola per essere un display divertente che attiri le persone interessate alla luce, all'elettronica e al suono. Poiché la cupola si divide bene in cinque parti, ho progettato la cupola per avere cinque uscite MIDI separate che possono avere ciascuna un suono diverso. Questo rende la cupola uno strumento musicale gigante, ideale per suonare musica con più persone contemporaneamente. Oltre a suonare musica, ho anche programmato la cupola per spettacoli di luci e ho suonato un'interpretazione di Simon e Pong. La struttura finale ha un diametro di poco più di un metro e un'altezza di 70 cm ed è principalmente costruita con parti in legno, acrilico e stampate in 3D.

Ci sono diversi fantastici Instructables su tavoli e cubi LED che mi hanno ispirato per iniziare questo progetto. Tuttavia, volevo provare a disporre i LED in una geometria diversa. Non riuscivo a pensare a una struttura migliore per il progetto di una cupola geodetica, che è anche ben documentata su Instructables. Quindi questo progetto è un remix/mashup di tavoli LED e cupole geodetiche. Di seguito sono riportati i collegamenti al tavolo LED e alla cupola geodetica Instructables che ho verificato all'inizio del progetto.

Tavoli e cubi LED:

www.instructables.com/id/RGB-LED-Pixel-Touc…

www.instructables.com/id/Touch-LED-Table-Re…

www.instructables.com/id/Led-Cube-8x8x8/

www.instructables.com/id/500-LED-Pixel-RGB-…

Cupola geodetica:

www.instructables.com/id/Folding-Geodesic-D…

www.instructables.com/id/Geodesic-dome-kit/

Passaggio 1: elenco dei rifornimenti

Elenco forniture
Elenco forniture
Elenco forniture
Elenco forniture
Elenco forniture
Elenco forniture

Materiali:

1. Legno per i montanti della cupola e la base della cupola (la quantità dipende dal tipo e dalle dimensioni della cupola)

2. Striscia LED indirizzabile (16,4 piedi/5m Striscia di pixel LED a colori indirizzabile 160leds Ws2801 Dc5v)

3. Arduino Uno (Atmega328 - assemblato)

4. Scheda prototipo (PCB prototipo a doppia faccia Penta Angel universale (7x9 cm))

5. Acrilico per la diffusione dei LED (foglio acrilico colato, trasparente, dimensioni 12 "x 12" x 0,118")

6. Alimentazione (Aiposen 110/220V a DC12V 30A 360W Alimentatore Switch Driver)

7. Convertitore buck per Arduino (RioRand LM2596 Convertitore buck DC-DC 1.23V-30V)

8. Convertitore buck per LED e sensori (DROK Mini Electric Buck Voltage Converter 15A)

9. 120 sensori IR (modulo sensore prevenzione ostacoli a infrarossi)

10. Cinque multiplexer a 16 canali (MUX Breakout analogico/digitale - CD74HC4067)

11. Sei multiplexer a 8 canali (Multiplexer Breakout - 8 canali (74HC4051))

12. Cinque multiplexer a 2 canali (MAX4544CPA+)

13. Filo di avvolgimento del filo (PCB Saldatura 0,25 mm Cavo di rame placcato in stagno Dia Filo di avvolgimento del filo 305M 30AWG Rosso)

14. Cavo di collegamento (nucleo solido, 22 AWG)

15. Intestazioni pin (Gikfun 1 x 40 pin 2,54 mm intestazione pin maschio staccabile a fila singola)

16. Cinque jack MIDI (Jack MIDI compatibile con breadboard (DIN a 5 pin))

17. Dieci resistori da 220 ohm per jack MIDI

18. Distanziatori distanziatori per il montaggio dell'elettronica sulla cupola (distanziatore esagonale M3 maschio x M3 femmina)

19. Adattatori filettati per collegare i distanziatori al legno (inserto filettato E-Z Lok, ottone, filettatura a coltello)

20. Supercolla epossidica o Gorilla

21. Nastro isolante

22. Saldare

Utensili:

1. Stazione di saldatura

2. Trapano elettrico

3. Sega circolare

4. Levigatrice orbitale

5. Seghetto alternativo

6. Troncatrice

7. Goniometro

8. Stampante 3D

9. Tagliafili

10. Strumento per avvolgere il filo

11. Laser cutter per il taglio di lastre LED (opzionale)

12. Shopbot CNC per la base della cupola (opzionale)

Passaggio 2: progettazione della cupola geodetica

Progettare la cupola geodetica
Progettare la cupola geodetica
Progettare la cupola geodetica
Progettare la cupola geodetica

Come ho detto nell'introduzione, ci sono diverse fonti online per costruire la tua cupola geodetica. Questi siti forniscono calcolatori della cupola che determinano la lunghezza di ciascun lato (cioè il puntone) e il numero di connettori necessari per qualsiasi tipo di cupola che si desidera costruire. La complessità di una cupola geodetica (cioè la densità dei triangoli) è specificata dalla sua classe (1V, 2V, 3V e così via), con una complessità maggiore che diventa una migliore approssimazione di una superficie sferica perfetta. Per costruire la tua cupola, devi prima selezionare un diametro e una classe della cupola.

Ho usato un sito chiamato Domerama per aiutarmi a progettare una cupola 4V che è stata troncata a 5/12 di una sfera con raggio di 40 cm. Per questo tipo di cupola sono disponibili sei montanti di lunghezza diversa:

30 X "A" - 8,9 cm

30 X "B" - 10,4 cm

50 X "C" - 12,4 cm

40 X "D" - 12,5 cm

20 X "E" - 13,0 cm

20 X "F" - 13,2 cm

Questo è un totale di 190 montanti che aggiungono fino a 2223 cm (73 piedi) di materiale. Ho usato legname di pino 1x3 (3/4" × 2-1/2") per i montanti in questa cupola. Per collegare i montanti, ho progettato e stampato connettori in 3D utilizzando Autocad. I file STL sono disponibili per il download alla fine di questo passaggio. Il numero di connettori per una dome 4V 5/12 è:

20 x 4 connettori

6 X 5 connettori

45 X 6 connettori

Nel passaggio successivo, descrivo come è costruita questa cupola con i montanti in legno e i connettori stampati in 3D che ho progettato.

Passaggio 3: costruzione della cupola con puntoni e connettori

Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori
Costruzione della cupola con puntoni e connettori

Utilizzando i calcoli di Domerama per una cupola 4V 5/12, ho tagliato i montanti usando una sega circolare. I 190 puntoni sono stati etichettati e riposti in una scatola dopo il taglio. I 71 connettori (20 a quattro connettori, 6 a cinque connettori e 45 a sei connettori) sono stati stampati in 3D utilizzando un Makerbot. I puntoni in legno sono stati inseriti nei connettori secondo lo schema realizzato da Domerama. Ho iniziato la costruzione dall'alto e mi sono spostato radialmente verso l'esterno.

Dopo che tutti i montanti sono stati collegati, ho rimosso un montante alla volta e ho aggiunto resina epossidica al legno e al connettore. I connettori sono stati progettati per avere flessibilità nel modo in cui hanno collegato le strutture, quindi era importante controllare la simmetria della cupola prima di aggiungere qualsiasi resina epossidica.

Passaggio 4: taglio laser e montaggio delle piastre di base

Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base
Taglio laser e montaggio delle piastre di base

Ora che lo scheletro della cupola è stato costruito, è il momento di tagliare le piastre di base triangolari. Queste piastre di base sono fissate alla parte inferiore dei montanti e vengono utilizzate per montare i LED sulla cupola. Inizialmente ho tagliato le piastre di base da compensato spesso 5 mm (3/16 ) misurando i cinque diversi triangoli che si trovano sulla cupola: AAB (30 triangoli), BCC (25 triangoli), DDE (20 triangoli), CDF (40 triangoli) e EEE (5 triangoli). Le dimensioni di ciascun lato e la forma dei triangoli sono state determinate utilizzando un calcolatore a cupola (Domerama) e alcune geometrie. Dopo aver tagliato le piastre base di prova con un seghetto alternativo, ho disegnato il disegno del triangolo usando Coral Draw e ho tagliato le piastre base rimanenti con un laser cutter (molto più velocemente!). Se non hai accesso a un laser cutter, puoi disegnare le piastre di base su compensato usando un righello e un goniometro e tagliarle tutte con un seghetto alternativo. Una volta tagliate le piastre di base, la cupola viene capovolta e le piastre vengono incollate alla cupola utilizzando la colla per legno.

Passaggio 5: panoramica dell'elettronica

Panoramica dell'elettronica
Panoramica dell'elettronica

Nella figura sopra è mostrato uno schema dell'elettronica per la cupola. Un Arduino Uno viene utilizzato per scrivere e leggere i segnali per la dome. Per illuminare la cupola, una striscia LED RGB viene fatta scorrere sulla cupola in modo che un LED sia posizionato su ciascuno dei 120 triangoli. Per informazioni su come funziona una striscia LED, dai un'occhiata a questo istruibile. Ciascun LED può essere indirizzato separatamente utilizzando l'Arduino, che produce dati seriali e segnale di clock per la striscia (vedi i pin A0 e A1 nello schema). Con la striscia e questi due segnali da soli, puoi avere una fantastica cupola illuminata. Esistono altri modi per scrivere segnali per molti LED da un Arduino, come Charlieplexing e registri a scorrimento.

Per interagire con la dome, ho installato un sensore IR sopra ogni LED. Questi sensori vengono utilizzati per rilevare quando la mano di qualcuno è vicina a un triangolo sulla cupola. Poiché ogni triangolo sulla cupola ha il proprio sensore IR e ci sono 120 triangoli, dovrai eseguire una sorta di multiplexing prima di Arduino. Ho deciso di utilizzare cinque multiplexer a 24 canali (MUX) per i 120 sensori della dome. Ecco una guida al multiplexing, se non hai familiarità. Un MUX a 24 canali richiede cinque segnali di controllo. Ho scelto i pin 8-12 su Arduino, in modo da poter eseguire la manipolazione delle porte (vedi il passaggio 10 per ulteriori informazioni). L'uscita delle schede MUX viene letta tramite i pin 3-7.

Ho anche incluso cinque uscite MIDI sulla dome in modo che potesse produrre suono (passo 11). In altre parole, cinque persone possono riprodurre la dome contemporaneamente con ogni uscita che riproduce un suono diverso. C'è solo un pin TX su Arduino, quindi cinque segnali MIDI richiedono il demultiplexing. Poiché l'uscita MIDI viene prodotta in un momento diverso rispetto alla lettura del sensore IR, ho utilizzato gli stessi segnali di controllo.

Dopo che tutti gli ingressi del sensore IR sono stati letti nell'Arduino, la cupola può accendersi e riprodurre suoni comunque si programma l'Arduino. Ho alcuni esempi nel passaggio 14 di questo istruibile.

Passaggio 6: montaggio dei LED sulla cupola

Montaggio dei LED sulla cupola
Montaggio dei LED sulla cupola
Montaggio dei LED sulla cupola
Montaggio dei LED sulla cupola
Montaggio dei LED sulla cupola
Montaggio dei LED sulla cupola

Poiché la cupola è così grande, la striscia LED deve essere tagliata per posizionare un LED su ciascun triangolo. Ogni LED è incollato sul triangolo utilizzando una super colla. Su entrambi i lati del LED, viene praticato un foro attraverso la piastra di base per far passare i cavi attraverso la cupola. Ho quindi saldato il cavo di collegamento a ciascun contatto del LED (5V, massa, orologio, segnale) e ho fatto passare i cavi attraverso la piastra di base. Questi fili vengono tagliati in modo che siano abbastanza lunghi da raggiungere il LED successivo sulla cupola. I fili vengono tirati fino al LED successivo e il processo continua. Ho collegato i LED in una configurazione che riducesse al minimo la quantità di filo richiesta pur avendo senso per indirizzare i LED utilizzando l'Arduino in un secondo momento. Una cupola più piccola eliminerebbe la necessità di tagliare la striscia e risparmierebbe molto tempo di saldatura. Un'altra opzione è quella di utilizzare LED RGB separati con registri a scorrimento.

La comunicazione seriale alla striscia viene ottenuta utilizzando due pin (un pin dati e un pin di clock) dall'Arduino. In altre parole, i dati per l'accensione della cupola vengono passati da un LED all'altro quando esce dal pin dati. Ecco un esempio di codice modificato da questo forum Arduino:

// Fai aumentare e diminuire l'intensità dell'intera cupola di un singolo colore

#define numLeds 120 //Numero di LED // PIN DI USCITA // int clockPin = A1; // definisce il pin dell'orologio int dataPin = A0; // definisce il pin dei dati // VARIABILI // int red[numLeds]; // Inizializza l'array per la striscia LED int green[numLeds]; // Inizializza l'array per la striscia LED int blue[numLeds]; // Inizializza array per striscia LED //COSTANTE doppia scalaA = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0,3, 0,2, 0,1}; // frazione di intensità dei LED void setup() { pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); memset(rosso, 0, numLeds); memset(verde, 0, numLeds); memset(blu, 0, numLeds); } void updatestring(int redA[numLeds], int greenA[numLeds], int blueA[numLeds]) { for (int i = 0; i < numLeds; i++) { shiftOut(dataPin, clockPin, MSBFIRST, redA); shiftOut(dataPin, clockPin, MSBFIRST, greenA); shiftOut(dataPin, clockPin, MSBFIRST, blueA); } } void loop() { for (int p = 0; p < 20; p++) // loop per aumentare l'intensità della luce della cupola { double scale = scaleA[p]; ritardo(20); for (int i = 0; i < numLeds; i++) // scorre tutti i LED { red = 255 * scale; verde = 80 * scala; blu = 0; } updatestring(rosso, verde, blu); // aggiorna la striscia led } }

Passaggio 7: progettazione e implementazione del montaggio del sensore

Progettazione e implementazione del montaggio del sensore
Progettazione e implementazione del montaggio del sensore
Progettazione e implementazione del montaggio del sensore
Progettazione e implementazione del montaggio del sensore
Progettazione e implementazione del montaggio del sensore
Progettazione e implementazione del montaggio del sensore

Ho deciso di utilizzare sensori IR per la cupola. Questi sensori hanno un LED IR e un ricevitore. Quando un oggetto si trova davanti al sensore, una parte della radiazione IR del LED IR viene riflessa verso il ricevitore. Ho iniziato questo progetto creando i miei sensori IR, che erano basati sull'istruzione di Richardouvina. Tutta la saldatura ha richiesto troppo tempo, quindi ho acquistato 120 sensori IR da eBay che producono ciascuno un'uscita digitale. La soglia del sensore viene impostata con un potenziometro sulla scheda in modo che l'uscita sia alta solo quando una mano è vicina a quel triangolo.

Ogni triangolo è costituito da una piastra di base LED in compensato, un foglio di acrilico diffusivo montato a circa 2,5 cm sopra la piastra LED e un sensore IR. Il sensore per ogni triangolo è stato montato su un foglio di compensato sottile a forma di pentagono o esagono a seconda della posizione sulla cupola (vedi figura sopra). Ho praticato dei fori nella base del sensore IR per montare i sensori IR, quindi ho collegato i pin di terra e 5V con un filo avvolgicavo e uno strumento avvolgicavo (fili rosso e nero). Dopo aver collegato la terra e 5 V, ho avvolto un lungo filo avvolto su ciascuna uscita (giallo), terra e 5 V per passare attraverso la cupola.

I supporti del sensore IR esagonale o pentagonale sono stati quindi fissati con resina epossidica alla cupola, proprio sopra i connettori stampati in 3D, in modo che il filo potesse passare attraverso la cupola. Avendo i sensori sopra i connettori, ho anche potuto accedere e regolare i potenziometri sui sensori IR che controllano la sensibilità dei sensori. Nel passaggio successivo, descriverò come le uscite dei sensori IR sono collegate ai multiplexer e lette nell'Arduino.

Passaggio 8: uscita del sensore di multiplexing

Uscita sensore multiplexing
Uscita sensore multiplexing
Uscita sensore multiplexing
Uscita sensore multiplexing
Uscita sensore multiplexing
Uscita sensore multiplexing

Poiché Arduino Uno ha solo 14 pin I/O digitali e 6 pin di ingresso analogico e ci sono 120 segnali del sensore che devono essere letti, la dome richiede multiplexer per leggere tutti i segnali. Ho scelto di costruire cinque multiplexer a 24 canali, ognuno dei quali legge 24 dei sensori IR (vedi la figura della panoramica dell'elettronica). Il MUX a 24 canali è costituito da una scheda breakout MUX a 8 canali, una scheda breakout MUX a 16 canali e un MUX a 2 canali. Le intestazioni dei pin sono state saldate a ciascuna scheda breakout in modo che potessero essere collegate alla scheda prototipo. Utilizzando uno strumento avvolgicavo, ho quindi collegato la massa, 5 V e i pin del segnale di controllo delle schede breakout MUX.

Un MUX a 24 canali richiede cinque segnali di controllo, che ho scelto di collegare al pin 8-12 di Arduino. Tutti e cinque i MUX a 24 canali ricevono gli stessi segnali di controllo dall'Arduino, quindi ho collegato il cavo dai pin Arduino al MUX a 24 canali. Le uscite digitali dei sensori IR sono collegate ai pin di ingresso del MUX a 24 canali in modo che possano essere lette in serie su Arduino. Poiché ci sono cinque pin separati per la lettura in tutte le 120 uscite del sensore, è utile immaginare che la cupola sia divisa in cinque sezioni separate costituite da 24 triangoli (controllare i colori della cupola nella figura).

Usando la manipolazione della porta Arduino, puoi incrementare rapidamente i segnali di controllo inviati dai pin 8-12 ai multiplexer. Ho allegato un codice di esempio per il funzionamento dei multiplexer qui:

int canalenum = 24;

// USCITE // int s0 = 8; // Controllo MUX 0 - PORTbD int s1 = 9; // Controllo MUX 1 - PORTb int s2 = 10; // Controllo MUX 2 - PORTb int s3 = 11; // Controllo MUX 3 - PORTb int s4 = 12; // Controllo MUX 4 - PORTb // INGRESSI // int m0 = 3; // Ingresso MUX 0 int m1 = 4; // Ingresso MUX 1 int m2 = 5; // Ingresso MUX 2 int m3 = 6; // Ingresso MUX 3 int m4 = 7; // MUX input 4 // VARIABILI // int arr0r; // lettura digitale da MUX0 int arr1r; // lettura digitale da MUX1 int arr2r; // lettura digitale da MUX2 int arr3r; // lettura digitale da MUX3 int arr4r; // lettura digitale da MUX4 void setup() { // inserisci qui il tuo codice di installazione, da eseguire una volta: DDRB = B11111111; // imposta i pin Arduino da 8 a 13 come input pinMode(s0, OUTPUT); pinMode(s1, USCITA); pinMode(s2, USCITA); pinMode(s3, USCITA); pinMode(s4, OUTPUT); pinMode(m0, INGRESSO); pinMode(m1, INGRESSO); pinMode(m2, INGRESSO); pinMode(m3, INGRESSO); pinMode(m4, INGRESSO); } void loop() { // inserisci qui il tuo codice principale, per eseguirlo ripetutamente: PORTB = B00000000; // SET pin di controllo per mux low for (int i = 0; i < numChannel; i++) { // Uscita di lettura digitale di MUX0 - MUX4 per sensore IR i // Se il sensore IR è LO, il giocatore sta toccando il triangolo. arr0r = digitalRead(m0); // lettura da Mux 0, sensore IR i arr1r = digitalRead(m1); // lettura da Mux 1, sensore IR i arr2r = digitalRead(m2); // lettura da Mux 2, sensore IR i arr3r = digitalRead(m3); // lettura da Mux 3, sensore IR i arr4r = digitalRead(m4); // lettura da Mux 4, sensore IR i // FARE QUALCOSA CON GLI INGRESSI MUX O MEMORIZZARE IN UN ARRAY QUI // PORTB ++; // incrementa i segnali di controllo per MUX } }

Passaggio 9: diffusione della luce con l'acrilico

Luce diffusa con acrilico
Luce diffusa con acrilico
Luce diffusa con acrilico
Luce diffusa con acrilico
Luce diffusa con acrilico
Luce diffusa con acrilico

Per diffondere la luce dei LED, ho levigato l'acrilico trasparente con una levigatrice orbitale circolare. La levigatrice è stata spostata su entrambi i lati dell'acrilico con un movimento a forma di 8. Ho trovato questo metodo molto migliore della vernice spray per "vetro smerigliato".

Dopo aver levigato e ripulito l'acrilico, ho usato un cutter laser per ritagliare dei triangoli da adattare ai LED. È possibile tagliare l'acrilico utilizzando un utensile da taglio per acrilico o anche un seghetto alternativo se l'acrilico non si rompe. L'acrilico è stato tenuto sopra i LED da rettangoli di compensato di 5 mm di spessore, anch'essi tagliati con un laser cutter. Queste piccole assi sono state incollate ai montanti della cupola e i triangoli acrilici sono stati incollati con resina epossidica sulle assi.

Passaggio 10: fare musica con la cupola utilizzando il MIDI

Fare musica con la dome usando il MIDI
Fare musica con la dome usando il MIDI
Fare musica con la dome usando il MIDI
Fare musica con la dome usando il MIDI
Fare musica con la dome usando il MIDI
Fare musica con la dome usando il MIDI

Volevo che la dome fosse in grado di produrre suoni, quindi ho impostato cinque canali MIDI, uno per ogni sottoinsieme della dome. Devi prima acquistare cinque jack MIDI e collegarli come mostrato nello schema (vedi questo tutorial dal supporto Arduino per maggiori informazioni).

Poiché c'è un solo pin seriale di trasmissione su Arduino Uno (pin 2 etichettato come pin TX), è necessario demultiplare i segnali inviati ai cinque jack MIDI. Ho usato gli stessi segnali di controllo (pin 8-12), perché i segnali MIDI vengono inviati in un momento diverso rispetto a quando i sensori IR vengono letti nell'Arduino. Questi segnali di controllo vengono inviati a un demultiplatore a 8 canali in modo da controllare quale jack MIDI riceve il segnale MIDI creato da Arduino. I segnali MIDI sono stati generati da Arduino con la fantastica libreria di segnali MIDI creata da Francois Best. Ecco un esempio di codice per produrre più uscite MIDI su diversi jack MIDI con un Arduino Uno:

#include // include la libreria MIDI

#define numChannel 24 //Numero di IR per triangolo #define numSections 5 // numero di sezioni nella cupola, numero di MUX a 24 canali, numero di jack MIDI // OUTPUTS // int s0 = 8; // Controllo MUX 0 - PORTbD int s1 = 9; // Controllo MUX 1 - PORTb int s2 = 10; // Controllo MUX 2 - PORTb int s3 = 11; // Controllo MUX 3 - PORTb int s4 = 12; // Controllo MUX 4 - PORTb // INGRESSI // int m0 = 3; // Ingresso MUX 0 int m1 = 4; // Ingresso MUX 1 int m2 = 5; // Ingresso MUX 2 int m3 = 6; // Ingresso MUX 3 int m4 = 7; // MUX input 4 // VARIABILI // int arr0r; // lettura digitale da MUX0 int arr1r; // lettura digitale da MUX1 int arr2r; // lettura digitale da MUX2 int arr3r; // lettura digitale da MUX3 int arr4r; // lettura digitale da MUX4 int midArr[numSections]; // Memorizza se una nota è stata premuta o meno da uno dei giocatori int note2play[numSections]; // Memorizza la nota da suonare se viene toccato il sensore int notes[numChannel] = {60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83}; int pauseMidi = 4000; // tempo di pausa tra i segnali midi MIDI_CREATE_DEFAULT_INSTANCE(); void setup() { // inserisci qui il tuo codice di installazione, da eseguire una volta: DDRB = B11111111; // imposta i pin Arduino da 8 a 13 come input MIDI.begin(MIDI_CHANNEL_OFF); pinMode(s0, OUTPUT); pinMode(s1, USCITA); pinMode(s2, USCITA); pinMode(s3, USCITA); pinMode(s4, OUTPUT); pinMode(m0, INGRESSO); pinMode(m1, INGRESSO); pinMode(m2, INGRESSO); pinMode(m3, INGRESSO); pinMode(m4, INGRESSO); } void loop() { // inserisci qui il tuo codice principale, per eseguirlo ripetutamente: PORTB = B00000000; // SET pin di controllo per mux low for (int i = 0; i < numChannel; i++) { // Uscita di lettura digitale di MUX0 - MUX4 per sensore IR i // Se il sensore IR è LO, il giocatore sta toccando il triangolo. arr0r = digitalRead(m0); // lettura da Mux 0, sensore IR i arr1r = digitalRead(m1); // lettura da Mux 1, sensore IR i arr2r = digitalRead(m2); // lettura da Mux 2, sensore IR i arr3r = digitalRead(m3); // lettura da Mux 3, sensore IR i arr4r = digitalRead(m4); // lettura da Mux 4, sensore IR i if (arr0r == 0)// Il sensore sulla sezione 0 è stato bloccato { midArr[0] = 1; // Player 0 ha colpito una nota, imposta HI in modo che ci sia un output MIDI per il player 0 note2play[0] = notes; // Nota da riprodurre per il giocatore 0 } if (arr1r == 0)// Il sensore sulla sezione 1 è stato bloccato { midArr[1] = 1; // Player 0 ha colpito una nota, imposta HI in modo che ci sia un output MIDI per il player 0 note2play[1] = notes; // Nota da riprodurre per il giocatore 0 } if (arr2r == 0)// Il sensore sulla sezione 2 è stato bloccato { midArr[2] = 1; // Player 0 ha colpito una nota, imposta HI in modo che ci sia un output MIDI per il player 0 note2play[2] = notes; // Nota da riprodurre per il giocatore 0 } if (arr3r == 0)// Il sensore sulla sezione 3 è stato bloccato { midArr[3] = 1; // Player 0 ha colpito una nota, imposta HI in modo che ci sia un output MIDI per il player 0 note2play[3] = notes; // Nota da riprodurre per il giocatore 0 } if (arr4r == 0)// Il sensore sulla sezione 4 è stato bloccato { midArr[4] = 1; // Player 0 ha colpito una nota, imposta HI in modo che ci sia un output MIDI per il player 0 note2play[4] = notes; // Nota da riprodurre per il giocatore 0 } PORTB ++; // incrementa i segnali di controllo per MUX } updateMIDI(); } void updateMIDI() { PORTB = B00000000; // IMPOSTA i pin di controllo per mux low if (midArr[0] == 1) // Uscita MIDI Player 0 { MIDI.sendNoteOn(note2play[0], 127, 1); delayMicroseconds(pauseMidi); MIDI.sendNoteOff(note2play[0], 127, 1); delayMicroseconds(pauseMidi); } PORTB++; // incrementa MUX if (midArr[1] == 1) // Uscita MIDI Player 1 { MIDI.sendNoteOn(note2play[1], 127, 1); delayMicroseconds(pauseMidi); MIDI.sendNoteOff(note2play[1], 127, 1); delayMicroseconds(pauseMidi); } PORTB++; // incrementa MUX if (midArr[2] == 1) // Uscita MIDI Player 2 { MIDI.sendNoteOn(note2play[2], 127, 1); delayMicroseconds(pauseMidi); MIDI.sendNoteOff(note2play[2], 127, 1); delayMicroseconds(pauseMidi); } PORTB++; // incrementa MUX if (midArr[3] == 1) // Uscita MIDI Player 3 { MIDI.sendNoteOn(note2play[3], 127, 1); delayMicroseconds(pauseMidi); MIDI.sendNoteOff(note2play[3], 127, 1); delayMicroseconds(pauseMidi); } PORTB++; // incrementa MUX if (midArr[4] == 1) // Uscita MIDI Player 4 { MIDI.sendNoteOn(note2play[4], 127, 1); delayMicroseconds(pauseMidi); MIDI.sendNoteOff(note2play[4], 127, 1); delayMicroseconds(pauseMidi); } midArr[0] = 0; midArr[1] = 0; midArr[2] = 0; midArr[3] = 0; midArr[4] = 0; }

Passaggio 11: alimentazione della cupola

Alimentare la Cupola
Alimentare la Cupola
Alimentare la Cupola
Alimentare la Cupola
Alimentare la Cupola
Alimentare la Cupola
Alimentare la Cupola
Alimentare la Cupola

Ci sono diversi componenti che devono essere alimentati nella dome. Dovrai quindi calcolare gli ampere prelevati da ciascun componente per determinare l'alimentatore che devi acquistare.

La striscia LED: ho usato circa 3,75 metri della striscia LED Ws2801, che consuma 6,4 W/metro. Ciò corrisponde a 24 W (3.75*6.4). Per convertirlo in ampere, usa Potenza = corrente*volt (P=iV), dove V è la tensione della striscia LED, in questo caso 5V. Pertanto, la corrente assorbita dai LED è di 4,8 A (24 W/5 V = 4,8 A).

I sensori IR: Ogni sensore IR assorbe circa 25mA, per un totale di 3A per 120 sensori.

L'Arduino: 100mA, 9V

I multiplexer: ci sono cinque multiplexer a 24 canali che consistono ciascuno di un multiplexer a 16 canali e un multiplexer a 8 canali. Il MUX a 8 e 16 canali consuma ciascuno circa 100 mA. Pertanto, il consumo energetico totale di tutti i MUX è 1A.

Sommando questi componenti, il consumo energetico totale dovrebbe essere di circa 9A. La striscia LED, i sensori IR e i multiplexer hanno una tensione di ingresso di 5 V e Arduino ha una tensione di ingresso di 9 V. Pertanto, ho selezionato un alimentatore da 12 V 15 A, un convertitore buck da 15 A per convertire i 12 V in 5 V e un convertitore buck da 3 A per convertire i 12 V in 9 V per Arduino.

Passaggio 12: base a cupola circolare

Base a cupola circolare
Base a cupola circolare
Base a cupola circolare
Base a cupola circolare
Base a cupola circolare
Base a cupola circolare

La cupola poggia su un pezzo di legno circolare con un pentagono tagliato al centro per un facile accesso all'elettronica. Per creare questa base circolare, è stato tagliato un foglio di compensato 4x6' utilizzando un router CNC per legno. Per questo passaggio potrebbe essere utilizzato anche un seghetto alternativo. Dopo che la base è stata tagliata, la cupola è stata attaccata ad essa utilizzando piccoli blocchi di legno di 2x3 pollici.

Sulla parte superiore della base, ho collegato l'alimentatore con resina epossidica e i convertitori MUX e Buck con distanziatori PCB. I distanziatori sono stati fissati al compensato utilizzando adattatori filettati E-Z Lok.

Passaggio 13: base della cupola del Pentagono

Base della cupola del pentagono
Base della cupola del pentagono
Base della cupola del pentagono
Base della cupola del pentagono
Base della cupola del pentagono
Base della cupola del pentagono

Oltre alla base circolare, ho costruito anche una base pentagonale per la cupola con una vetrata in basso. Anche questa base e la finestra sono state realizzate in compensato tagliato con un router CNC in legno. I lati del pentagono sono fatti di assi di legno con un lato che ha un foro per il passaggio dei connettori. Utilizzando staffe metalliche e giunti di blocco 2x3, le assi di legno vengono fissate alla base del pentagono. Un interruttore di alimentazione, connettori MIDI e USB sono collegati a un pannello frontale che ho creato utilizzando un laser cutter. L'intera base del pentagono è avvitata alla base circolare descritta nel passaggio 12.

Ho installato una finestra nella parte inferiore della cupola in modo che chiunque possa guardare nella cupola per vedere l'elettronica. Lo specchio è realizzato in acrilico tagliato con un laser cutter ed è epossidico su un pezzo circolare di compensato.

Passaggio 14: programmazione della dome

Ci sono infinite possibilità per programmare la dome. Ogni ciclo del codice riceve i segnali dai sensori IR, che indicano i triangoli che sono stati toccati da qualcuno. Con queste informazioni è possibile colorare la dome con qualsiasi colore RGB e/o produrre un segnale MIDI. Ecco alcuni esempi di programmi che ho scritto per la cupola:

Colora la cupola: ogni triangolo passa attraverso quattro colori quando viene toccato. Quando i colori cambiano, viene riprodotto un arpeggio. Con questo programma puoi colorare la cupola in migliaia di modi diversi.

Musica a cupola: la cupola è colorata con cinque colori, ogni sezione corrisponde a una diversa uscita MIDI. Nel programma, puoi scegliere quali note suonare ogni triangolo. Ho scelto di iniziare dal Do centrale nella parte superiore della cupola e di aumentare il tono man mano che i triangoli si avvicinavano alla base. Poiché ci sono cinque uscite, questo programma è l'ideale per far suonare la dome a più persone contemporaneamente. Utilizzando uno strumento MIDI o un software MIDI, questi segnali MIDI possono essere fatti suonare come qualsiasi strumento.

Simon: Ho scritto una versione di Simon, il classico gioco di luci di memoria. Una sequenza casuale di luci viene illuminata una alla volta sull'intera cupola. In ogni turno, il giocatore deve copiare la sequenza. Se il giocatore abbina correttamente la sequenza, viene aggiunta una luce aggiuntiva alla sequenza. Il punteggio più alto è memorizzato su una delle sezioni della cupola. Questo gioco è anche molto divertente da giocare con più persone.

Pong: Perché non giocare a pong su una cupola? Una palla si propaga attraverso la cupola finché non colpisce la pagaia. Quando lo fa, viene prodotto un segnale MIDI, che indica che la racchetta ha colpito la palla. L'altro giocatore deve quindi dirigere la racchetta lungo la parte inferiore della cupola in modo che colpisca indietro la palla.

Passaggio 15: foto della cupola completata

Foto di Cupola completata
Foto di Cupola completata
Foto di Cupola completata
Foto di Cupola completata
Foto di Cupola completata
Foto di Cupola completata
Foto di Cupola completata
Foto di Cupola completata
Concorso Arduino 2016
Concorso Arduino 2016
Concorso Arduino 2016
Concorso Arduino 2016

Gran Premio al Concorso Arduino 2016

Concorso Remix 2016
Concorso Remix 2016
Concorso Remix 2016
Concorso Remix 2016

Secondo Premio al Remix Contest 2016

Concorso Make it Glow 2016
Concorso Make it Glow 2016
Concorso Make it Glow 2016
Concorso Make it Glow 2016

Secondo Premio al Concorso Make it Glow 2016

Consigliato: