Proyectos
Table of Contents
emprendimiento de Brownies
gracias a los conocimientos de mi mamá sobre pastelería; y un holograma
de publicidad realizado en la Universidad.
Brown nies #
En 2016, a mis 16 años, inicié este proyecto vendiendo en mi colegio. Con el tiempo, la demanda creció tanto que ya no tenía que salir a vender, la gente llegaba por sí sola. Decidí expandirme mediante publicaciones llamativas en Instagram, lo que resultó efectivo como estrategia publicitaria. En este período me acompañó mi mejor amigo Tomás, apoyando en las gráficas e ideas que iban surgiendo.








Más adelante, este emprendimiento prosperó durante mi tiempo en la universidad, donde se convirtió en parte de un proyecto para un ramo de negocios. El proyecto fue bien recibido, obteniendo elogios y generando ingresos significativos. Sin embargo, el desafío fue durante la pandemia, en donde era todo un tema el salir a entregar. Luego con el alza de costo de los insumos no salía rentable producir y vender brownies.




Logros obetinos: vender 60 kg de mezcla en dos meses. Costear un viaje a Europa vendiendo en la U (no funcionó por Covid). Emprendimiento rentable en el ramo de la U.
Publigrama | La publicidad del futuro #
El presente proyecto de Diseño se realizó en la Universidad, y describe un proyecto de publicidad interactiva que combina tecnologías de visualización 3D con hologramas y electrónica que permite esta interactividad a través de “botones de luz”.
#
PUBLIGRAMA Presentación finalFabricación:
Soldadura y corte fierros
Corte láser MDF
Electrónica y programación:
Proyección publicidad interactiva en hologramas









Código Python: #
import serial
import time
import cv2
import threading
def enviar_numero_a_arduino(numero):
arduino.write(str(numero).encode())
time.sleep(2)
def reproducir_video(ruta_video):
cap = cv2.VideoCapture(ruta_video)
# Verificar si se puede abrir el video
if not cap.isOpened():
print("Error al abrir el video.")
return
# Obtener dimensiones de la ventana de video
window_name = "Reproduciendo video"
cv2.namedWindow(window_name, cv2.WND_PROP_FULLSCREEN)
cv2.setWindowProperty(window_name, cv2.WND_PROP_FULLSCREEN, cv2.WINDOW_FULLSCREEN)
while True:
ret, frame = cap.read()
if not ret:
# Fin del video, salir de la reproducción
break
# Mostrar el fotograma en pantalla completa
cv2.imshow(window_name, frame)
# Esperar 30 ms y verificar si se presionó la tecla 'q' para salir
if cv2.waitKey(30) & 0xFF == ord('q'):
break
if valor_anterior != valor:
break
# Cerrar ventana al finalizar la reproducción
cv2.destroyAllWindows()
# Función para reproducir el video en un hilo separado
def reproducir_video_thread(ruta_video):
thread = threading.Thread(target=reproducir_video, args=(ruta_video,))
thread.start()
return thread
# Configurar comunicación con Arduino
arduino = serial.Serial("COM5", 9600)
time.sleep(2)
# Rutas de los videos
ruta_rojo = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_rojo.mp4'
ruta_verde = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_verde.mp4'
ruta_azul = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_azul.mp4'
ruta_amarilla = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_amarillo.mp4'
ruta_morada = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_morado.mp4'
ruta_cian = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_cian.mp4'
ruta_blanco = r'D:\Baul\Ale_UAI_Cosas\2023\2do semestre\Taller_prod_Caaro_pino_fran\E07_publicida\Final\Videos\2vid_blanco.mp4'
# Inicializar el valor anterior
valor_anterior = None
video_thread = None
while True:
valor = arduino.readline().decode('utf-8').strip()
print(valor)
# Interrumpir el video en curso si se recibe un nuevo valor
if video_thread is not None and video_thread.is_alive():
video_thread.join() # Esperar a que el hilo de reproducción termine
cv2.destroyAllWindows()
if valor == valor_anterior:
# Si el valor es igual al valor anterior, reproducir el video actual nuevamente
if valor == '1':
video_thread = reproducir_video_thread(ruta_rojo)
elif valor == '2':
video_thread = reproducir_video_thread(ruta_verde)
elif valor == '3':
video_thread = reproducir_video_thread(ruta_azul)
elif valor == '4':
video_thread = reproducir_video_thread(ruta_amarilla)
elif valor == '5':
video_thread = reproducir_video_thread(ruta_morada)
elif valor == '6':
video_thread = reproducir_video_thread(ruta_cian)
elif valor == '7':
video_thread = reproducir_video_thread(ruta_blanco)
else:
# Si el valor es diferente al valor anterior, actualizar el valor anterior y reproducir el video correspondiente
valor_anterior = valor
if valor == '1':
video_thread = reproducir_video_thread(ruta_rojo)
elif valor == '2':
video_thread = reproducir_video_thread(ruta_verde)
elif valor == '3':
video_thread = reproducir_video_thread(ruta_azul)
elif valor == '4':
video_thread = reproducir_video_thread(ruta_amarilla)
elif valor == '5':
video_thread = reproducir_video_thread(ruta_morada)
elif valor == '6':
video_thread = reproducir_video_thread(ruta_cian)
elif valor == '7':
video_thread = reproducir_video_thread(ruta_blanco)
Código Arduino: #
#include "Arduino.h"
int espera = 100;
int aumento = 10;
int num_inicial = 50;
int num_final = 52;
/////////////////////////////////////////////// SENSORES ///////////////////////////////////////////////
int sens_1 = 9;
int sens_2 = 10;
int sens_3 = 11;
//int sens_4 = 10;
//int sens_5 = 9;
//int sens_6 = 8;
/////////////////////////////////////////////// LED RGB ///////////////////////////////////////////////
int l_rojo = 2;
int l_verde = 3;
int l_azul = 4;
int l_amarillo = 5;
//int l_morado = A0; // ROJO
//int l_cian = A1; // VERDE
//int l_rgb = A2; // AZUL
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// CÓDIGO ///////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// SETUP ///////////////////////////////////////////////
void setup() {
Serial.begin(9600);
pinMode(sens_1, INPUT);
pinMode(sens_2, INPUT);
pinMode(sens_3, INPUT);
//pinMode(sens_4, INPUT);
//pinMode(sens_5, INPUT);
//pinMode(sens_6, INPUT);
pinMode(l_rojo, OUTPUT);
pinMode(l_verde, OUTPUT);
pinMode(l_azul, OUTPUT);
//pinMode(l_amarillo, OUTPUT);
//pinMode(l_morado, OUTPUT);
//pinMode(l_cian, OUTPUT);
//pinMode(l_rgb, OUTPUT);
digitalWrite(l_rojo , HIGH);
digitalWrite(l_verde , HIGH);
digitalWrite(l_azul , HIGH);
}
void loop() {
/////////////////////////////////////////////// LOOP ///////////////////////////////////////////////
////////////////////////////// SENSORES /////////////////////////////////
////////// ROJO /////////
if ((digitalRead(sens_1) == HIGH) & (digitalRead(sens_2)== LOW) & ((digitalRead(sens_3)== LOW))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 1;
if (num_inicial != num_final){
Serial.println("1");
num_inicial = 1;
}
delay(espera);
}
////////// VERDE /////////
else if ((digitalRead(sens_2) == HIGH) & (digitalRead(sens_1)== LOW) & ((digitalRead(sens_3)== LOW))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 2;
if (num_inicial != num_final){
Serial.println("2");
num_inicial = 2;
}
delay(espera);
}
////////// AZUL /////////
else if ((digitalRead(sens_3) == HIGH) & (digitalRead(sens_1)== LOW) & ((digitalRead(sens_2)== LOW))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 3;
if (num_inicial != num_final){
Serial.println("3");
num_inicial = 3;
}
delay(espera);
}
////////// AMARILLO /////////
else if ((digitalRead(sens_1) == HIGH) & (digitalRead(sens_2)== HIGH) & ((digitalRead(sens_3)== LOW))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 4;
if (num_inicial != num_final){
Serial.println("4");
num_inicial = 4;
}
delay(1500);
}
////////// MORADO /////////
else if ((digitalRead(sens_1) == HIGH) & (digitalRead(sens_3)== HIGH) & ((digitalRead(sens_2)== LOW))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 5;
if (num_inicial != num_final){
Serial.println("5");
num_inicial = 5;
}
delay(1500);
}
////////// CIAN /////////
else if ((digitalRead(sens_2) == HIGH) & (digitalRead(sens_3)== HIGH) & ((digitalRead(sens_1)== LOW))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 6;
if (num_inicial != num_final){
Serial.println("6");
num_inicial = 6;
}
delay(1500);
}
else if ((digitalRead(sens_2) == HIGH) & (digitalRead(sens_3)== HIGH) & ((digitalRead(sens_1)== HIGH))) {
// Enviar el mensaje "sensor activado" por el puerto serial
num_final = 7;
if (num_inicial != num_final){
Serial.println("7");
num_inicial = 7;
}
delay(espera);
}
/*
else if ((digitalRead(sens_4) == HIGH)) {
// Enviar el mensaje "sensor activado" por el puerto serial
Serial.println("7");
/*
digitalWrite(l_rojo , LOW);
digitalWrite(l_verde , LOW);
digitalWrite(l_azul , LOW);
digitalWrite(l_amarillo,LOW);
analogWrite(l_morado,0);
analogWrite(l_cian,0);
analogWrite(l_rgb,0);
*/
delay(espera+aumento);
}
/*
}
/*
////////////////////////////// Colores led rgb /////////////////////////////////
///*
// Esperamos a recibir un número desde Python
//while (!Serial.available()) {
// delay(10);
//}
// Leemos el número enviado desde Python
if (Serial.available()>0){
numero = Serial.parseInt();
delay(100);
// Si el número es mayor o igual a 5, encendemos el LED
if (numero == 1) {
//analogWrite(LEDROJO, 255);
//delay(2000);
}
else if (numero == 2){
//analogWrite(LEDROJO, 0);
//delay(2000);
}
else if (numero == 3) {
//analogWrite(LEDROJO, 0);
//delay(2000);
}
delay(espera);
}
}
*/
There are no articles to list here yet.