Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En la era de la iluminación inteligente, las tiras LED han emergido como una
innovación destacada en el ámbito de la tecnología doméstica. Este informe se
adentra en el fascinante mundo de los juegos con tiras LED, explorando su
evolución, funcionalidades y su impacto en los entornos residenciales y
comerciales. Estas tiras, más allá de su función original de iluminación, han
transformado el concepto de ambientación visual, ofreciendo una gama diversa de
colores, efectos y aplicaciones que trascienden la mera iluminación.
Este informe detalla el desarrollo de un juego que utiliza la tecnología de tiras LED
como escenario interactivo. En este juego, dos vehículos iluminados compiten en
un recorrido diseñado dentro de la tira LED, enfrentándose en una emocionante
carrera hacia la meta. Se explorará exhaustivamente el proceso de concepción,
diseño y ejecución de esta experiencia única, desde la programación de los
vehículos hasta la sincronización con la tira LED para crear un entorno dinámico y
visualmente impactante.
Se presentará una visión detallada del hardware y software implicados en la
construcción de los vehículos, destacando los aspectos técnicos que permiten su
interacción con la tira LED.
MARCO TEORICO
ARDUINO
Arduino es una plataforma de creación de electrónica de código abierto, la cual
está basada en hardware y software libre, flexible y fácil de utilizar para los
creadores y desarrolladores. Esta plataforma permite crear diferentes tipos de
microordenadores de una sola placa a los que la comunidad de creadores puede
darles diferentes tipos de uso.
PULSADOR
El interruptor pulsador momentáneo causa un cambio temporal en un circuito
eléctrico, solo cuando el interruptor se presiona físicamente. El resorte devuelve el
interruptor a su posición original inmediatamente después.
Esta foto de Autor desconocido está
bajo licencia CC BY-SA
ADAFRUIT NEOPIXEL DIGITAL RGB
Neopixel es el nombre (acuñado por Adafruit) que se le da a un tipo especial de
led RGB, el WS2812B. Se trata de un led con lógica integrada, de manera que
podemos conectar multitud de ellos secuencialmente y acceder individualmente a
cada uno.
Teóricamente no hay límite en el número de leds que podemos encadenar más
allá de lo que soporte nuestra fuente de alimentación.
FUENTE 5V DC
FILAMENTO PLA
El plástico PLA (ácido poliláctico) se obtiene a partir de materias primas
provenientes de la naturaleza, tales como el almidón de maíz, con el que
obtenemos un material plástico ecológico, renovable y biodegradable bajo ciertas
condiciones de temperatura y humedad.
Componentes y suministros Función costo
1. Diseño carcasa:
Se diseño una caja en donde pueda contener los componentes electrónicos
con unos agujeros en donde iría ubicados los sockets que conecta los
botones, la fuente y la tira led.
2. Fabricación carcasa:
Se imprimió el diseño a través de impresión 3D utilizando material PLA.
4. Programación:
El lenguaje de programación utilizado utilizado para programar en la plataforma Arduino se llama
"lenguaje de programación Arduino". Sin embargo, en realidad, este lenguaje es una variante
simplificada de C++ con algunas funciones específicas de Arduino. Se le conoce a menudo como
"Arduino Sketch" o simplemente "Sketch".
Los programas de Arduino se denominan "sketches" y tienen una estructura básica con dos
funciones principales: setup()y loop(). La función setup()se ejecuta una vez al inicio del programa,
mientras que la función loop()se ejecuta continuamente en un bucle después de que setup()haya
completado su ejecución.
Arduino también proporciona una serie de bibliotecas y funciones que simplifican la programación
de hardware, como la lectura de sensores, la manipulación de pines de entrada/salida, la serie de
comunicación, entre otras cosas.
Es importante señalar que aunque el lenguaje de programación principal es una variante de C++,
los principios básicos de la programación en Arduino son bastante accesibles, lo que lo convierte
en una excelente opción para principiantes en la electrónica y la programación.
Este código es como una receta para hacer una carrera de carritos en una tira de luces que se
pueden controlar con una pequeña computadora llamada Arduino. Vamos a dividirlo en pedacitos
para que sea más fácil de entender:
Primera parte: Configuraciones Iniciales Aquí, están diciendo cuántas luces hay en la pista y dónde
están conectadas algunas cosas, como la tira de luces, los interruptores de los jugadores y un
altavoz.
Segunda parte: Configuración de la Carrera Luego, define algunos colores y sonidos que se usarán
más adelante, como el amarillo para un carro y el azul para otro. También crean un efecto musical
para cuando alguien gana.
Tercera parte: Física de los Carritos Ahora, imagina que los carritos tienen su propia física. Pueden
acelerar y frenar, y hay algo llamado gravedad que afecta la velocidad. También hay un poquito de
fricción para hacerlo más realista.
Cuarta parte: Inicio de la Carrera Aquí, tienen algunas instrucciones para el inicio de la carrera.
Hay luces y sonidos emocionantes para preparar a todos para la competencia.
Quinta parte: Efectos Especiales Cuando alguien gana, hay efectos especiales, como sonidos
festivos. ¡Es como celebrar una victoria con una fiesta pequeña!
Sexta parte: Dibujo de los Carritos Finalmente, en el corazón del código, hay instrucciones para
dibujar los carritos en las luces. Se actualiza continuamente para seguir la carrera.
Definición de colores: Se establece los colores amarillo y azul para representar a los
jugadores.
Música de Victoria: Se define
2. Control de luces LED: Configura y controla una tira de luces LED para representar la pista.
Inicializa
2. Espera 2 segundos: Permite un tiempo para que los jugadores se preparen antes de
comenzar los efectos visuales.
Detalles:
Cada nota se reproduce durante 200 milisegundos, seguida de una pausa de 260
milisegundos.
2. **FunciónFunciones draw_car1()ydraw_car2()
Funciones:
Detalles:
Utilizan un bucle para recorrer la longitud del carro ( loop1 o loop2) y establecer el
color de los LED en la pista según la posición actual del carro.
2. Verifica el estado del interruptor del jugador 1: Lee el estado del interruptor del jugador 1
( PIN_P1). Si el interruptor está presionado, aumente la velocidad del jugador 1 ( speed1)
en función de la aceleración ( ACEL). Si el interruptor está liberado, ajuste la bandera
flag_sw1 en consecuencia.
3. Aplica fricción a la velocidad del jugador 1: Reduce la velocidad del jugador 1 aplicando
fricción ( speed1 -= speed1 * kf).
4. Verifica el estado del interruptor del jugador 2: Similar al caso del jugador 1, verifica el
estadoPIN_P2). Ajusta la velocidad del jugador 2 ( speed2) en consecuencia y actualiza la
bandera flag_sw2.
5. Aplica fricción a la velocidad del jugador 2: Al igual que con el jugador 1, reduce la
velocidad del jugador 2 aplicando fricción ( speed2 -= speed2 * kf).
1. Actualizar distancias: Incrementa las distancias recorridas por ambos jugadores en función
de sus velocidades.
2. Determinar líder: Compara las distancias recorridas y determina qué jugador está
liderando.
5. Controlar el orden de dibujo: Alterna el orden de dibujo entre los jugadores en cada
iteración.
7. Mostrar y esperar: Muestra los cambios en la tira de LED y espera un breve período (
delay(tdelay)).
Aquí, el bucle for se utiliza para iterar a través de todos los píxeles en la tira de
NeoPixel y establecer su color en negro ((0,0,0)).
Bucle para reproducir la secuencia de victoria (winner_fx):
En la función winner_fx, se utiliza un bucle for para reproducir una secuencia de
tonos que representan la victoria.
Aquí, el bucle for se utiliza para dibujar el automóvil 1 en la tira de NeoPixel con
colores variables en función del bucle.
Estos son los bucles for presentes en el código. Los bucles son fundamentales
para repetir tareas y ejecutar instrucciones de manera iterativa en diferentes
partes del programa.
Uno de los problemas con el código fue que al oprimir los botones estos
seguían sin parar, por lo tanto tocó definir variables de fricción y aceleración
simulando un carro de verdad para que andará solo con las pulsaciones
que se obtenían de cada uno de los botones
6. Ensamble y prueba de funcionamiento:
Se ensamblo por completo poniendo los componentes electrónicos dentro
de la carcasa fabricada y se hizo una prueba donde se evidencia el
funcionamiento de este.
Programación de encuentros Avances
Se empezó a trabajar en el
Jueves 9 de noviembre de 2023 código por medio del lenguaje de
(2-5 PM) programación de Arduino.