Cómo hacer tu propio Domo Geodésico Interactivo es un post instructivo de jbumstead publicado en https://www.instructables.com/id/Interactive-Geodesic-LED-Dome/.

Revisa su sitio web aquí.

Queremos compartir con nuestros seguidores este increíble post sobre cómo construir un domo geodésico led interactivo.

Construí un domo geodésico de 120 triángulos con un LED y un sensor en cada triángulo. Cada LED puede ser direccionado individualmente y cada sensor está afinado específicamente para un solo triángulo. El domo está programado con un Arduino para que se ilumine y produzca una señal MIDI dependiendo del triángulo en el que coloques tu mano.

Diseñé la cúpula para que sea una pantalla divertida que despierte el interés de la gente por la luz, la electrónica y el sonido. Como el domo se divide en cinco partes, he diseñado el domo para que tenga cinco salidas MIDI separadas que pueden tener un sonido diferente cada una. Esto hace de la cúpula un instrumento musical gigante, ideal para tocar música con múltiples personas simultáneamente. Además de tocar música, también programé la cúpula para espectáculos de luces y tocar una interpretación de Simon y Pong. La estructura final tiene poco más de un metro de diámetro y 70 cm de altura, y está construida principalmente con madera, acrílico y piezas impresas en 3D.

Hay varios grandes Instructables en mesas y cubos de LEDs que me inspiraron a comenzar este proyecto. Sin embargo, quise intentar organizar los LEDs en una geometría diferente. No podría pensar en una estructura mejor para el proyecto que una cúpula geodésica, que también está bien documentada en Instructables. Así que este proyecto es una remezcla de mesas LED y domos geodésicos. Abajo están los enlaces a la mesa LED y a la cúpula geodésica Instructables que revisé al principio del proyecto.

 

Paso 1: Lista de suministros

Materiales:

1. Madera para puntales de cúpula y base de cúpula (la cantidad depende del tipo y tamaño de la cúpula)

2. Tira LED direccionable (16.4ft/5m Tira LED de color direccionable Pixel Strip 160leds Ws2801 Dc5v)

3. Arduino Uno (Atmega328 – montado)

4. Tarjeta prototipo (Penta Angel Doble cara PCB Universal (7x9cm))

5. Acrílico para la difusión de LEDs (Hoja de acrílico fundido, transparente, 12″ x 12″ x 0.118″ Tamaño)

6. Fuente de alimentación (Aiposen 110/220V a DC12V 30A 360W Switch Power Supply Driver)

7. Convertidor de Buck para Arduino (RioRand LM2596 DC-DC Buck Converter 1.23V-30V)

8. Conversor de Buck para LEDs y sensores (DROK Mini Electric Buck Voltage Converter 15A)

9. 120 sensores IR (Módulo de Evitación de Obstáculos por Infrarrojos)

10. Cinco multiplexores de 16 canales (Analógico/Digital MUX Breakout – CD74HC4067)

11. Seis multiplexores de 8 canales (Multiplexor Breakout – 8 canales (74HC4051))

12. Cinco multiplexores de 2 canales (MAX4544CPA+)

13. Alambre de envoltura de alambre (Soldadura PCB 0.25mm Cordón de cobre estañado Diapasón Alambre de envoltura 305M 30AWG Rojo)

14. Alambre de conexión (núcleo sólido, 22 AWG)

15. Pin Headers (Gikfun 1 x 40 Pin 2.54mm Single Row Breakaway Male Pin Header)

16. Cinco conectores MIDI (Breadboard friendly MIDI Jack (DIN de 5 pines))

17. Diez resistencias de 220 ohmios para conectores MIDI

18. Distanciadores de separación para el montaje de la electrónica en la cúpula (Distanciador de separación Hexagonal M3 Macho x M3 Hembra)

19. Adaptadores de rosca para conectar los separadores a la madera (E-Z Lok Inserto roscado, latón, rosca de cuchillo)

