Tabla de contenido:

Domo LED geodésico interactivo: 15 pasos (con imágenes)
Domo LED geodésico interactivo: 15 pasos (con imágenes)

Video: Domo LED geodésico interactivo: 15 pasos (con imágenes)

Video: Domo LED geodésico interactivo: 15 pasos (con imágenes)
Video: Workshop Video Mapping y Diseño Multimedia 2023 -11-23 2024, Mes de julio
Anonim
Image
Image
Domo LED geodésico interactivo
Domo LED geodésico interactivo
Domo LED geodésico interactivo
Domo LED geodésico interactivo
Domo LED geodésico interactivo
Domo LED geodésico interactivo

Construí una cúpula geodésica que consta de 120 triángulos con un LED y un sensor en cada triángulo. Cada LED se puede direccionar individualmente y cada sensor está ajustado específicamente para un solo triángulo. El domo está programado con un Arduino para iluminarse y producir una señal MIDI dependiendo del triángulo en el que coloque su mano.

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

Hay varios Instructables geniales en mesas y cubos LED que me inspiraron a comenzar este proyecto. Sin embargo, quería intentar organizar los LED en una geometría diferente. No pude pensar en una mejor estructura para el proyecto que una cúpula geodésica, que también está bien documentada en Instructables. Así que este proyecto es un remix / mashup de mesas LED y domos geodésicos. A continuación se muestran los enlaces a los Instructables de la mesa LED y la cúpula geodésica que verifiqué al comienzo del proyecto.

Mesas y cubos 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-…

Cúpula geodésica:

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

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

Paso 1: Lista de suministros

Lista de suministros
Lista de suministros
Lista de suministros
Lista de suministros
Lista de suministros
Lista de suministros

Materiales:

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

2. Tira de LED direccionable (16,4 pies / 5 m Tira de píxeles de LED de color direccionable 160leds Ws2801 Dc5v)

3. Arduino Uno (Atmega328 - ensamblado)

4. Placa prototipo (Penta Angel Prototype PCB de doble cara Universal (7x9cm))

5. Acrílico para difundir los LED (Lámina de acrílico fundido, transparente, tamaño de 30 x 30 x 30 cm)

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

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

8. Convertidor reductor para LED y sensores (DROK Mini convertidor de voltaje reductor eléctrico 15A)

9. 120 sensores de infrarrojos (módulo de sensor de evitación de obstáculos por infrarrojos)

10. Cinco multiplexores de 16 canales (Breakout MUX analógico / digital - 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 de PCB de 0,25 mm de diámetro del cable de cobre chapado en estaño Alambre de envoltura de alambre 305M 30AWG Rojo)

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

15. Encabezados de clavijas (Gikfun 1 x 40 clavijas de 2,54 mm de una sola fila de clavijas macho separables)

16. Cinco conectores MIDI (conector MIDI compatible con la placa de pruebas (DIN de 5 pines))

17. Diez resistencias de 220 ohmios para conectores MIDI

18. Separadores separadores para montar la electrónica en el domo (Separador separador hexagonal M3 macho x M3 hembra)

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

20. Epoxi o Superglue Gorilla

21. Cinta aislante

22. Soldar

Instrumentos:

1. Estación de soldadura

2. Taladro eléctrico

3. Sierra circular

4. Lijadora orbital

5. Sierra caladora

6. Sierra de inglete

7. Transportador

8. Impresora 3D

9. Cortadores de alambre

10. Herramienta para enrollar alambre

11. Cortador láser para cortar placas LED (opcional)

12. Shopbot CNC para la base del domo (opcional)

Paso 2: diseño del domo geodésico

Diseño de la cúpula geodésica
Diseño de la cúpula geodésica
Diseño de la cúpula geodésica
Diseño de la cúpula geodésica

Como mencioné en la introducción, existen varias fuentes en línea para construir su propio domo geodésico. Estos sitios proporcionan calculadoras de domo que determinan la longitud de cada lado (es decir, el puntal) y la cantidad 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.), y una mayor complejidad 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.

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

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

Eso es un total de 190 puntales que suman 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 4V 5/12 es:

20 x 4 conectores

6 X 5 conectores

Conector de 45 X 6

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ñé.

Paso 3: construcción del domo con puntales y conectores

Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores
Construcción de domo con puntales y conectores

Usando los cálculos de Domerama para un domo 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 conectores, 6 de cinco conectores y 45 de seis conectores) se imprimieron en 3D con 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 se diseñaron para tener flexibilidad en la forma en que conectaban las estructuras, por lo que era importante verificar la simetría del domo antes de agregar cualquier epoxi.

Paso 4: Placas base de montaje y corte por láser

Placas base de montaje y corte por láser
Placas base de montaje y corte por láser
Placas base de montaje y corte por láser
Placas base de montaje y corte por láser
Placas base de montaje y corte por láser
Placas base de montaje y corte por láser
Placas base de montaje y corte por láser
Placas base de montaje y corte por láser

Ahora que el esqueleto de la cúpula está construido, es hora de cortar las placas base triangulares. Estas placas base están unidas a la parte inferior de los puntales y se utilizan para montar los LED en el domo. Inicialmente corté las placas base de madera contrachapada de 5 mm (3/16 ) de espesor midiendo los cinco triángulos diferentes que se encuentran 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 usando una calculadora de domo (Domerama) y algo de geometría. Después de cortar las placas base de prueba con una sierra de calar, dibujé el diseño del triángulo usando Coral Draw y corté las placas base restantes con un cortador láser (¡mucho más rápido!). Si no tiene acceso a un cortador láser, puede dibujar las placas base sobre madera contrachapada con una regla y un transportador y cortarlas todas con una sierra de vaivén. Una vez que se cortan las placas base, la cúpula se voltea y las placas se pegan a la cúpula con pegamento para madera.

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

Descripción general de la electrónica
Descripción general de la electrónica

En la figura anterior se muestra un esquema de la electrónica del domo. Un Arduino Uno se utiliza para escribir y leer señales para el domo. Para iluminar la cúpula, se pasa una tira de LED RGB sobre la cúpula de modo que se coloque un LED en cada uno de los 120 triángulos. Para obtener información sobre cómo funciona una tira de LED, consulte este instructivo. Cada LED se puede direccionar por separado usando el Arduino, que produce una señal de reloj y datos en serie para la tira (vea el pin A0 y A1 en el esquema). Con la tira y estas dos señales solas, puede tener un domo iluminado increíble. Hay otras formas de escribir señales para muchos LED desde un Arduino, como Charlieplexing y registros de cambio.

Para interactuar con el domo, configuré un sensor de infrarrojos sobre cada LED. Estos sensores se utilizan para detectar cuando la mano de alguien está cerca de un triángulo en el domo. Debido a que cada triángulo del domo tiene su propio sensor de infrarrojos y hay 120 triángulos, tendrás que hacer algún tipo de multiplexación antes del Arduino. Decidí utilizar cinco multiplexores de 24 canales (MUX) para los 120 sensores del domo. Aquí hay un instructivo sobre multiplexación, si no está familiarizado. Un MUX de 24 canales requiere cinco señales de control. Elegí los pines 8-12 en el Arduino, para poder manipular el puerto (consulte el Paso 10 para obtener más información). La salida de las placas 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 el domo simultáneamente y cada salida reproduce un sonido diferente. Solo 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 en un momento diferente al de la lectura del sensor de infrarrojos, utilicé las mismas señales de control.

Después de que todas las entradas del sensor de infrarrojos se leen en el Arduino, el domo puede iluminarse y reproducir sonidos sin importar cómo programe el Arduino. Tengo algunos ejemplos en el paso 14 de este instructivo.

Paso 6: Montaje de LED en el domo

Montaje de LED en el domo
Montaje de LED en el domo
Montaje de LED en el domo
Montaje de LED en el domo
Montaje de LED en el domo
Montaje de LED en el domo

Debido a que la cúpula es tan grande, es necesario cortar la tira de LED para colocar un LED en cada triángulo. Cada LED está pegado al triángulo con superpegamento. A cada lado del LED, se perfora un orificio a través de la placa base para que los cables pasen por el domo. Luego soldé el cable de conexión en cada contacto del LED (5 V, tierra, reloj, señal) y pasé los cables a través de la placa base. Estos cables se cortan de modo que sean lo suficientemente largos como para alcanzar el siguiente LED del domo. Los cables pasan al siguiente LED y el proceso continúa. Conecté los LED en una configuración que minimizaría la cantidad de cable requerido sin dejar de tener sentido para abordar los LED usando el Arduino más adelante. 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 LED RGB separados con registros de desplazamiento.