20. Epoxi o Gorila Superglue

21. Cinta eléctrica

22. Soldadura

Herramientas:

1. Estación de soldadura

2. Taladro eléctrico

3. Sierra circular

4. Lijadora orbital

5. Sierra de calar

6. Sierra de inglete

7. Transportador

8. Impresora 3D

9. Cortaalambres

10. Herramienta para envolver alambre

11. Cortador láser para el corte de placas LED (opcional)

12. Shopbot CNC para base de domo (opcional)

 

Paso 2: Diseño del  Domo Geodésico

Como mencioné en la introducción, hay varias fuentes en línea para construir tu propio domo geodésico. Estos sitios proporcionan calculadoras de domos que determinan la longitud de cada lado (es decir, puntal) y el número de conectores necesarios para cualquier tipo de domo que desee construir. La complejidad de una cúpula geodésica (es decir, la densidad de los triángulos) está especificada por su clase (1V, 2V, 3V, etc.), con una mayor complejidad que se convierte en una mejor aproximación de una superficie esférica perfecta. Para construir su propia cúpula, primero debe seleccionar un diámetro y una clase de cúpula.

Utilicé un sitio llamado Domerama para ayudarme a diseñar una cúpula de 4V que fue truncada a 5/12 de una esfera con un radio de 40cm. Para este tipo de cúpula, hay seis puntales de diferentes longitudes:

30 X «A» – 8.9cm

30 X «B» – 10.4cm

50 X «C» – 12.4cm

40 X «D» – 12.5cm

20 X «E» – 13.0cm

20 X «F» – 13.2cm

Es decir, un total de 190 puntales que suman hasta 2223 cm (73 pies) de material. Usé madera de pino de 1x3 (3/4″ × 2-1/2″) para los puntales de esta cúpula. Para conectar los puntales, diseñé e imprimí conectores en 3D usando Autocad. Los archivos STL están disponibles para descargar al final de este paso. El número de conectores para un domo de 4V 5/12 es:

20 X 4-conectores

6 X 5-conectores

45 X 6-conectores

En el siguiente paso, describo cómo se construye esta cúpula con los puntales de madera y los conectores impresos en 3D que diseñé.

 

Download 4joint_v1.stl:

https://cdn.instructables.com/ORIG/FXE/BHTE/IY4QN6FE/FXEBHTEIY4QN6FE.stl

Download 5joint_v6.stl:

https://cdn.instructables.com/ORIG/FO9/UIQK/IY4QN6FF/FO9UIQKIY4QN6FF.stl

Download 6joint_v2.stl:

https://cdn.instructables.com/ORIG/FBT/Q3DI/IY4QN6FW/FBTQ3DIIY4QN6FW.stl

Paso 3: Construcción de la cúpula con puntales y conectores

Utilizando los cálculos de Domerama para una cúpula de 4V 5/12, corté los puntales con una sierra circular. Los 190 puntales fueron etiquetados y colocados en una caja después del corte. Los 71 conectores (20 de cuatro, 6 de cinco y 45 de seis) se imprimieron en 3D utilizando un Makerbot. Los puntales de madera se insertaron en los conectores de acuerdo con el diagrama creado por Domerama. Comencé la construcción desde arriba y me moví radialmente hacia afuera.

Después de conectar todos los puntales, quité un puntal a la vez y agregué epoxi a la madera y al conector. Los conectores fueron diseñados para tener flexibilidad en la forma de conectar las estructuras, por lo que era importante comprobar la simetría de la cúpula antes de añadir cualquier epoxi.

Paso 4: Corte láser y montaje de placas base

Ahora que el esqueleto de la cúpula está construido, es el momento de cortar las placas base triangulares. Estas placas base están fijadas en la parte inferior de los puntales y se utilizan para montar los LEDs en domo geodésico. Inicialmente corté las placas base de madera contrachapada de 5 mm (3/16″) de espesor midiendo los cinco triángulos diferentes que hay en la cúpula: AAB (30 triángulos), BCC (25 triángulos), DDE (20 triángulos), CDF (40 triángulos) y EEE (5 triángulos).

Las dimensiones de cada lado y la forma de los triángulos se determinaron utilizando una calculadora de cúpula (Domerama) y algo de geometría. Después de cortar las placas base de prueba con una sierra de vaivén, dibujé el diseño del triángulo usando Coral Draw, y corté las placas base restantes con una cortadora láser (¡mucho más rápido!). Si no tiene acceso a una cortadora láser, puede dibujar las placas base sobre madera contrachapada usando una regla y un transportador y cortarlas todas con una sierra de vaivén. Una vez cortadas las placas base, se da la vuelta a la cúpula y las placas se pegan a la cúpula con pegamento para madera.

Paso 5: Descripción general de la electrónica

En la figura de arriba se muestra un esquema de la electrónica de la cúpula. Un Arduino Uno se utiliza para escribir y leer señales para la cúpula. Para iluminar la cúpula, una tira de LEDs RGB pasa por encima de la cúpula de manera que se coloca un LED en cada uno de los 120 triángulos. Para obtener información sobre cómo funciona una tira de LEDs, consulte este instructivo. Cada LED puede ser direccionado por separado usando el Arduino, que produce una señal de datos en serie y una señal de reloj para la tira (ver los pines A0 y A1 en el diagrama esquemático). Con la tira y estas dos señales solas, usted puede tener una cúpula de luz impresionante. Hay otras maneras de escribir señales para muchos LEDs de un Arduino, tales como Charlieplexing y registros de cambio.

Para poder interactuar con la cúpula, instalé un sensor de infrarrojos encima de cada LED. Estos sensores se utilizan para detectar cuando la mano de alguien está cerca de un triángulo en la cúpula. Como cada triángulo de la cúpula tiene su propio sensor IR y hay 120 triángulos, tendrás que hacer algún tipo de multiplexado antes del Arduino. Decidí utilizar cinco multiplexores de 24 canales (MUX) para los 120 sensores de la cúpula. Aquí hay un instructivo sobre multiplexación, si usted no está familiarizado. Un MUX de 24 canales requiere cinco señales de control. Elegí los pines 8-12 en el Arduino, para poder hacer manipulación de puertos (ver Paso 10 para más información). La salida de las tarjetas MUX se lee utilizando los pines 3-7.

También incluí cinco salidas MIDI en el domo para que pudiera producir sonido (Paso 11). En otras palabras, cinco personas pueden tocar la cúpula simultáneamente con cada salida reproduciendo un sonido diferente. Sólo hay un pin TX en el Arduino, por lo que cinco señales MIDI requieren demultiplexación. Debido a que la salida MIDI se produce a una hora diferente a la de la lectura del sensor de infrarrojos, utilicé las mismas señales de control.

Después de que todas las entradas de los sensores IR son leídas en el Arduino, el domo puede iluminarse y reproducir sonidos como quiera que programes el Arduino. Tengo algunos ejemplos en el Paso 14 de este instructivo.

Paso 6: Montaje de los LEDs en el domo geodésico

Debido a que la cúpula es tan grande, la tira de LEDs necesita ser cortada para colocar un LED en cada triángulo. Cada LED se pega al triángulo con superpegamento.

A ambos lados del LED, se perfora un orificio a través de la placa base para que los cables pasen a través de la cúpula. Entonces soldé el alambre de conexión en cada contacto del LED (5V, tierra, reloj, señal) y pasé los alambres a través de la placa base.

Estos cables se cortan para que sean lo suficientemente largos como para alcanzar el siguiente LED en la cúpula. Los cables se pasan al siguiente LED y el proceso continúa.

Conecté los LEDs en una configuración que minimizaba la cantidad de cable requerido mientras que seguía teniendo sentido para direccionar los LEDs usando el Arduino más tarde.

Una cúpula más pequeña eliminaría la necesidad de cortar la tira y ahorraría mucho tiempo de soldadura. Otra opción es utilizar LEDs RGB separados con registros de cambio.

La comunicación serie con la tira se logra usando dos pines (un pin de datos y otro de reloj) del Arduino. En otras palabras, los datos para iluminar el domo se pasan de un LED al siguiente cuando sale del pin de datos.

Aquí hay un ejemplo de código modificado desde este foro de Arduino:

// Make entire dome increase and decrease intensity of single color
#define numLeds 120 //Number of LEDs

// OUTPUT PINS //
int clockPin = A1; // define clock pin
int dataPin = A0; // define data pin

// VARIABLES //
int red[numLeds];      // Initialize array for LED strip
int green[numLeds];    // Initialize array for LED strip
int blue[numLeds];     // Initialize array for LED strip

//CONSTANT
double scaleA[] = {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}; // fraction of intensity of LEDs void setup() { pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); memset(red, 0, numLeds); memset(green, 0, numLeds); memset(blue, 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[i]); shiftOut(dataPin, clockPin, MSBFIRST, greenA[i]); shiftOut(dataPin, clockPin, MSBFIRST, blueA[i]); } } void loop() { for (int p = 0; p < 20; p++) // loop for increasing light intensity of dome { double scale = scaleA[p]; delay(20); for (int i = 0; i < numLeds; i++) // cycle through all LEDS { red[i] = 255 * scale; green[i] = 80 * scale; blue[i] = 0; } updatestring(red, green, blue); // update led strip } }

Paso 7: Diseño e implementación del montaje del sensor

Decidí usar sensores de infrarrojos para la cúpula. Estos sensores tienen un LED IR y un receptor. Cuando un objeto se coloca delante del sensor, una parte de la radiación IR del LED IR se refleja hacia el receptor. Comencé este proyecto creando mis propios sensores de infrarrojos, que se basaban en el instructivo de Richardouvina.

Todas las soldaduras tardaron demasiado, así que compré 120 sensores de infrarrojos de eBay, cada uno de los cuales produce una salida digital. El umbral del sensor se ajusta con un potenciómetro en la tarjeta para que la salida sea alta sólo cuando una mano está cerca de ese triángulo.

Cada triángulo se compone de una placa base LED de madera contrachapada, una lámina de acrílico difusivo montada a unos 2,5 cm por encima de la placa LED y un sensor de infrarrojos.

El sensor de cada triángulo se montó en una hoja de madera contrachapada delgada en forma de pentágono o hexágono, dependiendo de la posición de la cúpula (véase la figura anterior).

Taladré agujeros en la base del sensor de infrarrojos para montar los sensores de infrarrojos y luego conecté las clavijas de tierra y de 5V con un alambre de envoltura y una herramienta de envoltura de alambre (alambres rojos y negros).

Después de conectar a tierra y a 5V, envolví un alambre largo en cada salida (amarillo), a tierra y a 5V para que pasara a través de la cúpula.

Los soportes de los sensores de infrarrojos hexagonales o del pentágono se epoxied a la cúpula, justo encima de los conectores impresos en 3D, para que el cable pudiera pasar a través de la cúpula.

Al tener los sensores por encima de los conectores, también pude acceder y ajustar los potenciómetros de los sensores de infrarrojos que controlan la sensibilidad de los sensores.

En el siguiente paso, describiré como las salidas de los sensores IR son conectadas a multiplexores y leídas en el Arduino.

Paso 8: Salida del sensor de multiplexado

Debido a que el Arduino Uno tiene sólo 14 pines de E/S digitales y 6 pines de entrada analógica y hay 120 señales de sensores que deben ser leídas, el domo requiere multiplexores para leer todas las señales. Decidí construir cinco multiplexores de 24 canales, cada uno de los cuales leía 24 de los sensores de infrarrojos (véase la figura de resumen de la electrónica).

El MUX de 24 canales consiste en una placa de conexión MUX de 8 canales, una placa de conexión MUX de 16 canales y una placa de conexión MUX de 2 canales. Las cabeceras de los pines se soldaron a cada placa de conexión para que pudieran conectarse a la placa prototipo.

Usando una herramienta de envoltura de alambre, conecté a tierra, 5V, y los pines de señal de control de las tarjetas de conexión MUX.

Un MUX de 24 canales requiere cinco señales de control, que elegí para conectar al pin 8-12 del Arduino. Los cinco MUX de 24 canales reciben las mismas señales de control del Arduino, así que conecté el cable de los pines de Arduino al MUX de 24 canales.

Las salidas digitales de los sensores IR están conectadas a los pines de entrada del MUX de 24 canales para que puedan ser leídas en serie en el Arduino.

Debido a que hay cinco pines separados para la lectura en las 120 salidas del sensor, es útil imaginar que la cúpula se divide en cinco secciones separadas que consisten en 24 triángulos (verifique los colores de la cúpula en la figura).

Usando la manipulación del puerto de Arduino, puedes incrementar rápidamente las señales de control enviadas por los pines 8-12 a los multiplexores. He adjuntado un código de ejemplo para operar los multiplexores aquí:

int numChannel = 24;

// OUTPUTS //
int s0 = 8; // MUX control 0 - PORTbD
int s1 = 9; // MUX control 1 - PORTb
int s2 = 10; // MUX control 2 - PORTb
int s3 = 11; // MUX control 3 - PORTb
int s4 = 12; // MUX control 4 - PORTb

// INPUTS //
int m0 = 3;  // MUX input 0
int m1 = 4;  // MUX input 1
int m2 = 5;  // MUX input 2
int m3 = 6;  // MUX input 3
int m4 = 7;  // MUX input 4

// VARIABLES //
int arr0r; // digital read from MUX0
int arr1r; // digital read from MUX1
int arr2r; // digital read from MUX2
int arr3r; // digital read from MUX3
int arr4r; // digital read from MUX4

void setup() {
  // put your setup code here, to run once:

  DDRB = B11111111; // sets Arduino pins 8 to 13 as inputs

  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(s4, OUTPUT);

  pinMode(m0, INPUT);
  pinMode(m1, INPUT);
  pinMode(m2, INPUT);
  pinMode(m3, INPUT);
  pinMode(m4, INPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  PORTB = B00000000; // SET control pins for mux low

  for (int i = 0; i < numChannel; i++) {

    // Digital read output of MUX0 - MUX4 for IR sensor i
    // If IR sensor is LO, the triangle is being touched by player.
    arr0r = digitalRead(m0); // reading from Mux 0, IR sensor i
    arr1r = digitalRead(m1); // reading from Mux 1, IR sensor i
    arr2r = digitalRead(m2); // reading from Mux 2, IR sensor i
    arr3r = digitalRead(m3); // reading from Mux 3, IR sensor i
    arr4r = digitalRead(m4); // reading from Mux 4, IR sensor i

    // DO SOMETHING WITH MUX INPUTS OR STORE IN AN ARRAY HERE //

    PORTB ++; // increment control signals for MUX
    
  }

}

Paso 9: Difusión de la luz con acrílico

Para difundir la luz de los LEDs, lijé acrílico transparente con una lijadora orbital circular. La lijadora se movió sobre ambos lados del acrílico en un movimiento de figura 8. Descubrí que este método es mucho mejor que la pintura en aerosol «vidrio esmerilado».

Después de lijar y limpiar el acrílico, utilicé un cortador láser para cortar los triángulos para que encajaran sobre los LEDs. Es posible cortar el acrílico usando una herramienta de corte de acrílico o incluso un rompecabezas si el acrílico no se agrieta. El acrílico fue sostenido sobre los LEDs por rectángulos de madera contrachapada de 5 mm de espesor también cortados con un cortador láser. Estas pequeñas tablas estaban pegadas a los puntales de la cúpula, y los triángulos de acrílico estaban epoxiados sobre las tablas.

Paso 10: Cómo hacer música con el domo geodésico utilizando MIDI

Quería que la cúpula fuera capaz de producir sonido, así que configuré cinco canales MIDI, uno para cada subconjunto de la cúpula. Primero necesitas comprar cinco jacks MIDI y conectarlos como se muestra en el esquema .

Debido a que sólo hay un pin serial de transmisión en el Arduino Uno (pin 2 etiquetado como el pin TX), necesitas desmultiplexar las señales que se envían a los cinco jacks MIDI. Utilicé las mismas señales de control (pin 8-12), porque las señales MIDI se envían en un momento diferente al de la lectura de los sensores IR en el Arduino. Estas señales de control se envían a un demultiplexor de 8 canales para que controle qué conector MIDI recibe la señal MIDI creada por el Arduino. Las señales MIDI fueron generadas por el Arduino con la fabulosa biblioteca de señales MIDI creada por Francois Best. Aquí hay un ejemplo de código para producir múltiples salidas MIDI a diferentes jacks MIDI con un Arduino Uno:

#include <MIDI.h> // include MIDI library

#define numChannel 24 //Number of IR per Triangle
#define numSections 5 // number of sections in dome, number of 24channel MUX, number of MIDI jacks

// OUTPUTS //
int s0 = 8; // MUX control 0 - PORTbD
int s1 = 9; // MUX control 1 - PORTb
int s2 = 10; // MUX control 2 - PORTb
int s3 = 11; // MUX control 3 - PORTb
int s4 = 12; // MUX control 4 - PORTb

// INPUTS //
int m0 = 3;  // MUX input 0
int m1 = 4;  // MUX input 1
int m2 = 5;  // MUX input 2
int m3 = 6;  // MUX input 3
int m4 = 7;  // MUX input 4

// VARIABLES //
int arr0r; // digital read from MUX0
int arr1r; // digital read from MUX1
int arr2r; // digital read from MUX2
int arr3r; // digital read from MUX3
int arr4r; // digital read from MUX4

int midArr[numSections];   // Store whether or not a note has been pressed by one of the players
int note2play[numSections]; // Store note to be played if sensor is touched
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; // pause time between midi signals

MIDI_CREATE_DEFAULT_INSTANCE();

void setup() {
  // put your setup code here, to run once:

  DDRB = B11111111; // sets Arduino pins 8 to 13 as inputs

  MIDI.begin(MIDI_CHANNEL_OFF);
  
  pinMode(s0, OUTPUT);
  pinMode(s1, OUTPUT);
  pinMode(s2, OUTPUT);
  pinMode(s3, OUTPUT);
  pinMode(s4, OUTPUT);

  pinMode(m0, INPUT);
  pinMode(m1, INPUT);
  pinMode(m2, INPUT);
  pinMode(m3, INPUT);
  pinMode(m4, INPUT);

}

void loop() {
  // put your main code here, to run repeatedly:

  PORTB = B00000000; // SET control pins for mux low

  for (int i = 0; i < numChannel; i++) {

    // Digital read output of MUX0 - MUX4 for IR sensor i
    // If IR sensor is LO, the triangle is being touched by player.
    arr0r = digitalRead(m0); // reading from Mux 0, IR sensor i
    arr1r = digitalRead(m1); // reading from Mux 1, IR sensor i
    arr2r = digitalRead(m2); // reading from Mux 2, IR sensor i
    arr3r = digitalRead(m3); // reading from Mux 3, IR sensor i
    arr4r = digitalRead(m4); // reading from Mux 4, IR sensor i

    if (arr0r == 0)// Sensor on section 0 was blocked
    {
      midArr[0] = 1; // Player 0 has hit a note, set HI so that there is MIDI output for player 0
      note2play[0] = notes[i];   // Note to play for Player 0
    }

    if (arr1r == 0)// Sensor on section 1 was blocked
    {
      midArr[1] = 1; // Player 0 has hit a note, set HI so that there is MIDI output for player 0
      note2play[1] = notes[i];   // Note to play for Player 0
    }

    if (arr2r == 0)// Sensor on section 2 was blocked
    {
      midArr[2] = 1; // Player 0 has hit a note, set HI so that there is MIDI output for player 0
      note2play[2] = notes[i];   // Note to play for Player 0
    }

    if (arr3r == 0)// Sensor on section 3 was blocked
    {
      midArr[3] = 1; // Player 0 has hit a note, set HI so that there is MIDI output for player 0
      note2play[3] = notes[i];   // Note to play for Player 0
    }

    if (arr4r == 0)// Sensor on section 4 was blocked
    {
      midArr[4] = 1; // Player 0 has hit a note, set HI so that there is MIDI output for player 0
      note2play[4] = notes[i];   // Note to play for Player 0
    }

    PORTB ++; // increment control signals for MUX

  }

  updateMIDI();
}

void updateMIDI()
{

  PORTB = B00000000; // SET control pins for mux low
  if (midArr[0] == 1) // Player 0 MIDI output
  {
    MIDI.sendNoteOn(note2play[0], 127, 1);
    delayMicroseconds(pauseMidi);
    MIDI.sendNoteOff(note2play[0], 127, 1);
    delayMicroseconds(pauseMidi);
  }

  PORTB ++; // increment MUX
  if (midArr[1] == 1) // Player 1 MIDI output
  {
    MIDI.sendNoteOn(note2play[1], 127, 1);
    delayMicroseconds(pauseMidi);
    MIDI.sendNoteOff(note2play[1], 127, 1);
    delayMicroseconds(pauseMidi);
  }

  PORTB ++; // increment MUX
  if (midArr[2] == 1) // Player 2 MIDI output
  {
    MIDI.sendNoteOn(note2play[2], 127, 1);
    delayMicroseconds(pauseMidi);
    MIDI.sendNoteOff(note2play[2], 127, 1);
    delayMicroseconds(pauseMidi);
  }

  PORTB ++; // increment MUX
  if (midArr[3] == 1) // Player 3 MIDI output
  {
    MIDI.sendNoteOn(note2play[3], 127, 1);
    delayMicroseconds(pauseMidi);
    MIDI.sendNoteOff(note2play[3], 127, 1);
    delayMicroseconds(pauseMidi);
  }

  PORTB ++; // increment MUX
  if (midArr[4] == 1) // Player 4 MIDI output
  {
    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;

}

Paso 11: Alimentación del domo

Hay varios componentes que necesitan ser alimentados en el domo. Por lo tanto, necesitará calcular los amperios extraídos de cada componente para determinar la fuente de alimentación que necesita comprar.

La tira de LEDs: Usé aproximadamente 3.75 metros de la tira LED Ws2801, que consume 6.4W/metro. Esto corresponde a 24W (3.75*6.4). Para convertir esto en amperios, use Power = corriente*voltios (P=iV), donde V es el voltaje de la tira LED, en este caso 5V. Por lo tanto, la corriente extraída de los LEDs es de 4,8A (24W/5V = 4,8A).

Los sensores de infrarrojos: Cada sensor IR consume aproximadamente 25mA, totalizando 3A para 120 sensores.

El Arduino: 100mA, 9V

Los multiplexores: Hay cinco multiplexores de 24 canales que consisten cada uno en un multiplexor de 16 canales y un multiplexor de 8 canales. El MUX de 8 y 16 canales consume aproximadamente 100 mA cada uno. Por lo tanto, el consumo total de energía de todos los MUX es de 1A.

Sumando estos componentes, se espera que el consumo total de energía sea de alrededor de 9A. La tira LED, los sensores IR y los multiplexores tienen un voltaje de entrada de 5V, y el Arduino tiene un voltaje de entrada de 9V. Por lo tanto, seleccioné una fuente de alimentación de 12V 15A, un convertidor de 15A para convertir los 12V a 5V, y un convertidor de 3A para convertir los 12V a 9V para el Arduino.

Paso 12: Base de la cúpula circular

La cúpula descansa sobre una pieza circular de madera con un pentágono recortado en el centro para facilitar el acceso a la electrónica. Para crear esta base circular, se cortó una lámina de madera contrachapada de 4x6′ utilizando una fresadora CNC de madera. También se puede utilizar un rompecabezas para este paso. Después de que la base fue cortada, la cúpula fue unida a ella usando pequeños bloques de madera de 2x3″.

En la parte superior de la base, conecté la fuente de alimentación con epoxi y los convertidores MUX y Buck con separadores de PCB. Los espaciadores se fijaron al contrachapado utilizando adaptadores de rosca E-Z Lok.

Paso 13: Base del Pentágono

Además de la base circular, también construí una base de pentágono para la cúpula con una ventana de espejo en la parte inferior.

La base y la ventana también estaban hechas de madera contrachapada cortada con una fresadora CNC de madera.

Los lados del pentágono están hechos de tablas de madera y un lado tiene un agujero para que los conectores pasen. Las tablas de madera se fijan a la base del pentágono mediante abrazaderas metálicas y juntas de bloques de 2x3.

Un interruptor de alimentación, conectores MIDI y un conector USB están conectados a un panel frontal que he creado utilizando un cortador láser.

Toda la base del pentágono se atornilla a la base circular descrita en el paso 12.

Instalé una ventana en la parte inferior de la cúpula para que cualquiera pueda ver la electrónica. El espejo está hecho de acrílico cortado con un cortador láser y está epoxiado a una pieza circular de madera contrachapada.

Paso 14: Programación del domo

Las posibilidades de programación de la cúpula son infinitas. Cada ciclo del código recoge las señales de los sensores IR, que indican los triángulos que han sido tocados por alguien. Con esta información puede colorear el domo con cualquier color RGB y/o producir una señal MIDI. Aquí hay algunos ejemplos de programas que escribí para el domo:

Colorea la cúpula: Cada triángulo circula a través de cuatro colores a medida que se toca. A medida que los colores cambian, se toca un arpegio. Con este programa, usted puede colorear la cúpula de miles de maneras diferentes.

Música de domo: El domo está coloreado con cinco colores, cada sección corresponde a una salida MIDI diferente. En el programa, usted puede elegir qué notas toca cada triángulo. Elegí comenzar en el centro de C en la parte superior de la cúpula, y aumentar el tono a medida que los triángulos se acercaban a la base. Debido a que hay cinco salidas, este programa es ideal para que varias personas toquen la cúpula simultáneamente. Utilizando un instrumento MIDI o una aplicación MIDI, estas señales MIDI pueden sonar como cualquier otro instrumento.

Simon: Escribí una versión de Simon, el clásico juego de iluminación de la memoria. Una secuencia aleatoria de luces se ilumina una a la vez en toda la cúpula. En cada turno, el jugador debe copiar la secuencia. Si el reproductor se ajusta a la secuencia correctamente, se añade una luz adicional a la secuencia. La puntuación alta se guarda en una de las secciones de la cúpula. Este juego también es muy divertido para jugar con varias personas.

Pong: ¿Por qué no jugar al pong en una cúpula? Una bola se propaga a través de la cúpula hasta que en golpea la paleta. Cuando lo hace, se produce una señal MIDI que indica que la paleta golpea la bola. El otro jugador debe entonces dirigir la paleta a lo largo de la parte inferior de la cúpula para que golpee la pelota hacia atrás.

Paso 15: Domo completado

Si continuas utilizando este sitio aceptas el uso de cookies / If you continue to use this site you accept the use of cookies. más información / more info

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto. The cookie settings on this site are set to "enable cookies" to provide you with the best possible browsing experience. If you continue to use this site without changing your cookie settings or clicking "OK" you will be giving your consent to this.

Cerrar