La comunicación en serie con la tira se logra mediante dos pines (un pin de datos y 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 código de ejemplo modificado de este foro de Arduino:

// Hacer que toda la cúpula aumente y disminuya la intensidad de un solo color

#define numLeds 120 // Número de LEDs // PINS DE SALIDA // int clockPin = A1; // define el pin del reloj int dataPin = A0; // definir pin de datos // VARIABLES // int red [numLeds]; // Inicializar la matriz para la tira de LED int green [numLeds]; // Inicializar la matriz para la tira de LED int blue [numLeds]; // Inicializar matriz para tira de LED // CONSTANTE doble escalaA = {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}; // fracción de intensidad de los LED void setup () {pinMode (clockPin, OUTPUT); pinMode (dataPin, SALIDA); memset (rojo, 0, numLeds); memset (verde, 0, numLeds); memset (azul, 0, numLeds); } cadena de actualización vacía (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 para aumentar la intensidad de la luz del domo {double scale = scaleA [p]; retraso (20); for (int i = 0; i <numLeds; i ++) // recorre todos los LEDS {red = 255 * scale; verde = 80 * escala; azul = 0; } cadena de actualización (rojo, verde, azul); // actualizar la tira de led}}

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

Diseño e implementación del montaje del sensor
Diseño e implementación del montaje del sensor
Diseño e implementación del montaje del sensor
Diseño e implementación del montaje del sensor
Diseño e implementación del montaje del sensor
Diseño e implementación del montaje del sensor

Decidí usar sensores de infrarrojos para el domo. Estos sensores tienen un LED de infrarrojos y un receptor. Cuando un objeto se pone frente al sensor, parte de la radiación IR del LED IR se refleja hacia el receptor. Comencé este proyecto haciendo mis propios sensores de infrarrojos, que se basaron en el instructable de Richardouvina. Toda la soldadura tomó demasiado tiempo, así que compré 120 sensores de infrarrojos en eBay, cada uno de los cuales produce una salida digital. El umbral del sensor se establece con un potenciómetro en el tablero para que la salida sea alta solo cuando una mano está cerca de ese triángulo.

Cada triángulo consta de una placa base LED de madera contrachapada, una lámina de acrílico difusor 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 con forma de pentágono o hexágono, según la posición en la cúpula (consulte la figura anterior). Perforé agujeros en la base del sensor de infrarrojos para montar los sensores de infrarrojos y luego conecté la tierra y los pines de 5 V con un cable envolvente y una herramienta para envolver cables (cables rojo y negro). Después de conectar la tierra y 5V, envolví un cable envolvente de alambre largo en cada salida (amarillo), tierra y 5V para pasar a través del domo.

Los montajes del sensor IR hexagonal o pentágono se pegaron con epoxi 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 encima de los conectores, también pude acceder y ajustar los potenciómetros en los sensores IR que controlan la sensibilidad de los sensores. En el siguiente paso, describiré cómo las salidas de los sensores de infrarrojos se conectan a los multiplexores y se leen en el Arduino.

Paso 8: Salida del sensor de multiplexación

Salida de sensor de multiplexación
Salida de sensor de multiplexación
Salida de sensor de multiplexación
Salida de sensor de multiplexación
Salida de sensor de multiplexación
Salida de sensor de multiplexación

Debido a que el Arduino Uno tiene solo 14 pines de E / S digitales y 6 pines de entrada analógica y hay 120 señales de sensor que deben leerse, el domo requiere multiplexores para leer todas las señales. Elegí construir cinco multiplexores de 24 canales, cada uno de los cuales lee 24 de los sensores de infrarrojos (consulte la figura de descripción general de la electrónica). El MUX de 24 canales consta de una placa de conexión MUX de 8 canales, una placa de conexión MUX de 16 canales y un MUX de 2 canales. Se soldaron cabezales de clavija a cada placa de conexión para que pudieran conectarse a la placa prototipo. Usando una herramienta de envoltura de alambre, luego conecté tierra, 5V y los pines de señal de control de las placas de conexión MUX.

Un MUX de 24 canales requiere cinco señales de control, que elegí conectar al pin 8-12 en el 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 leerse en serie en el Arduino. Debido a que hay cinco pines separados para leer en las 120 salidas de sensor, es útil imaginar que el domo se divide en cinco secciones separadas que constan de 24 triángulos (verifique los colores del domo en la figura).

Usando la manipulación del puerto Arduino, puede 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;

// SALIDAS // int s0 = 8; // Control MUX 0 - PORTbD int s1 = 9; // Control MUX 1 - PORTb int s2 = 10; // Control MUX 2 - PORTb int s3 = 11; // Control MUX 3 - PORTb int s4 = 12; // Control MUX 4 - PORTb // ENTRADAS // int m0 = 3; // Entrada MUX 0 int m1 = 4; // Entrada MUX 1 int m2 = 5; // Entrada MUX 2 int m3 = 6; // Entrada MUX 3 int m4 = 7; // Entrada MUX 4 // VARIABLES // int arr0r; // lectura digital de MUX0 int arr1r; // lectura digital de MUX1 int arr2r; // lectura digital de MUX2 int arr3r; // lectura digital de MUX3 int arr4r; // lectura digital de MUX4 void setup () {// ponga su código de configuración aquí, para que se ejecute una vez: DDRB = B11111111; // establece los pines 8 a 13 de Arduino como entradas pinMode (s0, OUTPUT); pinMode (s1, SALIDA); pinMode (s2, SALIDA); pinMode (s3, SALIDA); pinMode (s4, SALIDA); pinMode (m0, ENTRADA); pinMode (m1, ENTRADA); pinMode (m2, ENTRADA); pinMode (m3, ENTRADA); pinMode (m4, ENTRADA); } void loop () {// ponga su código principal aquí, para que se ejecute repetidamente: PORTB = B00000000; // SET pines de control para mux low for (int i = 0; i <numChannel; i ++) {// Salida de lectura digital de MUX0 - MUX4 para sensor IR i // Si el sensor IR es LO, el jugador está tocando el triángulo. arr0r = digitalRead (m0); // lectura de Mux 0, sensor IR i arr1r = digitalRead (m1); // lectura de Mux 1, sensor IR i arr2r = digitalRead (m2); // lectura de Mux 2, sensor IR i arr3r = digitalRead (m3); // lectura de Mux 3, sensor IR i arr4r = digitalRead (m4); // leyendo desde Mux 4, sensor IR i // HAGA ALGO CON ENTRADAS MUX O GUARDE EN UN ARRAY AQUÍ // PORTB ++; // incrementa las señales de control para MUX}}

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

Difusión de luz con acrílico
Difusión de luz con acrílico
Difusión de luz con acrílico
Difusión de luz con acrílico
Difusión de luz con acrílico
Difusión de luz con acrílico

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

Después de lijar y limpiar el acrílico, utilicé un cortador láser para cortar triángulos que encajaran sobre los LED. Es posible cortar el acrílico con una herramienta de corte para acrílico o incluso una sierra de calar si el acrílico no se agrieta. El acrílico se mantuvo sobre los LED mediante rectángulos de madera contrachapada de 5 mm de espesor también cortados con un cortador láser. Estos pequeños tablones se pegaron a los puntales de la cúpula y los triángulos acrílicos se pegaron con epoxi sobre los tablones.

Paso 10: hacer música con el domo usando MIDI

Hacer música con el domo usando MIDI
Hacer música con el domo usando MIDI
Hacer música con el domo usando MIDI
Hacer música con el domo usando MIDI
Hacer música con el domo usando MIDI
Hacer música con el domo usando MIDI

Quería que el domo fuera capaz de producir sonido, así que configuré cinco canales MIDI, uno para cada subconjunto del domo. Primero debe comprar cinco conectores MIDI y conectarlos como se muestra en el esquema (consulte este tutorial del soporte de Arduino para obtener más información).

Debido a que solo hay un pin serial de transmisión en el Arduino Uno (pin 2 etiquetado como pin TX), necesita desmultiplexar las señales que se envían a las cinco tomas MIDI. Usé las mismas señales de control (pin 8-12), porque las señales MIDI se envían en un momento diferente que cuando los sensores de infrarrojos se leen en el Arduino. Estas señales de control se envían a un demultiplexor de 8 canales para que usted controle qué conector MIDI recibe la señal MIDI creada por Arduino. Las señales MIDI fueron generadas por Arduino con la fantástica biblioteca de señales MIDI creada por Francois Best. Aquí hay un código de ejemplo para producir múltiples salidas MIDI a diferentes conectores MIDI con un Arduino Uno:

#include // incluye biblioteca MIDI

#define numChannel 24 // Número de IR por triángulo #define numSections 5 // número de secciones en el domo, número de MUX de 24 canales, número de tomas MIDI // SALIDAS // int s0 = 8; // Control MUX 0 - PORTbD int s1 = 9; // Control MUX 1 - PORTb int s2 = 10; // Control MUX 2 - PORTb int s3 = 11; // Control MUX 3 - PORTb int s4 = 12; // Control MUX 4 - PORTb // ENTRADAS // int m0 = 3; // Entrada MUX 0 int m1 = 4; // Entrada MUX 1 int m2 = 5; // Entrada MUX 2 int m3 = 6; // Entrada MUX 3 int m4 = 7; // Entrada MUX 4 // VARIABLES // int arr0r; // lectura digital de MUX0 int arr1r; // lectura digital de MUX1 int arr2r; // lectura digital de MUX2 int arr3r; // lectura digital de MUX3 int arr4r; // lectura digital de MUX4 int midArr [numSections]; // Almacena si uno de los jugadores ha pulsado una nota o no int note2play [numSections]; // Almacenar la nota que se reproducirá si se toca el sensor 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; // pausa el tiempo entre señales midi MIDI_CREATE_DEFAULT_INSTANCE (); void setup () {// ponga su código de configuración aquí, para que se ejecute una vez: DDRB = B11111111; // establece los pines 8 a 13 de Arduino como entradas MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, SALIDA); pinMode (s1, SALIDA); pinMode (s2, SALIDA); pinMode (s3, SALIDA); pinMode (s4, SALIDA); pinMode (m0, ENTRADA); pinMode (m1, ENTRADA); pinMode (m2, ENTRADA); pinMode (m3, ENTRADA); pinMode (m4, ENTRADA); } void loop () {// ponga su código principal aquí, para que se ejecute repetidamente: PORTB = B00000000; // SET pines de control para mux low for (int i = 0; i <numChannel; i ++) {// Salida de lectura digital de MUX0 - MUX4 para sensor IR i // Si el sensor IR es LO, el jugador está tocando el triángulo. arr0r = digitalRead (m0); // lectura de Mux 0, sensor IR i arr1r = digitalRead (m1); // lectura de Mux 1, sensor IR i arr2r = digitalRead (m2); // lectura de Mux 2, sensor IR i arr3r = digitalRead (m3); // lectura de Mux 3, sensor IR i arr4r = digitalRead (m4); // lectura de Mux 4, sensor IR i if (arr0r == 0) // Sensor en la sección 0 fue bloqueado {midArr [0] = 1; // El jugador 0 ha tocado una nota, ajuste HI para que haya una salida MIDI para el jugador 0 note2play [0] = notes ; // Nota para jugar para el jugador 0} if (arr1r == 0) // Sensor en la sección 1 fue bloqueado {midArr [1] = 1; // El jugador 0 ha tocado una nota, ajuste HI para que haya una salida MIDI para el jugador 0 note2play [1] = notes ; // Nota para jugar para el jugador 0} if (arr2r == 0) // El sensor en la sección 2 fue bloqueado {midArr [2] = 1; // El jugador 0 ha tocado una nota, ajuste HI para que haya salida MIDI para el jugador 0 note2play [2] = notes ; // Nota para jugar para el jugador 0} if (arr3r == 0) // El sensor en la sección 3 fue bloqueado {midArr [3] = 1; // El jugador 0 ha tocado una nota, ajuste HI para que haya salida MIDI para el jugador 0 note2play [3] = notes ; // Nota para jugar para el jugador 0} if (arr4r == 0) // El sensor en la sección 4 fue bloqueado {midArr [4] = 1; // El jugador 0 ha tocado una nota, ajuste HI para que haya salida MIDI para el jugador 0 note2play [4] = notes ; // Nota para jugar con Player 0} PORTB ++; // incrementa las señales de control para MUX} updateMIDI (); } void updateMIDI () {PORTB = B00000000; // SET pines de control para mux low if (midArr [0] == 1) // Salida MIDI del reproductor 0 {MIDI.sendNoteOn (note2play [0], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [0], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // incrementa MUX if (midArr [1] == 1) // Salida MIDI del reproductor 1 {MIDI.sendNoteOn (note2play [1], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [1], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // incrementa MUX if (midArr [2] == 1) // Salida MIDI del reproductor 2 {MIDI.sendNoteOn (note2play [2], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [2], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // incrementa MUX if (midArr [3] == 1) // Salida MIDI del reproductor 3 {MIDI.sendNoteOn (note2play [3], 127, 1); delayMicroseconds (pauseMidi); MIDI.sendNoteOff (note2play [3], 127, 1); delayMicroseconds (pauseMidi); } PORTB ++; // incrementa MUX if (midArr [4] == 1) // Salida MIDI del reproductor 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; }

Paso 11: Encendido del domo

Encendido de la cúpula
Encendido de la cúpula
Encendido de la cúpula
Encendido de la cúpula
Encendido de la cúpula
Encendido de la cúpula
Encendido de la cúpula
Encendido de la cúpula

Hay varios componentes que necesitan alimentación en el domo. Por lo tanto, deberá calcular los amperios consumidos de cada componente para determinar la fuente de alimentación que necesita comprar.

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

Los sensores de infrarrojos: cada sensor de infrarrojos consume aproximadamente 25 mA, por un total de 3 A para 120 sensores.

El Arduino: 100mA, 9V

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

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

Paso 12: Base de domo circular

Base de domo circular
Base de domo circular
Base de domo circular
Base de domo circular
Base de domo circular
Base de domo circular

La cúpula descansa sobre una pieza circular de madera con un pentágono cortado en el medio para facilitar el acceso a los componentes electrónicos. Para crear esta base circular, se cortó una hoja de madera contrachapada de 4x6 'con una fresadora CNC de madera. También se podría utilizar una sierra de calar para este paso. Después de cortar la base, se le unió la cúpula 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 unieron a la madera contrachapada utilizando adaptadores de rosca E-Z Lok.

Paso 13: Base del domo del Pentágono

Base de la cúpula del Pentágono
Base de la cúpula del Pentágono
Base de la cúpula del Pentágono
Base de la cúpula del Pentágono
Base de la cúpula del Pentágono
Base de la cúpula del Pentágono

Además de la base circular, también construí una base de pentágono para la cúpula con un espejo en la parte inferior. Esta base y la ventana de observación también se hicieron con madera contrachapada cortada con un enrutador CNC de madera. Los lados del pentágono están hechos de tablas de madera con un lado con un agujero para que pasen los conectores. Usando soportes de metal y juntas de bloque de 2x3, las tablas de madera se unen a la base del pentágono. Un interruptor de encendido, conectores MIDI y conector USB están conectados a un panel frontal que creé con 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 mirar hacia la cúpula y ver los componentes electrónicos. El espejo está hecho de acrílico cortado con un cortador láser y está epoxi a una pieza circular de madera contrachapada.

Paso 14: Programación del domo

Hay infinitas posibilidades para programar el domo. Cada ciclo del código toma las señales de los sensores de infrarrojos, que indican los triángulos que alguien ha tocado. 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 recorre cuatro colores a medida que se toca. A medida que cambian los colores, se reproduce un arpegio. Con este programa, puedes colorear la cúpula de miles de formas diferentes.

Música del domo: el domo está coloreado con cinco colores, cada sección corresponde a una salida MIDI diferente. En el programa, puede elegir qué notas toca cada triángulo. Elegí comenzar en el medio C en la parte superior de la cúpula y aumentar el paso 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 el domo simultáneamente. Usando un instrumento MIDI o software MIDI, estas señales MIDI pueden hacerse sonar como cualquier instrumento.

Simon: Escribí una versión de Simon, el clásico juego de luces de memoria. Una secuencia aleatoria de luces se ilumina una a la vez en todo el domo. En cada turno, el jugador debe copiar la secuencia. Si el jugador coincide con la secuencia correctamente, se agrega una luz adicional a la secuencia. La puntuación más alta se almacena 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 golpea la paleta. Cuando lo hace, se produce una señal MIDI, lo que indica que la paleta golpeó la pelota. El otro jugador debe dirigir la paleta a lo largo de la parte inferior del domo para que golpee la pelota hacia atrás.

Paso 15: Fotos del domo completo

Fotos de la cúpula completa
Fotos de la cúpula completa
Fotos de la cúpula completa
Fotos de la cúpula completa
Fotos de la cúpula completa
Fotos de la cúpula completa
Fotos de la cúpula completa
Fotos de la cúpula completa
Concurso Arduino 2016
Concurso Arduino 2016
Concurso Arduino 2016
Concurso Arduino 2016

Gran Premio en el Concurso Arduino 2016

Concurso de remezclas 2016
Concurso de remezclas 2016
Concurso de remezclas 2016
Concurso de remezclas 2016

Segundo premio en el concurso Remix 2016

Concurso Make it Glow 2016
Concurso Make it Glow 2016
Concurso Make it Glow 2016
Concurso Make it Glow 2016

Segundo premio en el concurso Make it Glow 2016

Recomendado: